[llvm-reduce] Do not crash when accessing landingpads of invokes.
authorFlorian Hahn <flo@fhahn.com>
Fri, 18 Nov 2022 15:19:50 +0000 (15:19 +0000)
committerFlorian Hahn <flo@fhahn.com>
Fri, 18 Nov 2022 15:19:50 +0000 (15:19 +0000)
commit5b6575d50eab705b6d3b20c9f92b9aece5e1bd24
treee54606186ca285a849514efb5fd6c01943447542
parent25bd9e10098a91623b63952967b6561d77f43c15
[llvm-reduce] Do not crash when accessing landingpads of invokes.

Unconditionally removing landing pads results in invalid IR,
if there is a different `invoke` that uses it. Update the code
to only remove the landing pad if the current invoke is the only
user. Also carefully avoid creating plain branches to bbs with
landing pads we couldn't remove.

Reviewed By: arsenm, aeubanks

Differential Revision: https://reviews.llvm.org/D138072
llvm/test/tools/llvm-reduce/invoke-with-missing-landingpad.ll [new file with mode: 0644]
llvm/tools/llvm-reduce/deltas/ReduceBasicBlocks.cpp