comparison src/share/vm/opto/memnode.cpp @ 7637:b30b3c2a0cf2

6896617: Optimize sun.nio.cs.ISO_8859_1$Encode.encodeArrayLoop() on x86 Summary: Use SSE4.2 and AVX2 instructions for encodeArray intrinsic. Reviewed-by: roland
author kvn
date Tue, 22 Jan 2013 15:34:16 -0800
parents 00af3a3a8df4
children 6931f425c517
comparison
equal deleted inserted replaced
7636:a7114d3d712e 7637:b30b3c2a0cf2
2795 if (in(0) && phase->type(in(0)) == Type::TOP) return Type::TOP; 2795 if (in(0) && phase->type(in(0)) == Type::TOP) return Type::TOP;
2796 return bottom_type(); 2796 return bottom_type();
2797 } 2797 }
2798 2798
2799 //============================================================================= 2799 //=============================================================================
2800 //------------------------------match_edge-------------------------------------
2801 // Do not match memory edge
2802 uint EncodeISOArrayNode::match_edge(uint idx) const {
2803 return idx == 2 || idx == 3; // EncodeISOArray src (Binary dst len)
2804 }
2805
2806 //------------------------------Ideal------------------------------------------
2807 // Return a node which is more "ideal" than the current node. Strip out
2808 // control copies
2809 Node *EncodeISOArrayNode::Ideal(PhaseGVN *phase, bool can_reshape) {
2810 return remove_dead_region(phase, can_reshape) ? this : NULL;
2811 }
2812
2813 //------------------------------Value------------------------------------------
2814 const Type *EncodeISOArrayNode::Value(PhaseTransform *phase) const {
2815 if (in(0) && phase->type(in(0)) == Type::TOP) return Type::TOP;
2816 return bottom_type();
2817 }
2818
2819 //=============================================================================
2800 MemBarNode::MemBarNode(Compile* C, int alias_idx, Node* precedent) 2820 MemBarNode::MemBarNode(Compile* C, int alias_idx, Node* precedent)
2801 : MultiNode(TypeFunc::Parms + (precedent == NULL? 0: 1)), 2821 : MultiNode(TypeFunc::Parms + (precedent == NULL? 0: 1)),
2802 _adr_type(C->get_adr_type(alias_idx)) 2822 _adr_type(C->get_adr_type(alias_idx))
2803 { 2823 {
2804 init_class_id(Class_MemBar); 2824 init_class_id(Class_MemBar);