[llvm-dev] Atomic LL/SC loops in llvm
Matthias Braun via llvm-dev
llvm-dev at lists.llvm.org
Tue May 10 13:50:17 PDT 2016
> On May 10, 2016, at 1:02 PM, Tim Northover via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> Hi James,
> Thanks for the very detailed summary, there's some really interesting
> details in there that I wasn't aware of.
> On 10 May 2016 at 12:22, James Knight <jyknight at google.com> wrote:
>> Anyone got any other ideas for how to do this, without needing to introduce
>> a bunch of per-target code?
> My only vaguely plausible idea to actually fix it so far was some kind
> of do-not-touch region for the register allocator to avoid spills
> (and, in light of your explanations, other things). Maybe some kind of
> MBB level no-spill/volatile flag would even be enough.
One possibility would be to present the sequence as an instruction bundle. That will avoid any instructions/spills/reloads getting moved in the middle of it. Which on the other hand doesn't sound that different from just expand a pseudo instruction...
More information about the llvm-dev