[PATCH] D33758: [globalisel][tablegen] Partially fix compile-time regressions by converting matcher to state-machine(s)

Daniel Sanders via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 1 00:06:31 PDT 2017


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

Replace the matcher if-statements for each rule with a state-machine. This
significantly reduces compile time, memory allocations, and cumulative memory
allocation when compiling AArch64InstructionSelector.cpp.o after r303259 is
recommitted.

The following patches will expand on this further to fully fix the regressions.


https://reviews.llvm.org/D33758

Files:
  include/llvm/CodeGen/GlobalISel/InstructionSelector.h
  include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
  lib/Target/AArch64/AArch64InstructionSelector.cpp
  lib/Target/ARM/ARMInstructionSelector.cpp
  lib/Target/X86/X86InstructionSelector.cpp
  test/TableGen/GlobalISelEmitter.td
  utils/TableGen/GlobalISelEmitter.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D33758.100964.patch
Type: text/x-patch
Size: 88912 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170601/17d90d3c/attachment.bin>


More information about the llvm-commits mailing list