mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-14 15:38:57 +00:00
Use AssertingVH for InsertedValues and InsertedPostIncValues, to verify
that the values they refer to aren't being deleted underneath them. Make sure these containters get cleared by clear(), which IndVarSimplify and LSR both use before deleting instructions. llvm-svn: 109478
This commit is contained in:
parent
a3f9dea4c7
commit
66b6f7d702
@ -18,6 +18,7 @@
|
||||
#include "llvm/Analysis/ScalarEvolutionNormalization.h"
|
||||
#include "llvm/Support/IRBuilder.h"
|
||||
#include "llvm/Support/TargetFolder.h"
|
||||
#include "llvm/Support/ValueHandle.h"
|
||||
#include <set>
|
||||
|
||||
namespace llvm {
|
||||
@ -31,8 +32,8 @@ namespace llvm {
|
||||
ScalarEvolution &SE;
|
||||
std::map<std::pair<const SCEV *, Instruction *>, AssertingVH<Value> >
|
||||
InsertedExpressions;
|
||||
std::set<Value*> InsertedValues;
|
||||
std::set<Value*> InsertedPostIncValues;
|
||||
std::set<AssertingVH<Value> > InsertedValues;
|
||||
std::set<AssertingVH<Value> > InsertedPostIncValues;
|
||||
|
||||
/// PostIncLoops - Addrecs referring to any of the given loops are expanded
|
||||
/// in post-inc mode. For example, expanding {1,+,1}<L> in post-inc mode
|
||||
@ -70,7 +71,11 @@ namespace llvm {
|
||||
/// clear - Erase the contents of the InsertedExpressions map so that users
|
||||
/// trying to expand the same expression into multiple BasicBlocks or
|
||||
/// different places within the same BasicBlock can do so.
|
||||
void clear() { InsertedExpressions.clear(); }
|
||||
void clear() {
|
||||
InsertedExpressions.clear();
|
||||
InsertedValues.clear();
|
||||
InsertedPostIncValues.clear();
|
||||
}
|
||||
|
||||
/// getOrInsertCanonicalInductionVariable - This method returns the
|
||||
/// canonical induction variable of the specified type for the specified
|
||||
|
Loading…
x
Reference in New Issue
Block a user