1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/test/Transforms/FunctionAttrs
Johannes Doerfert d2fb0393aa [Attributor][NFCI] Distinguish optional and required dependences
Dependences between two abstract attributes SRC and TRG come naturally in
two flavors:
  Either (1) "some" information of SRC is *required* for TRG to derive
  information, or (2) SRC is just an *optional* way for TRG to derive
  information.

While it is not strictly necessary to distinguish these types
explicitly, it can help us to converge faster, in terms of iterations,
and also cut down the number of `AbstractAttribute::update` calls.

As far as I can tell, we only use optional dependences for liveness so
far but that might change in the future. With this change the Attributor
can be informed about the "dependence class" and it will perform
appropriate actions when an Attribute is set to an invalid state, thus
one that cannot be used by others to derive information from.
2019-11-02 15:26:22 -05: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
2010-10-30-volatile.ll
align.ll [Attributor][NFCI] Distinguish optional and required dependences 2019-11-02 15:26:22 -05:00
arg_nocapture.ll NoFree argument attribute. 2019-11-02 19:40:48 +01:00
arg_returned.ll [Attributor][NFCI] Distinguish optional and required dependences 2019-11-02 15:26:22 -05:00
assume.ll
atomic.ll
callbacks.ll [Attributor][NFCI] Avoid unnecessary work except for testing 2019-11-02 00:28:24 -05:00
comdat-ipo.ll IR: print value numbers for unnamed function arguments 2019-08-03 14:28:34 +00:00
convergent.ll
dereferenceable.ll NoFree argument attribute. 2019-11-02 19:40:48 +01:00
fn_noreturn.ll [Attributor] willreturn + noreturn = UB 2019-11-02 00:35:22 -05:00
heap_to_stack.ll NoFree argument attribute. 2019-11-02 19:40:48 +01:00
incompatible_fn_attrs.ll
int_sideeffect.ll
internal-noalias.ll [Attributor][NFCI] Distinguish optional and required dependences 2019-11-02 15:26:22 -05:00
liveness.ll [Attributor][NFCI] Distinguish optional and required dependences 2019-11-02 15:26:22 -05:00
misc.ll NoFree argument attribute. 2019-11-02 19:40:48 +01:00
naked_functions.ll IR: print value numbers for unnamed function arguments 2019-08-03 14:28:34 +00:00
new_attributes.ll [Attributor][NFCI] Avoid unnecessary work except for testing 2019-11-02 00:28:24 -05:00
noalias_returned.ll NoFree argument attribute. 2019-11-02 19:40:48 +01:00
nocapture.ll NoFree argument attribute. 2019-11-02 19:40:48 +01:00
nofree-attributor.ll [Attributor][NFCI] Distinguish optional and required dependences 2019-11-02 15:26:22 -05:00
nofree.ll
nonnull-global.ll
nonnull.ll [Attributor][NFCI] Distinguish optional and required dependences 2019-11-02 15:26:22 -05:00
norecurse.ll NoFree argument attribute. 2019-11-02 19:40:48 +01:00
noreturn_async.ll [Attributor][NFCI] Avoid unnecessary work except for testing 2019-11-02 00:28:24 -05:00
noreturn_sync.ll [Attributor][NFCI] Avoid unnecessary work except for testing 2019-11-02 00:28:24 -05:00
nosync.ll NoFree argument attribute. 2019-11-02 19:40:48 +01:00
nounwind.ll [Attributor][NFCI] Avoid unnecessary work except for testing 2019-11-02 00:28:24 -05:00
operand-bundles-scc.ll
optnone-simple.ll
optnone.ll
out-of-bounds-iterator-bug.ll
read_write_returned_arguments_scc.ll [Attributor][NFCI] Distinguish optional and required dependences 2019-11-02 15:26:22 -05:00
read-write-scc.ll
readattrs.ll NoFree argument attribute. 2019-11-02 19:40:48 +01:00
readnone.ll IR: print value numbers for unnamed function arguments 2019-08-03 14:28:34 +00:00
returned.ll
value-simplify.ll NoFree argument attribute. 2019-11-02 19:40:48 +01:00
willreturn.ll NoFree argument attribute. 2019-11-02 19:40:48 +01:00
writeonly.ll LLVM: Optimization Pass: Remove conflicting attribute, if any, before 2019-09-11 14:26:22 +00:00