BlockGenerators: Allow values to be removed from ScalarMap
authorTobias Grosser <tobias@grosser.es>
Fri, 26 Feb 2016 13:27:02 +0000 (13:27 +0000)
committerTobias Grosser <tobias@grosser.es>
Fri, 26 Feb 2016 13:27:02 +0000 (13:27 +0000)
This function is not yet used in Polly, but is useful to external projects that
generate multi-module code using Polly.

llvm-svn: 262010

polly/include/polly/CodeGen/BlockGenerators.h

index 05b8f53..972df67 100644 (file)
@@ -111,6 +111,17 @@ public:
   ///          GlobalMap.
   Value *getOrCreateScalarAlloca(Value *ScalarBase);
 
+  /// @brief Remove a Value's allocation from the ScalarMap.
+  ///
+  /// This function allows to remove values from the ScalarMap. This is useful
+  /// if the corresponding alloca instruction will be deleted (or moved into
+  /// another module), as without removing these values the underlying
+  /// AssertingVH will trigger due to us still keeping reference to this
+  /// scalar.
+  ///
+  /// @param ScalarBase The value to remove.
+  void freeScalarAlloc(Value *ScalarBase) { ScalarMap.erase(ScalarBase); }
+
   /// @brief Return the PHi-node alloca for @p ScalarBase
   ///
   /// If no alloca was mapped to @p ScalarBase a new one is created.