[PATCH] D69097: [AArch64][MachineOutliner] Return address signing for outlined functions

David Tellenbach via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 22 02:49:05 PDT 2019


tellenbach marked an inline comment as done.
tellenbach added a comment.

In D69097#1716855 <https://reviews.llvm.org/D69097#1716855>, @paquette wrote:

> I think this needs some more tests. In particular, I'd like to see some test cases that show what happens when
>
> - We tail call
> - We save LR to the stack
> - We don't save LR to the stack (but emit a `bl`)
> - We get an outlined thunk


I agree, thanks.

> Also another thing to consider here is whether or not we should ever outline, say, PAC/AUT instructions. It might be good to mark those as illegal to outline. That will also need a test. I think that writing a MIR test should make this fairly easy to check for.

I think this should never happen anyways: After/before any PAC/AUT instruction a cfi instruction is inserted which is a position (`isPosition()` returns `true`). Positions don't get outlined on AArch64 (`AArch64InstrInfo.cpp:5565`) and the one instruction for the actual signing that remains, is too small to get outlined.

However, making this explicit is probably the better way to do it.

> edit: I had a couple other concerns there, but they were actually already addressed in the patch. :) I think most of my concerns here are to have explicit test cases using MIR.

Thanks for your comments!


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D69097





More information about the llvm-commits mailing list