summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-exegesis/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* [llvm-exegesis] Show sched class details in analysis.Clement Courbet2018-05-242-16/+142
| | | | | | | | | | | | Summary: And update docs. Reviewers: gchatelet Subscribers: tschuett, craig.topper, RKSimon, llvm-commits Differential Revision: https://reviews.llvm.org/D47254 llvm-svn: 333169
* [llvm-exegesis] Analysis output uses HTML.Clement Courbet2018-05-223-45/+183
| | | | | | | | | | | | Summary: This makes the report much more readable. Reviewers: gchatelet Subscribers: tschuett, mgrang, craig.topper, RKSimon, llvm-commits Differential Revision: https://reviews.llvm.org/D47189 llvm-svn: 332979
* CodeGen: Add a dwo output file argument to addPassesToEmitFile and hook it ↵Peter Collingbourne2018-05-211-2/+2
| | | | | | | | | | up to dwo output. Part of PR37466. Differential Revision: https://reviews.llvm.org/D47089 llvm-svn: 332881
* [llvm-exegesis] Remove redudant explicit template instantiations.Clement Courbet2018-05-171-5/+0
| | | | llvm-svn: 332611
* [llvm-exegesis] Write out inconsistencies to a file.Clement Courbet2018-05-172-6/+15
| | | | | | | | | | Reviewers: gchatelet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D47013 llvm-svn: 332608
* [llvm-exegesis] Analysis: detect clustering inconsistencies.Clement Courbet2018-05-172-25/+97
| | | | | | | | | | | | | | | | | Summary: Warn on instructions that should have the same performance characteristics according to the sched model but actually differ in their benchmarks. Next step: Make the display nicer to browse, I was thinking maybe html. Reviewers: gchatelet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D46945 llvm-svn: 332601
* reland r332579: [llvm-exegesis] Update to cover latency through another opcode.Clement Courbet2018-05-1721-1115/+1188
| | | | | | | | | | | | | | Restructuring the code to measure latency and uops. The end goal is to have this program spawn another process to deal with SIGILL and other malformed programs. It is not yet the case in this redesign, it is still the main program that runs the code (and may crash). It now uses BitVector instead of Graph for performance reasons. https://reviews.llvm.org/D46821 (with fixed ARM tests) Authored by Guillaume Chatelet llvm-svn: 332592
* Revert r332579 "[llvm-exegesis] Update to cover latency through another opcode."Clement Courbet2018-05-1721-1188/+1115
| | | | | | The revision failed to update the ARM tests. llvm-svn: 332580
* [llvm-exegesis] Update to cover latency through another opcode.Clement Courbet2018-05-1721-1115/+1188
| | | | | | | | | | | | Restructuring the code to measure latency and uops. The end goal is to have this program spawn another process to deal with SIGILL and other malformed programs. It is not yet the case in this redesign, it is still the main program that runs the code (and may crash). It now uses BitVector instead of Graph for performance reasons. https://reviews.llvm.org/D46821 Authored by Guillaume Chatelet llvm-svn: 332579
* [llvm-exegesis] Fix unused variable warning in release mode.Clement Courbet2018-05-161-1/+1
| | | | llvm-svn: 332455
* Fix unused variable warning in r332437.Clement Courbet2018-05-161-2/+2
| | | | llvm-svn: 332441
* [llvm-exegesis] Analysis: Display sched class for instructions.Clement Courbet2018-05-162-24/+60
| | | | | | | | | | Reviewers: gchatelet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D46883 llvm-svn: 332437
* [llvm-exegesis] Split AsmTemplate.Name into components.Clement Courbet2018-05-154-21/+32
| | | | | | | | | | | | | | Summary: AsmTemplate becomes IntructionBenchmarkKey, which has three components. This allows retreiving the opcode for analysis. Reviewers: gchatelet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D46873 llvm-svn: 332348
* Fix compilation under pre-c++14 gccs.Clement Courbet2018-05-151-1/+1
| | | | llvm-svn: 332346
* [llvm-exegesis] Add an analysis mode.Clement Courbet2018-05-155-22/+142
| | | | | | | | | | | | | | | | Summary: The analysis mode gives the user a clustered view of the measurement results. Next steps are (requires the split ok AsmTemplate.Name into {mnemonic, mode}): - Show the sched class. - Highlight any inconsistencies with the checked-in data. Reviewers: gchatelet Subscribers: mgorny, llvm-commits, tschuett Differential Revision: https://reviews.llvm.org/D46865 llvm-svn: 332344
* [llvm-exegesis] InMemoryAssembler: handle return-less targets (e.g. arm).Clement Courbet2018-05-152-2/+11
| | | | | | | | | | | | Summary: Arm does not have a ret code per se. Reviewers: gchatelet Subscribers: mgorny, javed.absar, kristof.beyls, tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D45672 llvm-svn: 332331
* [llvm-exegesis] Check perf event validity.Clement Courbet2018-05-151-1/+5
| | | | | | | | This was part of https://reviews.llvm.org/D46821. Authored by Guillaume Chatelet llvm-svn: 332330
* [llvm-exegesis] Revert accidentally commited code.Clement Courbet2018-05-145-115/+22
| | | | llvm-svn: 332231
* [llvm-exegesis] Fix a warning in r332221Clement Courbet2018-05-141-16/+9
| | | | | | | | | comparison of integers of different signs: 'const unsigned long' and 'const int' [-Werror,-Wsign-compare] unittests/tools/llvm-exegesis/BenchmarkResultTest.cpp:60:5: note: in instantiation of function template specialization 'testing::internal::EqHelper<false>::Compare<unsigned long, int>' requested here ASSERT_EQ(FromDiskVector.size(), 1); llvm-svn: 332230
* [llvm-exegesis] Add an analysis mode.Clement Courbet2018-05-145-22/+122
| | | | | | | The analysis mode gives the user a clustered view of the measurement results and highlights any inconsistencies with the checked-in data. llvm-svn: 332229
* [llvm-exegesis] Allow lists of BenchmarkResults to be parsed as ↵Clement Courbet2018-05-142-3/+20
| | | | | | std::vector<BenchmarkResult>. llvm-svn: 332221
* Re-land r331622 "[llvm-exegesis] Add a library to cluster benchmark results."Clement Courbet2018-05-073-0/+274
| | | | | | Add missing move. llvm-svn: 331624
* Revert r331622 "[llvm-exegesis] Add a library to cluster benchmark results."Clement Courbet2018-05-073-274/+0
| | | | | | Breaks build over llvm::Error copy construction. llvm-svn: 331623
* [llvm-exegesis] Add a library to cluster benchmark results.Clement Courbet2018-05-073-0/+274
| | | | | | | | | | Reviewers: gchatelet Subscribers: mgorny, tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D46432 llvm-svn: 331622
* [llvm-exegesis] Use LLVMTargetMachine pointer everywhere. NFCI.Simon Pilgrim2018-04-181-1/+1
| | | | | | Avoid calling the unique_ptr multiple times. llvm-svn: 330260
* [llvm-exegesis] Put a newline at the end of each error report.Simon Pilgrim2018-04-181-2/+2
| | | | | | Makes multiple error messages much easier to read. llvm-svn: 330258
* [llvm-exegesis] Pull out LLVMTargetMachine to simplify debugging. NFCI.Simon Pilgrim2018-04-181-1/+2
| | | | | | Has been useful while trying to get around all the error reporting issues mentioned on PR37049. llvm-svn: 330255
* [llvm-exegesis] Fix use after free.Clement Courbet2018-04-131-1/+1
| | | | | | | | | | Reviewers: gchatelet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D45625 llvm-svn: 330026
* [MC][TableGen] Add optional libpfm counter names for ProcResUnits.Clement Courbet2018-04-102-47/+15
| | | | | | | | | | | | | | | | Summary: Subtargets can define the libpfm counter names that can be used to measure cycles and uops issued on ProcResUnits. This allows making llvm-exegesis available on more targets. Fixes PR36984. Reviewers: gchatelet, RKSimon, andreadb, craig.topper Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D45360 llvm-svn: 329675
* [llvm-exegesis] Fix unused return value warning and add a useful error ↵Simon Pilgrim2018-04-071-1/+3
| | | | | | message for event counter reads. llvm-svn: 329496
* [llvm-exegesis] Suppress a warning.Clement Courbet2018-04-051-1/+2
| | | | llvm-svn: 329257
* [llvm-exegesis] Add missing link libraries.Clement Courbet2018-04-041-0/+3
| | | | llvm-svn: 329185
* [llvm-exegesis] Do not initialize FileDescriptor when libpfm is notClement Courbet2018-04-041-1/+1
| | | | | | available. llvm-svn: 329177
* [llvm-exegesis] Fix compilation on lld-x86_64-darwin13Clement Courbet2018-04-041-1/+1
| | | | | | | YAMLTraits does not know how to serialize `size_t` portably. Use `int` instead. llvm-svn: 329176
* [llvm-exegesis][NFC] Fix compilation warning.Clement Courbet2018-04-041-1/+4
| | | | llvm-svn: 329175
* [llvm-exegesis][NFC] Fix a few warnings.Clement Courbet2018-04-042-1/+4
| | | | llvm-svn: 329174
* [llvm-exegesis] Fix compilation on some clang versions.Clement Courbet2018-04-041-1/+1
| | | | | | default initialization of an object of const type 'const llvm::DebugLoc' requires a user-provided default constructor. llvm-svn: 329171
* Re-land r329156 "Add llvm-exegesis tool."Clement Courbet2018-04-0422-0/+2152
| | | | | | Fixed to depend on and initialize the native target instead of X86. llvm-svn: 329169
* Revert r329156 "Add llvm-exegesis tool."Clement Courbet2018-04-0422-2152/+0
| | | | | | Breaks a bunch of bots. llvm-svn: 329157
* Add llvm-exegesis tool.Clement Courbet2018-04-0422-0/+2152
Summary: [llvm-exegesis][RFC] Automatic Measurement of Instruction Latency/Uops This is the code corresponding to the RFC "llvm-exegesis Automatic Measurement of Instruction Latency/Uops". The RFC is available on the LLVM mailing lists as well as the following document for easier reading: https://docs.google.com/document/d/1QidaJMJUyQdRrFKD66vE1_N55whe0coQ3h1GpFzz27M/edit?usp=sharing Subscribers: mgorny, gchatelet, orwant, llvm-commits Differential Revision: https://reviews.llvm.org/D44519 llvm-svn: 329156
OpenPOWER on IntegriCloud