HomePhabricator

[InlineFunction] Update valid return attributes at callsite within callee body

Authored by anna on Apr 1 2020, 8:16 AM.

Description

[InlineFunction] Update valid return attributes at callsite within callee body

Consider a callee function that has a call (C) within it which feeds
into the return. When we inline that callee into a callsite that has
return attributes, we can backward propagate valid attributes to the
call (C) within that inlined callee body.

This is safe to do so only if we can guarantee transfer of execution to
successor in the window of instructions between return value (i.e. the
call C) and the return instruction.

Also, this is valid only for attributes which are a property of a
callsite and not those that are not dependent on the ABI, or a property
of the call itself.

Reviewed-By: reames, jdoerfert

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

Details

Committed
annaApr 2 2020, 11:13 AM
Differential Revision
D76140: [InlineFunction] update attributes during inlining
Parents
rGc3d3c22a5834: AMDGPU: Hack out noinline on functions using LDS globals
Branches
Unknown
Tags
Unknown