From e33c92b3b9c75b7a5c685639d289d6381b2694a9 Mon Sep 17 00:00:00 2001 From: buzbee Date: Wed, 20 Jun 2012 17:45:00 -0700 Subject: Fix string.compareTo regression The recent restructuring that fused invokes and their subsequent move-results caused a performance regression in the compareto microbenchmarks. The restructuring CL was being a little over conservative and disabled detection of special inlined functions when encountering one who's subsequent move-result was missing. The string.compareto microbenchmarks do a bunch of compareto's and ignore the result. It's perfectly legal to ignore the return value, and the generaated code handles this case just fine by defaulting back to the special return registers if not move-result is found. Remove the check. Change-Id: Idca9d10404ced4d6b11be6ea00d62ed429345e85 --- src/compiler/codegen/GenInvoke.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/compiler/codegen/GenInvoke.cc') diff --git a/src/compiler/codegen/GenInvoke.cc b/src/compiler/codegen/GenInvoke.cc index 7c2cf1cba3..e6714aa807 100644 --- a/src/compiler/codegen/GenInvoke.cc +++ b/src/compiler/codegen/GenInvoke.cc @@ -854,8 +854,7 @@ bool genInlinedStringCompareTo(CompilationUnit* cUnit, CallInfo* info) bool genIntrinsic(CompilationUnit* cUnit, CallInfo* info) { - if ((info->optFlags & MIR_INLINED) || info->isRange || - (info->result.location == kLocInvalid)) { + if ((info->optFlags & MIR_INLINED) || info->isRange) { return false; } /* -- cgit v1.2.3-59-g8ed1b