Mercurial > hg > graal-compiler
comparison src/share/vm/c1/c1_IR.hpp @ 8883:b9a918201d47
Merge with hsx25
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Sat, 06 Apr 2013 20:04:06 +0200 |
parents | c5ff08c22458 46f6f063b272 |
children | d8041d695d19 |
comparison
equal
deleted
inserted
replaced
8660:d47b52b0ff68 | 8883:b9a918201d47 |
---|---|
253 IRScope* _scope; | 253 IRScope* _scope; |
254 XHandlers* _exception_handlers; | 254 XHandlers* _exception_handlers; |
255 OopMap* _oop_map; | 255 OopMap* _oop_map; |
256 ValueStack* _stack; // used by deoptimization (contains also monitors | 256 ValueStack* _stack; // used by deoptimization (contains also monitors |
257 bool _is_method_handle_invoke; // true if the associated call site is a MethodHandle call site. | 257 bool _is_method_handle_invoke; // true if the associated call site is a MethodHandle call site. |
258 bool _deoptimize_on_exception; | |
258 | 259 |
259 FrameMap* frame_map() const { return scope()->compilation()->frame_map(); } | 260 FrameMap* frame_map() const { return scope()->compilation()->frame_map(); } |
260 Compilation* compilation() const { return scope()->compilation(); } | 261 Compilation* compilation() const { return scope()->compilation(); } |
261 | 262 |
262 public: | 263 public: |
263 | 264 |
264 // use scope from ValueStack | 265 // use scope from ValueStack |
265 CodeEmitInfo(ValueStack* stack, XHandlers* exception_handlers); | 266 CodeEmitInfo(ValueStack* stack, XHandlers* exception_handlers, bool deoptimize_on_exception = false); |
266 | 267 |
267 // make a copy | 268 // make a copy |
268 CodeEmitInfo(CodeEmitInfo* info, ValueStack* stack = NULL); | 269 CodeEmitInfo(CodeEmitInfo* info, ValueStack* stack = NULL); |
269 | 270 |
270 // accessors | 271 // accessors |
271 OopMap* oop_map() { return _oop_map; } | 272 OopMap* oop_map() { return _oop_map; } |
272 ciMethod* method() const { return _scope->method(); } | 273 ciMethod* method() const { return _scope->method(); } |
273 IRScope* scope() const { return _scope; } | 274 IRScope* scope() const { return _scope; } |
274 XHandlers* exception_handlers() const { return _exception_handlers; } | 275 XHandlers* exception_handlers() const { return _exception_handlers; } |
275 ValueStack* stack() const { return _stack; } | 276 ValueStack* stack() const { return _stack; } |
277 bool deoptimize_on_exception() const { return _deoptimize_on_exception; } | |
276 | 278 |
277 void add_register_oop(LIR_Opr opr); | 279 void add_register_oop(LIR_Opr opr); |
278 void record_debug_info(DebugInformationRecorder* recorder, int pc_offset); | 280 void record_debug_info(DebugInformationRecorder* recorder, int pc_offset); |
279 | 281 |
280 bool is_method_handle_invoke() const { return _is_method_handle_invoke; } | 282 bool is_method_handle_invoke() const { return _is_method_handle_invoke; } |
308 BlockList* code() const { return _code; } | 310 BlockList* code() const { return _code; } |
309 int num_loops() const { return _num_loops; } | 311 int num_loops() const { return _num_loops; } |
310 int max_stack() const { return top_scope()->max_stack(); } // expensive | 312 int max_stack() const { return top_scope()->max_stack(); } // expensive |
311 | 313 |
312 // ir manipulation | 314 // ir manipulation |
313 void optimize(); | 315 void optimize_blocks(); |
316 void eliminate_null_checks(); | |
314 void compute_predecessors(); | 317 void compute_predecessors(); |
315 void split_critical_edges(); | 318 void split_critical_edges(); |
316 void compute_code(); | 319 void compute_code(); |
317 void compute_use_counts(); | 320 void compute_use_counts(); |
318 | 321 |