[PATCH] D35681: [globalisel][tablegen] Fuse the generated tables together.

Daniel Sanders via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 20 06:14:19 PDT 2017


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

Now that we have control flow in place, fuse the per-rule tables into a
single table. This is a compile-time saving at this point. However, this will
also enable the optimization of a table so that similar instructions can be
tested together, reducing the time spent on the matching the code.

This is NFC in terms of externally visible behaviour but some internals have
changed slightly. State.MIs is no longer reset between each rule that is
attempted because it's not necessary to do so. As a consequence of this the
restriction on the order that instructions are added to State.MIs has been
relaxed to only affect recorded instructions that require new elements to be
added to the vector. GIM_RecordInsn can now write to any element from 1 to
State.MIs.size() instead of just State.MIs.size().


https://reviews.llvm.org/D35681

Files:
  include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
  test/TableGen/GlobalISelEmitter.td
  utils/TableGen/GlobalISelEmitter.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D35681.107498.patch
Type: text/x-patch
Size: 26680 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170720/966158eb/attachment.bin>


More information about the llvm-commits mailing list