Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4 |
|
#
877cb9a2 |
| 05-Nov-2024 |
goldsteinn <35538541+goldsteinn@users.noreply.github.com> |
[KnownBits] Make `{s,u}{add,sub}_sat` optimal (#113096)
Changes are:
1) Make signed-overflow detection optimal
2) For signed-overflow, try to rule out direction even if we can't
to
[KnownBits] Make `{s,u}{add,sub}_sat` optimal (#113096)
Changes are:
1) Make signed-overflow detection optimal
2) For signed-overflow, try to rule out direction even if we can't
totally rule out overflow.
3) Intersect add/sub assuming no overflow with possible overflow
clamping values as opposed to add/sub without the assumption.
show more ...
|
Revision tags: llvmorg-19.1.3 |
|
#
40c3e583 |
| 22-Oct-2024 |
Jay Foad <jay.foad@amd.com> |
[KnownBits] Check that mul is optimal for low order bits (#113316)
|
Revision tags: llvmorg-19.1.2 |
|
#
5cabf150 |
| 01-Oct-2024 |
Jay Foad <jay.foad@amd.com> |
[KnownBits] Make `avg{Ceil,Floor}S` optimal (#110688)
Rewrite the signed functions in terms of the unsigned ones which are
already optimal.
|
Revision tags: llvmorg-19.1.1 |
|
#
bbdca53b |
| 30-Sep-2024 |
Noah Goldstein <goldstein.w.n@gmail.com> |
[KnownBitsTest] Add optimality tests to some optimal impls; NFC
Adding optimality test to `add`, `sub`, `avgCeilU` and `avgFloorU`
|
Revision tags: llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3 |
|
#
11ba72e6 |
| 12-Aug-2024 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
[KnownBits] Add KnownBits::add and KnownBits::sub helper wrappers. (#99468)
|
Revision tags: llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8 |
|
#
4f111198 |
| 10-Jun-2024 |
c8ef <c8ef@outlook.com> |
[KnownBits] re-introduce RefinePosionToZero in unittest (#94848)
Context: https://github.com/llvm/llvm-project/pull/94568/files#r1631349423
- Reintroduce the RefinePositionToZero path in the unit
[KnownBits] re-introduce RefinePosionToZero in unittest (#94848)
Context: https://github.com/llvm/llvm-project/pull/94568/files#r1631349423
- Reintroduce the RefinePositionToZero path in the unittest.
- Adjust some inline function argument hints to match the same style.
show more ...
|
#
b25b1db8 |
| 07-Jun-2024 |
c8ef <c8ef@outlook.com> |
[KnownBits] Remove `hasConflict()` assertions (#94568)
Allow KnownBits to represent "always poison" values via conflict.
close: #94436
|
Revision tags: llvmorg-18.1.7 |
|
#
eab92cb7 |
| 19-May-2024 |
Nhat Nguyen <nhat7203@gmail.com> |
[llvm] Add KnownBits implementations for avgFloor and avgCeil (#86445)
This PR is to address the issue #84640
|
Revision tags: llvmorg-18.1.6, llvmorg-18.1.5 |
|
#
346d2c02 |
| 22-Apr-2024 |
Jay Foad <jay.foad@amd.com> |
[KnownBitsTest] Standardize variable names in exhaustive tests
|
#
f0cbdd3e |
| 22-Apr-2024 |
Jay Foad <jay.foad@amd.com> |
[KnownBitsTest] Print name of function when exhaustive tests fail (#89588)
When exhaustive unary/binary tests fail, print the name of the function
being tested as well as the values of the inputs a
[KnownBitsTest] Print name of function when exhaustive tests fail (#89588)
When exhaustive unary/binary tests fail, print the name of the function
being tested as well as the values of the inputs and outputs.
Example of a simulated failure in testing "udiv exact":
unittests/Support/KnownBitsTest.cpp:99: Failure
Value of: checkResult(Name, Exact, Computed, {Known1, Known2},
CheckOptimality)
Actual: false (udiv exact: Inputs = ???1, ????, Computed = ???1, Exact =
0???)
Expected: true
show more ...
|
#
10654e46 |
| 22-Apr-2024 |
Jay Foad <jay.foad@amd.com> |
[KnownBitsTest] Common up isCorrect and isOptimal. NFC. (#89585)
This de-duplicates the code that prints useful information when a test
fails.
|
#
0a5f50d5 |
| 19-Apr-2024 |
Jay Foad <jay.foad@amd.com> |
[KnownBits] Simplify optimality checking in unit tests. NFC. (#89368)
Use bool instead of function_ref.
|
#
d8a26ca3 |
| 18-Apr-2024 |
Jay Foad <jay.foad@amd.com> |
[KnownBits] Make abdu and abds optimal (#89081)
Fixes #84212
|
Revision tags: llvmorg-18.1.4, llvmorg-18.1.3 |
|
#
4aba595f |
| 02-Apr-2024 |
Atousa Duprat <atousa.p@gmail.com> |
[ADT] Add signed and unsigned mulh to APInt (#84719)
Fixes #84207
|
Revision tags: llvmorg-18.1.2 |
|
#
110f6301 |
| 19-Mar-2024 |
Jay Foad <jay.foad@amd.com> |
[KnownBits] Remove useless lambdas from unit test
|
#
91e68a41 |
| 14-Mar-2024 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
[Support] KnownBitsTest - don't bother creating lambdas in testBinaryOpExhaustive callbacks if we can just use the raw KnownBits/APIntOps function reference. NFCI.
|
#
ffe41819 |
| 12-Mar-2024 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
[Support] Add KnownBits::abds signed absolute difference and rename absdiff -> abdu (#84897)
When I created KnownBits::absdiff, I totally missed that we already have ISD::ABDS/ABDU nodes, and we use
[Support] Add KnownBits::abds signed absolute difference and rename absdiff -> abdu (#84897)
When I created KnownBits::absdiff, I totally missed that we already have ISD::ABDS/ABDU nodes, and we use this term in other places/targets as well.
I've added the KnownBits::abds implementation and renamed KnownBits::absdiff to KnownBits::abdu.
Followup to #84791
show more ...
|
#
33588384 |
| 12-Mar-2024 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
[ADT] Add APIntOps::abds signed absolute difference and rename absdiff -> abdu (#84791)
When I created APIntOps::absdiff, I totally missed that we already have ISD::ABDS/ABDU nodes, and we use this
[ADT] Add APIntOps::abds signed absolute difference and rename absdiff -> abdu (#84791)
When I created APIntOps::absdiff, I totally missed that we already have ISD::ABDS/ABDU nodes, and we use this term in other places/targets as well.
I've added the APIntOps::abds implementation and renamed APIntOps::absdiff to APIntOps::abdu.
Given that APIntOps::absdiff is so young I don't think we need to create a deprecation wrapper, but I can if anyone thinks it important.
I'll do a KnownBits rename patch after this.
show more ...
|
Revision tags: llvmorg-18.1.1 |
|
#
d81db0e5 |
| 06-Mar-2024 |
Noah Goldstein <goldstein.w.n@gmail.com> |
[KnownBits] Implement knownbits `lshr`/`ashr` with exact flag
The exact flag basically allows us to set an upper bound on shift amount when we have a known 1 in `LHS`.
Typically we deduce exact usi
[KnownBits] Implement knownbits `lshr`/`ashr` with exact flag
The exact flag basically allows us to set an upper bound on shift amount when we have a known 1 in `LHS`.
Typically we deduce exact using knownbits (on non-exact incoming shifts), so this is particularly impactful, but may be useful in some circumstances.
Closes #84254
show more ...
|
#
17162b61 |
| 29-Feb-2024 |
Noah Goldstein <goldstein.w.n@gmail.com> |
[KnownBits] Make `nuw` and `nsw` support in `computeForAddSub` optimal
Just some improvements that should hopefully strengthen analysis.
Closes #83580
|
#
61c06775 |
| 29-Feb-2024 |
Noah Goldstein <goldstein.w.n@gmail.com> |
[KnownBits] Add API for `nuw` flag in `computeForAddSub`; NFC
|
#
214f8972 |
| 01-Mar-2024 |
Fangrui Song <i@maskray.me> |
[unittest] Fix -Wsign-compare warnings in KnownBits.cpp after #82354
|
#
fcdf818a |
| 01-Mar-2024 |
Simon Pilgrim <RKSimon@users.noreply.github.com> |
[KnownBits] Add KnownBits::absdiff to compute the absolute difference of 2 unsigned values (#82354)
Equivalent to "umax(A, B) - umin(A, B)"
This is just an initial correctness implementation, hop
[KnownBits] Add KnownBits::absdiff to compute the absolute difference of 2 unsigned values (#82354)
Equivalent to "umax(A, B) - umin(A, B)"
This is just an initial correctness implementation, hopefully we can make this optimal in the future.
show more ...
|
Revision tags: llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4 |
|
#
730df5a4 |
| 18-Oct-2023 |
Christian Kissig <dev@kissig.fastmail.fm> |
[Support] Add KnownBits::computeForSubBorrow (#67788)
- [Support] Add KnownBits::computeForSubBorrow
- [CodeGen] Implement USUBC, USUBO_CARRY, and SSUBO_CARRY with
KnownBits::computeForSubBorrow
[Support] Add KnownBits::computeForSubBorrow (#67788)
- [Support] Add KnownBits::computeForSubBorrow
- [CodeGen] Implement USUBC, USUBO_CARRY, and SSUBO_CARRY with
KnownBits::computeForSubBorrow
- [CodeGen] Compute unknown bits for Carry/Borrow for ADD/SUB
- [CodeGen] Compute known bits of Carry/Borrow for UADDO, SADDO, USUBO,
and SSUBO
Fixes #65893
---------
Co-authored-by: Shafik Yaghmour <shafik@users.noreply.github.com>
show more ...
|
Revision tags: llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5 |
|
#
660e4530 |
| 31-May-2023 |
Nikita Popov <npopov@redhat.com> |
[KnownBits] Also test 1-bit values in exhaustive tests (NFC)
Similar to what we do with ConstantRanges, also test 1-bit values in exhaustive tests, as these often expose special conditions. This wou
[KnownBits] Also test 1-bit values in exhaustive tests (NFC)
Similar to what we do with ConstantRanges, also test 1-bit values in exhaustive tests, as these often expose special conditions. This would have exposed the assertion failure fixed in D151788 earlier.
show more ...
|