Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2 |
|
#
a140931b |
| 01-Oct-2024 |
Rahul Joshi <rjoshi@nvidia.com> |
[TableGen] Change `getValueAsListOfDefs` to return const pointer vector (#110713)
Change `getValueAsListOfDefs` to return a vector of const Record
pointer, and remove `getValueAsListOfConstDefs` th
[TableGen] Change `getValueAsListOfDefs` to return const pointer vector (#110713)
Change `getValueAsListOfDefs` to return a vector of const Record
pointer, and remove `getValueAsListOfConstDefs` that was added as a
transition aid.
This is a part of effort to have better const correctness in TableGen
backends:
https://discourse.llvm.org/t/psa-planned-changes-to-tablegen-getallderiveddefinitions-api-potential-downstream-breakages/81089
show more ...
|
Revision tags: llvmorg-19.1.1 |
|
#
c92137e4 |
| 25-Sep-2024 |
Rahul Joshi <rjoshi@nvidia.com> |
[NFC][TableGen] Adopt scaled indent in PredicateExpander (#109801)
Adopt scaled indent in PredicateExpander.
Added pre/post inc/dec operators to `indent` and related unit tests.
Verified by compar
[NFC][TableGen] Adopt scaled indent in PredicateExpander (#109801)
Adopt scaled indent in PredicateExpander.
Added pre/post inc/dec operators to `indent` and related unit tests.
Verified by comparing *.inc files generated by LLVM build with/without
the change.
show more ...
|
#
b18190eb |
| 18-Sep-2024 |
Rahul Joshi <rjoshi@nvidia.com> |
[LLVM][TableGen] Change MacroFusionPredicator to use const RecordKeeper (#109064)
Change MacroFusionPredicator to use const RecordKeeper.
This is a part of effort to have better const correctness
[LLVM][TableGen] Change MacroFusionPredicator to use const RecordKeeper (#109064)
Change MacroFusionPredicator to use const RecordKeeper.
This is a part of effort to have better const correctness in TableGen
backends:
https://discourse.llvm.org/t/psa-planned-changes-to-tablegen-getallderiveddefinitions-api-potential-downstream-breakages/81089
show more ...
|
Revision tags: llvmorg-19.1.0, llvmorg-19.1.0-rc4, 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, llvmorg-18.1.5 |
|
#
26a59bf6 |
| 19-Apr-2024 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
[TableGen] MacroFusionPredicatorEmitter - pass constant std::vector arguments by ArrayRef instead
Silence pass by value warnings
Fixes #89210
|
Revision tags: llvmorg-18.1.4, llvmorg-18.1.3 |
|
#
b342d87f |
| 01-Apr-2024 |
Pengcheng Wang <wangpengcheng.pp@bytedance.com> |
[TableGen][NFC] Add maybe_unused to MRI (#87044)
This suppresses warning `unused variable 'MRI' [-Wunused-variable]` for those fusions that don't need `MRI`.
|
#
fa3d789d |
| 25-Mar-2024 |
Pierre van Houtryve <pierre.vanhoutryve@amd.com> |
[RFC][TableGen] Restructure TableGen Source (#80847)
Refactor of the llvm-tblgen source into:
- a "Basic" library, which contains the bare minimum utilities to build
`llvm-min-tablegen`
- a "Comm
[RFC][TableGen] Restructure TableGen Source (#80847)
Refactor of the llvm-tblgen source into:
- a "Basic" library, which contains the bare minimum utilities to build
`llvm-min-tablegen`
- a "Common" library which contains all of the helpers for TableGen
backends. Such helpers can be shared by more than one backend, and even
unit tested (e.g. CodeExpander is, maybe we can add more over time)
Fixes #80647
show more ...
|
Revision tags: llvmorg-18.1.2 |
|
#
b890a48a |
| 15-Mar-2024 |
Wang Pengcheng <wangpengcheng.pp@bytedance.com> |
[MacroFusion] Support commutable instructions (#82751)
If the second instruction is commutable, we should be able to check its commutable operands.
A simple RISCV fusion is contained in this PR to
[MacroFusion] Support commutable instructions (#82751)
If the second instruction is commutable, we should be able to check its commutable operands.
A simple RISCV fusion is contained in this PR to show the functionality is correct, I may remove it when landing.
Fixes #82738
show more ...
|
Revision tags: llvmorg-18.1.1 |
|
#
de1f3387 |
| 05-Mar-2024 |
Wang Pengcheng <wangpengcheng.pp@bytedance.com> |
[TableGen] Fix wrong codegen of BothFusionPredicateWithMCInstPredicate (#83990)
We should generate the `MCInstPredicate` twice, one with `FirstMI` and another with `SecondMI`.
|
Revision tags: 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 |
|
#
a0e6b7c0 |
| 05-Jan-2024 |
Wang Pengcheng <wangpengcheng.pp@bytedance.com> |
[TableGen] Add a backend to generate MacroFusion predicators (#72222)
`FusionPredicate` is used to predicate if target instruction matches the requirement. The targets can be firstMI, secondMI or b
[TableGen] Add a backend to generate MacroFusion predicators (#72222)
`FusionPredicate` is used to predicate if target instruction matches the requirement. The targets can be firstMI, secondMI or both.
The `Fusion` contains a list of `FusionPredicate`. The generated code will be like: ``` bool isNAME(const TargetInstrInfo &TII, const TargetSubtargetInfo &STI, const MachineInstr *FirstMI, const MachineInstr &SecondMI) { auto &MRI = SecondMI.getMF()->getRegInfo(); /* Predicates */ return true; } ```
A boilerplate class called `SimpleFusion` is added. `SimpleFusion` has a predefined structure of predicates and accepts predicate for `firstMI`, predicate for `secondMI` and epilog/prolog as arguments. The generated code for `SimpleFusion` will be like: ``` bool isNAME(const TargetInstrInfo &TII, const TargetSubtargetInfo &STI, const MachineInstr *FirstMI, const MachineInstr &SecondMI) { auto &MRI = SecondMI.getMF()->getRegInfo(); /* Prolog */ /* Predicate for `SecondMI` */ /* Wildcard */ /* Predicate for `FirstMI` */ /* Check One Use */ /* Tie registers */ /* Epilog */ return true; } ```
show more ...
|