History log of /llvm-project/llvm/lib/CodeGen/RDFGraph.cpp (Results 1 – 25 of 38)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5
# b28eebf9 19-Nov-2024 Yashas Andaluri <quic_yandalur@quicinc.com>

[RDF] Fix cover check when linking refs to defs (#113888)

During RDF graph construction, linkRefUp method links a register ref to
its upward reaching defs until all RegUnits of the ref have been co

[RDF] Fix cover check when linking refs to defs (#113888)

During RDF graph construction, linkRefUp method links a register ref to
its upward reaching defs until all RegUnits of the ref have been covered
by defs.
However, when a sub-register def covers some, but not all, of the
RegUnits of a previous super-register def, a super-register ref is not
linked to the super-register def.
This can result in certain super register defs being dead code
eliminated.

This patch fixes the cover check for a register ref. A def must be
skipped only when all RegUnits of that def have already been covered by
a previously seen def.

show more ...


Revision tags: llvmorg-19.1.4
# 735ab61a 13-Nov-2024 Kazu Hirata <kazu@google.com>

[CodeGen] Remove unused includes (NFC) (#115996)

Identified with misc-include-cleaner.


Revision tags: llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4
# c503758a 25-Aug-2024 Craig Topper <craig.topper@sifive.com>

[CodeGen] Use std::pair<MCRegister, Register> to match return from MRI.liveins(). NFC

MachineRegisterInfo::liveins returns std::pair<MCRegister, Register>.
Don't convert to std::pair<unsigned, unsig

[CodeGen] Use std::pair<MCRegister, Register> to match return from MRI.liveins(). NFC

MachineRegisterInfo::liveins returns std::pair<MCRegister, Register>.
Don't convert to std::pair<unsigned, unsigned>.

show more ...


Revision tags: llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6
# 9d4575c9 02-May-2024 Youngsuk Kim <youngsuk.kim@hpe.com>

[llvm] Make lambda take const reference to prevent unneeded copy (NFC)

Closes #89198


Revision tags: llvmorg-18.1.5, 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
# abea3b27 05-Feb-2024 Jay Foad <jay.foad@amd.com>

[RDF] Skip over NoRegister. NFCI. (#80672)

This just avoids useless work of adding NoRegister to BaseSet, for
consistency with other places that iterate over all physical registers.


Revision tags: llvmorg-18.1.0-rc1, llvmorg-19-init
# 15179aa4 13-Jan-2024 Kazu Hirata <kazu@google.com>

[llvm] Use llvm::is_contained (NFC)


Revision tags: llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, 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
# 39ab9da9 03-Jun-2023 Krzysztof Parzyszek <kparzysz@quicinc.com>

[RDF] Create build config

- Add option to ignore reserved registers
- Add possibility to track selected registers or register classes only

Tracking is done based on register units, so the set of re

[RDF] Create build config

- Add option to ignore reserved registers
- Add possibility to track selected registers or register classes only

Tracking is done based on register units, so the set of registers to track
is translated into a set of register units.

show more ...


# 3eeebfe8 06-Jun-2023 Krzysztof Parzyszek <kparzysz@quicinc.com>

[RDF] Minor refactoring for clarity, NFC


# 198d647f 06-Jun-2023 Krzysztof Parzyszek <kparzysz@quicinc.com>

[RDF] Remove unused variant of getNextShadow, NFC


# ffa2bbc7 06-Jun-2023 Krzysztof Parzyszek <kparzysz@quicinc.com>

[RDF] Print something useful for NodeId == 0 instead of crashing


# edfcc3a5 06-Jun-2023 Krzysztof Parzyszek <kparzysz@quicinc.com>

[RDF] Remove unused parameter AllRefs from buildPhis


# 375d7980 02-Jun-2023 Krzysztof Parzyszek <kparzysz@quicinc.com>

[RDF] Define short type names: NodeAddr<XyzNode*> -> Xyz, NFC

Remove all instances of 'using namespace rdf' from files in CodeGen,
all implementation code is explicitly enclosed in 'namespace rdf'.


Revision tags: llvmorg-16.0.5
# 2af7036d 01-Jun-2023 Krzysztof Parzyszek <kparzysz@quicinc.com>

[RDF] Allow RegisterRef to contain register unit

Recommit with the fix for incorrect `constexpr` with `hash` from a later
commit, and a fix for "std::swap(std::less<RegisterRef>...)" issue with
MSVC

[RDF] Allow RegisterRef to contain register unit

Recommit with the fix for incorrect `constexpr` with `hash` from a later
commit, and a fix for "std::swap(std::less<RegisterRef>...)" issue with
MSVC's `std::map`.

show more ...


# 7b31d3da 12-Jun-2023 Nico Weber <thakis@chromium.org>

Revert "[RDF] Allow RegisterRef to contain register unit" and follow-ups

This reverts commit 859b05b02d3fd9ab6b77f2bed8df6902fe704806.

Also reverts these follow-ups:

Revert "[RDF] Remove `constexp

Revert "[RDF] Allow RegisterRef to contain register unit" and follow-ups

This reverts commit 859b05b02d3fd9ab6b77f2bed8df6902fe704806.

Also reverts these follow-ups:

Revert "[RDF] Remove `constexpr` from `hash"
This reverts commit 621507ce20ad8eef2986be2712631165e53b7d91.

Revert "[RDF] Do not use trailing return type after all, NFC"
This reverts commit 46e19e3a2c45e7fb5f501bdb983a7151c158304f.

Revert "[RDF] Stop looking when reached code node in getNextRef with NextOnly"
This reverts commit a049ce9d1bd5a7c1c4fcccc6a801b72b00ea8e0f.

Revert "[RDF] Use trailing return type syntax, NFC"
This reverts commit d3b34b7f3a7cbfc96aea897419f167b5ee19e61a.

Revert "[RDF] Define short type names: NodeAddr<XyzNode*> -> Xyz, NFC"
This reverts commit f8ed60b56d1948422dda924fcf450560591e8a19.

show more ...


# 46e19e3a 09-Jun-2023 Krzysztof Parzyszek <kparzysz@quicinc.com>

[RDF] Do not use trailing return type after all, NFC

This sort of reverts commit d3b34b7f3a7cbfc96aea897419f167b5ee19e61a,
the issue with `Use` will be addressed by using fully-qualified name.


# d3b34b7f 02-Jun-2023 Krzysztof Parzyszek <kparzysz@quicinc.com>

[RDF] Use trailing return type syntax, NFC

The name rdf::Use conflicts with llvm::Use when both namespaces are
used via `using namespace`. Specifically this happened in the declaration
of DataFlowGr

[RDF] Use trailing return type syntax, NFC

The name rdf::Use conflicts with llvm::Use when both namespaces are
used via `using namespace`. Specifically this happened in the declaration
of DataFlowGraph::newUse (in RDFGraph.cpp):
```
using namespace rdf;

Use newUse(...); <-- Lookup conflict for "Use"
```
Since the TRT lookup starts in a different namespace than that of the
leading type, this serves as a workaround. In general the rdf namespace
will not likely be introduced via `using namespace`, so this shouldn't
be a problem elsewhere.

show more ...


# f8ed60b5 02-Jun-2023 Krzysztof Parzyszek <kparzysz@quicinc.com>

[RDF] Define short type names: NodeAddr<XyzNode*> -> Xyz, NFC


# 859b05b0 01-Jun-2023 Krzysztof Parzyszek <kparzysz@quicinc.com>

[RDF] Allow RegisterRef to contain register unit


# f10f7b0d 30-May-2023 Krzysztof Parzyszek <kparzysz@quicinc.com>

[RDF] Add RegisterAggr::refs to return iterator range, NFC


# c6ddd04d 29-May-2023 Krzysztof Parzyszek <kparzysz@quicinc.com>

[RDF] Create individual phi for each indivisible register

This isn't quite using register units, but it's getting close. The phi
generation is driven by register units, but each phi still contains a

[RDF] Create individual phi for each indivisible register

This isn't quite using register units, but it's getting close. The phi
generation is driven by register units, but each phi still contains a
reference to a register, potentially with a mask that amounts to a unit.
In cases of explicit register aliasing this may still create phis with
references that are aliased, whereas separate phis would ideally contain
disjoint references (this is all within a single basic block).

Previously phis used maximal registers, now they use minimal. This is a
step towards both, using register units directly, and a simpler liveness
calculation algorithm. The idea is that a phi cannot reach a reference
to anything smaller than the phi itself represents. Before there could
be a phi for R1_R0, now there will be two for this case (assuming R0 and
R1 have one unit each).

show more ...


# fc3ad148 29-May-2023 Krzysztof Parzyszek <kparzysz@quicinc.com>

[RDF] Use RegisterAggr instead of RegisterSet in few places

This shouldn't change any functionality.


# 7fc73104 29-May-2023 Krzysztof Parzyszek <kparzysz@quicinc.com>

[RDF] Clang-format the sources, NFC


# 5022fc2a 24-May-2023 Jay Foad <jay.foad@amd.com>

[CodeGen] Make use of MachineInstr::all_defs and all_uses. NFCI.

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


Revision tags: 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, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7
# 073401e5 11-Jan-2023 Jay Foad <jay.foad@amd.com>

[MC] Define and use MCInstrDesc implicit_uses and implicit_defs. NFC.

The new methods return a range for easier iteration. Use them everywhere
instead of getImplicitUses, getNumImplicitUses, getImpl

[MC] Define and use MCInstrDesc implicit_uses and implicit_defs. NFC.

The new methods return a range for easier iteration. Use them everywhere
instead of getImplicitUses, getNumImplicitUses, getImplicitDefs and
getNumImplicitDefs. A future patch will remove the old methods.

In some use cases the new methods are less efficient because they always
have to scan the whole uses/defs array to count its length, but that
will be fixed in a future patch by storing the number of implicit
uses/defs explicitly in MCInstrDesc. At that point there will be no need
to 0-terminate the arrays.

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

show more ...


# e72ca520 13-Jan-2023 Craig Topper <craig.topper@sifive.com>

[CodeGen] Remove uses of Register::isPhysicalRegister/isVirtualRegister. NFC

Use isPhysical/isVirtual methods.

Reviewed By: foad

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


12