mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-19 04:32:19 +00:00
Double the amount of memory reserved for SUnits. This is a
temporary workaround for an obscure bug. When node cloning is used, it is possible that more SUnits will be created, and if the SUnits std::vector has to reallocate, it will invalidate all the graph edges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61122 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fccf6dd377
commit
89b64bd7e5
@ -71,7 +71,9 @@ void ScheduleDAGSDNodes::BuildSchedUnits() {
|
||||
// Reserve entries in the vector for each of the SUnits we are creating. This
|
||||
// ensure that reallocation of the vector won't happen, so SUnit*'s won't get
|
||||
// invalidated.
|
||||
SUnits.reserve(DAG->allnodes_size());
|
||||
// FIXME: Multiply by 2 because we may clone nodes during scheduling.
|
||||
// This is a temporary workaround.
|
||||
SUnits.reserve(DAG->allnodes_size() * 2);
|
||||
|
||||
// During scheduling, the NodeId field of SDNode is used to map SDNodes
|
||||
// to their associated SUnits by holding SUnits table indices. A value
|
||||
|
Loading…
x
Reference in New Issue
Block a user