Displaying 3 results from an estimated 3 matches for "reg_with_shift".
2018 Nov 12
3
[RFC] Tablegen-erated GlobalISel Combine Rules
...ally make sense there. I can pull them out into a separate 'outs' section. This has a flexibility cost since the user can no longer specify the complete argument order but that's probably a good thing for readability.
>> Here's an example of a non-bool result:
>> def reg_with_shift : GIMatchPredicate<
>> (ins reg:$A), (outs uint64_t:$shift), MachineOperandPtr, [{
>> // MachineOperand *matchARMShiftedOp2(const MachineOperand &, uint64_t);
>> return matchARMShiftedOp2(${A}, ${imm});
>> }]>;
>> def : GICombineR...
2018 Nov 10
3
[RFC] Tablegen-erated GlobalISel Combine Rules
...they don't really make sense there. I can pull them out into a separate 'outs' section. This has a flexibility cost since the user can no longer specify the complete argument order but that's probably a good thing for readability.
Here's an example of a non-bool result:
def reg_with_shift : GIMatchPredicate<
(ins reg:$A), (outs uint64_t:$shift), MachineOperandPtr, [{
// MachineOperand *matchARMShiftedOp2(const MachineOperand &, uint64_t);
return matchARMShiftedOp2(${A}, ${imm});
}]>;
def : GICombineRule<
(defs root:$D, reg:$S1, reg_wit...
2018 Nov 09
5
[RFC] Tablegen-erated GlobalISel Combine Rules
Hi All,
I've been working on the GlobalISel combiner recently and I'd like to share the plan for how Combine Rules will be defined in GlobalISel and solicit feedback on it.
This email ended up rather long so:
TL;DR: We're planning to define GlobalISel Combine Rules using MIR syntax with a few bits glued on to interface with the algorithm and escape into C++ when we need to.