[PATCH] D85649: [AArch64] PAC/BTI code generation for LLVM generated functions

Momchil Velikov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 12 05:16:18 PDT 2020


chill marked 4 inline comments as done.
chill added a comment.

In D85649#2207922 <https://reviews.llvm.org/D85649#2207922>, @nickdesaulniers wrote:

> 

Is there a test for no module attributes + function level attribute enabling pac/bti that tests that just that function gets the proper handling?

Yes, virtually every PAC/BTI test so far. I also added in the last update tests when module flags are created and when they aren't.



================
Comment at: llvm/lib/Target/AArch64/AArch64InstrInfo.cpp:5764
+  const auto &MFIa = a.getMF()->getInfo<AArch64FunctionInfo>();
+  const auto &MFIb = a.getMF()->getInfo<AArch64FunctionInfo>();
 
----------------
tellenbach wrote:
> Is this a typo?
> 
> 
D'oh, bloody copy/paste. Good catch, thanks!


================
Comment at: llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h:149
+  /// SignWithBKey enables use of the B keyfor PAC-RET, otherwise use A key.
+  bool SignWithBKey;
+
----------------
tellenbach wrote:
> The key type could in fact also be made an enum just like you did for the type of return address signing but no strong opinion here.
If I would be bothered to change it, I'd rather go in the opposite direction, replace the `SignReturnAddress` by two booleans. That'll remove the need for a typedef and make the code less verbose.


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

https://reviews.llvm.org/D85649



More information about the llvm-commits mailing list