[llvm] 836d0ad - Fix Windows/MSVC build after 6e56046f65

Evgeny Leviant via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 13 05:25:07 PDT 2020


Author: Evgeny Leviant
Date: 2020-10-13T15:24:58+03:00
New Revision: 836d0addee4a2ce07d09d68484823221cbb062b7

URL: https://github.com/llvm/llvm-project/commit/836d0addee4a2ce07d09d68484823221cbb062b7
DIFF: https://github.com/llvm/llvm-project/commit/836d0addee4a2ce07d09d68484823221cbb062b7.diff

LOG: Fix Windows/MSVC build after 6e56046f65

Commit 6e56046f65 may trigger SEGV in llvm-tablegen if the latter
is built with -DLLVM_OPTIMIZED_TABLEGEN=OFF. The reason of SEGV was
accessing stale memory after expansion of std::vector.

Added: 
    

Modified: 
    llvm/utils/TableGen/CodeGenSchedule.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/utils/TableGen/CodeGenSchedule.cpp b/llvm/utils/TableGen/CodeGenSchedule.cpp
index f233b927b7a0..be12758b23be 100644
--- a/llvm/utils/TableGen/CodeGenSchedule.cpp
+++ b/llvm/utils/TableGen/CodeGenSchedule.cpp
@@ -1664,7 +1664,6 @@ static void inferFromTransitions(ArrayRef<PredTransition> LastTransitions,
                                  CodeGenSchedModels &SchedModels) {
   // For each PredTransition, create a new CodeGenSchedTransition, which usually
   // requires creating a new SchedClass.
-  const CodeGenSchedClass &FromSC = SchedModels.getSchedClass(FromClassIdx);
   for (ArrayRef<PredTransition>::iterator
          I = LastTransitions.begin(), E = LastTransitions.end(); I != E; ++I) {
     IdxVec OperWritesVariant, OperReadsVariant;
@@ -1674,6 +1673,7 @@ static void inferFromTransitions(ArrayRef<PredTransition> LastTransitions,
 
     // Transition should not contain processor indices already assigned to
     // InstRWs in this scheduling class.
+    const CodeGenSchedClass &FromSC = SchedModels.getSchedClass(FromClassIdx);
     llvm::copy_if(I->ProcIndices, std::back_inserter(SCTrans.ProcIndices),
                   [&FromSC](unsigned PIdx) {
                     return !FromSC.InstRWProcIndices.count(PIdx);


        


More information about the llvm-commits mailing list