comparison src/share/vm/opto/graphKit.hpp @ 342:37f87013dfd8

6711316: Open source the Garbage-First garbage collector Summary: First mercurial integration of the code for the Garbage-First garbage collector. Reviewed-by: apetrusenko, iveresov, jmasa, sgoldman, tonyp, ysr
author ysr
date Thu, 05 Jun 2008 15:57:56 -0700
parents a61af66fc99e
children 1b9fc6e3171b
comparison
equal deleted inserted replaced
189:0b27f3512f9e 342:37f87013dfd8
22 * 22 *
23 */ 23 */
24 24
25 class FastLockNode; 25 class FastLockNode;
26 class FastUnlockNode; 26 class FastUnlockNode;
27 class IdealKit;
27 class Parse; 28 class Parse;
28 class RootNode; 29 class RootNode;
29 30
30 //----------------------------------------------------------------------------- 31 //-----------------------------------------------------------------------------
31 //----------------------------GraphKit----------------------------------------- 32 //----------------------------GraphKit-----------------------------------------
579 static bool use_ReduceInitialCardMarks() { 580 static bool use_ReduceInitialCardMarks() {
580 return (ReduceInitialCardMarks 581 return (ReduceInitialCardMarks
581 && Universe::heap()->can_elide_tlab_store_barriers()); 582 && Universe::heap()->can_elide_tlab_store_barriers());
582 } 583 }
583 584
585 // G1 pre/post barriers
586 void g1_write_barrier_pre(Node* obj,
587 Node* adr,
588 uint alias_idx,
589 Node* val,
590 const Type* val_type,
591 BasicType bt);
592
593 void g1_write_barrier_post(Node* store,
594 Node* obj,
595 Node* adr,
596 uint alias_idx,
597 Node* val,
598 BasicType bt,
599 bool use_precise);
600 // Helper function for g1
601 private:
602 void g1_mark_card(IdealKit* ideal, Node* card_adr, Node* store, Node* index, Node* index_adr,
603 Node* buffer, const TypeFunc* tf);
604
605 public:
584 // Helper function to round double arguments before a call 606 // Helper function to round double arguments before a call
585 void round_double_arguments(ciMethod* dest_method); 607 void round_double_arguments(ciMethod* dest_method);
586 void round_double_result(ciMethod* dest_method); 608 void round_double_result(ciMethod* dest_method);
587 609
588 // rounding for strict float precision conformance 610 // rounding for strict float precision conformance