History log of /llvm-project/llvm/unittests/Analysis/ValueTrackingTest.cpp (Results 26 – 50 of 126)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 6f01cb91 28-Apr-2023 Justin Lebar <justin.lebar@gmail.com>

Handle `select` in programUndefinedIfPoison.

If both the true and false operands of a `select` are poison, then the `select`
is poison.

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


# 0125b8d2 25-Apr-2023 Matt Arsenault <Matthew.Arsenault@amd.com>

ValueTracking: Fix computeKnownFPClass handling for copysign

We need to expand the set of possible classes to the opposite
sign for the first operand if we don't know the sign of the second
operand.


# f40d186d 17-Apr-2023 Matt Arsenault <Matthew.Arsenault@amd.com>

ValueTracking: Add ordered negative handling for fmul to computeKnownFPClass

Port from the existing handling in cannotBeOrderedLessThanZero


# b0aa6d76 19-Apr-2023 Matt Arsenault <Matthew.Arsenault@amd.com>

ValueTracking: Fix computeKnownFPClass for fabs

The fabs utility functions have the opposite purpose and
probably should not be a general utility.


# 83adfc91 13-Apr-2023 Matt Arsenault <Matthew.Arsenault@amd.com>

ValueTracking: uitofp/sitofp cannot return denormal results


# 0d448783 13-Apr-2023 Matt Arsenault <Matthew.Arsenault@amd.com>

ValueTracking: sitofp cannot return -0


# fc7c706e 12-Apr-2023 Matt Arsenault <Matthew.Arsenault@amd.com>

ValueTracking: Add cannotBeOrderedLessThanZero to KnownFPClass

Eventually we should be able to replace the existing
CannotBeOrderedLessThanZero.


# 054cac10 08-Apr-2023 Matt Arsenault <Matthew.Arsenault@amd.com>

ValueTracking: Address todo for nan fmul handling in computeKnownFPClass

If both operands can't be zero or nan, the result can't be nan.


# 4d044bfb 08-Apr-2023 Matt Arsenault <Matthew.Arsenault@amd.com>

ValueTracking: Handle no-nan check for computeKnownFPClass for fmul

Copy the logic from isKnownNeverNaN for fadd/fsub. Leave the
extension to handle the zero case for a future change.


# 94adb39b 12-Apr-2023 Matt Arsenault <Matthew.Arsenault@amd.com>

unittests: Use opaque pointers in a test


# 6aca4009 08-Apr-2023 Matt Arsenault <Matthew.Arsenault@amd.com>

ValueTracking: Handle no-nan check for computeKnownFPClass for fadd/fsub

Copy the logic from isKnownNeverNaN for fadd/fsub.


Revision tags: llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4
# b39deda3 24-Feb-2023 Matt Arsenault <Matthew.Arsenault@amd.com>

ValueTracking: Handle nofpclass in computeKnownFPClass


Revision tags: llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2
# 931d4098 01-Feb-2023 Matt Arsenault <Matthew.Arsenault@amd.com>

ValueTracking: Add start of computeKnownFPClass API

Add a new compute-known-bits like function to compute all
the interesting floating point properties at once.

Eventually this should absorb all th

ValueTracking: Add start of computeKnownFPClass API

Add a new compute-known-bits like function to compute all
the interesting floating point properties at once.

Eventually this should absorb all the various floating point
queries we already have.

show more ...


# bbfb13a5 06-Mar-2023 Nikita Popov <npopov@redhat.com>

[ConstExpr] Remove select constant expression

This removes the select constant expression, as part of
https://discourse.llvm.org/t/rfc-remove-most-constant-expressions/63179.
Uses of this expression

[ConstExpr] Remove select constant expression

This removes the select constant expression, as part of
https://discourse.llvm.org/t/rfc-remove-most-constant-expressions/63179.
Uses of this expressions have already been removed in advance,
so this just removes related infrastructure and updates tests.

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

show more ...


Revision tags: llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7
# 8a3efcd4 19-Dec-2022 Florian Hahn <flo@fhahn.com>

[ValueTracking] Consider single poison operands in propgatesPoison.

This patch updates propgatesPoison to take a Use as argument and
propagatesPoison now returns true if the passed in operand causes

[ValueTracking] Consider single poison operands in propgatesPoison.

This patch updates propgatesPoison to take a Use as argument and
propagatesPoison now returns true if the passed in operand causes the
user to yield poison if the operand is poison

This allows propagating poison if the condition of a select is poison.
This helps improve results for programUndefinedIfUndefOrPoison.

Reviewed By: nikic

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

show more ...


# 32b38d24 15-Dec-2022 Vasileios Porpodas <vporpodas@google.com>

[NFC] Rename Instruction::insertAt() to Instruction::insertInto(), to be consistent with BasicBlock::insertInto()

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


Revision tags: llvmorg-15.0.6
# 06911ba6 28-Nov-2022 Vasileios Porpodas <vporpodas@google.com>

[NFC] Cleanup: Replaces BB->getInstList().insert() with I->insertAt().

This is part of a series of cleanup patches towards making BasicBlock::getInstList() private.

