[PATCH] D104059: [WIP][Attributor] Derive AACallEdges attribute

Johannes Doerfert via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 16 11:19:37 PDT 2021


jdoerfert added a comment.

More comments, also, please fix the clang tidy warnings, they make it hard to read.



================
Comment at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:8152
+        if (CalledFunctions.insert(Fn)) {
+          Change = Change | ChangeStatus::CHANGED;
+          LLVM_DEBUG(dbgs() << "[AACallEdges] New call edge: "
----------------



================
Comment at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:8170
+      genericValueTraversal<AACallEdges, bool>(
+            A, IRPosition::value(*V), *this, HasUnknownNew, VisitValue, nullptr, false);
+
----------------
You need to bail if the return value is false, IIRC.


================
Comment at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:8173
+      if (HasUnknownNew != HasUnknownCallee)
+        Change = Change | ChangeStatus::CHANGED;
+      HasUnknownCallee = HasUnknownNew;
----------------



================
Comment at: llvm/lib/Transforms/IPO/AttributorAttributes.cpp:8192
+    // Visit all callable instructions.
+    A.checkForAllCallLikeInstructions(ProcessCallInst, *this);
+
----------------
You need to bail if the return value is false.


================
Comment at: llvm/test/Transforms/Attributor/callgraph.ll:62
+; DOT-DAG: Node[[FUNC5]] -> Node[[FUNC3]];
+; FIXME !!!Node[[FUNC5]] -> Node[[FUNC4]];
----------------
kuter wrote:
> This edge is missing. `genericValueTraversal` doesn't seem to be returning the func4. 
That would be a problem, can you try to figure out what's going on?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D104059



More information about the llvm-commits mailing list