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
|