[PATCH] D79635: [RISCV] Split the pseudo instruction splitting pass

Luís Marques via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 1 09:10:24 PDT 2020


luismarques added a comment.

In D79635#2125617 <https://reviews.llvm.org/D79635#2125617>, @rogfer01 wrote:

> I'm not sure why this pass does not take into account such operands (or one of the analyses it uses to do the transformation), but expanding those things later seems to hide/prevent the issue. Perhaps the new basic block created in `RISCVExpandPseudo::expandAuipcInstPair` needs to be marked as `setHasAddressTaken` or something (but I have a vague recollection that this had some other consequences, I might be wrong here).


Thanks for the nice analysis Roger. I had also traced the compilation issue to the `%bb.-1` and in discussion with Sam he had also referred to that API you mention. Sam was saying that (as far as he could remember from the top of his head) that we have labels that point to places that might not be the start of an IR BB, so they didn't always have LLVM block names, and this had been previously been addressed by one of Lewis' patches, adding checks like `!MBB->hasAddressTaken() && !MBB->hasLabelMustBeEmitted()`, but that these checks might not have been added in all places where they were needed, or something along those lines. I'll will delve into this when possible (but if someone wants to have a shot at this let me know).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D79635





More information about the llvm-commits mailing list