History log of /llvm-project/llvm/lib/CodeGen/TypePromotion.cpp (Results 1 – 25 of 68)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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


123