[PATCH] D83370: [CallGraph] Ignore callback uses

Johannes Doerfert via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 10 14:00:51 PDT 2020


jdoerfert added inline comments.


================
Comment at: llvm/test/Transforms/Attributor/IPConstantProp/arg-count-mismatch.ll:47
+; IS__CGSCC_OPM-NEXT:    [[CALL:%.*]] = call i16 bitcast (i16 (i16, i16)* @bar to i16 (i16)*)(i16 [[A]])
+; IS__CGSCC_OPM-NEXT:    ret i16 [[CALL]]
 ;
----------------
The problem here is the missing "reference" edge in the old call graph. Before the patch `bar` is externally callable and `foo` calls an external function. With the patch, neither is the case but `foo` is also not calling `bar` (I think).

The solution is to verify we are looking at a callback call and not any abstract call site. Callback calls cause such "reference" edges since D82572.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D83370





More information about the llvm-commits mailing list