Displaying 2 results from an estimated 2 matches for "d31539".
Did you mean:
d31239
2017 Mar 31
2
Dereferenceable load semantics & LICM
Hi all,
I have a question about dereferenceable metadata on load instruction. I
have a patch (https://reviews.llvm.org/D31539) for LICM that hoists loads
with !invariant.group.
The motivation example is devirtualization:
struct A {
virtual void foo();
};
int bar();
void indirect(A &a) {
while(bar())
a.foo();
}
With -O2 -fstrict-vtable-pointers we get:
define void @hoist(%struct.A* dereferenceable(8)) {...
2017 Mar 31
2
Dereferenceable load semantics & LICM
...yingwithpointers.com
> wrote:
> Hi Piotr,
>
> On March 31, 2017 at 9:07:42 AM, Piotr Padlewski
> (piotr.padlewski at gmail.com) wrote:
> > Hi all,
> > I have a question about dereferenceable metadata on load instruction. I
> > have a patch (https://reviews.llvm.org/D31539) for LICM that hoists
> loads
> > with !invariant.group.
> > The motivation example is devirtualization:
> > ...
> > [snip]
> >
> > On the other hand, after performing my LICM of !invariant.group load, GVN
> > hoists the second load and I am not sure why...