[PATCH] D36618: [globalisel][tablegen] Simplify and fix a wrong-code bug this revealed.

Daniel Sanders via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 11 07:49:46 PDT 2017


dsanders created this revision.
Herald added subscribers: kristof.beyls, igorb, aemerson.

Operand variable lookups are now performed by the RuleMatcher rather than
searching the whole matcher hierarchy for a match. This revealed a wrong-code
bug that currently affects ARM and X86 where patterns that use a variable more
than once in the match pattern will be imported but won't check that the
operands are identical. This can cause the tablegen-erated matcher to
accept matches that should be rejected.

Depends on https://reviews.llvm.org/D36569


https://reviews.llvm.org/D36618

Files:
  include/llvm/CodeGen/GlobalISel/InstructionSelector.h
  include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
  test/CodeGen/X86/GlobalISel/select-blsr.mir
  test/TableGen/GlobalISelEmitter.td
  utils/TableGen/GlobalISelEmitter.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D36618.110727.patch
Type: text/x-patch
Size: 36086 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170811/76bf0a14/attachment.bin>


More information about the llvm-commits mailing list