Guillaume Chatelet
171f3f46c8
[llvm-exegesis] Rename InstructionInstance into InstructionBuilder.
...
Summary: Non functional change.
Subscribers: tschuett, courbet, llvm-commits
Differential Revision: https://reviews.llvm.org/D50176
llvm-svn: 338701
2018-08-02 11:12:02 +00:00
Guillaume Chatelet
fb94354d2d
[llvm-exegesis] Provide a way to handle memory instructions.
...
Summary:
And implement memory instructions on X86.
This fixes PR36906.
Reviewers: gchatelet
Reviewed By: gchatelet
Subscribers: lebedev.ri, filcab, mgorny, tschuett, RKSimon, llvm-commits
Differential Revision: https://reviews.llvm.org/D48935
llvm-svn: 338567
2018-08-01 14:41:45 +00:00
Clement Courbet
e785169fce
[llvm-exegesis] ExegisX86Target::setRegToConstant() should depend on the subtarget features.
...
Summary: This fixes PR38008.
Reviewers: gchatelet, RKSimon
Subscribers: tschuett, craig.topper, llvm-commits
Differential Revision: https://reviews.llvm.org/D48820
llvm-svn: 336171
2018-07-03 06:17:05 +00:00
Clement Courbet
4860b98443
[llvm-exegesis] Get the BenchmarkRunner from the ExegesisTarget.
...
Summary:
This allows targets to override code generation for some instructions.
As an example of override, this also moves ad-hoc instruction filtering
for X86 into the X86 ExegesisTarget.
Reviewers: gchatelet
Subscribers: mgorny, tschuett, llvm-commits
Differential Revision: https://reviews.llvm.org/D48587
llvm-svn: 335582
2018-06-26 08:49:30 +00:00
Clement Courbet
a51efc266c
[llvm-exegesis] Generate snippet setup code.
...
Summary:
This ensures that the snippet always sees the same values for registers,
making measurements reproducible.
This will also allow exploring different values.
Reviewers: gchatelet
Subscribers: tschuett, llvm-commits
Differential Revision: https://reviews.llvm.org/D48542
llvm-svn: 335465
2018-06-25 13:12:02 +00:00
Clement Courbet
cff2caac75
[llvm-exegesis][NFC] clang-format
...
llvm-svn: 335452
2018-06-25 11:22:23 +00:00
Clement Courbet
6fd00e32e5
[llvm-exegesis] Add mechanism to add target-specific passes.
...
Summary:
createX86FloatingPointStackifierPass is disabled until we handle
TracksLiveness correctly.
Reviewers: gchatelet
Subscribers: mgorny, tschuett, llvm-commits
Differential Revision: https://reviews.llvm.org/D48360
llvm-svn: 335117
2018-06-20 11:54:35 +00:00
Roman Lebedev
3de9664494
llvm-exegesis: mark ~ExegesisTarget() as virtual. Fixes build.
...
/build/llvm/tools/llvm-exegesis/lib/X86/../Target.h:32:3: error: 'exegesis::ExegesisTarget' has virtual functions but non-virtual destructor [-Werror,-Wnon-virtual-dtor]
~ExegesisTarget();
^
/build/llvm/tools/llvm-exegesis/lib/X86/Target.cpp:15:7: error: 'exegesis::(anonymous namespace)::ExegesisX86Target' has virtual functions but non-virtual destructor [-Werror,-Wnon-virtual-dtor]
class ExegesisX86Target : public ExegesisTarget {
^
llvm-svn: 335042
2018-06-19 11:58:10 +00:00
Clement Courbet
44b4c54e26
Re-land r335038 "[llvm-exegesis] A mechanism to add target-specific functionality.""
...
Fix typo: LLVM_NATIVE_ARCH -> LLVM_EXEGESIS_NATIVE_ARCH.
llvm-svn: 335041
2018-06-19 11:28:59 +00:00
Clement Courbet
46751785ee
Revert r335038 "[llvm-exegesis] A mechanism to add target-specific functionality."
...
Breaks buildbots.
llvm-svn: 335040
2018-06-19 10:54:12 +00:00
Clement Courbet
6780b5f97d
[llvm-exegesis] A mechanism to add target-specific functionality.
...
Summary: This is a step towards implementing memory operands and X87.
Reviewers: gchatelet
Subscribers: mgorny, tschuett, llvm-commits
Differential Revision: https://reviews.llvm.org/D48210
llvm-svn: 335038
2018-06-19 10:39:50 +00:00