History log of /llvm-project/llvm/lib/Transforms/Utils/PredicateInfo.cpp (Results 51 – 65 of 65)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 286d5897 11-Oct-2017 Eugene Zelenko <eugene.zelenko@gmail.com>

[Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).

llvm-svn: 315516


Revision tags: llvmorg-5.0.0, llvmorg-5.0.0-rc5, llvmorg-5.0.0-rc4, llvmorg-5.0.0-rc3, llvmorg-5.0.0-rc2
# 9cd976d0 10-Aug-2017 Craig Topper <craig.topper@intel.com>

[DebugCounter] Move the semicolon out of the DEBUG_COUNTER macro and require it to be placed at the end of each use.

This make it consistent with STATISTIC which it will often appears near.

While t

[DebugCounter] Move the semicolon out of the DEBUG_COUNTER macro and require it to be placed at the end of each use.

This make it consistent with STATISTIC which it will often appears near.

While there move one DEBUG_COUNTER instance out of an anonymous namespace. It's already declaring a static variable so the namespace is unnecessary.

llvm-svn: 310637

show more ...


Revision tags: llvmorg-5.0.0-rc1
# 02008c30 29-Jun-2017 Xin Tong <trent.xin.tong@gmail.com>

Remove useless header. NFC

llvm-svn: 306712


# b7df17ec 29-Jun-2017 Daniel Berlin <dberlin@dberlin.org>

PredicateInfo: Use OrderedInstructions instead of our homemade
version.

llvm-svn: 306703


# 6d2db9ed 14-Jun-2017 Daniel Berlin <dberlin@dberlin.org>

PredicateInfo: Don't insert conditional info when a conditional branch jumps to the same target regardless of condition

llvm-svn: 305416


Revision tags: llvmorg-4.0.1, llvmorg-4.0.1-rc3
# 33a1b736 01-Jun-2017 Mandeep Singh Grang <mgrang@codeaurora.org>

[PredicateInfo] Fix non-determinism in codegen uncovered by reverse iterating SmallPtrSet

Summary:
Sort OpsToRename before iterating to make iteration order deterministic.

Thanks to Daniel Berlin f

[PredicateInfo] Fix non-determinism in codegen uncovered by reverse iterating SmallPtrSet

Summary:
Sort OpsToRename before iterating to make iteration order deterministic.

Thanks to Daniel Berlin for the sorting logic.

Reviewers: dberlin, RKSimon, efriedma, davide

Reviewed By: dberlin, davide

Subscribers: sanjoy, davide, llvm-commits

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

llvm-svn: 304447

show more ...


Revision tags: llvmorg-4.0.1-rc2, llvmorg-4.0.1-rc1
# 06faa9bf 11-Apr-2017 Sylvestre Ledru <sylvestre@debian.org>

Simplify the code and remove dead code

Summary: Fix coverity cid 1374240

Reviewers: dberlin

Reviewed By: dberlin

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

llvm-svn: 299924


Revision tags: llvmorg-4.0.0, llvmorg-4.0.0-rc4, llvmorg-4.0.0-rc3
# fccbda96 22-Feb-2017 Daniel Berlin <dberlin@dberlin.org>

PredicateInfo: Support switch statements

Summary:
Depends on D29606 and D29682

Makes us pass GVN's edge.ll (we also will pass a few other testcases
they just need cleaning up).

Thoughts on the Pre

PredicateInfo: Support switch statements

Summary:
Depends on D29606 and D29682

Makes us pass GVN's edge.ll (we also will pass a few other testcases
they just need cleaning up).

Thoughts on the Predicate* hiearchy of classes especially welcome :)
(it's not clear to me how best to organize it, and currently, the getBlock* seems ... uglier than maybe wasting a field somewhere or something).

Reviewers: davide

Subscribers: llvm-commits

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

llvm-svn: 295889

show more ...


# 57981809 19-Feb-2017 Simon Pilgrim <llvm-dev@redking.me.uk>

Removed extra ';'

llvm-svn: 295603


# a4b5c01d 19-Feb-2017 Daniel Berlin <dberlin@dberlin.org>

Add a DebugCounter for PredicateInfo renaming, and an associated test

llvm-svn: 295594


# dba90119 19-Feb-2017 Simon Pilgrim <llvm-dev@redking.me.uk>

Fix unused variable warning when assertions are disabled.

llvm-svn: 295587


# 588e0be3 18-Feb-2017 Daniel Berlin <dberlin@dberlin.org>

PredicateInfo: Clean up predicate info a little, using insertion
helpers, and fixing support for the renaming the comparison.

llvm-svn: 295581


# dbe8264c 12-Feb-2017 Daniel Berlin <dberlin@dberlin.org>

PredicateInfo: Handle critical edges

Summary:
This adds support for placing predicateinfo such that it affects critical edges.

This fixes the issues mentioned by Nuno on the mailing list.

Depends

PredicateInfo: Handle critical edges

Summary:
This adds support for placing predicateinfo such that it affects critical edges.

This fixes the issues mentioned by Nuno on the mailing list.

Depends on D29519

Reviewers: davide, nlopes

Subscribers: llvm-commits

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

llvm-svn: 294921

show more ...


Revision tags: llvmorg-4.0.0-rc2
# c763fd1a 07-Feb-2017 Daniel Berlin <dberlin@dberlin.org>

PredicateInfo: Some compilers are unhappy with naming Use *'s Use. Change the name.

llvm-svn: 294364


# 439042b7 07-Feb-2017 Daniel Berlin <dberlin@dberlin.org>

Add PredicateInfo utility and printing pass

Summary:
This patch adds a utility to build extended SSA (see "ABCD: eliminating
array bounds checks on demand"), and an intrinsic to support it. This
is

Add PredicateInfo utility and printing pass

Summary:
This patch adds a utility to build extended SSA (see "ABCD: eliminating
array bounds checks on demand"), and an intrinsic to support it. This
is then used to get functionality equivalent to propagateEquality in
GVN, in NewGVN (without having to replace instructions as we go). It
would work similarly in SCCP or other passes. This has been talked
about a few times, so i built a real implementation and tried to
productionize it.

Copies are inserted for operands used in assumes and conditional
branches that are based on comparisons (see below for more)

Every use affected by the predicate is renamed to the appropriate
intrinsic result.

E.g.
%cmp = icmp eq i32 %x, 50
br i1 %cmp, label %true, label %false
true:
ret i32 %x
false:
ret i32 1

will become

%cmp = icmp eq i32, %x, 50
br i1 %cmp, label %true, label %false
true:
; Has predicate info
; branch predicate info { TrueEdge: 1 Comparison: %cmp = icmp eq i32 %x, 50 }
%x.0 = call @llvm.ssa_copy.i32(i32 %x)
ret i32 %x.0
false:
ret i23 1

(you can use -print-predicateinfo to get an annotated-with-predicateinfo dump)

This enables us to easily determine what operations are affected by a
given predicate, and how operations affected by a chain of
predicates.

Reviewers: davide, sanjoy

Subscribers: mgorny, llvm-commits, Prazek

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

Update for review comments

Fix a bug Nuno noticed where we are giving information about and/or on edges where the info is not useful and easy to use wrong

Update for review comments

llvm-svn: 294351

show more ...


123