SuccessChanges

Summary

  1. [Attributor][FIX] Transform invoke of nounwind to call + br %normal_dest (details)
  2. [Attributor][FIX] Do not try to cast if a cast is not required (details)
Commit c7ab19dbb0f1f5c76ff70c7acab9f20c796cafb3 by johannes
[Attributor][FIX] Transform invoke of nounwind to call + br %normal_dest
Even if the invoked function may-return, we can replace it with a call
and branch if it is nounwind. We had almost everything in place to do
this but did not which actually caused a crash when we removed the
landingpad from the actually dead unwind block.
Exposed by the IPConstantProp tests.
The file was modifiedllvm/test/Transforms/FunctionAttrs/liveness.ll
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
Commit 07d16424f28482a852a35bd817189d4dfb1701ef by johannes
[Attributor][FIX] Do not try to cast if a cast is not required
When we replace constant returns at the call site we did issue a cast in
the hopes it would be a no-op if the types are equal. Turns out that is
not the case and we have to check it ourselves first.
Reused an IPConstantProp test for coverage. No functional change to the
test wrt. IPConstantProp.
The file was modifiedllvm/test/Transforms/IPConstantProp/PR43857.ll
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp