comparison src/share/vm/opto/memnode.cpp @ 3961:a92cdbac8b9e

7081933: Use zeroing elimination optimization for large array Summary: Don't zero new typeArray during runtime call if the allocation is followed by arraycopy into it. Reviewed-by: twisti
author kvn
date Mon, 26 Sep 2011 10:24:05 -0700
parents 11a4af030e4b
children 670a74b863fc
comparison
equal deleted inserted replaced
3960:f08d439fab8c 3961:a92cdbac8b9e
2845 // will be considered for capture by an InitializeNode. This puts a 2845 // will be considered for capture by an InitializeNode. This puts a
2846 // reasonable limit on the complexity of optimized initializations. 2846 // reasonable limit on the complexity of optimized initializations.
2847 2847
2848 //---------------------------InitializeNode------------------------------------ 2848 //---------------------------InitializeNode------------------------------------
2849 InitializeNode::InitializeNode(Compile* C, int adr_type, Node* rawoop) 2849 InitializeNode::InitializeNode(Compile* C, int adr_type, Node* rawoop)
2850 : _is_complete(false), 2850 : _is_complete(Incomplete),
2851 MemBarNode(C, adr_type, rawoop) 2851 MemBarNode(C, adr_type, rawoop)
2852 { 2852 {
2853 init_class_id(Class_Initialize); 2853 init_class_id(Class_Initialize);
2854 2854
2855 assert(adr_type == Compile::AliasIdxRaw, "only valid atp"); 2855 assert(adr_type == Compile::AliasIdxRaw, "only valid atp");
2883 return (req() > RawStores); 2883 return (req() > RawStores);
2884 } 2884 }
2885 2885
2886 void InitializeNode::set_complete(PhaseGVN* phase) { 2886 void InitializeNode::set_complete(PhaseGVN* phase) {
2887 assert(!is_complete(), "caller responsibility"); 2887 assert(!is_complete(), "caller responsibility");
2888 _is_complete = true; 2888 _is_complete = Complete;
2889 2889
2890 // After this node is complete, it contains a bunch of 2890 // After this node is complete, it contains a bunch of
2891 // raw-memory initializations. There is no need for 2891 // raw-memory initializations. There is no need for
2892 // it to have anything to do with non-raw memory effects. 2892 // it to have anything to do with non-raw memory effects.
2893 // Therefore, tell all non-raw users to re-optimize themselves, 2893 // Therefore, tell all non-raw users to re-optimize themselves,