[all-commits] [llvm/llvm-project] 4f1589: [BOLT] Add pass to fix ambiguous memory references
Rafael Auler via All-commits
all-commits at lists.llvm.org
Wed Oct 12 18:40:26 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 4f158995b9cddae392bfb5989af8c83101ae0789
https://github.com/llvm/llvm-project/commit/4f158995b9cddae392bfb5989af8c83101ae0789
Author: Rafael Auler <rafaelauler at fb.com>
Date: 2022-10-12 (Wed, 12 Oct 2022)
Changed paths:
A bolt/include/bolt/Passes/ValidateMemRefs.h
M bolt/lib/Core/BinaryEmitter.cpp
M bolt/lib/Passes/CMakeLists.txt
A bolt/lib/Passes/ValidateMemRefs.cpp
M bolt/lib/Rewrite/BinaryPassManager.cpp
A bolt/test/runtime/X86/jt-symbol-disambiguation-2.s
A bolt/test/runtime/X86/jt-symbol-disambiguation.s
Log Message:
-----------
[BOLT] Add pass to fix ambiguous memory references
This adds a round of checks to memory references, looking for
incorrect references to jump table objects. Fix them by replacing the
jump table reference with another object reference + offset.
This solves bugs related to regular data references in code
accidentally being bound to a jump table, and this reference being
updated to a new (incorrect) location because we moved this jump
table.
Fixes #55004
Reviewed By: #bolt, maksfb
Differential Revision: https://reviews.llvm.org/D134098
More information about the All-commits
mailing list