History log of /llvm-project/llvm/utils/TableGen/MacroFusionPredicatorEmitter.cpp (Results 1 – 9 of 9)
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, 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 ...