SuccessChanges

Summary

  1. [Attributor][FIX] Make AAValueSimplifyArgument aware of thread-dependent (details)
  2. [Attributor] `willreturn` + `noreturn` = UB (details)
Commit e360ee62650609112b08e4ab2249e1e5a8c9e0d0 by johannes
[Attributor][FIX] Make AAValueSimplifyArgument aware of thread-dependent
constants
As in IPConstantProp, thread-dependent constants need not be propagated
over callbacks. Took the comment and test from there, see also D56447.
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/test/Transforms/IPConstantProp/thread_local_acs.ll
Commit 1b6041a9e8c537894dfda998fdd3d284b1111bd2 by johannes
[Attributor] `willreturn` + `noreturn` = UB
We gave up on `noreturn` if `willreturn` was known for a while but we
now again try to always derive `noreturn`. This is useful because a
function that is `noreturn` + `willreturn` is basically dead as
executing it would lead to undefined behavior (UB).
This came up in the IPConstantProp cases where a function only contained
a unreachable but was not marked `noreturn` which caused missed
opportunities down the line.
The file was modifiedllvm/test/Transforms/FunctionAttrs/fn_noreturn.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/internal-noalias.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/norecurse.ll
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp