WANG Xuerui
db5dfec9d4
[Clang][LoongArch] Implement patchable function entry
...
Similar to D98610 for RISCV.
This is going to be required by the upcoming Linux/LoongArch
[[ https://git.kernel.org/linus/4733f09d88074 | support for dynamic ftrace ]].
Reviewed By: SixWeining, MaskRay
Differential Revision: https://reviews.llvm.org/D141785
2023-03-16 09:33:58 +08:00
Fangrui Song
6ab8927931
[RISCV] Support clang -fpatchable-function-entry && GNU function attribute 'patchable_function_entry'
...
Similar to D72215 (AArch64) and D72220 (x86).
```
% clang -target riscv32 -march=rv64g -c -fpatchable-function-entry=2 a.c && llvm-objdump -dr a.o
...
0000000000000000 <main>:
0: 13 00 00 00 nop
4: 13 00 00 00 nop
% clang -target riscv32 -march=rv64gc -c -fpatchable-function-entry=2 a.c && llvm-objdump -dr a.o
...
00000002 <main>:
2: 01 00 nop
4: 01 00 nop
```
Recently the mainline kernel started to use -fpatchable-function-entry=8 for riscv (https://git.kernel.org/linus/afc76b8b80112189b6f11e67e19cf58301944814 ).
Differential Revision: https://reviews.llvm.org/D98610
2021-03-16 10:02:35 -07:00
Fangrui Song
57a1c1be53
[Sema] Allow function attribute patchable_function_entry on aarch64_be
...
Reviewed By: nickdesaulniers
Differential Revision: https://reviews.llvm.org/D79495
2020-05-06 10:10:25 -07:00
Fangrui Song
a44c434b68
Support function attribute patchable_function_entry
...
This feature is generic. Make it applicable for AArch64 and X86 because
the backend has only implemented NOP insertion for AArch64 and X86.
Reviewed By: nickdesaulniers, aaron.ballman
Differential Revision: https://reviews.llvm.org/D72221
2020-01-10 09:57:34 -08:00