[all-commits] [llvm/llvm-project] 3f540c: [Attributor] Give up early on AANoReturn::initialize

Johannes Doerfert via All-commits all-commits at lists.llvm.org
Tue Oct 6 17:31:53 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 3f540c05dfe90f5c0378614e3a4ada06b967227e
      https://github.com/llvm/llvm-project/commit/3f540c05dfe90f5c0378614e3a4ada06b967227e
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2020-10-06 (Tue, 06 Oct 2020)

  Changed paths:
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/test/Transforms/Attributor/ArgumentPromotion/X86/thiscall.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/byval.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/fp80.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead_2.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/musttail.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/PR16052.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/multiple_callbacks.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/musttail-call.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/naked-return.ll
    M llvm/test/Transforms/Attributor/alwaysinline.ll
    M llvm/test/Transforms/Attributor/internalize.ll
    M llvm/test/Transforms/Attributor/misc.ll
    M llvm/test/Transforms/Attributor/noalias.ll
    M llvm/test/Transforms/Attributor/nocapture-2.ll
    M llvm/test/Transforms/Attributor/read_write_returned_arguments_scc.ll
    M llvm/test/Transforms/Attributor/readattrs.ll
    M llvm/test/Transforms/Attributor/returned.ll

  Log Message:
  -----------
  [Attributor] Give up early on AANoReturn::initialize

If the function is not assumed `noreturn` we should not wait for an
update to mark the call site as "may-return".

This has two kinds of consequences:
  - We have less iterations in many tests.
  - We have less deductions based on "known information" (since we ask
    earlier, point 1, and therefore assumed information is not "known"
    yet).
The latter is an artifact that we might want to tackle properly at some
point but which is not easily fixable right now.


  Commit: c4cfe7a43512c8fadb2aa207f6d914858e2cc50e
      https://github.com/llvm/llvm-project/commit/c4cfe7a43512c8fadb2aa207f6d914858e2cc50e
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2020-10-06 (Tue, 06 Oct 2020)

  Changed paths:
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/test/Transforms/Attributor/ArgumentPromotion/aggregate-promote.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/invalidation.ll
    M llvm/test/Transforms/Attributor/readattrs.ll

  Log Message:
  -----------
  [Attributor] Ignore read accesses to constant memory

The old function attribute deduction pass ignores reads of constant
memory and we need to copy this behavior to replace the pass completely.
First step are constant globals. TBAA can also describe constant
accesses and there are other possibilities. We might want to consider
asking the alias analyses that are available but for now this is simpler
and cheaper.


  Commit: 7993d61177c8c6e9aa238e57a684c6cd3db3b571
      https://github.com/llvm/llvm-project/commit/7993d61177c8c6e9aa238e57a684c6cd3db3b571
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2020-10-06 (Tue, 06 Oct 2020)

  Changed paths:
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/test/Transforms/Attributor/ArgumentPromotion/aggregate-promote.ll
    M llvm/test/Transforms/Attributor/align.ll

  Log Message:
  -----------
  [Attributor] Use smarter way to determine alignment of GEPs

Use same logic existing in other places to deal with base case GEPs.

Add the original Attributor talk example.


Compare: https://github.com/llvm/llvm-project/compare/e3b0414b0ea3...7993d61177c8


More information about the All-commits mailing list