[llvm] 0ed1747 - [NFC] [hwasan] Split argument logic into functions.
Florian Mayer via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 15 02:45:54 PDT 2021
Author: Florian Mayer
Date: 2021-07-15T10:45:43+01:00
New Revision: 0ed1747a92d0f4294bc1ab22627b4c9bab42e27a
URL: https://github.com/llvm/llvm-project/commit/0ed1747a92d0f4294bc1ab22627b4c9bab42e27a
DIFF: https://github.com/llvm/llvm-project/commit/0ed1747a92d0f4294bc1ab22627b4c9bab42e27a.diff
LOG: [NFC] [hwasan] Split argument logic into functions.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D105971
Added:
Modified:
llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
index 785ef9bc966d..f9c0c86ffe35 100644
--- a/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
+++ b/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
@@ -192,6 +192,24 @@ static cl::opt<bool> ClUsePageAliases("hwasan-experimental-use-page-aliases",
namespace {
+bool shouldUsePageAliases(const Triple &TargetTriple) {
+ return ClUsePageAliases && TargetTriple.getArch() == Triple::x86_64;
+// No one should use the option directly.
+#pragma GCC poison ClUsePageAliases
+}
+
+bool shouldInstrumentStack(const Triple &TargetTriple) {
+ return shouldUsePageAliases(TargetTriple) ? false : ClInstrumentStack;
+// No one should use the option directly.
+#pragma GCC poison ClInstrumentStack
+}
+
+bool shouldInstrumentWithCalls(const Triple &TargetTriple) {
+ return ClInstrumentWithCalls || TargetTriple.getArch() == Triple::x86_64;
+// No one should use the option directly.
+#pragma GCC poison ClInstrumentWithCalls
+}
+
/// An instrumentation pass implementing detection of addressability bugs
/// using tagged pointers.
class HWAddressSanitizer {
@@ -503,9 +521,9 @@ void HWAddressSanitizer::initializeModule() {
// - Intel LAM (default)
// - pointer aliasing (heap only)
bool IsX86_64 = TargetTriple.getArch() == Triple::x86_64;
- UsePageAliases = ClUsePageAliases && IsX86_64;
- InstrumentWithCalls = IsX86_64 ? true : ClInstrumentWithCalls;
- InstrumentStack = UsePageAliases ? false : ClInstrumentStack;
+ UsePageAliases = shouldUsePageAliases(TargetTriple);
+ InstrumentWithCalls = shouldInstrumentWithCalls(TargetTriple);
+ InstrumentStack = shouldInstrumentStack(TargetTriple);
PointerTagShift = IsX86_64 ? 57 : 56;
TagMaskByte = IsX86_64 ? 0x3F : 0xFF;
More information about the llvm-commits
mailing list