comparison src/share/vm/opto/memnode.cpp @ 681:fbde8ec322d0

6761600: Use sse 4.2 in intrinsics Summary: Use SSE 4.2 in intrinsics for String.{compareTo/equals/indexOf} and Arrays.equals. Reviewed-by: kvn, never, jrose
author cfang
date Tue, 31 Mar 2009 14:07:08 -0700
parents 7bb995fbd3c0
children f2049ae95c3d
comparison
equal deleted inserted replaced
676:d3676b4cb78c 681:fbde8ec322d0
2479 // control copies 2479 // control copies
2480 Node *StrCompNode::Ideal(PhaseGVN *phase, bool can_reshape){ 2480 Node *StrCompNode::Ideal(PhaseGVN *phase, bool can_reshape){
2481 return remove_dead_region(phase, can_reshape) ? this : NULL; 2481 return remove_dead_region(phase, can_reshape) ? this : NULL;
2482 } 2482 }
2483 2483
2484 // Do we match on this edge? No memory edges
2485 uint StrEqualsNode::match_edge(uint idx) const {
2486 return idx == 5 || idx == 6;
2487 }
2488
2489 //------------------------------Ideal------------------------------------------
2490 // Return a node which is more "ideal" than the current node. Strip out
2491 // control copies
2492 Node *StrEqualsNode::Ideal(PhaseGVN *phase, bool can_reshape){
2493 return remove_dead_region(phase, can_reshape) ? this : NULL;
2494 }
2495
2496 //=============================================================================
2497 // Do we match on this edge? No memory edges
2498 uint StrIndexOfNode::match_edge(uint idx) const {
2499 return idx == 5 || idx == 6;
2500 }
2501
2502 //------------------------------Ideal------------------------------------------
2503 // Return a node which is more "ideal" than the current node. Strip out
2504 // control copies
2505 Node *StrIndexOfNode::Ideal(PhaseGVN *phase, bool can_reshape){
2506 return remove_dead_region(phase, can_reshape) ? this : NULL;
2507 }
2508
2484 //------------------------------Ideal------------------------------------------ 2509 //------------------------------Ideal------------------------------------------
2485 // Return a node which is more "ideal" than the current node. Strip out 2510 // Return a node which is more "ideal" than the current node. Strip out
2486 // control copies 2511 // control copies
2487 Node *AryEqNode::Ideal(PhaseGVN *phase, bool can_reshape){ 2512 Node *AryEqNode::Ideal(PhaseGVN *phase, bool can_reshape){
2488 return remove_dead_region(phase, can_reshape) ? this : NULL; 2513 return remove_dead_region(phase, can_reshape) ? this : NULL;
2489 } 2514 }
2490
2491 2515
2492 //============================================================================= 2516 //=============================================================================
2493 MemBarNode::MemBarNode(Compile* C, int alias_idx, Node* precedent) 2517 MemBarNode::MemBarNode(Compile* C, int alias_idx, Node* precedent)
2494 : MultiNode(TypeFunc::Parms + (precedent == NULL? 0: 1)), 2518 : MultiNode(TypeFunc::Parms + (precedent == NULL? 0: 1)),
2495 _adr_type(C->get_adr_type(alias_idx)) 2519 _adr_type(C->get_adr_type(alias_idx))