Page MenuHomePhabricator

[JITLink][ELF/AARCH64] Implement eh frame handling
ClosedPublic

Authored by sunho on Jun 4 2022, 6:11 PM.

Details

Summary

This patch implements eh frame handling by using generic EHFrame passes. I checked that c++ exception handling works correctly with this change. (it doens't work without this change)

Diff Detail

Unit TestsFailed

TimeTest
60,120 msx64 debian > AddressSanitizer-x86_64-linux-dynamic.TestCases::scariness_score_test.cpp
Script: -- : 'RUN: at line 4'; /var/lib/buildkite-agent/builds/llvm-project/build/./bin/clang --driver-mode=g++ -fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -m64 -shared-libasan -O0 /var/lib/buildkite-agent/builds/llvm-project/compiler-rt/test/asan/TestCases/scariness_score_test.cpp -o /var/lib/buildkite-agent/builds/llvm-project/build/projects/compiler-rt/test/asan/X86_64LinuxDynamicConfig/TestCases/Output/scariness_score_test.cpp.tmp
60,100 msx64 debian > AddressSanitizer-x86_64-linux.TestCases::scariness_score_test.cpp
Script: -- : 'RUN: at line 4'; /var/lib/buildkite-agent/builds/llvm-project/build/./bin/clang --driver-mode=g++ -fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -m64 -O0 /var/lib/buildkite-agent/builds/llvm-project/compiler-rt/test/asan/TestCases/scariness_score_test.cpp -o /var/lib/buildkite-agent/builds/llvm-project/build/projects/compiler-rt/test/asan/X86_64LinuxConfig/TestCases/Output/scariness_score_test.cpp.tmp
1,410 msx64 debian > LeakSanitizer-AddressSanitizer-x86_64.TestCases::realloc_too_big.c
Script: -- : 'RUN: at line 1'; /var/lib/buildkite-agent/builds/llvm-project/build/./bin/clang -O0 -m64 -gline-tables-only -fsanitize=address -I/var/lib/buildkite-agent/builds/llvm-project/compiler-rt/test/lsan/../ /var/lib/buildkite-agent/builds/llvm-project/compiler-rt/test/lsan/TestCases/realloc_too_big.c -o /var/lib/buildkite-agent/builds/llvm-project/build/projects/compiler-rt/test/lsan/X86_64AsanConfig/TestCases/Output/realloc_too_big.c.tmp
1,220 msx64 debian > LeakSanitizer-Standalone-x86_64.TestCases::realloc_too_big.c
Script: -- : 'RUN: at line 1'; /var/lib/buildkite-agent/builds/llvm-project/build/./bin/clang -O0 -m64 -gline-tables-only -fsanitize=leak -I/var/lib/buildkite-agent/builds/llvm-project/compiler-rt/test/lsan/../ /var/lib/buildkite-agent/builds/llvm-project/compiler-rt/test/lsan/TestCases/realloc_too_big.c -o /var/lib/buildkite-agent/builds/llvm-project/build/projects/compiler-rt/test/lsan/X86_64LsanConfig/TestCases/Output/realloc_too_big.c.tmp

Event Timeline

sunho created this revision.Jun 4 2022, 6:11 PM
Herald added a project: Restricted Project. · View Herald TranscriptJun 4 2022, 6:11 PM
sunho requested review of this revision.Jun 4 2022, 6:11 PM
Herald added a project: Restricted Project. · View Herald TranscriptJun 4 2022, 6:11 PM
lhames accepted this revision.Jun 9 2022, 3:25 PM

LGTM. Thanks @sunho!

This revision is now accepted and ready to land.Jun 9 2022, 3:25 PM
This revision was landed with ongoing or failed builds.Jun 10 2022, 12:06 PM
This revision was automatically updated to reflect the committed changes.