< prev index next >

src/share/vm/opto/matcher.cpp

Print this page

        

*** 934,946 **** --- 934,950 ---- if (nidx == Compile::AliasIdxBot && midx == Compile::AliasIdxTop) { switch (n->Opcode()) { case Op_StrComp: case Op_StrEquals: case Op_StrIndexOf: + case Op_StrIndexOfChar: case Op_AryEq: + case Op_HasNegatives: case Op_MemBarVolatile: case Op_MemBarCPUOrder: // %%% these ideals should have narrower adr_type? + case Op_StrInflatedCopy: + case Op_StrCompressedCopy: case Op_EncodeISOArray: nidx = Compile::AliasIdxTop; nat = NULL; break; }
*** 2154,2164 **** --- 2158,2172 ---- mstack.push(n->in(0), Pre_Visit); // Visit Control input continue; // while (mstack.is_nonempty()) case Op_StrComp: case Op_StrEquals: case Op_StrIndexOf: + case Op_StrIndexOfChar: case Op_AryEq: + case Op_HasNegatives: + case Op_StrInflatedCopy: + case Op_StrCompressedCopy: case Op_EncodeISOArray: set_shared(n); // Force result into register (it will be anyways) break; case Op_ConP: { // Convert pointers above the centerline to NUL TypeNode *tn = n->as_Type(); // Constants derive from type nodes
*** 2333,2343 **** n->set_req(1,pair1); n->set_req(2,n->in(3)); n->del_req(3); break; } ! case Op_StrEquals: { Node *pair1 = new BinaryNode(n->in(2),n->in(3)); n->set_req(2,pair1); n->set_req(3,n->in(4)); n->del_req(4); break; --- 2341,2352 ---- n->set_req(1,pair1); n->set_req(2,n->in(3)); n->del_req(3); break; } ! case Op_StrEquals: ! case Op_StrIndexOfChar: { Node *pair1 = new BinaryNode(n->in(2),n->in(3)); n->set_req(2,pair1); n->set_req(3,n->in(4)); n->del_req(4); break;
*** 2350,2359 **** --- 2359,2370 ---- n->set_req(3,pair2); n->del_req(5); n->del_req(4); break; } + case Op_StrCompressedCopy: + case Op_StrInflatedCopy: case Op_EncodeISOArray: { // Restructure into a binary tree for Matching. Node* pair = new BinaryNode(n->in(3), n->in(4)); n->set_req(3, pair); n->del_req(4);
< prev index next >