<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Support/KnownBits.cpp, branch users/nico/python-1</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[llvm] properly guard dump methods in Support lib classes (#139938)</title>
<updated>2025-05-14T20:48:45+00:00</updated>
<author>
<name>Andrew Rogers</name>
<email>andrurogerz@gmail.com</email>
</author>
<published>2025-05-14T20:48:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0563186a76ddf51b8a7b6eaf0357c224f2625df8'/>
<id>0563186a76ddf51b8a7b6eaf0357c224f2625df8</id>
<content type='text'>
## Purpose
Add proper preprocessor guards for all `dump()` methods in the LLVM
support library. This change ensures these methods are not part of the
public ABI for release builds.

## Overview
* Annotates all `dump` methods in Support and ADT source with the
`LLVM_DUMP_METHOD` macro.
* Conditionally includes all `dump` method definitions in Support and
ADT source so they are only present on debug/assert builds and when
`LLVM_ENABLE_DUMP` is explicitly defined.

NOTE: For many of these `dump` methods, the implementation was already
properly guarded but the declaration in the header file was not.

## Background
This PR is a redo of #139804 with some changes to fix clang and unit
test build breaks.

This issue was raised in comments on #136629. I am addressing it as a
separate change since it is independent from the changes being made in
that PR.

According to [this
documentation](https://github.com/llvm/llvm-project/blob/main/llvm/include/llvm/Support/Compiler.h#L637),
`dump` methods should be annotated with `LLVM_DUMP_METHOD` and
conditionally included as follows:
```
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
  LLVM_DUMP_METHOD void dump() const;
#endif
```

## Validation
* Local release build succeeds.
* CI</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
## Purpose
Add proper preprocessor guards for all `dump()` methods in the LLVM
support library. This change ensures these methods are not part of the
public ABI for release builds.

## Overview
* Annotates all `dump` methods in Support and ADT source with the
`LLVM_DUMP_METHOD` macro.
* Conditionally includes all `dump` method definitions in Support and
ADT source so they are only present on debug/assert builds and when
`LLVM_ENABLE_DUMP` is explicitly defined.

NOTE: For many of these `dump` methods, the implementation was already
properly guarded but the declaration in the header file was not.

## Background
This PR is a redo of #139804 with some changes to fix clang and unit
test build breaks.

This issue was raised in comments on #136629. I am addressing it as a
separate change since it is independent from the changes being made in
that PR.

According to [this
documentation](https://github.com/llvm/llvm-project/blob/main/llvm/include/llvm/Support/Compiler.h#L637),
`dump` methods should be annotated with `LLVM_DUMP_METHOD` and
conditionally included as follows:
```
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
  LLVM_DUMP_METHOD void dump() const;
#endif
```

## Validation
* Local release build succeeds.
* CI</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[llvm] properly guard dump methods in Support lib classes" (#139927)</title>
<updated>2025-05-14T16:35:19+00:00</updated>
<author>
<name>Andrew Rogers</name>
<email>andrurogerz@gmail.com</email>
</author>
<published>2025-05-14T16:35:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9a0e1c79886ed95642b3400c0ec82f8a72d52ff6'/>
<id>9a0e1c79886ed95642b3400c0ec82f8a72d52ff6</id>
<content type='text'>
Reverts llvm/llvm-project#139804</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#139804</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] properly guard dump methods in Support lib classes (#139804)</title>
<updated>2025-05-14T15:54:12+00:00</updated>
<author>
<name>Andrew Rogers</name>
<email>andrurogerz@gmail.com</email>
</author>
<published>2025-05-14T15:54:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c9d05f3bcb3df5e56c0f9fc91366d62a229e7fb9'/>
<id>c9d05f3bcb3df5e56c0f9fc91366d62a229e7fb9</id>
<content type='text'>
## Purpose
Add proper preprocessor guards for all `dump()` methods in the LLVM
support library. This change ensures these methods are not part of the
public ABI for release builds.

## Overview
* Annotates all `dump` methods in Support and ADT source with the
`LLVM_DUMP_METHOD` macro.
* Conditionally includes all `dump` method definitions in Support and
ADT source so they are only present on debug/assert builds and when
`LLVM_ENABLE_DUMP` is explicitly defined.

NOTE: For many of these `dump` methods, the implementation was already
properly guarded but the declaration in the header file was not.

## Background
This issue was raised in comments on #136629. I am addressing it as a
separate change since it is independent from the changes being made in
that PR.

According to [this
documentation](https://github.com/llvm/llvm-project/blob/main/llvm/include/llvm/Support/Compiler.h#L637),
`dump` methods should be annotated with `LLVM_DUMP_METHOD` and
conditionally included as follows:
```
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
  LLVM_DUMP_METHOD void dump() const;
#endif
```

## Validation
* Local release build succeeds.
* CI</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
## Purpose
Add proper preprocessor guards for all `dump()` methods in the LLVM
support library. This change ensures these methods are not part of the
public ABI for release builds.

## Overview
* Annotates all `dump` methods in Support and ADT source with the
`LLVM_DUMP_METHOD` macro.
* Conditionally includes all `dump` method definitions in Support and
ADT source so they are only present on debug/assert builds and when
`LLVM_ENABLE_DUMP` is explicitly defined.

NOTE: For many of these `dump` methods, the implementation was already
properly guarded but the declaration in the header file was not.

## Background
This issue was raised in comments on #136629. I am addressing it as a
separate change since it is independent from the changes being made in
that PR.

According to [this
documentation](https://github.com/llvm/llvm-project/blob/main/llvm/include/llvm/Support/Compiler.h#L637),
`dump` methods should be annotated with `LLVM_DUMP_METHOD` and
conditionally included as follows:
```
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
  LLVM_DUMP_METHOD void dump() const;
#endif
```

## Validation
* Local release build succeeds.
* CI</pre>
</div>
</content>
</entry>
<entry>
<title>[KnownBits] Make `{s,u}{add,sub}_sat` optimal (#113096)</title>
<updated>2024-11-05T15:03:37+00:00</updated>
<author>
<name>goldsteinn</name>
<email>35538541+goldsteinn@users.noreply.github.com</email>
</author>
<published>2024-11-05T15:03:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=877cb9a2edc9057d70321e436e5ea8ccc1a87140'/>
<id>877cb9a2edc9057d70321e436e5ea8ccc1a87140</id>
<content type='text'>
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.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.</pre>
</div>
</content>
</entry>
<entry>
<title>[KnownBits] Make `avg{Ceil,Floor}S` optimal (#110688)</title>
<updated>2024-10-01T18:34:50+00:00</updated>
<author>
<name>Jay Foad</name>
<email>jay.foad@amd.com</email>
</author>
<published>2024-10-01T18:34:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5cabf1505d2180083ae3cf34abd79924cbcdbdbf'/>
<id>5cabf1505d2180083ae3cf34abd79924cbcdbdbf</id>
<content type='text'>
Rewrite the signed functions in terms of the unsigned ones which are
already optimal.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rewrite the signed functions in terms of the unsigned ones which are
already optimal.</pre>
</div>
</content>
</entry>
<entry>
<title>KnownBits: refine srem for high-bits (#109121)</title>
<updated>2024-09-27T11:00:50+00:00</updated>
<author>
<name>Ramkumar Ramachandra</name>
<email>ramkumar.ramachandra@codasip.com</email>
</author>
<published>2024-09-27T11:00:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3fee3e83a8a802cd23e79fbf2f1320bb8f961d0c'/>
<id>3fee3e83a8a802cd23e79fbf2f1320bb8f961d0c</id>
<content type='text'>
KnownBits::srem does not correctly set the leader zero-bits, omitting
the fact that LHS may be known-negative or known-non-negative. Fix this.

Alive2 proof: https://alive2.llvm.org/ce/z/Ugh-Dq</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
KnownBits::srem does not correctly set the leader zero-bits, omitting
the fact that LHS may be known-negative or known-non-negative. Fix this.

Alive2 proof: https://alive2.llvm.org/ce/z/Ugh-Dq</pre>
</div>
</content>
</entry>
<entry>
<title>[KnownBits] avgCompute - don't create on-the-fly Carry. NFC.</title>
<updated>2024-06-13T09:17:15+00:00</updated>
<author>
<name>Simon Pilgrim</name>
<email>llvm-dev@redking.me.uk</email>
</author>
<published>2024-06-13T09:17:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fa9301f35b41396bdf829cfd633fa2f983798723'/>
<id>fa9301f35b41396bdf829cfd633fa2f983798723</id>
<content type='text'>
Use the internal computeForAddCarry directly since we know the exact values of the carry bit.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use the internal computeForAddCarry directly since we know the exact values of the carry bit.
</pre>
</div>
</content>
</entry>
<entry>
<title>[KnownBits] Remove `hasConflict()` assertions (#94568)</title>
<updated>2024-06-07T15:01:22+00:00</updated>
<author>
<name>c8ef</name>
<email>c8ef@outlook.com</email>
</author>
<published>2024-06-07T15:01:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b25b1db8199d86cb3645e92200cda8d5d30922d0'/>
<id>b25b1db8199d86cb3645e92200cda8d5d30922d0</id>
<content type='text'>
Allow KnownBits to represent "always poison" values via conflict.

close: #94436</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allow KnownBits to represent "always poison" values via conflict.

close: #94436</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Add KnownBits implementations for avgFloor and avgCeil (#86445)</title>
<updated>2024-05-19T14:57:11+00:00</updated>
<author>
<name>Nhat Nguyen</name>
<email>nhat7203@gmail.com</email>
</author>
<published>2024-05-19T14:57:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=eab92cb7f33be16a6a17549182e9237112b7a183'/>
<id>eab92cb7f33be16a6a17549182e9237112b7a183</id>
<content type='text'>
This PR is to address the issue #84640</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR is to address the issue #84640</pre>
</div>
</content>
</entry>
<entry>
<title>[KnownBits] Make abdu and abds optimal (#89081)</title>
<updated>2024-04-18T15:27:02+00:00</updated>
<author>
<name>Jay Foad</name>
<email>jay.foad@amd.com</email>
</author>
<published>2024-04-18T15:27:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d8a26ca323977035969813b0e1e9fb54fd334620'/>
<id>d8a26ca323977035969813b0e1e9fb54fd334620</id>
<content type='text'>
Fixes #84212</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #84212</pre>
</div>
</content>
</entry>
</feed>
