Displaying 1 result from an estimated 1 matches for "dereferencealb".
Did you mean:
dereferencealbe
2017 Mar 31
2
Dereferenceable load semantics & LICM
...M because it can't prove that %vtable
is dereferenceable.
But if I add dereferenceable metadata on vtable load like
%vtable = load void (%struct.A*)**, void (%struct.A*)*** %b, align 8,
!invariant.group !0, !dereferenceable !1
!1 = !{i64 8}
Then it doesn't help either, because LICM drops !dereferencealbe metadata
when hoisting (and adding it would be invalid, because we don't know if it
is also dereferenceable in hoisted block).
On the other hand, after performing my LICM of !invariant.group load, GVN
hoists the second load and I am not sure why it is legal then.
Any ideas?
Piotr
----------...