[PATCH] D77734: [AssumeBundles] Adapt RecursivelyDeleteTriviallyDeadInstructions and depending passes.

Tyker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 9 07:01:42 PDT 2020


Tyker added inline comments.


================
Comment at: llvm/test/Transforms/Attributor/ArgumentPromotion/byval-2.ll:3
+; RUN: opt -S -passes=attributor -aa-pipeline='basic-aa' -attributor-disable=false -attributor-max-iterations-verify -attributor-max-iterations=3 < %s | FileCheck %s --check-prefixes=CHECK,NO_ASSUME
+; RUN: opt -S -passes=attributor --enable-knowledge-retention -aa-pipeline='basic-aa' -attributor-disable=false -attributor-max-iterations-verify -attributor-max-iterations=3 < %s | FileCheck %s --check-prefixes=CHECK,USE_ASSUME
 
----------------
jdoerfert wrote:
> When you rebase you'll get a conflict. I recommend using the new file and adding `--enable-knowledge-retention ` to some or all of the 4 run configurations. check lines are generated :)
thanks for the heads up. 


================
Comment at: llvm/test/Transforms/Attributor/ArgumentPromotion/byval-2.ll:37
+; USE_ASSUME-NEXT:    store i64 2, i64* [[TMP4]], align 4
+; USE_ASSUME-NEXT:    call void @llvm.assume(i1 true) [ "align"(i32* [[X]], i64 4), "align"(%struct.ss* [[S]], i64 8), "dereferenceable"(i32* [[X]], i64 4), "dereferenceable"(%struct.ss* [[S]], i64 12), "nonnull"(%struct.ss* [[S]]), "nonnull"(i32* [[X]]) ]
+; USE_ASSUME-NEXT:    ret i32 0
----------------
jdoerfert wrote:
> Note: We really have to teach the Attributor to prune these. I'll get to it or make it a task for one of the GSoC students.
by prune you mean removing redundant knowledge ? 


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D77734





More information about the llvm-commits mailing list