# HG changeset patch # User never # Date 1233862930 28800 # Node ID 82a980778b9273bc782fd4235da25bd4ece96e68 # Parent a268411445d9995f7438b2574694fabf813a4ab2 6793828: G1: invariant: queues are empty when activated Reviewed-by: jrose, kvn diff -r a268411445d9 -r 82a980778b92 src/share/vm/opto/graphKit.cpp --- a/src/share/vm/opto/graphKit.cpp Wed Feb 04 15:42:52 2009 -0800 +++ b/src/share/vm/opto/graphKit.cpp Thu Feb 05 11:42:10 2009 -0800 @@ -3233,12 +3233,11 @@ // Now some of the values - Node* marking = __ load(no_ctrl, marking_adr, TypeInt::INT, active_type, Compile::AliasIdxRaw); - Node* index = __ load(no_ctrl, index_adr, TypeInt::INT, T_INT, Compile::AliasIdxRaw); - Node* buffer = __ load(no_ctrl, buffer_adr, TypeRawPtr::NOTNULL, T_ADDRESS, Compile::AliasIdxRaw); + Node* marking = __ load(__ ctrl(), marking_adr, TypeInt::INT, active_type, Compile::AliasIdxRaw); // if (!marking) __ if_then(marking, BoolTest::ne, zero); { + Node* index = __ load(__ ctrl(), index_adr, TypeInt::INT, T_INT, Compile::AliasIdxRaw); const Type* t1 = adr->bottom_type(); const Type* t2 = val->bottom_type(); @@ -3246,6 +3245,7 @@ Node* orig = __ load(no_ctrl, adr, val_type, bt, alias_idx); // if (orig != NULL) __ if_then(orig, BoolTest::ne, null()); { + Node* buffer = __ load(__ ctrl(), buffer_adr, TypeRawPtr::NOTNULL, T_ADDRESS, Compile::AliasIdxRaw); // load original value // alias_idx correct?? diff -r a268411445d9 -r 82a980778b92 src/share/vm/opto/memnode.cpp --- a/src/share/vm/opto/memnode.cpp Wed Feb 04 15:42:52 2009 -0800 +++ b/src/share/vm/opto/memnode.cpp Thu Feb 05 11:42:10 2009 -0800 @@ -1303,6 +1303,7 @@ Node* base = AddPNode::Ideal_base_and_offset(address, phase, ignore); if (base != NULL && phase->type(base)->higher_equal(TypePtr::NOTNULL) + && phase->C->get_alias_index(phase->type(address)->is_ptr()) != Compile::AliasIdxRaw && all_controls_dominate(base, phase->C->start())) { // A method-invariant, non-null address (constant or 'this' argument). set_req(MemNode::Control, NULL);