[all-commits] [llvm/llvm-project] 5699d0: [Attributor] Use knowledge retained in llvm.assume...

Johannes Doerfert via All-commits all-commits at lists.llvm.org
Tue Mar 24 13:34:45 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 5699d08b79afdaed167fb202a4e22d73d6f1bf48
      https://github.com/llvm/llvm-project/commit/5699d08b79afdaed167fb202a4e22d73d6f1bf48
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2020-03-24 (Tue, 24 Mar 2020)

  Changed paths:
    M llvm/include/llvm/IR/KnowledgeRetention.h
    M llvm/include/llvm/Transforms/IPO/Attributor.h
    M llvm/lib/IR/KnowledgeRetention.cpp
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/test/Transforms/Attributor/dereferenceable-1.ll
    M llvm/test/Transforms/Attributor/nofree.ll
    M llvm/test/Transforms/Attributor/nonnull.ll
    M llvm/unittests/IR/KnowledgeRetentionTest.cpp

  Log Message:
  -----------
  [Attributor] Use knowledge retained in llvm.assume (operand bundles)

This patch integrates operand bundle llvm.assumes [0] with the
Attributor. Most IRAttributes will now look at uses of the associated
value and if there are llvm.assume operand bundle uses with the right
tag we will check if they are in the must-be-executed-context (around
the context instruction). Droppable users, which is currently only
llvm::assume, are handled special in some places now as well.

[0] http://lists.llvm.org/pipermail/llvm-dev/2019-December/137632.html

Reviewed By: uenoku

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




More information about the All-commits mailing list