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
Time | Test | |
---|---|---|
60,170 ms | x64 debian > Clang.Driver::arm-cortex-cpus-1.c Script:
--
: 'RUN: at line 7'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/clang -target arm -mcpu=generic -### -c /var/lib/buildkite-agent/builds/llvm-project/clang/test/Driver/arm-cortex-cpus-1.c 2>&1 | /var/lib/buildkite-agent/builds/llvm-project/build/bin/FileCheck -check-prefix=CHECK-GENERIC /var/lib/buildkite-agent/builds/llvm-project/clang/test/Driver/arm-cortex-cpus-1.c
| |
60,370 ms | x64 debian > Clang.Driver::arm-cortex-cpus-2.c Script:
--
: 'RUN: at line 8'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/clang -target armv8a-linux-eabi -mcpu=cortex-a53+fp16 -### -c /var/lib/buildkite-agent/builds/llvm-project/clang/test/Driver/arm-cortex-cpus-2.c 2>&1 | /var/lib/buildkite-agent/builds/llvm-project/build/bin/FileCheck --check-prefix CHECK-CORTEX-A53-FP16 /var/lib/buildkite-agent/builds/llvm-project/clang/test/Driver/arm-cortex-cpus-2.c
| |
60,130 ms | x64 debian > Clang.Driver::crash-report.cpp Script:
--
: 'RUN: at line 1'; rm -rf /var/lib/buildkite-agent/builds/llvm-project/build/tools/clang/test/Driver/Output/crash-report.cpp.tmp
| |
60,250 ms | x64 debian > Clang.Driver::emit-reproducer.c Script:
--
: 'RUN: at line 1'; rm -rf /var/lib/buildkite-agent/builds/llvm-project/build/tools/clang/test/Driver/Output/emit-reproducer.c.tmp && mkdir /var/lib/buildkite-agent/builds/llvm-project/build/tools/clang/test/Driver/Output/emit-reproducer.c.tmp
| |
60,430 ms | x64 debian > Clang.Driver::fsanitize.c Script:
--
: 'RUN: at line 1'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/clang --target=x86_64-linux-gnu -fsanitize=undefined -fsanitize-trap=undefined /var/lib/buildkite-agent/builds/llvm-project/clang/test/Driver/fsanitize.c -### 2>&1 | /var/lib/buildkite-agent/builds/llvm-project/build/bin/FileCheck /var/lib/buildkite-agent/builds/llvm-project/clang/test/Driver/fsanitize.c --check-prefix=CHECK-UNDEFINED-TRAP
| |
View Full Test Results (7 Failed) |
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.