[PATCH] D83923: [MachineOutliner][AArch64] WA for cases where AArch64 Outliner needs to do more than one stack fixup.

Puyan Lotfi via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 10 10:49:35 PDT 2020


plotfi added inline comments.


================
Comment at: llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:6235
+      // pruning the cases where the candidate has calls while also having no
+      // available LR and having no available general purpise registers to copy
+      // LR to (ie one extra stack save/restore).
----------------
paquette wrote:
> typo: purpise
Oops, -> :set spell


================
Comment at: llvm/test/CodeGen/AArch64/machine-outliner-2fixup-blr-terminator.mir:7
+--- |
+  @var_i32 = global i32 42
+  define void @f1() minsize noinline noredzone "frame-pointer"="all" "branch-target-enforcement" { ret void }
----------------
paquette wrote:
> I don't think you need this, since it isn't referenced at all in the MIR.
Ah yeah, you are right. I had a regular BL before that was using it, but not now. 


================
Comment at: llvm/test/CodeGen/AArch64/machine-outliner-2fixup-blr-terminator.mir:8
+  @var_i32 = global i32 42
+  define void @f1() minsize noinline noredzone "frame-pointer"="all" "branch-target-enforcement" { ret void }
+  define void @f2() minsize noinline noredzone "frame-pointer"="all" "branch-target-enforcement" { ret void }
----------------
paquette wrote:
> Very minor nit: it's probably easier to write
> 
> `attributes #0 = {...}`
> 
> This really doesn't matter so you don't have to change it, but in the future, it's probably a little cleaner for when you have multiple attributes.
> 
> Also do you need `"frame-pointer"="all"` and `noinline` here? At the very least, I'd expect that `noinline` shouldn't do anything this late in the pass pipeline.
Yeah, I was using clang -E to generate these earlier and the # was being problematic. 


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D83923



More information about the llvm-commits mailing list