[PATCH] D65701: [Attributor][Fix] Resolve various liveness issues

Johannes Doerfert via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Aug 3 11:56:13 PDT 2019


jdoerfert created this revision.
jdoerfert added reviewers: sstefan1, uenoku.
Herald added subscribers: bollu, hiraditya.
Herald added a project: LLVM.

This contains various fixes:

- Explicitly determine and return the next noreturn instruction.
- If an invoke calls a noreturn function which is not nounwind we keep the unwind destination live. This also means we require an invoke. Though we can still add the unreachable to the normal destination block.
- Check if the return instructions are dead after we look for calls to avoid triggering an optimistic fixpoint in the presence of assumed liveness information.
- Make the interface work with "const" pointers.
- Some simplifications

While additional tests are included, full coverage is achieved only with
D59978 <https://reviews.llvm.org/D59978>.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D65701

Files:
  llvm/include/llvm/Transforms/IPO/Attributor.h
  llvm/lib/Transforms/IPO/Attributor.cpp
  llvm/test/Transforms/FunctionAttrs/liveness.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D65701.213196.patch
Type: text/x-patch
Size: 15656 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190803/b3f0dac8/attachment.bin>


More information about the llvm-commits mailing list