[llvm] r335665 - [ORC] Allow IRTransformLayer2's transform to be modified after initialization.

Lang Hames via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 26 13:59:51 PDT 2018


Author: lhames
Date: Tue Jun 26 13:59:51 2018
New Revision: 335665

URL: http://llvm.org/viewvc/llvm-project?rev=335665&view=rev
Log:
[ORC] Allow IRTransformLayer2's transform to be modified after initialization.

Also give the constructor's transform parameter a default no-op transform value.

Modified:
    llvm/trunk/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h

Modified: llvm/trunk/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h?rev=335665&r1=335664&r2=335665&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h (original)
+++ llvm/trunk/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h Tue Jun 26 13:59:51 2018
@@ -29,13 +29,20 @@ public:
   using TransformFunction =
     std::function<Expected<std::unique_ptr<Module>>(std::unique_ptr<Module>)>;
 
-  IRTransformLayer2(ExecutionSession &ES,
-                    IRLayer &BaseLayer,
-                    TransformFunction Transform);
+  IRTransformLayer2(ExecutionSession &ES, IRLayer &BaseLayer,
+                    TransformFunction Transform = identityTransform);
+
+  void setTransform(TransformFunction Transform) {
+    this->Transform = std::move(Transform);
+  }
 
   void emit(MaterializationResponsibility R, VModuleKey K,
             std::unique_ptr<Module> M) override;
 
+  static std::unique_ptr<Module> identityTransform(std::unique_ptr<Module> M) {
+    return M;
+  }
+
 private:
   IRLayer &BaseLayer;
   TransformFunction Transform;




More information about the llvm-commits mailing list