@@ -644,6 +648,12 @@ class CompilerInstance : public ModuleLoader {
/// the compiler instance takes ownership of \p Value.
void setCodeCompletionConsumer(CodeCompleteConsumer *Value);
+ /// }
+ /// @name Back-end Pass Plugins
+ /// @{
+
+ std::vector &getPassPlugins()
@@ -233,6 +234,20 @@ bool ExecuteCompilerInvocation(CompilerInstance *Clang) {
Clang->LoadRequestedPlugins();
+ // Load and store pass plugins for the back-end. Store the loaded pass
plugins
+ // here and store references to these in CodeGenOpts to avoid pulling in the
+
@@ -131,6 +132,9 @@ class CompilerInstance : public ModuleLoader {
/// The semantic analysis object.
std::unique_ptr TheSema;
+ /// Back-end pass plugins.
+ std::vector PassPlugins;
tarunprabhu wrote:
Why does the CompilerInstance not own the loaded `ll
@@ -233,6 +234,20 @@ bool ExecuteCompilerInvocation(CompilerInstance *Clang) {
Clang->LoadRequestedPlugins();
+ // Load and store pass plugins for the back-end. Store the loaded pass
plugins
+ // here and store references to these in CodeGenOpts to avoid pulling in the
+
@@ -233,6 +234,20 @@ bool ExecuteCompilerInvocation(CompilerInstance *Clang) {
Clang->LoadRequestedPlugins();
+ // Load and store pass plugins for the back-end. Store the loaded pass
plugins
+ // here and store references to these in CodeGenOpts to avoid pulling in the
+