changeset 917:e502d7524e3a

6827605: new String intrinsics may prevent EA scalar replacement Summary: don't use SSE42 string indexOf intrinsic if it is called for new object which could be scalar replaced. Reviewed-by: never
author kvn
date Wed, 26 Aug 2009 10:46:24 -0700
parents 50a95aa4a247
children 9f00229d78ce
files src/share/vm/opto/library_call.cpp
diffstat 1 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/opto/library_call.cpp	Fri Aug 21 20:16:58 2009 -0700
+++ b/src/share/vm/opto/library_call.cpp	Wed Aug 26 10:46:24 2009 -0700
@@ -1089,8 +1089,12 @@
   Node *argument = pop();  // pop non-receiver first:  it was pushed second
   Node *receiver = pop();
 
+  Node* alloc = NULL;
+  if (DoEscapeAnalysis && argument->is_Con())
+    alloc = AllocateNode::Ideal_allocation(receiver, &_gvn);
+
   Node* result;
-  if (Matcher::has_match_rule(Op_StrIndexOf) &&
+  if (Matcher::has_match_rule(Op_StrIndexOf) && alloc == NULL &&
       UseSSE42Intrinsics) {
     // Generate SSE4.2 version of indexOf
     // We currently only have match rules that use SSE4.2