comparison src/share/vm/c1/c1_IR.hpp @ 4966:701a83c86f28

7120481: storeStore barrier in constructor with final field Summary: Issue storestore barrier before constructor return if the constructor write final field. Reviewed-by: dholmes, jrose, roland, coleenp Contributed-by: Jiangli Zhou <jiangli.zhou@oracle.com>
author jiangli
date Tue, 21 Feb 2012 13:14:55 -0500
parents f95d63e2154a
children 33df1aeaebbf b9a9ed0f8eeb
comparison
equal deleted inserted replaced
4965:d79f8393df2b 4966:701a83c86f28
147 147
148 // graph 148 // graph
149 XHandlers* _xhandlers; // the exception handlers 149 XHandlers* _xhandlers; // the exception handlers
150 int _number_of_locks; // the number of monitor lock slots needed 150 int _number_of_locks; // the number of monitor lock slots needed
151 bool _monitor_pairing_ok; // the monitor pairing info 151 bool _monitor_pairing_ok; // the monitor pairing info
152 bool _wrote_final; // has written final field
152 BlockBegin* _start; // the start block, successsors are method entries 153 BlockBegin* _start; // the start block, successsors are method entries
153 154
154 BitMap _requires_phi_function; // bit is set if phi functions at loop headers are necessary for a local variable 155 BitMap _requires_phi_function; // bit is set if phi functions at loop headers are necessary for a local variable
155 156
156 // helper functions 157 // helper functions
179 XHandlers* xhandlers() const { return _xhandlers; } 180 XHandlers* xhandlers() const { return _xhandlers; }
180 int number_of_locks() const { return _number_of_locks; } 181 int number_of_locks() const { return _number_of_locks; }
181 void set_min_number_of_locks(int n) { if (n > _number_of_locks) _number_of_locks = n; } 182 void set_min_number_of_locks(int n) { if (n > _number_of_locks) _number_of_locks = n; }
182 bool monitor_pairing_ok() const { return _monitor_pairing_ok; } 183 bool monitor_pairing_ok() const { return _monitor_pairing_ok; }
183 BlockBegin* start() const { return _start; } 184 BlockBegin* start() const { return _start; }
185 void set_wrote_final() { _wrote_final = true; }
186 bool wrote_final () const { return _wrote_final; }
184 }; 187 };
185 188
186 189
187 // 190 //
188 // IRScopeDebugInfo records the debug information for a particular IRScope 191 // IRScopeDebugInfo records the debug information for a particular IRScope