From d7d9e1069be675f40dd89e27143c0dc176ed498d Mon Sep 17 00:00:00 2001 From: James Y Knight Date: Tue, 30 Aug 2016 03:16:16 +0000 Subject: [PATCH] Replace incorrect "#ifdef DEBUG" with "#ifndef NDEBUG". The former is simply wrong -- the code will either never be used or will always be used, rather than being dependent upon whether it's built with debug assertions enabled. The macro DEBUG isn't ever set by the llvm build system. But, the macro DEBUG(X) is defined (unconditionally) if you happen to include llvm/Support/Debug.h. The code in Value.h which was erroneously protected by the #ifdef DEBUG didn't even compile -- you can't cast<> from an LLVMOpaqueValue directly. Fortunately, it was never invoked, as Core.cpp included Value.h before Debug.h. The conditionalized code in AArch64CollectLOH.cpp was previously always used, as it includes Debug.h. llvm-svn: 280056 --- llvm/include/llvm/IR/Value.h | 4 ++-- llvm/lib/Target/AArch64/AArch64CollectLOH.cpp | 26 +++++++++++++++----------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/llvm/include/llvm/IR/Value.h b/llvm/include/llvm/IR/Value.h index f3a342d..ae4b494 100644 --- a/llvm/include/llvm/IR/Value.h +++ b/llvm/include/llvm/IR/Value.h @@ -805,9 +805,9 @@ inline Value **unwrap(LLVMValueRef *Vals) { template inline T **unwrap(LLVMValueRef *Vals, unsigned Length) { -#ifdef DEBUG +#ifndef NDEBUG for (LLVMValueRef *I = Vals, *E = Vals + Length; I != E; ++I) - cast(*I); + unwrap(*I); // For side effect of calling assert on invalid usage. #endif (void)Length; return reinterpret_cast(Vals); diff --git a/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp b/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp index 268b301..b02b8d9 100644 --- a/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp +++ b/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp @@ -138,6 +138,7 @@ BasicBlockScopeOnly("aarch64-collect-loh-bb-only", cl::Hidden, STATISTIC(NumADRPSimpleCandidate, "Number of simplifiable ADRP dominate by another"); +#ifndef NDEBUG STATISTIC(NumADRPComplexCandidate2, "Number of simplifiable ADRP reachable by 2 defs"); STATISTIC(NumADRPComplexCandidate3, @@ -156,11 +157,14 @@ STATISTIC(NumLDRToLDRWithImm, "Number of simplifiable LDR with imm reachable by LDR"); STATISTIC(NumADDToLDR, "Number of simplifiable LDR reachable by ADD"); STATISTIC(NumLDRToLDR, "Number of simplifiable LDR reachable by LDR"); +#endif // NDEBUG STATISTIC(NumADRPToLDR, "Number of simplifiable LDR reachable by ADRP"); +#ifndef NDEBUG STATISTIC(NumCplxLvl1, "Number of complex case of level 1"); STATISTIC(NumTooCplxLvl1, "Number of too complex case of level 1"); STATISTIC(NumCplxLvl2, "Number of complex case of level 2"); STATISTIC(NumTooCplxLvl2, "Number of too complex case of level 2"); +#endif // NDEBUG STATISTIC(NumADRSimpleCandidate, "Number of simplifiable ADRP + ADD"); STATISTIC(NumADRComplexCandidate, "Number of too complex ADRP + ADD"); @@ -627,7 +631,7 @@ static void computeADRP(const InstrToInstrs &UseToDefs, AArch64FI.addLOHDirective(MCLOH_AdrpAdrp, {L2, L1}); ++NumADRPSimpleCandidate; } -#ifdef DEBUG +#ifndef NDEBUG else if (Size == 2) ++NumADRPComplexCandidate2; else if (Size == 3) @@ -771,10 +775,10 @@ static void computeOthers(const InstrToInstrs &UseToDefs, AArch64FunctionInfo &AArch64FI, const MapRegToId &RegToId, const MachineDominatorTree *MDT) { SetOfMachineInstr *InvolvedInLOHs = nullptr; -#ifdef DEBUG +#ifndef NDEBUG SetOfMachineInstr InvolvedInLOHsStorage; InvolvedInLOHs = &InvolvedInLOHsStorage; -#endif // DEBUG +#endif // NDEBUG DEBUG(dbgs() << "*** Compute LOH for Others\n"); // ADRP -> ADD/LDR -> LDR/STR pattern. // Fall back to ADRP -> ADD pattern if we fail to catch the bigger pattern. @@ -815,7 +819,7 @@ static void computeOthers(const InstrToInstrs &UseToDefs, // PotentialCandidates are result of a chain ADRP -> ADD/LDR -> // A potential candidate becomes a candidate, if its current immediate // operand is zero and all nodes of the chain have respectively only one user -#ifdef DEBUG +#ifndef NDEBUG SetOfMachineInstr DefsOfPotentialCandidates; #endif for (const MachineInstr *Candidate : PotentialCandidates) { @@ -831,7 +835,7 @@ static void computeOthers(const InstrToInstrs &UseToDefs, getUses(DefsPerColorToUses, RegToId.find(Def->getOperand(0).getReg())->second, *Def); if (Users->size() > 1) { -#ifdef DEBUG +#ifndef NDEBUG // if all the uses of this def are in potential candidate, this is // a complex candidate of level 2. bool IsLevel2 = true; @@ -844,7 +848,7 @@ static void computeOthers(const InstrToInstrs &UseToDefs, } if (IsLevel2) ++NumCplxLvl2; -#endif // DEBUG +#endif // NDEBUG PotentialADROpportunities.insert(Def); continue; } @@ -859,7 +863,7 @@ static void computeOthers(const InstrToInstrs &UseToDefs, getUses(DefsPerColorToUses, RegToId.find(Def->getOperand(0).getReg())->second, *Def); if (Users->size() > 1) { -#ifdef DEBUG +#ifndef NDEBUG // if all the uses of this def are in the defs of the potential candidate, // this is a complex candidate of level 1 if (DefsOfPotentialCandidates.empty()) { @@ -881,7 +885,7 @@ static void computeOthers(const InstrToInstrs &UseToDefs, } if (!Found) ++NumCplxLvl1; -#endif // DEBUG +#endif // NDEBUG continue; } @@ -928,7 +932,7 @@ static void computeOthers(const InstrToInstrs &UseToDefs, "L2 already involved in LOH."); assert((!InvolvedInLOHs || InvolvedInLOHs->insert(Candidate)) && "Candidate already involved in LOH."); -#ifdef DEBUG +#ifndef NDEBUG // get the immediate of the load if (Candidate->getOperand(2).getImm() == 0) if (ImmediateDefOpc == AArch64::ADDXri) @@ -939,7 +943,7 @@ static void computeOthers(const InstrToInstrs &UseToDefs, ++NumADDToLDRWithImm; else ++NumLDRToLDRWithImm; -#endif // DEBUG +#endif // NDEBUG } } else { if (ImmediateDefOpc == AArch64::ADRP) @@ -962,7 +966,7 @@ static void computeOthers(const InstrToInstrs &UseToDefs, "L2 already involved in LOH."); assert((!InvolvedInLOHs || InvolvedInLOHs->insert(Candidate)) && "Candidate already involved in LOH."); -#ifdef DEBUG +#ifndef NDEBUG // get the immediate of the store if (Candidate->getOperand(2).getImm() == 0) if (ImmediateDefOpc == AArch64::ADDXri) -- 2.7.4