d23909802e
Parameter instructions inside CatchBlockEntry's initial definitions are similar to Phi instructions: Parameter value at entry to the catch would be taken from corresponding slot in the environment attached to the instruction which threw the exception which is being caught. Thus similarly to Phi-s Parameter instructions can be redundant (if they always evaluate to the same value - no matter where control arrives from) or dead (if their value never reaches real instruction). We already had an analysis to discover subset of redundant Parameter-s which always evaluate to a constant value. This CL introduces analysis to eliminate dead Parameter-s. This should significantly reduce size of metadata generated for try/catch and reduce spilling within functions with try/catch. On Flutter Gallery: reduces Isolate part of snapshot by 15k (0.7%), Instructions part is reduced by 2.7K (0.06%). Change-Id: I345813e326152ca2ed2d4d5353bb64730d7545d4 Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-android-release-arm-try, vm-kernel-precomp-bare-linux-release-simarm-try, vm-kernel-precomp-bare-linux-release-simarm64-try, vm-kernel-precomp-bare-linux-release-x64-try, vm-kernel-precomp-linux-debug-x64-try, vm-kernel-precomp-linux-product-x64-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97110 Commit-Queue: Vyacheslav Egorov <vegorov@google.com> Reviewed-by: Aart Bik <ajcbik@google.com>