summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorChristian Konig <christian.koenig@amd.com>2013-03-26 10:24:20 +0000
committerChristian Konig <christian.koenig@amd.com>2013-03-26 10:24:20 +0000
commit90b45124cdb383e6b2b813d57e2eefc0caa985fc (patch)
tree463a8cce9bbabe5552c83448bcad4455a6ec8b7d /llvm
parent7ef76c1cd8a473977a2b99143b762d61ec265ebc (diff)
downloadbcm5719-llvm-90b45124cdb383e6b2b813d57e2eefc0caa985fc.tar.gz
bcm5719-llvm-90b45124cdb383e6b2b813d57e2eefc0caa985fc.zip
R600: fix DenseMap with pointer key iteration in the structurizer
Use a MapVector on types where the iteration order matters. Otherwise we doesn't always produce a deterministic output. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> llvm-svn: 177999
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/R600/AMDGPUStructurizeCFG.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/R600/AMDGPUStructurizeCFG.cpp b/llvm/lib/Target/R600/AMDGPUStructurizeCFG.cpp
index b723433c161..dea43b874c6 100644
--- a/llvm/lib/Target/R600/AMDGPUStructurizeCFG.cpp
+++ b/llvm/lib/Target/R600/AMDGPUStructurizeCFG.cpp
@@ -17,6 +17,7 @@
#include "AMDGPU.h"
#include "llvm/ADT/SCCIterator.h"
+#include "llvm/ADT/MapVector.h"
#include "llvm/Analysis/RegionInfo.h"
#include "llvm/Analysis/RegionIterator.h"
#include "llvm/Analysis/RegionPass.h"
@@ -40,13 +41,14 @@ typedef SmallVector<BBValuePair, 2> BBValueVector;
typedef SmallPtrSet<BasicBlock *, 8> BBSet;
-typedef DenseMap<PHINode *, BBValueVector> PhiMap;
+typedef MapVector<PHINode *, BBValueVector> PhiMap;
+typedef MapVector<BasicBlock *, BBVector> BB2BBVecMap;
+
typedef DenseMap<DomTreeNode *, unsigned> DTN2UnsignedMap;
typedef DenseMap<BasicBlock *, PhiMap> BBPhiMap;
typedef DenseMap<BasicBlock *, Value *> BBPredicates;
typedef DenseMap<BasicBlock *, BBPredicates> PredMap;
typedef DenseMap<BasicBlock *, BasicBlock*> BB2BBMap;
-typedef DenseMap<BasicBlock *, BBVector> BB2BBVecMap;
// The name for newly created blocks.
OpenPOWER on IntegriCloud