|
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0 |
|
| #
b7e51b4f |
| 16-Sep-2024 |
Nikita Popov <npopov@redhat.com> |
[IPSCCP] Infer attributes on arguments (#107114)
During inter-procedural SCCP, also infer attributes on arguments, not
just return values. This allows other non-interprocedural passes to make
use
[IPSCCP] Infer attributes on arguments (#107114)
During inter-procedural SCCP, also infer attributes on arguments, not
just return values. This allows other non-interprocedural passes to make
use of the information later.
show more ...
|
| #
04742f34 |
| 09-Sep-2024 |
Nikita Popov <npopov@redhat.com> |
[SCCP] Add test for nonnull argument inference (NFC)
|
|
Revision tags: llvmorg-19.1.0-rc4 |
|
| #
24fe1d4f |
| 02-Sep-2024 |
Nikita Popov <npopov@redhat.com> |
[SCCP] Infer return attributes in SCCP as well (#106732)
We can infer the range/nonnull attributes in non-interprocedural SCCP as
well. The results may be better after the function has been simplif
[SCCP] Infer return attributes in SCCP as well (#106732)
We can infer the range/nonnull attributes in non-interprocedural SCCP as
well. The results may be better after the function has been simplified.
show more ...
|
| #
d6ad5516 |
| 30-Aug-2024 |
Nikita Popov <npopov@redhat.com> |
[IPSCCP] Infer nonnull return attribute (#106553)
Similarly to the existing range attribute inference, also infer the
nonnull attribute on function return values.
I think in practice FunctionAtt
[IPSCCP] Infer nonnull return attribute (#106553)
Similarly to the existing range attribute inference, also infer the
nonnull attribute on function return values.
I think in practice FunctionAttrs will handle nearly all cases, the main
one I think it doesn't is cases involving branch conditions. But as we
already have the information here, we may as well materialize it.
show more ...
|
| #
ba52a09a |
| 29-Aug-2024 |
Nikita Popov <npopov@redhat.com> |
[IPSCCP] Add test for returning nonnull pointer (NFC)
|
| #
7f59264d |
| 29-Aug-2024 |
Nikita Popov <npopov@redhat.com> |
[IPSCCP] Intersect attribute info for interprocedural args (#106397)
IPSCCP can currently return worse results than SCCP for arguments that
are tracked interprocedurally, because information from a
[IPSCCP] Intersect attribute info for interprocedural args (#106397)
IPSCCP can currently return worse results than SCCP for arguments that
are tracked interprocedurally, because information from attributes is
not used for them.
Fix this by intersecting in the attribute information when propagating
lattice values from calls.
show more ...
|
| #
b8c0e8ad |
| 28-Aug-2024 |
Nikita Popov <npopov@redhat.com> |
[IPSCCP] Add extra tests for interprocedural arg attr handling (NFC)
|
| #
657f26f0 |
| 27-Aug-2024 |
Nikita Popov <npopov@redhat.com> |
[SCCP] Add more non-null roots
Also consider allocas non-null (subject to the usual caveats), and consider nonnull/dereferenceable metadata on calls.
|
| #
ed1c1da0 |
| 27-Aug-2024 |
Nikita Popov <npopov@redhat.com> |
[SCCP] Add tests for more non-null roots (NFC)
|
| #
1cea5c21 |
| 27-Aug-2024 |
Nikita Popov <npopov@redhat.com> |
[SCCP] Propagate non-null pointers (#106090)
Add NotConstant(Null) roots for nonnull arguments and then propagate
them through nuw/inbounds GEPs.
Having this functionality in SCCP is useful beca
[SCCP] Propagate non-null pointers (#106090)
Add NotConstant(Null) roots for nonnull arguments and then propagate
them through nuw/inbounds GEPs.
Having this functionality in SCCP is useful because it allows reliably
eliminating null comparisons, independently of how deeply nested they
are in selects/phis. This handles cases that would hit a cutoff in
ValueTracking otherwise.
The implementation is something of a MVP, there are a number of obvious
extensions (e.g. allocas are also non-null).
show more ...
|
| #
41f2f1f0 |
| 26-Aug-2024 |
Nikita Popov <npopov@redhat.com> |
[SCCP] Add tests for non-null pointers (NFC)
|