[PATCH] D20653: LICM: Do not sink or hoist assume intrinsic calls.
Sanjoy Das via llvm-commits
llvm-commits at lists.llvm.org
Wed May 25 17:29:28 PDT 2016
sanjoy added a comment.
In http://reviews.llvm.org/D20653#440289, @hfinkel wrote:
> In http://reviews.llvm.org/D20653#440288, @sanjoy wrote:
>
> > In http://reviews.llvm.org/D20653#440282, @hfinkel wrote:
> >
> > > In http://reviews.llvm.org/D20653#440276, @sanjoy wrote:
> > >
> > > > Never mind, I was mistaken; you can't hoist out a readnone nounwind function out of control flow anyway, and the same logic should hold for assumes.
> > >
> > >
> > > Ah. Because of potential UB?
> >
> >
> > Yes, an implementation of assume could be `void assume(bool cond) { if (!cond) 1/0; }`.
>
>
> Yes, but don't we normally assume that this UB concern does not apply to intrinsics?
I wasn't aware of such a restriction -- can you spell it out explicitly? We do have intrinsics like patchpoint and statepoint that can execute arbitrary code, so stating that intrinsics have no UB at all is probably not okay.
http://reviews.llvm.org/D20653
More information about the llvm-commits
mailing list