From 17c896a4b969e2f77e32f9017a1cee3a081ce5a1 Mon Sep 17 00:00:00 2001 From: Renato Golin Date: Wed, 7 Sep 2016 10:54:42 +0000 Subject: [PATCH] Revert "[EfficiencySanitizer] Adds shadow memory parameters for 40-bit virtual memory address." This reverts commit r280796, as it broke the AArch64 bots for no reason. The tests were passing and we should try to keep them passing, so a proper review should make that happen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@280802 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../Instrumentation/EfficiencySanitizer.cpp | 43 ++++--------------- 1 file changed, 9 insertions(+), 34 deletions(-) diff --git a/lib/Transforms/Instrumentation/EfficiencySanitizer.cpp b/lib/Transforms/Instrumentation/EfficiencySanitizer.cpp index b5a2dd5d7956..fb80f87369f9 100644 --- a/lib/Transforms/Instrumentation/EfficiencySanitizer.cpp +++ b/lib/Transforms/Instrumentation/EfficiencySanitizer.cpp @@ -99,23 +99,12 @@ static const char *const EsanWhichToolName = "__esan_which_tool"; // FIXME: Try to place these shadow constants, the names of the __esan_* // interface functions, and the ToolType enum into a header shared between // llvm and compiler-rt. -struct ShadowMemoryParams { - uint64_t ShadowMask; - uint64_t ShadowOffs[3]; -} ShadowParams; - -static const ShadowMemoryParams ShadowParams48 = { - 0x00000fffffffffffull, - { - 0x0000130000000000ull, 0x0000220000000000ull, 0x0000440000000000ull, - }}; - -static const ShadowMemoryParams ShadowParams40 = { - 0x0fffffffffull, - { - 0x1300000000ull, 0x2200000000ull, 0x4400000000ull, - }}; - +static const uint64_t ShadowMask = 0x00000fffffffffffull; +static const uint64_t ShadowOffs[3] = { // Indexed by scale + 0x0000130000000000ull, + 0x0000220000000000ull, + 0x0000440000000000ull, +}; // This array is indexed by the ToolType enum. static const int ShadowScale[] = { 0, // ESAN_None. @@ -539,20 +528,6 @@ void EfficiencySanitizer::createDestructor(Module &M, Constant *ToolInfoArg) { } bool EfficiencySanitizer::initOnModule(Module &M) { - - Triple TargetTriple(M.getTargetTriple()); - switch (TargetTriple.getArch()) { - case Triple::x86_64: - ShadowParams = ShadowParams48; - break; - case Triple::mips64: - case Triple::mips64el: - ShadowParams = ShadowParams40; - break; - default: - report_fatal_error("unsupported architecture"); - } - Ctx = &M.getContext(); const DataLayout &DL = M.getDataLayout(); IRBuilder<> IRB(M.getContext()); @@ -584,13 +559,13 @@ bool EfficiencySanitizer::initOnModule(Module &M) { Value *EfficiencySanitizer::appToShadow(Value *Shadow, IRBuilder<> &IRB) { // Shadow = ((App & Mask) + Offs) >> Scale - Shadow = IRB.CreateAnd(Shadow, ConstantInt::get(IntptrTy, ShadowParams.ShadowMask)); + Shadow = IRB.CreateAnd(Shadow, ConstantInt::get(IntptrTy, ShadowMask)); uint64_t Offs; int Scale = ShadowScale[Options.ToolType]; if (Scale <= 2) - Offs = ShadowParams.ShadowOffs[Scale]; + Offs = ShadowOffs[Scale]; else - Offs = ShadowParams.ShadowOffs[0] << Scale; + Offs = ShadowOffs[0] << Scale; Shadow = IRB.CreateAdd(Shadow, ConstantInt::get(IntptrTy, Offs)); if (Scale > 0) Shadow = IRB.CreateLShr(Shadow, Scale);