[llvm-exegeis] Computing Latency configuration upfront so we can generate many CodeTe...
commit7098b8f79dd6b8d57b09b7582aada1f9ae1fda9e
authorGuillaume Chatelet <gchatelet@google.com>
Wed, 17 Oct 2018 11:37:28 +0000 (17 11:37 +0000)
committerGuillaume Chatelet <gchatelet@google.com>
Wed, 17 Oct 2018 11:37:28 +0000 (17 11:37 +0000)
tree61a7eaa4d7868a2800a7dc84cbb185999e225fd5
parent360f614141e6346a75920fa91b627c317370f20f
[llvm-exegeis] Computing Latency configuration upfront so we can generate many CodeTemplates at once.

Summary: LatencyGenerator now computes all possible mode of serial execution for an Instruction upfront and generates CodeTemplate for the ones that give the best results (e.g. no need to generate a two instructions snippet when repeating a single one would do). The next step is to generate even more configurations for cases (e.g. for XOR we should generate "XOR EAX, EAX, EAX" and "XOR EAX, EAX, EBX")

Reviewers: courbet

Reviewed By: courbet

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@344689 91177308-0d34-0410-b5e6-96231b3b80d8
tools/llvm-exegesis/lib/CodeTemplate.cpp
tools/llvm-exegesis/lib/CodeTemplate.h
tools/llvm-exegesis/lib/Latency.cpp
tools/llvm-exegesis/lib/MCInstrDescView.cpp
tools/llvm-exegesis/lib/MCInstrDescView.h
tools/llvm-exegesis/lib/SnippetGenerator.cpp
tools/llvm-exegesis/lib/SnippetGenerator.h
tools/llvm-exegesis/lib/Uops.cpp
unittests/tools/llvm-exegesis/X86/SnippetGeneratorTest.cpp