Differential Revision: https://r

[NFC] Cleanup: Replaces BB->getInstList().insert() with I->insertAt().

This is part of a series of cleanup patches towards making BasicBlock::getInstList() private.

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

show more ...


# b6a01caa 03-Dec-2022 Kazu Hirata <kazu@google.com>

[llvm/unittests] Use std::nullopt instead of None (NFC)

This patch mechanically replaces None with std::nullopt where the
compiler would warn if None were deprecated. The intent is to reduce
the am

[llvm/unittests] Use std::nullopt instead of None (NFC)

This patch mechanically replaces None with std::nullopt where the
compiler would warn if None were deprecated. The intent is to reduce
the amount of manual work required in migrating from Optional to
std::optional.

This is part of an effort to migrate from llvm::Optional to
std::optional:

https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716

show more ...


Revision tags: llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0
# 4e44c22c 25-Aug-2022 Sanjay Patel <spatel@rotateright.com>

[ValueTracking][InstCombine] restrict FP min/max matching to avoid miscompile

This is a long-standing FIXME with a non-FMF test that exposes
the bug as shown in issue #57357.

It's possible that the

[ValueTracking][InstCombine] restrict FP min/max matching to avoid miscompile

This is a long-standing FIXME with a non-FMF test that exposes
the bug as shown in issue #57357.

It's possible that there's still a way to miscompile by
mis-identifying/mis-folding FP min/max patterns, but
this patch only exposes a couple of seemingly minor
regressions while preventing the broken transform.

show more ...


Revision tags: llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init
# a925bef7 24-Jul-2022 Sanjay Patel <spatel@rotateright.com>

[ValueTracking] allow vector types in isImpliedCondition()

The matching of constants assumed integers, but we can handle
splat vector constants seamlessly with m_APInt.


# 4da47bee 24-Jul-2022 Sanjay Patel <spatel@rotateright.com>

[ValueTracking] add test for isImpliedCondition with vector types; NFC


# 11950efe 04-Jul-2022 Nikita Popov <npopov@redhat.com>

[ConstExpr] Remove div/rem constant expressions

D128820 stopped creating div/rem constant expressions by default;
this patch removes support for them entirely.

The getUDiv(), getExactUDiv(), getSDi

[ConstExpr] Remove div/rem constant expressions

D128820 stopped creating div/rem constant expressions by default;
this patch removes support for them entirely.

The getUDiv(), getExactUDiv(), getSDiv(), getExactSDiv(), getURem()
and getSRem() on ConstantExpr are removed, and ConstantExpr::get()
now only accepts binary operators for which
ConstantExpr::isSupportedBinOp() returns true. Uses of these methods
may be replaced either by corresponding IRBuilder methods, or
ConstantFoldBinaryOpOperands (if a constant result is required).

On the C API side, LLVMConstUDiv, LLVMConstExactUDiv, LLVMConstSDiv,
LLVMConstExactSDiv, LLVMConstURem and LLVMConstSRem are removed and
corresponding LLVMBuild methods should be used.

Importantly, this also means that constant expressions can no longer
trap! This patch still keeps the canTrap() method to minimize diff --
I plan to drop it in a separate NFC patch.

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

show more ...


Revision tags: llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init
# a2609be0 25-Jan-2022 Chuanqi Xu <yedeng.yd@linux.alibaba.com>

[ValueTracking] Checking haveNoCommonBitsSet for (x & y) and ~(x | y)

This one tries to fix:
https://github.com/llvm/llvm-project/issues/53357.

Simply, this one would check (x & y) and ~(x | y) in

[ValueTracking] Checking haveNoCommonBitsSet for (x & y) and ~(x | y)

This one tries to fix:
https://github.com/llvm/llvm-project/issues/53357.

Simply, this one would check (x & y) and ~(x | y) in
haveNoCommonBitsSet. Since they shouldn't have common bits (we could
traverse the case by enumerating), and we could convert this one to (x &
y) | ~(x | y) . Then the compiler could handle it in
InstCombineAndOrXor.
Further more, since ((x & y) + (~x & ~y)) would be converted to ((x & y)
+ ~(x | y)), this patch would fix it too.

https://alive2.llvm.org/ce/z/qsKzRS

Reviewed By: spatel, xbolva00, RKSimon, lebedev.ri

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

show more ...


# e59d6dc0 14-Feb-2022 Chuanqi Xu <yedeng.yd@linux.alibaba.com>

[NFC] Precommit for PR53357

Due to there are other required changes in
https://reviews.llvm.org/D118094, precommit these changes to ease
reviewing. Including:
- Remove *_thwart tests.
- Remove test

[NFC] Precommit for PR53357

Due to there are other required changes in
https://reviews.llvm.org/D118094, precommit these changes to ease
reviewing. Including:
- Remove *_thwart tests.
- Remove test for (x & y) + (~x & ~y)
- Fix incorrect uniitest committeed before

show more ...


# 4ee240b8 14-Feb-2022 Chuanqi Xu <yedeng.yd@linux.alibaba.com>

[NFC] [ValueTracking] Add unittest for haveNoCommonBitsSet


123456