diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2006-07-27 22:35:40 +0000 |
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2006-07-27 22:35:40 +0000 |
| commit | 390dd7eb7d51819dbe2a832f7dabab40ceb930ff (patch) | |
| tree | 2913bc860114b327fa0afa63ba317a8b9395cce0 /llvm | |
| parent | 87585760abe0b52e2fadf67612bf3622ef27486f (diff) | |
| download | bcm5719-llvm-390dd7eb7d51819dbe2a832f7dabab40ceb930ff.tar.gz bcm5719-llvm-390dd7eb7d51819dbe2a832f7dabab40ceb930ff.zip | |
Allocating too large an array for ReachibilityMatrix.
llvm-svn: 29367
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelDAGToDAG.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp index 901409a1545..b6d2a8e9dab 100644 --- a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp +++ b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp @@ -281,8 +281,11 @@ void X86DAGToDAGISel::DetermineTopologicalOrdering() { void X86DAGToDAGISel::DeterminReachibility(SDNode *f, SDNode *t) { if (!ReachibilityMatrix) { DetermineTopologicalOrdering(); - ReachibilityMatrix = new unsigned char[DAGSize * DAGSize]; - memset(ReachibilityMatrix, 0, DAGSize * DAGSize * sizeof(unsigned char)); + unsigned RMSize = DAGSize * DAGSize / 8; + if ((DAGSize * DAGSize) % 8) + RMSize++; + ReachibilityMatrix = new unsigned char[RMSize]; + memset(ReachibilityMatrix, 0, RMSize); } int Idf = f->getNodeId(); |

