This patch generalizes the logic for patchable-function-entry=n NOP sleds, meaning that this attribute now has consistent behavior across all architectures that support XRay. The differences in codegen was noticed while porting a separate test-case over to ARM32.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
The increased instruction count for x86 is a slight performance regression. Can it be fixed?
Comment Actions
It's not a bug so I'd use Close. Note: without runtime support, the compiler codegen change isn't really useful
Comment Actions
Sure, I'll adjust that for the next revision. The main idea here was consistency across architectures; I came across this while moving a test-case over to ARM32 and noticing a difference in the behavior.
Comment Actions
Changed some wording in the review, used a virtual function instead of hardcoded emitNops call so that X86 (and potentially other targets) can use their own implementations if necessary.
Comment Actions
Sorry for the delay. This looks good, but it needs rebase:)
llvm/lib/Target/X86/X86MCInstLower.cpp | ||
---|---|---|
2752 | "No newline at end of file" |
"No newline at end of file"