Эх сурвалжийг харах

Guard private fields that are unused in Release builds with #ifndef NDEBUG.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158608 91177308-0d34-0410-b5e6-96231b3b80d8
Benjamin Kramer 13 жил өмнө
parent
commit
a978366339

+ 6 - 1
include/llvm/CodeGen/LexicalScopes.h

@@ -158,7 +158,10 @@ class LexicalScope {
 public:
   LexicalScope(LexicalScope *P, const MDNode *D, const MDNode *I, bool A)
     : Parent(P), Desc(D), InlinedAtLocation(I), AbstractScope(A),
-      LastInsn(0), FirstInsn(0), DFSIn(0), DFSOut(0), IndentLevel(0) {
+      LastInsn(0), FirstInsn(0), DFSIn(0), DFSOut(0) {
+#ifndef NDEBUG
+    IndentLevel = 0;
+#endif
     if (Parent)
       Parent->addChild(this);
   }
@@ -241,7 +244,9 @@ private:
   const MachineInstr *FirstInsn;      // First instruction of this scope.
   unsigned DFSIn, DFSOut;             // In & Out Depth use to determine
                                       // scope nesting.
+#ifndef NDEBUG
   mutable unsigned IndentLevel;       // Private state for dump()
+#endif
 };
 
 } // end llvm namespace

+ 7 - 1
lib/CodeGen/MachineScheduler.cpp

@@ -351,15 +351,21 @@ class ScheduleDAGMI : public ScheduleDAGInstrs {
   IntervalPressure BotPressure;
   RegPressureTracker BotRPTracker;
 
+#ifndef NDEBUG
   /// The number of instructions scheduled so far. Used to cut off the
   /// scheduler at the point determined by misched-cutoff.
   unsigned NumInstrsScheduled;
+#endif
 public:
   ScheduleDAGMI(MachineSchedContext *C, MachineSchedStrategy *S):
     ScheduleDAGInstrs(*C->MF, *C->MLI, *C->MDT, /*IsPostRA=*/false, C->LIS),
     AA(C->AA), RegClassInfo(C->RegClassInfo), SchedImpl(S),
     RPTracker(RegPressure), CurrentTop(), TopRPTracker(TopPressure),
-    CurrentBottom(), BotRPTracker(BotPressure), NumInstrsScheduled(0) {}
+    CurrentBottom(), BotRPTracker(BotPressure) {
+#ifndef NDEBUG
+    NumInstrsScheduled = 0;
+#endif
+  }
 
   ~ScheduleDAGMI() {
     delete SchedImpl;

+ 2 - 0
lib/CodeGen/RegAllocBasic.cpp

@@ -64,8 +64,10 @@ class RABasic : public MachineFunctionPass, public RegAllocBase
   // context
   MachineFunction *MF;
 
+#ifndef NDEBUG
   // analyses
   RenderMachineFunction *RMF;
+#endif
 
   // state
   std::auto_ptr<Spiller> SpillerInstance;

+ 6 - 1
lib/ExecutionEngine/JIT/JITEmitter.cpp

@@ -186,12 +186,17 @@ namespace {
 
     JITEmitter &JE;
 
+#ifndef NDEBUG
     /// Instance of JIT corresponding to this Resolver.
     JIT *TheJIT;
+#endif
 
   public:
     explicit JITResolver(JIT &jit, JITEmitter &je)
-      : state(&jit), nextGOTIndex(0), JE(je), TheJIT(&jit) {
+      : state(&jit), nextGOTIndex(0), JE(je) {
+#ifndef NDEBUG
+      TheJIT = &jit;
+#endif
       LazyResolverFn = jit.getJITInfo().getLazyResolverFunction(JITCompilerFn);
     }