[PATCH] D128830: [Pipelines] Introduce DAE after ArgumentPromotion
Pavel Samolysov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 24 03:13:43 PDT 2022
psamolysov added a comment.
I tried to triage a bit. The test `lldb\test\API\functionalities\unused-inlined-parameters\TestUnusedInlinedParameters.py` compiles the code in `main.c` with `-O1` and generates the following IR for the `@f` function:
; Function Attrs: alwaysinline nounwind uwtable
define dso_local void @f(ptr nocapture noundef readnone %unused1, i32 noundef %used, i32 noundef %unused2) local_unnamed_addr #1 {
entry:
tail call void @use(i32 noundef %used)
ret void
}
With the reverted patch, the IR looks like the follow:
; Function Attrs: alwaysinline nounwind uwtable
define dso_local void @f(ptr nocapture readnone %unused1, i32 noundef %used, i32 %unused2) local_unnamed_addr #1 {
entry:
tail call void @use(i32 noundef %used)
ret void
}
So, as we can see, the attribute `readnone` is present for the first unused argument for which an additional piece of the DWARF code is generated in both IRs but the `noundef` attribute is omitted in the second case (so, this attribute is introduces by some changes in the patch and this is "documented" by the changes in the `llvm/test/Transforms/InstCombine/unused-nonnull.ll` test).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D128830/new/
https://reviews.llvm.org/D128830
More information about the llvm-commits
mailing list