summaryrefslogtreecommitdiffstats
path: root/llvm/tools
Commit message (Collapse)AuthorAgeFilesLines
...
* [ORC] Update JITCompileCallbackManager to support multi-threaded code.Lang Hames2018-05-303-16/+7
| | | | | | | | | Previously JITCompileCallbackManager only supported single threaded code. This patch embeds a VSO (see include/llvm/ExecutionEngine/Orc/Core.h) in the callback manager. The VSO ensures that the compile callback is only executed once and that the resulting address cached for use by subsequent re-entries. llvm-svn: 333490
* [llvm-readobj] Support GNU_PROPERTY_X86_FEATURE_1_AND notes in ↵Alexander Ivchenko2018-05-291-1/+31
| | | | | | | | | | | | | | .note.gnu.property This patch allows parsing GNU_PROPERTY_X86_FEATURE_1_AND notes in .note.gnu.property sections. These notes indicate that the object file is built to support Intel CET. patch by mike.dvoretsky Differential Revision: https://reviews.llvm.org/D47473 llvm-svn: 333424
* [llvm-objcopy] Add --keep-file-symbols optionPaul Semel2018-05-262-3/+9
| | | | | | | | This option prevent from removing file symbols while removing symbols. Differential Revision: https://reviews.llvm.org/D46830 llvm-svn: 333339
* [ThinLTO] Print module summary index to assemblyTeresa Johnson2018-05-261-15/+17
| | | | | | | | | | | | | | | | | | | | | Summary: Implements AsmWriter support for printing the module summary index to assembly with the format discussed in the RFC "LLVM Assembly format for ThinLTO Summary". Implements just enough of the parsing support to recognize and ignore the summary entries. As agreed in the RFC thread, this will be the behavior when assembling the IR. A follow on change will implement parsing/assembling of the summary entries for use by tools that currently build the summary index from bitcode. Reviewers: dexonsmith, pcc Subscribers: inglorion, eraman, steven_wu, dblaikie, llvm-commits Differential Revision: https://reviews.llvm.org/D46699 llvm-svn: 333335
* [llvm-symbolizer] SimplifyFangrui Song2018-05-261-1/+1
| | | | llvm-svn: 333334
* [llvm-mca] Update the header's guard name. NFC.Matt Davis2018-05-251-3/+3
| | | | | | This patch also places a comment at the end of the header guard. llvm-svn: 333297
* [llvm-mca] Update DispatchStage header comment. NFC.Matt Davis2018-05-252-3/+10
| | | | | | Updated the comment to be a wee bit more descriptive. llvm-svn: 333296
* [llvm-mca] Add the RetireStage. Matt Davis2018-05-2511-82/+175
| | | | | | | | | | | | | | | | | Summary: This class maintains the same logic as the original RetireControlUnit. This is just an intermediate patch to make the RCU a Stage. Future patches will remove the dependency on the DispatchStage, and then more properly populate the pre/execute/post Stage interface. Reviewers: andreadb, RKSimon, courbet Reviewed By: andreadb, courbet Subscribers: javed.absar, mgorny, tschuett, gbedwell, llvm-commits Differential Revision: https://reviews.llvm.org/D47244 llvm-svn: 333292
* [llvm-objcopy] Add --strip-unneeded optionPaul Semel2018-05-254-3/+43
| | | | | | Differential Revision: https://reviews.llvm.org/D46896 llvm-svn: 333267
* [llvm-symbolizer] Simplify. NFCFangrui Song2018-05-251-10/+5
| | | | llvm-svn: 333247
* [Debugify] Set a DI version module flag for llc compatibilityVedant Kumar2018-05-241-2/+10
| | | | | | | Setting the "Debug Info Version" module flag makes it possible to pipe synthetic debug info into llc, which is useful for testing backends. llvm-svn: 333237
* [Debugify] Avoid printing unnecessary square braces, NFCVedant Kumar2018-05-241-2/+4
| | | | llvm-svn: 333236
* [llvm-mca] Fix a rounding problem in SummaryView.cpp exposed by r333204.Andrea Di Biagio2018-05-241-4/+7
| | | | | | | | Before printing the block reciprocal throughput, ensure that the floating point number is always rounded the same way on every target. No functional change intended. llvm-svn: 333210
* [llvm-exegesis] Analysis: Show value extents.Clement Courbet2018-05-243-9/+57
| | | | | | | | | | | | Summary: Screenshot attached in phabricator. Reviewers: gchatelet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D47318 llvm-svn: 333181
* [Support] Add color cl category.Jonas Devlieghere2018-05-242-2/+3
| | | | | | | | | This commit adds a color category so tools can document this option and enables it for dwarfdump and dsymuttil. rdar://problem/40498996 llvm-svn: 333176
* [llvm-exegesis] Analysis: show debug string instead of raw key if provided.Clement Courbet2018-05-241-1/+4
| | | | | | | | | | Reviewers: gchatelet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D47315 llvm-svn: 333175
* [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-strip] Minor fix of the usage of TableGenAlexander Shaposhnikov2018-05-231-13/+26
| | | | | | | | | | | | This is a small follow-up to the revisions r333117 and r331663. 1. Avoid the name conflicts of the generated variables for prefixes. 2. Apply clang-format -i -style=llvm to llvm-objcopy.cpp once again. 3. Add a test for the flag with double dash. Test plan: make check-all llvm-svn: 333120
* [llvm-strip] Expose --keep-symbol optionAlexander Shaposhnikov2018-05-232-0/+10
| | | | | | | | | | Expose --keep-symbol option in llvm-strip. Test plan: make check-all Differential revision: https://reviews.llvm.org/D47222 llvm-svn: 333117
* [llvm-mca] Fix header comments. NFC.Matt Davis2018-05-232-2/+2
| | | | llvm-svn: 333096
* [llvm-mca] Print the "Block RThroughput" in the SummaryView.Andrea Di Biagio2018-05-233-14/+99
| | | | | | | | | | | | | | | | | | | This patch implements the "block reciprocal throughput" computation in the SummaryView. The block reciprocal throughput is computed as the MAX of: - NumMicroOps / DispatchWidth - Resource Cycles / #Units (for every resource consumed). The block throughput is bounded from above by the hardware dispatch throughput. That is because the DispatchWidth is an upper bound on how many opcodes can be part of a single dispatch group. The block throughput is also limited by the amount of hardware parallelism. The number of available resource units affects how the resource pressure is distributed, and also how many blocks can be delivered every cycle. llvm-svn: 333095
* [Coverage] Update CSS to make HTML reports copy-paste friendly.Max Moroz2018-05-221-0/+3
| | | | | | | | | | | | | | | | | | | | | | Summary: This minor change allows to copy snippets from HTML reports so they will be pasted in the following format: %LineNumber%\t%HitCount%\t%CodeLine% rather then being split onto multiple lines. To see this in action, try copy pasting from https://chromium-coverage.appspot.com/reports/560344/linux/chromium/src/third_party/zlib/compress.c.html Requested in https://bugs.chromium.org/p/chromium/issues/detail?id=845571 Reviewers: vsk Reviewed By: vsk Subscribers: llvm-commits, morehouse, kcc Differential Revision: https://reviews.llvm.org/D47231 llvm-svn: 333034
* [llvm-mca] Move DispatchStage::cycleEvent to preExecute. NFC.Matt Davis2018-05-223-10/+10
| | | | | | | | | | | | | | | | | | | | | | | Summary: This is an intermediate change, it moves the non-notification logic from Backend::notifyCycleBegin to runCycle(). Once the scheduler becomes part of the Execution stage the explicit call to Scheduler::cycleEvent will disappear. The logic for Dispatch::cycleEvent() can be in the preExecute phase, which this patch addresses. Reviewers: andreadb, RKSimon, courbet Reviewed By: andreadb Subscribers: tschuett, gbedwell, llvm-commits Differential Revision: https://reviews.llvm.org/D47213 llvm-svn: 333029
* [llvm-objcopy] Fix the behavior of --strip-* and --keep-symbolAlexander Shaposhnikov2018-05-222-45/+63
| | | | | | | | | | | | If one runs llvm-objcopy --strip-all --keep-symbol foo and the symbol table indeed contains the symbol "foo" then it should not be removed. Test plan: make check-all Differential revision: https://reviews.llvm.org/D47052 llvm-svn: 333008
* [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
* Revert "[llvm-objcopy] Add --strip-unneeded option"Paul Semel2018-05-224-39/+4
| | | | | | | | There is a use after free I didn't see. Need to investigate. This reverts commit f7624abeb1f0d012309baf2e78cf2499fbfe5e5f. llvm-svn: 332925
* [llvm-objcopy] Add --strip-unneeded optionPaul Semel2018-05-214-4/+39
| | | | | | | | This option removes symbols that are not needed by relocations. Differential Revision: https://reviews.llvm.org/D46896 llvm-svn: 332915
* LTO: Replace split dwarf implementation that uses objcopy with one that uses ↵Peter Collingbourne2018-05-211-6/+0
| | | | | | | | | | direct emission. Part of PR37466. Differential Revision: https://reviews.llvm.org/D47091 llvm-svn: 332884
* CodeGen: Add a dwo output file argument to addPassesToEmitFile and hook it ↵Peter Collingbourne2018-05-213-4/+24
| | | | | | | | | | up to dwo output. Part of PR37466. Differential Revision: https://reviews.llvm.org/D47089 llvm-svn: 332881
* MC: Introduce an ELF dwo object writer and teach llvm-mc about it.Peter Collingbourne2018-05-211-13/+30
| | | | | | | | Part of PR37466. Differential Revision: https://reviews.llvm.org/D47051 llvm-svn: 332875
* MC: Change object writers to use endian::Writer. NFCI.Peter Collingbourne2018-05-211-16/+13
| | | | | | | | Part of PR37466. Differential Revision: https://reviews.llvm.org/D47040 llvm-svn: 332861
* MC: Change MCAssembler::writeSectionData and writeFragmentPadding to take a ↵Peter Collingbourne2018-05-211-1/+1
| | | | | | | | | | | | | | raw_ostream. NFCI. Also clean up a couple of hacks where we were writing the section contents to another stream by setting the object writer's stream, writing and setting it back. Part of PR37466. Differential Revision: https://reviews.llvm.org/D47038 llvm-svn: 332858
* [llvm-mca] Removed an empty line generated by the timeline view. NFC.Andrea Di Biagio2018-05-211-7/+10
| | | | | | Also, regenerate all tests. llvm-svn: 332853
* [LLVM-C] Add DIBuilder Bindings For ObjC ClassesRobert Widmann2018-05-211-0/+19
| | | | | | | | | | | | | | Summary: Add LLVMDIBuilderCreateObjCIVar, LLVMDIBuilderCreateObjCProperty, and LLVMDIBuilderCreateInheritance to allow declaring metadata for Objective-C class hierarchies and their associated properties and instance variables. Reviewers: whitequark, deadalnix Reviewed By: whitequark Subscribers: harlanhaskins, llvm-commits Differential Revision: https://reviews.llvm.org/D47123 llvm-svn: 332850
* [DWARF] Refactor callback usage for .debug_line error handlingJames Henderson2018-05-211-1/+1
| | | | | | | | | | | Change the "recoverable" error callback to take an Error instaed of a string. Reviewed by: JDevlieghere Differential Revision: https://reviews.llvm.org/D46831 llvm-svn: 332845
* [LLVM-C] Improve Bindings For AliasesRobert Widmann2018-05-201-6/+88
| | | | | | | | | | | | | | Summary: Add wrappers for a module's alias iterators and a getter and setter for the aliasee value. Reviewers: whitequark, deadalnix Reviewed By: whitequark Subscribers: llvm-commits, harlanhaskins Differential Revision: https://reviews.llvm.org/D46808 llvm-svn: 332826
* [LLVM-C] Use Length-Providing Value Name Getters and SettersRobert Widmann2018-05-191-10/+20
| | | | | | | | | | | | | | | | Summary: - Provide LLVMGetValueName2 and LLVMSetValueName2 that return and take the length of the provided C string respectively - Deprecate LLVMGetValueName and LLVMSetValueName Reviewers: whitequark, deadalnix Reviewed By: whitequark Subscribers: llvm-commits, harlanhaskins Differential Revision: https://reviews.llvm.org/D46890 llvm-svn: 332810
* Support: Simplify endian stream interface. NFCI.Peter Collingbourne2018-05-181-1/+1
| | | | | | | | | | | | Provide some free functions to reduce verbosity of endian-writing a single value, and replace the endianness template parameter with a field. Part of PR37466. Differential Revision: https://reviews.llvm.org/D47032 llvm-svn: 332757
* MC: Change the streamer ctors to take an object writer instead of a stream. ↵Peter Collingbourne2018-05-183-9/+12
| | | | | | | | | | | | | | NFCI. The idea is that a client that wants split dwarf would create a specific kind of object writer that creates two files, and use it to create the streamer. Part of PR37466. Differential Revision: https://reviews.llvm.org/D47050 llvm-svn: 332749
* [llvm-exegesis] Improve documentation.Clement Courbet2018-05-181-1/+1
| | | | | | | | | | | | | | | | | Summary: - Better flag names. - Fix flag reference in doc. - Add usage examples in doc. Fixes PR37497. Reviewers: gchatelet Subscribers: llvm-commits, tschuett Differential Revision: https://reviews.llvm.org/D47015 llvm-svn: 332708
* [llvm-objcopy] Fix formattingAlexander Shaposhnikov2018-05-181-8/+8
| | | | | | | | | Apply clang-format -i -style=llvm to llvm-objcopy.cpp NFC. Test plan: make check-all llvm-svn: 332693
* [llvm-mca] Make Dispatch a subclass of Stage.Matt Davis2018-05-1711-130/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The logic of dispatch remains the same, but now DispatchUnit is a Stage (DispatchStage). This change has the benefit of simplifying the backend runCycle() code. The same logic applies, but it belongs to different components now. This is just a start, eventually we will need to remove the call to the DispatchStage in Scheduler.cpp, but that will be a separate patch. This change is mostly a renaming and moving of existing logic. This change also encouraged me to remove the Subtarget (STI) member from the Backend class. That member was used to initialize the other members of Backend and to eventually call DispatchUnit::dispatch(). Now that we have Stages, we can eliminate this by instantiating the DispatchStage with everything it needs at the time of construction (e.g., Subtarget). That change allows us to call DispatchStage::execute(IR) as we expect to call execute() for all other stages. Once we add the Stage list (D46907) we can more cleanly call preExecute() on all of the stages, DispatchStage, will probably wrap cycleEvent() in that case. Made some formatting and minor cleanups to README.txt. Some of the text was re-flowed to stay within 80 cols. Reviewers: andreadb, courbet, RKSimon Reviewed By: andreadb, courbet Subscribers: mgorny, javed.absar, tschuett, gbedwell, llvm-commits Differential Revision: https://reviews.llvm.org/D46983 llvm-svn: 332652
* [llvm-pdbutil] Dump struct/class/union sizes in the minimal dump formatReid Kleckner2018-05-171-4/+6
| | | | llvm-svn: 332645
* [Debugify] Print the output to stderrAnastasis Grammenos2018-05-171-9/+9
| | | | | | | | | | Currently debugify prints it's output to stdout, with this patch all the output generated goes to stderr. This change lets us use debugify without taking away the ability to pipe the output to other llvm tools. llvm-svn: 332642
* [mips] Add support for Global INValidate ASEPetar Jovanovic2018-05-171-0/+1
| | | | | | | | | | | | | | | | | | This includes Instructions: ginvi, ginvt, Assembler directives: .set ginv, .set noginv, .module ginv, .module noginv Attribute: ginv .MIPS.abiflags: GINV (0x20000) Patch by Vladimir Stefanovic. Differential Revision: https://reviews.llvm.org/D46268 llvm-svn: 332624
* [llvm-mca] Hide unrelated flags from the -help output.Andrea Di Biagio2018-05-171-23/+35
| | | | llvm-svn: 332615
* [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-173-21/+47
| | | | | | | | | | Reviewers: gchatelet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D47013 llvm-svn: 332608
* [llvm-mca] add flag -all-views and flag -all-stats.Andrea Di Biagio2018-05-171-0/+38
| | | | | | | Flag -all-views enables all the views. Flag -all-stats enables all the views that print hardware statistics. llvm-svn: 332602
* [llvm-exegesis] Analysis: detect clustering inconsistencies.Clement Courbet2018-05-173-25/+100
| | | | | | | | | | | | | | | | | 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
OpenPOWER on IntegriCloud