Mercurial > hg > graal-compiler
comparison src/share/vm/opto/parse.hpp @ 10278:6f3fd5150b67
6934604: enable parts of EliminateAutoBox by default
Summary: Resurrected autobox elimination code and enabled part of it by default.
Reviewed-by: roland, twisti
author | kvn |
---|---|
date | Wed, 08 May 2013 15:08:01 -0700 |
parents | 133bf557ef77 |
children | edb5ab0f3fe5 |
comparison
equal
deleted
inserted
replaced
10277:aabf54ccedb1 | 10278:6f3fd5150b67 |
---|---|
328 | 328 |
329 GraphKit _exits; // Record all normal returns and throws here. | 329 GraphKit _exits; // Record all normal returns and throws here. |
330 bool _wrote_final; // Did we write a final field? | 330 bool _wrote_final; // Did we write a final field? |
331 bool _count_invocations; // update and test invocation counter | 331 bool _count_invocations; // update and test invocation counter |
332 bool _method_data_update; // update method data oop | 332 bool _method_data_update; // update method data oop |
333 Node* _alloc_with_final; // An allocation node with final field | |
333 | 334 |
334 // Variables which track Java semantics during bytecode parsing: | 335 // Variables which track Java semantics during bytecode parsing: |
335 | 336 |
336 Block* _block; // block currently getting parsed | 337 Block* _block; // block currently getting parsed |
337 ciBytecodeStream _iter; // stream of this method's bytecodes | 338 ciBytecodeStream _iter; // stream of this method's bytecodes |
368 GraphKit& exits() { return _exits; } | 369 GraphKit& exits() { return _exits; } |
369 bool wrote_final() const { return _wrote_final; } | 370 bool wrote_final() const { return _wrote_final; } |
370 void set_wrote_final(bool z) { _wrote_final = z; } | 371 void set_wrote_final(bool z) { _wrote_final = z; } |
371 bool count_invocations() const { return _count_invocations; } | 372 bool count_invocations() const { return _count_invocations; } |
372 bool method_data_update() const { return _method_data_update; } | 373 bool method_data_update() const { return _method_data_update; } |
374 Node* alloc_with_final() const { return _alloc_with_final; } | |
375 void set_alloc_with_final(Node* n) { | |
376 assert((_alloc_with_final == NULL) || (_alloc_with_final == n), "different init objects?"); | |
377 _alloc_with_final = n; | |
378 } | |
373 | 379 |
374 Block* block() const { return _block; } | 380 Block* block() const { return _block; } |
375 ciBytecodeStream& iter() { return _iter; } | 381 ciBytecodeStream& iter() { return _iter; } |
376 Bytecodes::Code bc() const { return _iter.cur_bc(); } | 382 Bytecodes::Code bc() const { return _iter.cur_bc(); } |
377 | 383 |
510 void do_get_xxx(Node* obj, ciField* field, bool is_field); | 516 void do_get_xxx(Node* obj, ciField* field, bool is_field); |
511 void do_put_xxx(Node* obj, ciField* field, bool is_field); | 517 void do_put_xxx(Node* obj, ciField* field, bool is_field); |
512 | 518 |
513 // loading from a constant field or the constant pool | 519 // loading from a constant field or the constant pool |
514 // returns false if push failed (non-perm field constants only, not ldcs) | 520 // returns false if push failed (non-perm field constants only, not ldcs) |
515 bool push_constant(ciConstant con, bool require_constant = false); | 521 bool push_constant(ciConstant con, bool require_constant = false, bool is_autobox_cache = false); |
516 | 522 |
517 // implementation of object creation bytecodes | 523 // implementation of object creation bytecodes |
518 void emit_guard_for_new(ciInstanceKlass* klass); | 524 void emit_guard_for_new(ciInstanceKlass* klass); |
519 void do_new(); | 525 void do_new(); |
520 void do_newarray(BasicType elemtype); | 526 void do_newarray(BasicType elemtype); |