[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