Mercurial > hg > truffle
comparison src/share/vm/opto/parse.hpp @ 14663:3edd4a71588b
8031818: Experimental VM flag for enforcing safe object construction
Summary: -XX:+AlwaysSafeConstructors to unconditionally emit the trailing constructor barrier.
Reviewed-by: kvn, roland
author | shade |
---|---|
date | Mon, 03 Mar 2014 15:31:27 +0400 |
parents | abec000618bf |
children | 92aa6797d639 |
comparison
equal
deleted
inserted
replaced
14662:3c3953fb3f2a | 14663:3edd4a71588b |
---|---|
336 int _block_count; // Number of elements in _blocks. | 336 int _block_count; // Number of elements in _blocks. |
337 | 337 |
338 GraphKit _exits; // Record all normal returns and throws here. | 338 GraphKit _exits; // Record all normal returns and throws here. |
339 bool _wrote_final; // Did we write a final field? | 339 bool _wrote_final; // Did we write a final field? |
340 bool _wrote_volatile; // Did we write a volatile field? | 340 bool _wrote_volatile; // Did we write a volatile field? |
341 bool _wrote_stable; // Did we write a @Stable field? | |
342 bool _wrote_fields; // Did we write any field? | |
341 bool _count_invocations; // update and test invocation counter | 343 bool _count_invocations; // update and test invocation counter |
342 bool _method_data_update; // update method data oop | 344 bool _method_data_update; // update method data oop |
343 Node* _alloc_with_final; // An allocation node with final field | 345 Node* _alloc_with_final; // An allocation node with final field |
344 | 346 |
345 // Variables which track Java semantics during bytecode parsing: | 347 // Variables which track Java semantics during bytecode parsing: |
381 GraphKit& exits() { return _exits; } | 383 GraphKit& exits() { return _exits; } |
382 bool wrote_final() const { return _wrote_final; } | 384 bool wrote_final() const { return _wrote_final; } |
383 void set_wrote_final(bool z) { _wrote_final = z; } | 385 void set_wrote_final(bool z) { _wrote_final = z; } |
384 bool wrote_volatile() const { return _wrote_volatile; } | 386 bool wrote_volatile() const { return _wrote_volatile; } |
385 void set_wrote_volatile(bool z) { _wrote_volatile = z; } | 387 void set_wrote_volatile(bool z) { _wrote_volatile = z; } |
388 bool wrote_stable() const { return _wrote_stable; } | |
389 void set_wrote_stable(bool z) { _wrote_stable = z; } | |
390 bool wrote_fields() const { return _wrote_fields; } | |
391 void set_wrote_fields(bool z) { _wrote_fields = z; } | |
386 bool count_invocations() const { return _count_invocations; } | 392 bool count_invocations() const { return _count_invocations; } |
387 bool method_data_update() const { return _method_data_update; } | 393 bool method_data_update() const { return _method_data_update; } |
388 Node* alloc_with_final() const { return _alloc_with_final; } | 394 Node* alloc_with_final() const { return _alloc_with_final; } |
389 void set_alloc_with_final(Node* n) { | 395 void set_alloc_with_final(Node* n) { |
390 assert((_alloc_with_final == NULL) || (_alloc_with_final == n), "different init objects?"); | 396 assert((_alloc_with_final == NULL) || (_alloc_with_final == n), "different init objects?"); |