]> granicus.if.org Git - llvm/commitdiff
[Attributor] Further cut down on non-determinism
authorJohannes Doerfert <jdoerfert@anl.gov>
Mon, 26 Aug 2019 17:51:23 +0000 (17:51 +0000)
committerJohannes Doerfert <jdoerfert@anl.gov>
Mon, 26 Aug 2019 17:51:23 +0000 (17:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@369936 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Transforms/IPO/Attributor.h
lib/Transforms/IPO/Attributor.cpp

index 5929fc4a9ede03bea7d7063f97d1d66f384fad82..bea369a6b5103192cfc4575703d60365e57c721e 100644 (file)
@@ -97,6 +97,7 @@
 #define LLVM_TRANSFORMS_IPO_ATTRIBUTOR_H
 
 #include "llvm/ADT/SetVector.h"
+#include "llvm/ADT/MapVector.h"
 #include "llvm/IR/CallSite.h"
 #include "llvm/IR/PassManager.h"
 
@@ -758,7 +759,7 @@ private:
   /// to the getAAFor<...>(...) method.
   ///{
   using QueryMapTy =
-      DenseMap<AbstractAttribute *, SetVector<AbstractAttribute *>>;
+      MapVector<AbstractAttribute *, SetVector<AbstractAttribute *>>;
   QueryMapTy QueryMap;
   ///}
 
@@ -1157,9 +1158,9 @@ struct AAReturnedValues
       const function_ref<bool(Value &, const SmallSetVector<ReturnInst *, 4> &)>
           &Pred) const = 0;
 
-  using iterator = DenseMap<Value *, SmallSetVector<ReturnInst *, 4>>::iterator;
+  using iterator = MapVector<Value *, SmallSetVector<ReturnInst *, 4>>::iterator;
   using const_iterator =
-      DenseMap<Value *, SmallSetVector<ReturnInst *, 4>>::const_iterator;
+      MapVector<Value *, SmallSetVector<ReturnInst *, 4>>::const_iterator;
   virtual llvm::iterator_range<iterator> returned_values() = 0;
   virtual llvm::iterator_range<const_iterator> returned_values() const = 0;
 
index a2ea0068bc09de70887f396c1350c994e272ede4..ebe4fba0856e9817586098c72bb879e7a5913494 100644 (file)
@@ -689,7 +689,7 @@ class AAReturnedValuesImpl : public AAReturnedValues, public AbstractState {
 
   /// Mapping of values potentially returned by the associated function to the
   /// return instructions that might return them.
-  DenseMap<Value *, SmallSetVector<ReturnInst *, 4>> ReturnedValues;
+  MapVector<Value *, SmallSetVector<ReturnInst *, 4>> ReturnedValues;
 
   /// Mapping to remember the number of returned values for a call site such
   /// that we can avoid updates if nothing changed.