aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2009-09-30 20:15:38 +0000
committerReid Kleckner <reid@kleckner.net>2009-09-30 20:15:38 +0000
commite9b95fd1ebb1f046d17afd0123d7c3afcd4ddef0 (patch)
tree961f33a75eced084518a387d00095b6a98782d25 /include/llvm
parent5a8c00d3394922bbc310fdd6ffb829939de37cd1 (diff)
downloadexternal_llvm-e9b95fd1ebb1f046d17afd0123d7c3afcd4ddef0.zip
external_llvm-e9b95fd1ebb1f046d17afd0123d7c3afcd4ddef0.tar.gz
external_llvm-e9b95fd1ebb1f046d17afd0123d7c3afcd4ddef0.tar.bz2
Fix integer overflow in instruction scheduling. This can happen if we have
basic blocks that are so long that their size overflows a short. Also assert that overflow does not happen in the future, as requested by Evan. This fixes PR4401. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83159 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm')
-rw-r--r--include/llvm/CodeGen/ScheduleDAG.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/include/llvm/CodeGen/ScheduleDAG.h b/include/llvm/CodeGen/ScheduleDAG.h
index c5e12a6..2de095b 100644
--- a/include/llvm/CodeGen/ScheduleDAG.h
+++ b/include/llvm/CodeGen/ScheduleDAG.h
@@ -243,10 +243,10 @@ namespace llvm {
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.
+ unsigned NumPreds; // # of SDep::Data preds.
+ unsigned NumSuccs; // # of SDep::Data sucss.
+ unsigned NumPredsLeft; // # of preds not scheduled.
+ unsigned 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.