Hi all,
I have two GIComplexOperandMatchers, one that takes [base(gpr)+offset(imm)], another that takes (global address inc offset) directly. It’s quite possible that I’m not doing things the right way™ by having these, but they seem to be making the transition easier.
However, because these patterns are look identical to the parser, tablegen seems to give them both equal preference - yet in all instances, the direct memory addressing variant ought be preferred over the one that requires a pointer register. I’m 99% sure that AddedComplexity is ignored by GlobalISel, and from quick look through GlobalISelEmitter.cpp I cannot find any alternative. Preferably, such an alternative would be applied to Operands, at that (maybe asking a bit much).
Before I go about renaming things such that alphabetical ordering gives me the results I want or hacking in a similar workaround, just want to check… is there a method I’ve missed for preferencing one pattern over another currently?
Thanks,
Alex Davies