[Attributor] Use the white list for attributes consistently
authorJohannes Doerfert <jdoerfert@anl.gov>
Wed, 4 Sep 2019 16:26:20 +0000 (16:26 +0000)
committerJohannes Doerfert <jdoerfert@anl.gov>
Wed, 4 Sep 2019 16:26:20 +0000 (16:26 +0000)
commit97fd582b91581f0b4cb10c77813f1a284bd69a92
treeed49e1dbf5c71e69d52d1b6410d2a7cf75b78d05
parentd9af712da44d960c58310718d9ccbf7056566b98
[Attributor] Use the white list for attributes consistently

Summary:
We create attributes on-demand so we need to check the white list
on-demand. This also unifies the location at which we create,
initialize, and eventually invalidate new abstract attributes.

The tests show mixed results, a few more call site attributes are
determined which can cause more iterations.

Reviewers: uenoku, sstefan1

Subscribers: hiraditya, bollu, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D66913

llvm-svn: 370922
13 files changed:
llvm/include/llvm/Transforms/IPO/Attributor.h
llvm/lib/Transforms/IPO/Attributor.cpp
llvm/test/Transforms/FunctionAttrs/align.ll
llvm/test/Transforms/FunctionAttrs/arg_nocapture.ll
llvm/test/Transforms/FunctionAttrs/dereferenceable.ll
llvm/test/Transforms/FunctionAttrs/liveness.ll
llvm/test/Transforms/FunctionAttrs/nofree-attributor.ll
llvm/test/Transforms/FunctionAttrs/nonnull.ll
llvm/test/Transforms/FunctionAttrs/noreturn_async.ll
llvm/test/Transforms/FunctionAttrs/nosync.ll
llvm/test/Transforms/FunctionAttrs/nounwind.ll
llvm/test/Transforms/FunctionAttrs/read_write_returned_arguments_scc.ll
llvm/test/Transforms/FunctionAttrs/willreturn.ll