[all-commits] [llvm/llvm-project] 28518d: [InlineFunction] Handle return attributes on call ...

annamthomas via All-commits all-commits at lists.llvm.org
Tue Mar 31 11:35:50 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 28518d9ae39ff5c6044e230d58b6ae28b0252cae
      https://github.com/llvm/llvm-project/commit/28518d9ae39ff5c6044e230d58b6ae28b0252cae
  Author: Anna Thomas <anna at azul.com>
  Date:   2020-03-31 (Tue, 31 Mar 2020)

  Changed paths:
    M clang/test/CodeGen/builtins-systemz-zvector.c
    M clang/test/CodeGen/builtins-systemz-zvector2.c
    M clang/test/CodeGen/movbe-builtins.c
    M clang/test/CodeGen/rot-intrinsics.c
    M llvm/lib/Transforms/Utils/InlineFunction.cpp
    A llvm/test/Transforms/Inline/ret_attr_update.ll

  Log Message:
  -----------
  [InlineFunction] Handle return attributes on call within inlined 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 those 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.

See added test cases.

Reviewed-By: reames, jdoerfert

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




More information about the All-commits mailing list