OSDN Git Service

[GlobalISel][InstructionSelect] Removing redundant num operands and nested def operan...
authorRoman Tereshin <rtereshin@apple.com>
Tue, 22 May 2018 04:31:50 +0000 (04:31 +0000)
committerRoman Tereshin <rtereshin@apple.com>
Tue, 22 May 2018 04:31:50 +0000 (04:31 +0000)
commit33b4099feb6c557a161afd74b116edaf68724ace
tree8bf3b4a6d7b1a47dbc667952cc5996b3dbe0932d
parentf02d6fd47c197cfc457ebed845a8ed92f7b41a41
[GlobalISel][InstructionSelect] Removing redundant num operands and nested def operands checks, perf patch 2

This patch continues a series of patches that decrease time spent by
GlobalISel in its InstructionSelect pass by roughly 60% for -O0 builds
for large inputs as measured on sqlite3-amalgamation
(http://sqlite.org/download.html) targeting AArch64.

This commit specifically removes number of operands checks that are
redundant if the instruction's opcode already guarantees that number
of operands (or more), and also avoids any kind of checks on a def
operand of a nested instruction as everything about it was already
checked at its use.

The expected performance implication is about 3% off InstructionSelect
comparing to the baseline (before the series of patches)

This patch also contains a bit of NFC changes required for further
patches in the series.

Every commit planned shares the same Phabricator Review.

Reviewers: qcolombet, dsanders, bogner, aemerson, javed.absar

Reviewed By: qcolombet

Subscribers: rovka, llvm-commits, kristof.beyls

Differential Revision: https://reviews.llvm.org/D44700

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@332945 91177308-0d34-0410-b5e6-96231b3b80d8
test/TableGen/GlobalISelEmitter.td
utils/TableGen/GlobalISelEmitter.cpp