[LLVMdev] Instruction Constraints Question

dag at cray.com dag at cray.com
Wed Jan 23 14:38:45 PST 2013

Anton Korobeynikov <anton at korobeynikov.info> writes:

>> It doesn't look like TableGen supports Constraints beyond EARLY_CLOBBER
>> and TIED_TO.  We would need to add a constraint such as "$dst != $src1,
>> $dst != $mask, $src1 != $mask" to the current patterns to enforce the
>> rules.

> You can emulate such constraints via early clobbing. Just mark dst as
> early clobbing.

Actually, I've always wondered what early clobbering is.  Can you
explain it?

I don't think that it will work for the src1 != mask constraint, though,

>> Is there another mechanism to suport a constraint like this or is
>> hacking TableGen the best way to do it?  If the latter, does anyone have
>> a sense of how difficult this would be to implement?

> It's not a tablegen problem, the regalloc part is the hardest.

Sure, but we'll want to express the constraint in TableGen, I think.

Any hints on a direction for regalloc?  How are such constraints
modeled in the current iteration of the register allocator?



More information about the llvm-dev mailing list