summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-exegesis
Commit message (Collapse)AuthorAgeFilesLines
...
* [llvm-exegesis] Add missing initializer.Clement Courbet2018-10-252-9/+9
| | | | | | This is a better fix than rL345245. llvm-svn: 345246
* [llvm-exegesis] Fix VC build of r345243.Clement Courbet2018-10-251-8/+8
| | | | | | | | "const members cannot be default initialized unless their type has a user defined default constructor" Make members non-const. llvm-svn: 345245
* [llvm-exegesis] Fix warning in r345243.Clement Courbet2018-10-251-1/+1
| | | | | | warning C4099: 'llvm::exegesis::PfmCountersInfo': type name first seen using 'class' now seen using 'struct' llvm-svn: 345244
* [MCSched] Bind PFM Counters to the CPUs instead of the SchedModel.Clement Courbet2018-10-259-22/+109
| | | | | | | | | | | | | | | | Summary: The pfm counters are now in the ExegesisTarget rather than the MCSchedModel (PR39165). This also compresses the pfm counter tables (PR37068). Reviewers: RKSimon, gchatelet Subscribers: mgrang, llvm-commits Differential Revision: https://reviews.llvm.org/D52932 llvm-svn: 345243
* [llvm-exegesis] Implements a cache of Instruction objects.Guillaume Chatelet2018-10-246-8/+40
| | | | llvm-svn: 345130
* [llvm-exegesis] Fix name lookup ambiguity in MSVC after 344922Fangrui Song2018-10-221-1/+1
| | | | llvm-svn: 344927
* [llvm-exegesis] Move namespace exegesis inside llvm::Fangrui Song2018-10-2234-52/+122
| | | | | | | | | | | | | | | | Summary: This allows simplifying references of llvm::foo with foo when the needs come in the future. Reviewers: courbet, gchatelet Reviewed By: gchatelet Subscribers: javed.absar, tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D53455 llvm-svn: 344922
* [llvm-exegesis] Crash when assembling invalid OperandGuillaume Chatelet2018-10-221-0/+2
| | | | llvm-svn: 344907
* [llvm-exegesis] Mark x86 segment register instructions as unsupported.Guillaume Chatelet2018-10-221-0/+6
| | | | | | | | | | Reviewers: courbet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D53499 llvm-svn: 344906
* [llvm-exegesis] Reject x86 instructions that use non uniform memory accessesGuillaume Chatelet2018-10-221-25/+64
| | | | | | | | | | Reviewers: courbet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D53438 llvm-svn: 344905
* [llvm-exegesis] Mark second-form X87 instructions as unsupported.Clement Courbet2018-10-191-1/+8
| | | | | | | | | | | | | | Summary: We only support the first form because we rely on information that is only available there. Reviewers: gchatelet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D53430 llvm-svn: 344782
* [llvm-exegesis] Re-enable liveliness tracker.Clement Courbet2018-10-191-1/+2
| | | | | | | | | | Reviewers: gchatelet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D53429 llvm-svn: 344780
* [llvm-exegesis] X87 RFP setup code.Clement Courbet2018-10-191-13/+27
| | | | | | | | | | | | | | | | Summary: This was lost during refactoring in rL342644. Fix and simplify simplify value size handling: always go through a 80 bit value, because the value can be 1 byte). Add unit tests. Reviewers: gchatelet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D53423 llvm-svn: 344779
* Use llvm::{all,any,none}_of instead std::{all,any,none}_of. NFCFangrui Song2018-10-192-6/+6
| | | | llvm-svn: 344774
* [llvm-exegesis] Fix off by one errorGuillaume Chatelet2018-10-181-1/+1
| | | | llvm-svn: 344731
* [llvm-exegesis] Mark destructor virtual after r344695Krasimir Georgiev2018-10-181-1/+1
| | | | | | This was causing a -Wnon-virtual-dtor warning. llvm-svn: 344721
* [llvm-exegesis] Allow measuring several instructions in a single run.Clement Courbet2018-10-177-84/+157
| | | | | | | | | | | | | | | | Summary: We try to recover gracefully on instructions that would crash the program. This includes some refactoring of runMeasurement() implementations. Reviewers: gchatelet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D53371 llvm-svn: 344695
* Fix uninitialized variableGuillaume Chatelet2018-10-171-1/+1
| | | | llvm-svn: 344692
* BuildBot fix, compiler complains about array decay to pointerGuillaume Chatelet2018-10-171-11/+10
| | | | llvm-svn: 344690
* [llvm-exegeis] Computing Latency configuration upfront so we can generate ↵Guillaume Chatelet2018-10-178-43/+258
| | | | | | | | | | | | | | | | 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 llvm-svn: 344689
* [llvm-exegesis] Fix missing std::move.Guillaume Chatelet2018-10-151-2/+2
| | | | llvm-svn: 344496
* [llvm-exegesis][NFC] Return many CodeTemplates instead of one.Guillaume Chatelet2018-10-157-73/+83
| | | | | | | | | | | | Summary: This is part one of the change where I simply changed the signature of the functions. More work need to be done to actually produce more than one CodeTemplate per instruction. Reviewers: courbet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D53209 llvm-svn: 344493
* [llvm-exegesis][NFC] Simplify code at the cost of small code duplicationGuillaume Chatelet2018-10-121-58/+60
| | | | | | | | | | Reviewers: courbet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D53198 llvm-svn: 344351
* [llvm-exegesis] Fix always true assertGuillaume Chatelet2018-10-101-1/+1
| | | | llvm-svn: 344151
* [llvm-exegesis][NFC] Pass Instruction instead of bare OpcodeGuillaume Chatelet2018-10-1010-29/+32
| | | | llvm-svn: 344145
* [llvm-exegesis][NFC] Code simplificationGuillaume Chatelet2018-10-109-26/+29
| | | | | | | | | | | | Summary: Simplify code by having LLVMState hold the RegisterAliasingTrackerCache. Reviewers: courbet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D53078 llvm-svn: 344143
* [llvm-exegesis] Fix function return generation so it doesn't return register 0John Brawn2018-10-101-1/+1
| | | | | | | | | | When fillMachineFunction generates a return on targets without a return opcode (such as AArch64) it should pass an empty set of registers as the return registers, not 0 which means register number zero. Differential Revision: https://reviews.llvm.org/D53074 llvm-svn: 344139
* [llvm-exegesis] Fix broken build.Guillaume Chatelet2018-10-101-4/+1
| | | | llvm-svn: 344131
* [llvm-exegesis][NFC] Simplify code now that Instruction has more semanticGuillaume Chatelet2018-10-104-48/+11
| | | | | | | | | | Reviewers: courbet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D53065 llvm-svn: 344130
* [llvm-exegesis] Remove unused variable, add more semantic to Instruction.Guillaume Chatelet2018-10-102-10/+31
| | | | | | | | | | Reviewers: courbet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D53062 llvm-svn: 344127
* Fix function case.Guillaume Chatelet2018-10-092-2/+2
| | | | llvm-svn: 344051
* [llvm-exegesis] Fix invalid return type and add a Dump function.Guillaume Chatelet2018-10-092-8/+62
| | | | | | | | | | Reviewers: courbet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D53020 llvm-svn: 344050
* [llvm-exegesis] Fix wrong index type.Guillaume Chatelet2018-10-092-2/+3
| | | | llvm-svn: 344032
* [llvm-exegesis] Fix unused lambda capture.Guillaume Chatelet2018-10-091-1/+1
| | | | llvm-svn: 344029
* [llvm-exegesis][NFC] Use accessors for Operand.Guillaume Chatelet2018-10-096-93/+204
| | | | | | | | | | | | Summary: This moves checking logic into the accessors and makes the structure smaller. It will also help when/if Operand are generated from the TD files. Subscribers: tschuett, courbet, llvm-commits Differential Revision: https://reviews.llvm.org/D52982 llvm-svn: 344028
* [llvm-exegesis][NFC] Improve parsing of the YAML filesGuillaume Chatelet2018-10-041-8/+30
| | | | | | | | | | | | Summary: sscanf turns out to be slow for reading floating points. Reviewers: courbet Subscribers: tschuett, llvm-commits, RKSimon Differential Revision: https://reviews.llvm.org/D52866 llvm-svn: 343771
* [llvm-exegesis] Avoid yaml parser from calling sscanf for obvious ↵Simon Pilgrim2018-10-031-2/+4
| | | | | | | | | | non-matches (PR39102) deserializeMCOperand - ensure that we at least match the first character of the sscanf pattern before calling This reduces llvm-exegesis uops analysis of the instructions supported from btver2 from 5m13s to 2m1s on debug builds. llvm-svn: 343690
* [llvm-exegesis][NFC] Revert rL343682 "Fix unused variable warning".Clement Courbet2018-10-031-1/+1
| | | | | | That was not the proper fix: the variable is used in debug mode. llvm-svn: 343685
* [llvm-exegesis] Fix rL343680 in release mode.Clement Courbet2018-10-032-2/+3
| | | | llvm-svn: 343684
* [llvm-exegesis][NFC] Fix unused variable warning.Clement Courbet2018-10-031-1/+0
| | | | llvm-svn: 343682
* [llvm-exegesis] Resolve variant classes in analysis.Clement Courbet2018-10-032-62/+101
| | | | | | | | | | | | Summary: See PR38884. Reviewers: gchatelet Subscribers: tschuett, RKSimon, llvm-commits Differential Revision: https://reviews.llvm.org/D52825 llvm-svn: 343680
* [llvm-exegesis][NFC] Move random functions from CodeTemplate to ↵Guillaume Chatelet2018-10-014-109/+104
| | | | | | | | | | | | | | SnippetGenerator. Summary: Just moving methods around. Reviewers: courbet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D52720 llvm-svn: 343461
* [llvm-exegesis][NFC] Make randomizeUnsetVariables a free function.Guillaume Chatelet2018-10-013-17/+19
| | | | | | | | | | | | Summary: This is prelimineary to moving random functions to SnippetGenerator. Reviewers: courbet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D52718 llvm-svn: 343456
* [llvm-exegesis] Fix PR39096.Clement Courbet2018-09-271-16/+37
| | | | | | | | | | | | Summary: The key is now the resource name, not the resource id. Reviewers: gchatelet Subscribers: tschuett, RKSimon, llvm-commits Differential Revision: https://reviews.llvm.org/D52607 llvm-svn: 343208
* [llvm-exegesis][NFC] moving code around.Guillaume Chatelet2018-09-2713-255/+260
| | | | | | | | | | | | Summary: Renaming InstructionBuilder into InstructionTemplate and moving code generation tools from MCInstrDescView to CodeTemplate. Reviewers: courbet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D52592 llvm-svn: 343188
* [llvm-exegesis] Remove unused headers and fix naming issuesFangrui Song2018-09-271-14/+12
| | | | | | | | | | | | Reviewers: courbet Reviewed By: courbet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D52565 llvm-svn: 343177
* llvm::sort(C.begin(), C.end(), ...) -> llvm::sort(C, ...)Fangrui Song2018-09-271-9/+7
| | | | | | | | | | | | Summary: The convenience wrapper in STLExtras is available since rL342102. Reviewers: dblaikie, javed.absar, JDevlieghere, andreadb Subscribers: MatzeB, sanjoy, arsenm, dschuff, mehdi_amini, sdardis, nemanjai, jvesely, nhaehnle, sbc100, jgravelle-google, eraman, aheejin, kbarton, JDevlieghere, javed.absar, gbedwell, jrtc27, mgrang, atanasyan, steven_wu, george.burgess.iv, dexonsmith, kristina, jsji, llvm-commits Differential Revision: https://reviews.llvm.org/D52573 llvm-svn: 343163
* [llvm-exegesis] Get rid of debug_string.Clement Courbet2018-09-263-9/+7
| | | | | | | | | | | | | | | | Summary: THis is a backwards-compatible change (existing files will work as expected). See PR39082. Reviewers: gchatelet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D52546 llvm-svn: 343108
* [llvm-exegesis][NFC] Move CodeTemplate to it's own file.Guillaume Chatelet2018-09-266-25/+64
| | | | | | | | | | | | | | Summary: This is is preparation of exploring value ranges. Reviewers: courbet Reviewed By: courbet Subscribers: mgorny, tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D52542 llvm-svn: 343098
* [llvm-exegesis] Add support for measuring NumMicroOps.Clement Courbet2018-09-263-15/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Example output for vzeroall: --- mode: uops key: instructions: - 'VZEROALL' config: '' register_initial_values: cpu_name: haswell llvm_triple: x86_64-unknown-linux-gnu num_repetitions: 10000 measurements: - { debug_string: HWPort0, value: 0.0006, per_snippet_value: 0.0006, key: '3' } - { debug_string: HWPort1, value: 0.0011, per_snippet_value: 0.0011, key: '4' } - { debug_string: HWPort2, value: 0.0004, per_snippet_value: 0.0004, key: '5' } - { debug_string: HWPort3, value: 0.0018, per_snippet_value: 0.0018, key: '6' } - { debug_string: HWPort4, value: 0.0002, per_snippet_value: 0.0002, key: '7' } - { debug_string: HWPort5, value: 1.0019, per_snippet_value: 1.0019, key: '8' } - { debug_string: HWPort6, value: 1.0033, per_snippet_value: 1.0033, key: '9' } - { debug_string: HWPort7, value: 0.0001, per_snippet_value: 0.0001, key: '10' } - { debug_string: NumMicroOps, value: 20.0069, per_snippet_value: 20.0069, key: NumMicroOps } error: '' info: '' assembled_snippet: C5FC77C5FC77C5FC77C5FC77C5FC77C5FC77C5FC77C5FC77C5FC77C5FC77C5FC77C5FC77C5FC77C5FC77C5FC77C5FC77C3 ... Reviewers: gchatelet Subscribers: tschuett, RKSimon, andreadb, llvm-commits Differential Revision: https://reviews.llvm.org/D52539 llvm-svn: 343094
OpenPOWER on IntegriCloud