<div dir="ltr"><div>One option is just to change the default for ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER in Clang's CMakeLists.txt: <a href="https://github.com/llvm/llvm-project/blob/0930643ff6f1684bf234a97f6a3b76bf8e30b0a1/clang/CMakeLists.txt#L236">https://github.com/llvm/llvm-project/blob/0930643ff6f1684bf234a97f6a3b76bf8e30b0a1/clang/CMakeLists.txt#L236</a>. That approach allows developers and bots to easily switch back to the legacy pass manager by simply passing -DENABLE_EXPERIMENTAL_NEW_PASS_MANAGER=OFF to their CMake build.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Aug 6, 2019 at 2:45 PM Tom Stellard via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 08/02/2019 10:25 AM, Leonard Chan via llvm-dev wrote:<br>
> Hello all,<br>
> <br>
> As of now, all LLVM and Clang tests have been updated/addressed to run under the new/experimental pass manager (at least the ones that failed when using the new PM).<br>
> <br>
> For those who aren't aware of what the new pass manager (PM) is, the tl;dr is that this will serve as a replacement for the legacy PM, and promises faster build times by restructuring how passes are run over IR units. For some time, when someone wants to create a new pass, they may need to implement it for both pass managers since the legacy one is what is enabled by default. Passes that were initially made under the new PM have also slowly been ported over time.<br>
> <br>
> Now that LLVM 9.0.0 has branched, we have about 6 months before the next release. We think it would be a good idea to take this opportunity and make the new PM the default one which gives us enough time to work out any kinks that might come out of this switch before LLVM 10.0.0 branch point. We suspect that there may be other LLVM projects that will be affected by this, probably from unported passes.<br>
> <br>
> Does anyone have any opinions on this?<br>
> <br>
<br>
What is involved in making the new pass manager the default?<br>
Does it just mean updating clang, or will the C API functions,<br>
like LLVMCreatePassManager(), etc. be updated too?<br>
<br>
-Tom<br>
<br>
> Off the top of my head, the next immediate work would be to update the docs with instructions on how to write or port a new PM pass, and address any breakages for other LLVM projects.<br>
> <br>
> Thanks,<br>
> Leonard<br>
> <br>
> <br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
> <br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div></div>