summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author buzbee <buzbee@google.com> 2012-06-20 17:45:00 -0700
committer buzbee <buzbee@google.com> 2012-06-20 17:45:00 -0700
commite33c92b3b9c75b7a5c685639d289d6381b2694a9 (patch)
tree0b0d108988fa893131780539ba28ad5c6f2a9166
parent83475c208287fe671f12a1c59f914194b2caf1db (diff)
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
-rw-r--r--src/compiler/codegen/GenInvoke.cc3
1 files changed, 1 insertions, 2 deletions
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;
}
/*