LRB and 32-bit compressed oops

Aleksey Shipilev shade at redhat.com
Mon Mar 25 20:17:21 UTC 2019


On 3/25/19 8:19 PM, Roman Kennke wrote:
> For some reason I don't seem to be getting your asm output. But can you
> try the following patch real quick?
> 
> diff -r 6277fcfd1269
> src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp
> --- a/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp	Mon Mar
> 25 19:57:08 2019 +0100
> +++ b/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp	Mon Mar
> 25 20:18:53 2019 +0100
> @@ -1508,7 +1508,7 @@
>        IfNode* iff = unc_ctrl->in(0)->as_If();
>        phase->igvn().replace_input_of(iff, 1, phase->igvn().intcon(1));
>      }
> -    Node* addr = new AddPNode(new_val, uncasted_val,
> phase->igvn().MakeConX(ShenandoahBrooksPointer::byte_offset()));
> +    Node* addr = new AddPNode(new_val, new_val,
> phase->igvn().MakeConX(ShenandoahBrooksPointer::byte_offset()));
>      phase->register_new_node(addr, ctrl);
>      assert(val->bottom_type()->isa_oopptr(), "what else?");
>      const TypePtr* obj_type =  val->bottom_type()->is_oopptr();

That does not work: the generated code is the same.

-Aleksey



More information about the shenandoah-dev mailing list