[PATCH] D75098: Add TCOPY, a terminator form of the COPY instr

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 12 19:56:59 PDT 2020


arsenm added a comment.

In D75098#2030777 <https://reviews.llvm.org/D75098#2030777>, @jyknight wrote:

> I think the better fix here is to make INLINEASM_BR _not_ be a terminator -- just like the CALL involved in an invoke is not.
>
> That change turned out to be a bit complicated, and while I had started taking a stab at that a couple months ago, I got distracted by many other things going on...However, I've now dusted off that experiment and got it into a useful state, and will send out a review for this tomorrow, so we can consider both the options.




In D75098#2032980 <https://reviews.llvm.org/D75098#2032980>, @void wrote:

> In D75098#2030777 <https://reviews.llvm.org/D75098#2030777>, @jyknight wrote:
>
> > I think the better fix here is to make INLINEASM_BR _not_ be a terminator -- just like the CALL involved in an invoke is not.
> >
> > That change turned out to be a bit complicated, and while I had started taking a stab at that a couple months ago, I got distracted by many other things going on...However, I've now dusted off that experiment and got it into a useful state, and will send out a review for this tomorrow, so we can consider both the options.
>
>
> I've thought about the same thing. I'm right now running up against an issue that Nick pointed out. Having a non-branch as a terminator works until the register allocator wants to spill. Then it could insert a copy where the TCOPY is, which messes up `analyzeBranch`. I'm interested to see your patch.


Regardless of what happens to INLINEASM_BR, I think we still need a terminator copy


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75098/new/

https://reviews.llvm.org/D75098





More information about the llvm-commits mailing list