[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