History log of /llvm-project/llvm/lib/CodeGen/EarlyIfConversion.cpp (Results 1 – 25 of 117)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init
# 4a486e77 19-Jan-2025 Craig Topper <craig.topper@sifive.com>

[CodeGen] Use Register/MCRegister::isPhysical. NFC


Revision tags: llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4
# fe636692 09-Nov-2024 paperchalice <liujunchang97@outlook.com>

[Instrumentation] Support `MachineFunction` in `OptNoneInstrumentation` (#115471)

Support `MachineFunction` in `OptNoneInstrumentation`, also add
`isRequired` to all necessary passes.


Revision tags: llvmorg-19.1.3
# 488d3924 16-Oct-2024 Christudasan Devadasan <christudasan.devadasan@amd.com>

[CodeGen][NewPM] Port EarlyIfConversion pass to NPM. (#108508)


# 732b804e 16-Oct-2024 Christudasan Devadasan <christudasan.devadasan@amd.com>

[CodeGen][NewPM] Port machine trace metrics analysis to new pass manager. (#108507)


Revision tags: llvmorg-19.1.2
# 327124ec 08-Oct-2024 Juan Manuel Martinez Caamaño <jmartinezcaamao@gmail.com>

[NFC][EarlyIfConverter] Rename SSAIfConv::runOnMachineFunction to SSAIfConv::init (#111500)


# 1df8ccd3 08-Oct-2024 Juan Manuel Martinez Caamaño <jmartinezcaamao@gmail.com>

Revert "[NFC][EarlyIfConverter] Turn SSAIfConv into a local variable (#107390)" (#111385)

This reverts commit 09a4c23eb410d4be52202bed21c967a3653c3544.


# d5ec01b0 07-Oct-2024 Juan Manuel Martinez Caamaño <jmartinezcaamao@gmail.com>

Revert "[NFC][EarlyIfConverter] Replace boolean Predicate for a class (#108519)" (#111372)

This reverts commit 9e7315912656628b606e884e39cdeb261b476f16.


# a018353f 07-Oct-2024 Juan Manuel Martinez Caamaño <juamarti@amd.com>

Revert "[NFC][EarlyIfConverter] Remove unused member variables"

This reverts commit 3c83102f0615c7d66f6df698ca472ddbf0e9483d.


Revision tags: llvmorg-19.1.1
# 46df454c 22-Sep-2024 Kazu Hirata <kazu@google.com>

[CodeGen] Construct SmallVector with ArrayRef (NFC) (#109566)


Revision tags: llvmorg-19.1.0
# 3c83102f 04-Sep-2024 Juan Manuel Martinez Caamaño <juamarti@amd.com>

[NFC][EarlyIfConverter] Remove unused member variables


# 9e731591 20-Sep-2024 Juan Manuel Martinez Caamaño <jmartinezcaamao@gmail.com>

[NFC][EarlyIfConverter] Replace boolean Predicate for a class (#108519)

Currently SSAIfConv is used in 2 scenarios. Generalize them to support
more scenarios.


# 09a4c23e 13-Sep-2024 Juan Manuel Martinez Caamaño <jmartinezcaamao@gmail.com>

[NFC][EarlyIfConverter] Turn SSAIfConv into a local variable (#107390)


Revision tags: llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2
# 6d103d77 31-Jul-2024 Alexis Engelke <engelke@in.tum.de>

[Support] Erase blocks after DomTree::eraseNode (#101195)

Change eraseNode to require that the basic block is still contained
inside the function. This is a preparation for using numbers of basic

[Support] Erase blocks after DomTree::eraseNode (#101195)

Change eraseNode to require that the basic block is still contained
inside the function. This is a preparation for using numbers of basic
blocks inside the dominator tree, which are invalid for blocks that are
not inside a function.

show more ...


Revision tags: llvmorg-19.1.0-rc1
# ed4e75d5 26-Jul-2024 Pengcheng Wang <wangpengcheng.pp@bytedance.com>

[CodeGen] Remove AA parameter of isSafeToMove (#100691)

This `AA` parameter is not used and for most uses they just pass
a nullptr.

The use of `AA` was removed since 8d0383e.


Revision tags: llvmorg-20-init
# 79d0de2a 09-Jul-2024 paperchalice <liujunchang97@outlook.com>

[CodeGen][NewPM] Port `machine-loops` to new pass manager (#97793)

- Add `MachineLoopAnalysis`.
- Add `MachineLoopPrinterPass`.
- Convert to `MachineLoopInfoWrapperPass` in legacy pass manager.


# d38b518e 28-Jun-2024 paperchalice <liujunchang97@outlook.com>

Reapply "[CodeGen][NewPM] Port machine-branch-prob to new pass manager" (#96858) (#96869)

This reverts commit ab58b6d58edf6a7c8881044fc716ca435d7a0156.
In `CodeGen/Generic/MachineBranchProb.ll`, `l

Reapply "[CodeGen][NewPM] Port machine-branch-prob to new pass manager" (#96858) (#96869)

This reverts commit ab58b6d58edf6a7c8881044fc716ca435d7a0156.
In `CodeGen/Generic/MachineBranchProb.ll`, `llc` crashed with dumped MIR
when targeting PowerPC. Move test to `llc/new-pm`, which is X86
specific.

show more ...


# ab58b6d5 27-Jun-2024 paperchalice <liujunchang97@outlook.com>

Revert "[CodeGen][NewPM] Port machine-branch-prob to new pass manager" (#96858)

Reverts llvm/llvm-project#96389
Some ppc bots failed.


# 73e46c2b 27-Jun-2024 paperchalice <liujunchang97@outlook.com>

[CodeGen][NewPM] Port machine-branch-prob to new pass manager (#96389)

Like IR version `print<branch-prob>`, there is also a
`print<machine-branch-prob>`.


# dae061f1 26-Jun-2024 Kazu Hirata <kazu@google.com>

[CodeGen] Use range-based for loops (NFC) (#96777)


Revision tags: llvmorg-18.1.8
# 837dc542 11-Jun-2024 paperchalice <liujunchang97@outlook.com>

[CodeGen][NewPM] Split `MachineDominatorTree` into a concrete analysis result (#94571)

Prepare for new pass manager version of `MachineDominatorTreeAnalysis`.
We may need a machine dominator tree v

[CodeGen][NewPM] Split `MachineDominatorTree` into a concrete analysis result (#94571)

Prepare for new pass manager version of `MachineDominatorTreeAnalysis`.
We may need a machine dominator tree version of `DomTreeUpdater` to
handle `SplitCriticalEdge` in some CodeGen passes.

show more ...


Revision tags: llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5
# f6d431f2 24-Apr-2024 Xu Zhang <simonzgx@gmail.com>

[CodeGen] Make the parameter TRI required in some functions. (#85968)

Fixes #82659

There are some functions, such as `findRegisterDefOperandIdx` and `findRegisterDefOperand`, that have too many

[CodeGen] Make the parameter TRI required in some functions. (#85968)

Fixes #82659

There are some functions, such as `findRegisterDefOperandIdx` and `findRegisterDefOperand`, that have too many default parameters. As a result, we have encountered some issues due to the lack of TRI parameters, as shown in issue #82411.

Following @RKSimon 's suggestion, this patch refactors 9 functions, including `{reads, kills, defines, modifies}Register`, `registerDefIsDead`, and `findRegister{UseOperandIdx, UseOperand, DefOperandIdx, DefOperand}`, adjusting the order of the TRI parameter and making it required. In addition, all the places that call these functions have also been updated correctly to ensure no additional impact.

After this, the caller of these functions should explicitly know whether to pass the `TargetRegisterInfo` or just a `nullptr`.

show more ...


Revision tags: llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, 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, llvmorg-17.0.3
# fac4206e 11-Oct-2023 Jay Foad <jay.foad@amd.com>

[EarlyIfConversion] Simplify condition after #65729


# 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, 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
# aa2d0fbc 21-May-2023 Sergei Barannikov <barannikov88@gmail.com>

[MC] Add MCRegisterInfo::regunits for iteration over register units

Reviewed By: foad

Differential Revision: https://reviews.llvm.org/D152098


Revision tags: llvmorg-16.0.4
# e351b9b6 12-May-2023 Florian Hahn <flo@fhahn.com>

[EarlyIfCvt] Don't if-convert if condition has only loop-invariant ops.

This patch adds a heuristic to skip if-conversion if the condition has a
high chance of being predictable.

If the condition i

[EarlyIfCvt] Don't if-convert if condition has only loop-invariant ops.

This patch adds a heuristic to skip if-conversion if the condition has a
high chance of being predictable.

If the condition is in a loop, consider it predictable if the condition
itself or all its operands are loop-invariant. E.g. this considers a load
from a loop-invariant address predictable; we were unable to prove that it
doesn't alias any of the memory-writes in the loop, but it is likely to
read to same value multiple times.

This is a relatively crude heuristic, but it helps to prevent excessive
if-conversion in multiple workloads in practice.

Reviewed By: apostolakis

Differential Revision: https://reviews.llvm.org/D141639

show more ...


12345