Revision tags: llvmorg-21-init |
|
#
8e702735 |
| 24-Jan-2025 |
Jeremy Morse <jeremy.morse@sony.com> |
[NFC][DebugInfo] Use iterator moveBefore at many call-sites (#123583)
As part of the "RemoveDIs" project, BasicBlock::iterator now carries a
debug-info bit that's needed when getFirstNonPHI and sim
[NFC][DebugInfo] Use iterator moveBefore at many call-sites (#123583)
As part of the "RemoveDIs" project, BasicBlock::iterator now carries a
debug-info bit that's needed when getFirstNonPHI and similar feed into
instruction insertion positions. Call-sites where that's necessary were
updated a year ago; but to ensure some type safety however, we'd like to
have all calls to moveBefore use iterators.
This patch adds a (guaranteed dereferenceable) iterator-taking
moveBefore, and changes a bunch of call-sites where it's obviously safe
to change to use it by just calling getIterator() on an instruction
pointer. A follow-up patch will contain less-obviously-safe changes.
We'll eventually deprecate and remove the instruction-pointer
insertBefore, but not before adding concise documentation of what
considerations are needed (very few).
show more ...
|
Revision tags: 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, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3 |
|
#
7aa4726f |
| 16-Aug-2024 |
Kazu Hirata <kazu@google.com> |
[CodeGen] Use range-based for loops (NFC) (#104536)
|
#
dbe8a10c |
| 13-Aug-2024 |
Craig Topper <craig.topper@sifive.com> |
[TypePromotion] Use return value from SmallPtrSet::insert to avoid a call to SmallPtrSet::count. NFC (#103008)
|
Revision tags: llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init |
|
#
74deadf1 |
| 29-Jun-2024 |
Nikita Popov <llvm@npopov.com> |
[IRBuilder] Don't include Module.h (NFC) (#97159)
This used to be necessary to fetch the DataLayout, but isn't anymore.
|
#
9df71d76 |
| 28-Jun-2024 |
Nikita Popov <npopov@redhat.com> |
[IR] Add getDataLayout() helpers to Function and GlobalValue (#96919)
Similar to https://github.com/llvm/llvm-project/pull/96902, this adds
`getDataLayout()` helpers to Function and GlobalValue, re
[IR] Add getDataLayout() helpers to Function and GlobalValue (#96919)
Similar to https://github.com/llvm/llvm-project/pull/96902, this adds
`getDataLayout()` helpers to Function and GlobalValue, replacing the
current `getParent()->getDataLayout()` pattern.
show more ...
|
Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3 |
|
#
e005a09d |
| 29-Mar-2024 |
Sudharsan Veeravalli <quic_svs@quicinc.com> |
[RISCV][TypePromotion] Dont generate truncs if PromotedType is greater than Source Type (#86941)
We currently check if the source and promoted types are not equal before
generating truncate instruc
[RISCV][TypePromotion] Dont generate truncs if PromotedType is greater than Source Type (#86941)
We currently check if the source and promoted types are not equal before
generating truncate instructions. This does not work for RV64 where the
promoted type is i64 and this lead to a crash due to the generation of
truncate instructions from i32 to i64.
Fixes #86400
show more ...
|
Revision tags: llvmorg-18.1.2 |
|
#
884b051a |
| 11-Mar-2024 |
Craig Topper <craig.topper@sifive.com> |
Recommit "[TypePromotion] Support positive addition amounts in isSafeWrap. (#81690)"
With special case with Add constant is 0.
Original message: We can support these by changing the sext promotion
Recommit "[TypePromotion] Support positive addition amounts in isSafeWrap. (#81690)"
With special case with Add constant is 0.
Original message: We can support these by changing the sext promotion to -zext(-C) and replacing a sgt check with ugt. Reframing the logic in terms of how the unsigned range are affected. More comments in the patch.
The new cases check isLegalAddImmediate to avoid some regressions in lit tests.
show more ...
|
#
561ddb16 |
| 11-Mar-2024 |
Craig Topper <craig.topper@sifive.com> |
Revert "[TypePromotion] Support positive addition amounts in isSafeWrap. (#81690)"
This reverts commit 0813b90ff5d195d8a40c280f6b745f1cc43e087a.
Fixes miscompile reported in #84718.
|
Revision tags: llvmorg-18.1.1 |
|
#
0813b90f |
| 01-Mar-2024 |
Craig Topper <craig.topper@sifive.com> |
[TypePromotion] Support positive addition amounts in isSafeWrap. (#81690)
We can support these by changing the sext promotion to -zext(-C) and
replacing a sgt check with ugt. Reframing the logic in
[TypePromotion] Support positive addition amounts in isSafeWrap. (#81690)
We can support these by changing the sext promotion to -zext(-C) and
replacing a sgt check with ugt. Reframing the logic in terms of how the
unsigned range are affected. More comments in the patch.
The new cases check isLegalAddImmediate to avoid some
regressions in lit tests.
show more ...
|
Revision tags: llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3 |
|
#
d0a1bf8b |
| 13-Feb-2024 |
Craig Topper <craig.topper@sifive.com> |
[TypePromotion] Remove an unreachable 'return false'. NFC
The if and the else above this both return so this is unreachable. Delete it and remove the else after return.
|
#
7d40ea85 |
| 13-Feb-2024 |
Craig Topper <craig.topper@sifive.com> |
[RISCV] Enable the TypePromotion pass from AArch64/ARM.
This pass looks for unsigned icmps that have illegal types and tries to widen the use/def graph to improve the placement of the zero extends t
[RISCV] Enable the TypePromotion pass from AArch64/ARM.
This pass looks for unsigned icmps that have illegal types and tries to widen the use/def graph to improve the placement of the zero extends that type legalization would need to insert.
I've explicitly disabled it for i32 by adding a check for isSExtCheaperThanZExt to the pass.
The generated code isn't perfect, but my data shows a net dynamic instruction count improvement on spec2017 for both base and Zba+Zbb+Zbs.
show more ...
|
Revision tags: 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, llvmorg-17.0.3 |
|
#
b78f3ea7 |
| 11-Oct-2023 |
Jay Foad <jay.foad@amd.com> |
Clean up strange uses of getAnalysisIfAvailable (#65729)
After a pass calls addRequired<X>() it is strange to call
getAnalysisIfAvailable<X>() because analysis X should always be
available. Use ge
Clean up strange uses of getAnalysisIfAvailable (#65729)
After a pass calls addRequired<X>() it is strange to call
getAnalysisIfAvailable<X>() because analysis X should always be
available. Use getAnalysis<X>() instead.
show more ...
|
Revision tags: llvmorg-17.0.2 |
|
#
17d276a6 |
| 28-Sep-2023 |
Nikita Popov <npopov@redhat.com> |
[TypePromotion] Avoid use of ConstantExpr::getZExt() (NFC)
Instead work on APInt.
|
Revision tags: 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 |
|
#
a5fc9893 |
| 09-Jun-2023 |
David Green <david.green@arm.com> |
[TypePromotion] Don't treat bitcast as a Source
This removes BitCasts from isSource in Type Promotion, as I don't believe they need to be treated as Sources. They will usually be from floats or hois
[TypePromotion] Don't treat bitcast as a Source
This removes BitCasts from isSource in Type Promotion, as I don't believe they need to be treated as Sources. They will usually be from floats or hoisted constants, where constants will be handled already.
This fixes #62513, but didn't otherwise cause any differences in the tests I ran.
Differential Revision: https://reviews.llvm.org/D152112
show more ...
|
#
9ad3ca4e |
| 07-Jun-2023 |
Paul Kirth <paulkirth@google.com> |
Revert "[TypePromotion] Don't treat bitcast as a Source"
This reverts commit 27aea17fe061f9778bb1e8ff5fdf9fc0fb03abe1. For details, see: https://reviews.llvm.org/D152112
Fuchsia CI failure: https:/
Revert "[TypePromotion] Don't treat bitcast as a Source"
This reverts commit 27aea17fe061f9778bb1e8ff5fdf9fc0fb03abe1. For details, see: https://reviews.llvm.org/D152112
Fuchsia CI failure: https://ci.chromium.org/ui/p/fuchsia/builders/toolchain.ci/clang-linux-arm64/b8779118297575483793/overview
show more ...
|
#
27aea17f |
| 05-Jun-2023 |
David Green <david.green@arm.com> |
[TypePromotion] Don't treat bitcast as a Source
This removes BitCasts from isSource in Type Promotion, as I don't believe they need to be treated as Sources. They will usually be from floats or hois
[TypePromotion] Don't treat bitcast as a Source
This removes BitCasts from isSource in Type Promotion, as I don't believe they need to be treated as Sources. They will usually be from floats or hoisted constants, where constants will be handled already.
This fixes #62513, but didn't otherwise cause any differences in the tests I ran.
Differential Revision: https://reviews.llvm.org/D152112
show more ...
|
Revision tags: llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4 |
|
#
01487f38 |
| 03-Mar-2023 |
Craig Topper <craig.topper@sifive.com> |
[TypePromotion] Deference pointer before printing it in a debug message.
Without deferencing it just prints the value of the pointer which isn't meaningful. Dereferencing prints the operand.
|
Revision tags: llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7 |
|
#
8fd5558b |
| 11-Jan-2023 |
Guillaume Chatelet <gchatelet@google.com> |
[NFC] Use TypeSize::geFixedValue() instead of TypeSize::getFixedSize()
This change is one of a series to implement the discussion from https://reviews.llvm.org/D141134.
|
#
615333bc |
| 03-Jan-2023 |
Samuel Parker <sam.parker@arm.com> |
[TypePromotion] NewPM support.
Differential Revision: https://reviews.llvm.org/D140893
|
#
a0b470c9 |
| 03-Jan-2023 |
chenglin.bi <chenglin.bi@linaro.org> |
[TypePromotion] Add truncate in ConvertTruncs when the original truncate type is not extend type
If the src type is not extend type, after convert the truncate to and we need to truncate the and als
[TypePromotion] Add truncate in ConvertTruncs when the original truncate type is not extend type
If the src type is not extend type, after convert the truncate to and we need to truncate the and also to make sure the all user is legal.
The old fix D137613 doesn't work when the truncate convert to and have the other users. So this time I try to add the truncate after and to avoid all these potential issues.
Fix: #59554
Reviewed By: samparker
Differential Revision: https://reviews.llvm.org/D140869
show more ...
|
Revision tags: llvmorg-15.0.6, llvmorg-15.0.5 |
|
#
597f4440 |
| 08-Nov-2022 |
chenglin.bi <chenglin.bi@linaro.org> |
[TypePromotion] Replace Zext to Truncate for the case src bitwidth is larger
Fix: https://github.com/llvm/llvm-project/issues/58843
Reviewed By: samtebbs
Differential Revision: https://reviews.llv
[TypePromotion] Replace Zext to Truncate for the case src bitwidth is larger
Fix: https://github.com/llvm/llvm-project/issues/58843
Reviewed By: samtebbs
Differential Revision: https://reviews.llvm.org/D137613
show more ...
|
Revision tags: llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1 |
|
#
f124e59b |
| 13-Sep-2022 |
David Green <david.green@arm.com> |
[TypePromotionPass] Don't treat phi's as ToPromote
This attempts to stop the type promotion pass transforming where it is not profitable, by not marking PhiNodes as ToPromote and being more aggressi
[TypePromotionPass] Don't treat phi's as ToPromote
This attempts to stop the type promotion pass transforming where it is not profitable, by not marking PhiNodes as ToPromote and being more aggressive about pulling extends out of loops.
Differential Revision: https://reviews.llvm.org/D133203
show more ...
|
Revision tags: llvmorg-15.0.0 |
|
#
5073499b |
| 02-Sep-2022 |
David Green <david.green@arm.com> |
[TypePromotionPass] Rename variable to avoid name conflict. NFC
|
Revision tags: llvmorg-15.0.0-rc3 |
|
#
49223e0a |
| 17-Aug-2022 |
Andre Vieira <andre.simoesdiasvieira@arm.com> |
[TypePromotion] Don't promote PHI + ZExt if wider than RegisterBitWidth
Differential Revision: https://reviews.llvm.org/D131966
|
#
c6b5a13b |
| 16-Aug-2022 |
Andre Vieira <andre.simoesdiasvieira@arm.com> |
[TypePromotion] Only search for PHI + ZExt promotion of Integers
Differential Revision: https://reviews.llvm.org/D131948
|