SuccessChanges

Summary

  1. [Attributor][NFCI] Remove obsolete code (details)
  2. [Attributor][FIX] NoCapture is not a subsuming property (details)
  3. [Attributor][NFCI] Avoid unnecessary work except for testing (details)
  4. [Attributor][FIX] Make value simplification aware of "complicated" (details)
  5. [Attributor][FIX] Handle the default case of a switch (details)
  6. [Attributor][FIX] Make AAValueSimplifyArgument aware of thread-dependent (details)
Commit 0c7d4d7f3e26bed39ee4e2817ca5078ab111c05c by johannes
[Attributor][NFCI] Remove obsolete code
The code in question does not add anything as the class is a subclass of
AACallSiteReturnedFromReturnedAndMustBeExecutedContext already.
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
Commit 0437bfcc8338ec79f1d209daf975b9555e51e4b1 by johannes
[Attributor][FIX] NoCapture is not a subsuming property
We cannot look at the subsuming positions and take their nocapture bit
as shown with the two tests for which we derived nocapture on the call
site argument and readonly on the argument of the second before.
The file was modifiedllvm/test/Transforms/FunctionAttrs/arg_nocapture.ll
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
Commit c36e2ebf9ff5fa869bd5717616e71a0d406d0306 by johannes
[Attributor][NFCI] Avoid unnecessary work except for testing
Trying to deduce information for declarations and calls sites of
declarations is not useful in practice but only for testing. Add a flag
that disables this by default but also enable it in the tests.
The misc.ll test will verify the flag "works" as expected.
The file was modifiedllvm/test/Transforms/FunctionAttrs/new_attributes.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/noalias_returned.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/nonnull.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/readattrs.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/noreturn_sync.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/value-simplify.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/dereferenceable.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/callbacks.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/norecurse.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/arg_nocapture.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/liveness.ll
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/test/Transforms/FunctionAttrs/nofree-attributor.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/nosync.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/fn_noreturn.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/align.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/nounwind.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/read_write_returned_arguments_scc.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/nocapture.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/willreturn.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/internal-noalias.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/arg_returned.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/misc.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/noreturn_async.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/heap_to_stack.ll
Commit 15cd90a2c44aacbab1fe8682b8c07101ccffb9c4 by johannes
[Attributor][FIX] Make value simplification aware of "complicated"
attributes
We cannot simply replace arguments that carry attributes like `nest`,
`inalloca`, `sret`, and `byval`. Except for the last one, which we can
replace if it is not written, we bail for now.
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/test/Transforms/FunctionAttrs/value-simplify.ll
Commit ed47a9cde4f667058ac34ef7805fc4093a5a4f7b by johannes
[Attributor][FIX] Handle the default case of a switch
In D69605 only the "cases" of a switch were handled but if none matched
we did not make the default case life. This is fixed now and properly
tested (with code from IPConstantProp/user-with-multiple-uses.ll).
The file was modifiedllvm/test/Transforms/FunctionAttrs/liveness.ll
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
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