[PATCH] D51032: [ARM] Avoid injecting constant islands in movw+movt pairs on Windows

Martin Storsjö via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 21 14:42:45 PDT 2018


mstorsjo added a comment.

In https://reviews.llvm.org/D51032#1207962, @efriedma wrote:

> Can we change the way we model these movw+movt pairs so it isn't so fragile?  If these pairs are illegal to split on Windows, I'd prefer to model it as a pseudo-instruction until the asmprinter.  Otherwise you're going to be fighting obscure issues in every pass that runs after ARMExpandPseudo.


That's probably the best way forward, although I do feel that's probably a rather large change - I don't know off-hand where to start with that.

In https://reviews.llvm.org/D51032#1207466, @peter.smith wrote:

> The code changes look good to me, although someone more familiar with the ConstantIslands pass may have a better idea of how to prevent splitting. The only other thought about the test is to make a MIR test and just run the constant-islands pass. For example see the test constant-islands-cfg.mir. I suspect that it will be hard to write the test but it should be a lot less fragile.


Actually I think I can generate that test from the one I have now, with `llc -stop-before=arm-cp-islands`. I'll try to get the test updated with that. Since nobody seems to have run into this before, I'm pondering if this fix could be acceptable until a proper restructuring with a pseudoinstruction can be done.


Repository:
  rL LLVM

https://reviews.llvm.org/D51032





More information about the llvm-commits mailing list