llvm-project/llvm/test/Transforms/FunctionAttrs
Nick Desaulniers 9dcb006165 [funcattrs] check reachability to improve noreturn
There was a fixme in the code pertaining to attributing functions as
noreturn.  By using reachability, if none of the blocks that are
reachable from the entry return, then the function is noreturn.

Previously, the code only checked if any blocks returned. If they're
unreachable, then they don't matter.

This improves codegen for the Linux kernel.

Fixes: https://github.com/ClangBuiltLinux/linux/issues/1563

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D119571
2022-02-14 14:01:59 -08:00
..
2008-09-03-Mutual.ll
2008-09-03-ReadNone.ll
2008-09-03-ReadOnly.ll
2008-09-13-VolatileRead.ll
2008-12-29-Constant.ll
2009-01-02-LocalStores.ll [funcattrs] Fix a bug in recently introduced writeonly argument inference 2021-12-03 08:57:15 -08:00
2010-10-30-volatile.ll
arg_returned.ll
assume.ll
atomic.ll Extend the `uwtable` attribute with unwind table kind 2022-02-14 14:35:02 +00:00
comdat-ipo.ll
convergent.ll
incompatible_fn_attrs.ll Reapply [IR] Don't mark mustprogress as type attribute 2021-07-09 20:57:44 +02:00
int_sideeffect.ll
invalidate.ll [NewPM] Only invalidate modified functions' analyses in CGSCC passes + turn on eagerly invalidate analyses 2021-11-15 14:44:53 -08:00
naked_functions.ll
nocapture.ll [funcattrs] Consistently treat calling a function pointer as a non-capturing read 2021-12-17 09:02:03 -08:00
nofree-attributor.ll Extend the `uwtable` attribute with unwind table kind 2022-02-14 14:35:02 +00:00
nofree.ll Extend the `uwtable` attribute with unwind table kind 2022-02-14 14:35:02 +00:00
nonnull-global.ll
nonnull.ll
norecurse.ll [funcattrs] Infer writeonly argument attribute [part 2] 2022-01-04 09:07:54 -08:00
noreturn.ll [funcattrs] check reachability to improve noreturn 2022-02-14 14:01:59 -08:00
nosync.ll Extend the `uwtable` attribute with unwind table kind 2022-02-14 14:35:02 +00:00
nounwind.ll Reapply [IR] Don't mark mustprogress as type attribute 2021-07-09 20:57:44 +02:00
operand-bundles-scc.ll
optnone-simple.ll
optnone.ll Reapply [IR] Don't mark mustprogress as type attribute 2021-07-09 20:57:44 +02:00
out-of-bounds-iterator-bug.ll [funcattrs] Infer access attributes for vararg arguments 2021-12-21 09:34:14 -08:00
read-write-scc.ll
readattrs.ll [funcattrs] Use callsite param attributes from indirect calls when inferring access attributes 2021-12-22 18:21:59 -08:00
readnone.ll
returned.ll
willreturn-callsites.ll Reapply [IR] Don't mark mustprogress as type attribute 2021-07-09 20:57:44 +02:00
willreturn.ll Reapply [IR] Don't mark mustprogress as type attribute 2021-07-09 20:57:44 +02:00
writeonly.ll [tests] Add coverage of writeonly attribute and operand bundle intersection 2022-01-18 12:08:14 -08:00