diff options
author | rdivacky <rdivacky@FreeBSD.org> | 2010-04-03 07:51:10 +0000 |
---|---|---|
committer | rdivacky <rdivacky@FreeBSD.org> | 2010-04-03 07:51:10 +0000 |
commit | 62cc576dca6a6aa62c0424f0a1e93a0a679d4c8a (patch) | |
tree | ba3309de92b14839b2ca6ca0c6d3b39714f95d4c /include/llvm/Transforms/Utils/SSAUpdater.h | |
parent | 20e856b2a58d12231aa42d5d13888b15ac03e5a4 (diff) | |
download | FreeBSD-src-62cc576dca6a6aa62c0424f0a1e93a0a679d4c8a.zip FreeBSD-src-62cc576dca6a6aa62c0424f0a1e93a0a679d4c8a.tar.gz |
Update LLVM to r100285.
Diffstat (limited to 'include/llvm/Transforms/Utils/SSAUpdater.h')
-rw-r--r-- | include/llvm/Transforms/Utils/SSAUpdater.h | 32 |
1 files changed, 9 insertions, 23 deletions
diff --git a/include/llvm/Transforms/Utils/SSAUpdater.h b/include/llvm/Transforms/Utils/SSAUpdater.h index b29b749..927e156 100644 --- a/include/llvm/Transforms/Utils/SSAUpdater.h +++ b/include/llvm/Transforms/Utils/SSAUpdater.h @@ -27,28 +27,22 @@ namespace llvm { /// transformation wants to rewrite a set of uses of one value with uses of a /// set of values. class SSAUpdater { -public: - class BBInfo; - -private: /// AvailableVals - This keeps track of which value to use on a per-block - /// basis. When we insert PHI nodes, we keep track of them here. - //typedef DenseMap<BasicBlock*, Value*> AvailableValsTy; + /// basis. When we insert PHI nodes, we keep track of them here. We use + /// TrackingVH's for the value of the map because we RAUW PHI nodes when we + /// eliminate them, and want the TrackingVH's to track this. + //typedef DenseMap<BasicBlock*, TrackingVH<Value> > AvailableValsTy; void *AV; /// PrototypeValue is an arbitrary representative value, which we derive names /// and a type for PHI nodes. Value *PrototypeValue; - /// BBMap - The GetValueAtEndOfBlock method maintains this mapping from - /// basic blocks to BBInfo structures. - /// typedef DenseMap<BasicBlock*, BBInfo*> BBMapTy; - void *BM; - - /// Allocator - The GetValueAtEndOfBlock method uses this BumpPtrAllocator to - /// hold its internal data. The allocator and its storage is created and - /// discarded for each invocation of GetValueAtEndOfBlock. - void *BPA; + /// IncomingPredInfo - We use this as scratch space when doing our recursive + /// walk. This should only be used in GetValueInBlockInternal, normally it + /// should be empty. + //std::vector<std::pair<BasicBlock*, TrackingVH<Value> > > IncomingPredInfo; + void *IPI; /// InsertedPHIs - If this is non-null, the SSAUpdater adds all PHI nodes that /// it creates to the vector. @@ -105,14 +99,6 @@ public: private: Value *GetValueAtEndOfBlockInternal(BasicBlock *BB); - void FindPHIPlacement(BasicBlock *BB, BBInfo *Info, bool &Changed, - unsigned Counter); - void FindAvailableVal(BasicBlock *BB, BBInfo *Info, unsigned Counter); - void FindExistingPHI(BasicBlock *BB); - bool CheckIfPHIMatches(PHINode *PHI); - void RecordMatchingPHI(PHINode *PHI); - void ClearPHITags(PHINode *PHI); - void operator=(const SSAUpdater&); // DO NOT IMPLEMENT SSAUpdater(const SSAUpdater&); // DO NOT IMPLEMENT }; |