[llvm] r275744 - [GVNHoist] Sink HoistedCtr into GVNHoist

David Majnemer via llvm-commits llvm-commits at lists.llvm.org
Sun Jul 17 17:35:01 PDT 2016


Author: majnemer
Date: Sun Jul 17 19:35:01 2016
New Revision: 275744

URL: http://llvm.org/viewvc/llvm-project?rev=275744&view=rev
Log:
[GVNHoist] Sink HoistedCtr into GVNHoist

HoistedCtr cannot be a mutated global variable, that will open us up to
races between threads compiling code in parallel.

Modified:
    llvm/trunk/lib/Transforms/Scalar/GVNHoist.cpp

Modified: llvm/trunk/lib/Transforms/Scalar/GVNHoist.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/GVNHoist.cpp?rev=275744&r1=275743&r2=275744&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/GVNHoist.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/GVNHoist.cpp Sun Jul 17 19:35:01 2016
@@ -47,8 +47,6 @@ static cl::opt<int> MaxNumberOfBBSInPath
     cl::desc("Max number of basic blocks on the path between "
              "hoisting locations (default = 4, unlimited = -1)"));
 
-static int HoistedCtr = 0;
-
 namespace {
 
 // Provides a sorting function based on the execution order of two instructions.
@@ -183,11 +181,13 @@ public:
   DenseMap<const BasicBlock *, unsigned> DFSNumber;
   BBSideEffectsSet BBSideEffects;
   MemorySSA *MSSA;
+  int HoistedCtr;
+
   enum InsKind { Unknown, Scalar, Load, Store };
 
   GVNHoist(DominatorTree *Dt, AliasAnalysis *Aa, MemoryDependenceResults *Md,
            bool OptForMinSize)
-      : DT(Dt), AA(Aa), MD(Md), OptForMinSize(OptForMinSize) {}
+      : DT(Dt), AA(Aa), MD(Md), OptForMinSize(OptForMinSize), HoistedCtr(0) {}
 
   // Return true when there are exception handling in BB.
   bool hasEH(const BasicBlock *BB) {




More information about the llvm-commits mailing list