[llvm-dev] GlobalISel: Very limited pattern matching?

via llvm-dev
2019-05-20T12:49:54Z

Hi all,

I'm trying to get GlobalISel up and running on an off-tree
architecture and am thinking I must be doing something wrong, given by
how few things actually work.
Namely, any ImmLeaf pattern will fail to match if there is a
(TRUNC/ZEXT/SEXT) applied to the constant operand, all of which are
commonly created through Legalization. This is due to G_CONSTANT being
explicitly looked for by the tablegened code, rather than code that
makes use of getConstantVRegVal.

Is there supposed to be a constant folding pass before Instruction
Selection? CSE does not fold past unaries applied to operands, I'm
surely missing a pass somewhere...
Thanks,
- Alex Davies
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20190520/7ed285cf/attachment.html>