[llvm-dev] Selection DAG chain question

Hendrik Greving via llvm-dev llvm-dev at lists.llvm.org
Thu Jul 16 11:47:25 PDT 2020


> Chain doesn't guarantee that operations on parallel chains don't get
interleaved

This would be a sequential chain...

> This is the case for all operations expanded as library calls

I think their originating node already has a chain (i.e. mem operand or
side effect in llvm-ir). My case is a arithmetic node without ordering
constraints (divrem) getting lowered into sth that _does_ have ordering
constraints. I first thought it is very straight forward, turns out it is
not a common case. My current WA will be to code prepare into intrinsics
with side-effects. I was wondering if that's really necessary..

Thanks for the input

On Thu, Jul 16, 2020 at 11:21 AM Matt Arsenault <arsenm2 at gmail.com> wrote:

>
>
> On Jul 16, 2020, at 14:10, Hendrik Greving via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
> I scanned other architectures, haven't found an example where somebody
> creates a chain out of thin air. Do you know any?
>
>
>
> This is the case for all operations expanded as library calls. The call
> sequence involves a chain. One of the AMDGPU fdiv expansions also
> introduces a side effecting mode switch with a chain
>
> -Matt
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200716/8fb7fe99/attachment.html>


More information about the llvm-dev mailing list