OSDN Git Service

[llvm-exegeis] Computing Latency configuration upfront so we can generate many CodeTe...
authorGuillaume Chatelet <gchatelet@google.com>
Wed, 17 Oct 2018 11:37:28 +0000 (11:37 +0000)
committerGuillaume Chatelet <gchatelet@google.com>
Wed, 17 Oct 2018 11:37:28 +0000 (11:37 +0000)
commit91e6826692e9bbf42880df69c51226f46b0a9167
tree61a7eaa4d7868a2800a7dc84cbb185999e225fd5
parent1e04734fb63189fd334a0d67bc6cd1cff95a5f4b
[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