[llvm] [AA] Change RunEarly to be a Boolean Flag in ExternalAAWrapper (PR #139158)

via llvm-commits llvm-commits at lists.llvm.org
Thu May 8 15:14:05 PDT 2025


================
@@ -90,14 +90,14 @@ class NVPTXExternalAAWrapper : public ExternalAAWrapperPass {
 public:
   static char ID;
 
-  bool runEarly() override { return true; }
-
   NVPTXExternalAAWrapper()
       : ExternalAAWrapperPass([](Pass &P, Function &, AAResults &AAR) {
           if (auto *WrapperPass =
                   P.getAnalysisIfAvailable<NVPTXAAWrapperPass>())
             AAR.addAAResult(WrapperPass->getResult());
-        }) {}
+        }) {
+    RunEarly = true;
----------------
Chengjunp wrote:

Could you further explain how to "hide" RunEarly under an EarlyExternalAA and LateExternalAA wrapper class?

Do you mean making the constructor of ExternalAAWrapperPass to be 
```
explicit ExternalAAWrapperPass(CallbackT CB, bool RunEarly = false);
```
and having 
```
  NVPTXExternalAAWrapper()
      : ExternalAAWrapperPass([](Pass &P, Function &, AAResults &AAR) {
          if (auto *WrapperPass =
                  P.getAnalysisIfAvailable<NVPTXAAWrapperPass>())
            AAR.addAAResult(WrapperPass->getResult());
        }, /*RunEarly=*/true) {}
```
?

https://github.com/llvm/llvm-project/pull/139158


More information about the llvm-commits mailing list