[Attributor] Use assumed information to determine side-effects
authorJohannes Doerfert <johannes@jdoerfert.de>
Sun, 12 Jan 2020 06:34:38 +0000 (00:34 -0600)
committerJohannes Doerfert <johannes@jdoerfert.de>
Wed, 12 Feb 2020 23:36:38 +0000 (17:36 -0600)
commit86509e8c3b846ec8f5264be8b3f53a4bef8e83e8
tree8724166f9155a0ad971d11a781b21e6a42dfe0fa
parent190a11148b756e0b650ad9c5b6cf5314e9afdd0a
[Attributor] Use assumed information to determine side-effects

We relied on wouldInstructionBeTriviallyDead before but that functions
does not take assumed information, especially for calls, into account.
The replacement, AAIsDead::isAssumeSideEffectFree, does.

This change makes AAIsDeadCallSiteReturn more complex as we can have
a dead call or only dead users.

The test have been modified to include a side effect where there was
none in order to keep the coverage.

Reviewed By: sstefan1

Differential Revision: https://reviews.llvm.org/D73311
13 files changed:
llvm/lib/Transforms/IPO/Attributor.cpp
llvm/test/Transforms/Attributor/ArgumentPromotion/dbg.ll
llvm/test/Transforms/Attributor/ArgumentPromotion/variadic.ll
llvm/test/Transforms/Attributor/IPConstantProp/multiple_callbacks.ll
llvm/test/Transforms/Attributor/align.ll
llvm/test/Transforms/Attributor/liveness.ll
llvm/test/Transforms/Attributor/misc.ll
llvm/test/Transforms/Attributor/noalias.ll
llvm/test/Transforms/Attributor/nonnull.ll
llvm/test/Transforms/Attributor/noreturn_async.ll
llvm/test/Transforms/Attributor/noreturn_sync.ll
llvm/test/Transforms/Attributor/read_write_returned_arguments_scc.ll
llvm/test/Transforms/Attributor/willreturn.ll