[PATCH] D141164: [AAUnderlyingObjects] Introduce an AA for getting underlying objects of a pointer

Johannes Doerfert via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Jan 7 17:25:58 PST 2023


jdoerfert added inline comments.


================
Comment at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:11259-11264
+
+        Objects.insert(VAC.getValue());
+      }
+
+      for (auto *Obj : Objects) {
+        if (isa<SelectInst>(Obj) || isa<PHINode>(Obj)) {
----------------
Can't we merge this and remove Objects all together?


================
Comment at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:11289
+                                         ? InterAssumedUnderlyingObjects
+                                         : IntraAssumedUnderlyingObjects;
+    for (Value *Obj : AssumedUnderlyingObjects)
----------------
Scope can be Any. Use Intra for Intra and Inter otherwise. Maybe track what was requested so you don't eagerly compute both?


================
Comment at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:11317
+      Changed |= UnderlyingObjects.insert(Obj);
+    return Changed;
+  }
----------------
No need for the local objects, assert the forall call won't fail, it can't.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D141164/new/

https://reviews.llvm.org/D141164



More information about the llvm-commits mailing list