6791132: bad control in autobox split code

Tue, 13 Jan 2009 11:43:20 -0800

author
never
date
Tue, 13 Jan 2009 11:43:20 -0800
changeset 988
041fe019d769
parent 986
6c4cda924d2e
child 989
78144dc3db03

6791132: bad control in autobox split code
Reviewed-by: kvn

src/share/vm/opto/memnode.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/vm/opto/memnode.cpp	Wed Jan 07 11:23:28 2009 -0800
     1.2 +++ b/src/share/vm/opto/memnode.cpp	Tue Jan 13 11:43:20 2009 -0800
     1.3 @@ -1076,13 +1076,14 @@
     1.4        // of the original value.
     1.5        Node* mem_phi = in(Memory);
     1.6        Node* offset = in(Address)->in(AddPNode::Offset);
     1.7 +      Node* region = base->in(0);
     1.8  
     1.9        Node* in1 = clone();
    1.10        Node* in1_addr = in1->in(Address)->clone();
    1.11        in1_addr->set_req(AddPNode::Base, base->in(allocation_index));
    1.12        in1_addr->set_req(AddPNode::Address, base->in(allocation_index));
    1.13        in1_addr->set_req(AddPNode::Offset, offset);
    1.14 -      in1->set_req(0, base->in(allocation_index));
    1.15 +      in1->set_req(0, region->in(allocation_index));
    1.16        in1->set_req(Address, in1_addr);
    1.17        in1->set_req(Memory, mem_phi->in(allocation_index));
    1.18  
    1.19 @@ -1091,7 +1092,7 @@
    1.20        in2_addr->set_req(AddPNode::Base, base->in(load_index));
    1.21        in2_addr->set_req(AddPNode::Address, base->in(load_index));
    1.22        in2_addr->set_req(AddPNode::Offset, offset);
    1.23 -      in2->set_req(0, base->in(load_index));
    1.24 +      in2->set_req(0, region->in(load_index));
    1.25        in2->set_req(Address, in2_addr);
    1.26        in2->set_req(Memory, mem_phi->in(load_index));
    1.27  
    1.28 @@ -1100,7 +1101,7 @@
    1.29        in2_addr = phase->transform(in2_addr);
    1.30        in2 =      phase->transform(in2);
    1.31  
    1.32 -      PhiNode* result = PhiNode::make_blank(base->in(0), this);
    1.33 +      PhiNode* result = PhiNode::make_blank(region, this);
    1.34        result->set_req(allocation_index, in1);
    1.35        result->set_req(load_index, in2);
    1.36        return result;

mercurial