[llvm-commits] [PATCH] Avoid overflow in scheduling

Reid Kleckner rnk at mit.edu
Sat Sep 26 13:19:00 PDT 2009


Hey all,

One of our nasty regression test cases generates a ginormous (4 MB of
bitcode) function that overflows a short integer in some instruction
scheduling code.  Is the attached fix OK?  If so, I'll commit it.

This fixes PR4401.

Thanks,
Reid
-------------- next part --------------
Index: include/llvm/CodeGen/ScheduleDAG.h
===================================================================
--- include/llvm/CodeGen/ScheduleDAG.h	(revision 82692)
+++ include/llvm/CodeGen/ScheduleDAG.h	(working copy)
@@ -243,10 +243,10 @@
     unsigned NodeNum;                   // Entry # of node in the node vector.
     unsigned NodeQueueId;               // Queue id of node.
     unsigned short Latency;             // Node latency.
-    short NumPreds;                     // # of SDep::Data preds.
-    short NumSuccs;                     // # of SDep::Data sucss.
-    short NumPredsLeft;                 // # of preds not scheduled.
-    short NumSuccsLeft;                 // # of succs not scheduled.
+    int NumPreds;                       // # of SDep::Data preds.
+    int NumSuccs;                       // # of SDep::Data sucss.
+    int NumPredsLeft;                   // # of preds not scheduled.
+    int NumSuccsLeft;                   // # of succs not scheduled.
     bool isTwoAddress     : 1;          // Is a two-address instruction.
     bool isCommutable     : 1;          // Is a commutable instruction.
     bool hasPhysRegDefs   : 1;          // Has physreg defs that are being used.


More information about the llvm-commits mailing list