[PATCH] D146327: [ArgPromotion] Remove dead code produced by removing dead arguments

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 17 13:33:37 PDT 2023


nikic requested changes to this revision.
nikic added a comment.
This revision now requires changes to proceed.

Please add a PhaseOrdering test that demonstrates why it it useful to do this as part of ArgumentPromotion, rather than letting other passes clean this up.



================
Comment at: llvm/lib/Transforms/IPO/ArgumentPromotion.cpp:282
+          }
+        }
       }
----------------
This implementation looks too complicated. It should be enough to collect all potentially dead arguments and then call RecursivelyDeleteTriviallyDeadInstructionsPermissive() on the vector.


================
Comment at: llvm/test/Transforms/ArgumentPromotion/propagate-remove-dead-args.ll:1
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt < %s -passes=argpromotion -S | FileCheck %s
----------------
Add `--function-signature` or `--version 2`.


================
Comment at: llvm/test/Transforms/ArgumentPromotion/propagate-remove-dead-args.ll:6
+
+define internal void @child(ptr %this, ptr %y, ptr %x) nounwind {
+; CHECK-LABEL: @child(
----------------
nounwind not needed?


================
Comment at: llvm/test/Transforms/ArgumentPromotion/propagate-remove-dead-args.ll:32
+  %load0 = load ptr, ptr %src_element_op_0
+  call fastcc void @child(ptr %load0, ptr %p1, ptr %p2)
+  %src_element_op_1 = getelementptr ptr, ptr %this, i64 1
----------------
fastcc not needed?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D146327



More information about the llvm-commits mailing list