Displaying 3 results from an estimated 3 matches for "matcharmshiftedop2".
2018 Nov 12
3
[RFC] Tablegen-erated GlobalISel Combine Rules
...e 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_with_shift:$S2),
>> (match [{MIR %D = G_ADD %S1, %S2 }]),
>> (apply [{MIR %D =...
2018 Nov 10
3
[RFC] Tablegen-erated GlobalISel Combine Rules
...e 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_with_shift:$S2),
(match [{MIR %D = G_ADD %S1, %S2 }]),
(apply [{MIR %D = ADD %S1, %S2, %S2.shift }])>;
(I've just realiz...
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.