Mercurial > hg > graal-jvmci-8
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)) |