summaryrefslogtreecommitdiffstats
path: root/llvm/tools
Commit message (Collapse)AuthorAgeFilesLines
* Display detailed profile summary in llvm-profdata tool.Easwaran Raman2016-01-131-16/+136
| | | | | | | | | | | This adds a detailed profile summary in llvm-profdata. The summary is in the form of one or more triples of the form (P, N, M) which is interpreted as if we look at the Top-N counts in the profile, their sum accounts for P percentage of the sum of all counts in the program and the minimum count in the Top-N is M. Differential Revision: http://reviews.llvm.org/D16005 llvm-svn: 257680
* dsymutil: Only warn about missing clang modules once.Adrian Prantl2016-01-131-3/+1
| | | | | | rdar://problem/22269336 llvm-svn: 257664
* [readobj] Expand CodeView dumping functionalityReid Kleckner2016-01-137-146/+2608
| | | | | | | | | | | | | | | | This rewrites and expands the existing codeview dumping functionality in llvm-readobj using techniques similar to those in lib/Object. This defines a number of new records and enums useful for reading memory mapped codeview sections in COFF objects. The dumper is intended as a testing tool for LLVM as it grows more codeview output capabilities. Reviewers: majnemer Differential Revision: http://reviews.llvm.org/D16104 llvm-svn: 257658
* [llvm-readobj] Remove dead code. Add an assertion instead.Davide Italiano2016-01-131-2/+3
| | | | | | | | | | When we arrive at the end of the function, the validation of the object has been done already. In theory, so, we should never arrive here with something broken as the object isn't mutated. Practice sometimes proves theory to be wrong, so leave an assertion instead, as suggested by David Blaikie, to catch bugs. llvm-svn: 257570
* [llvm-objdump] Use report_error() and improve error coverage.Davide Italiano2016-01-131-4/+2
| | | | llvm-svn: 257561
* [CodeView] Improve the line table dumperDavid Majnemer2016-01-131-14/+28
| | | | | | | | This change has us print out fields we didn't previously understand. To improve readability, we now group column information with it's respective line. llvm-svn: 257552
* For llvm-objdump, add the option -private-header (without the trailing ’s’)Kevin Enderby2016-01-133-11/+46
| | | | | | | | | | | | | | | to only print the first private header. Which for Mach-O files only prints the Mach header and not the subsequent load commands. Which is used by scripts to match what the darwin otool(1) with the -h flag does without the -l flag. For non-Mach-O files it has the same functionality as -private-headers (with the trailing ’s’). rdar://24158331 llvm-svn: 257548
* COFF: Teach llvm-objdump how to dump DLL forwarder symbols.Rui Ueyama2016-01-121-1/+18
| | | | llvm-svn: 257539
* [WebAssembly] Add a EM_WEBASSEMBLY value, and several bits of code that use it.Dan Gohman2016-01-122-1/+19
| | | | | | | | | A request has been made to the official registry, but an official value is not yet available. This patch uses a temporary value in order to support development. When an official value is recieved, the value of EM_WEBASSEMBLY will be updated. llvm-svn: 257517
* Revert r257003Andrew Wilkins2016-01-125-102/+44
| | | | | | | | This revision breaks llvm-config if you set BUILD_SHARED_LIBS=on in a CMake build. Backing out until the fix is ready to land. llvm-svn: 257457
* lli: Fix warnings. [-Wsign-compare]NAKAMURA Takumi2016-01-121-2/+2
| | | | llvm-svn: 257430
* lli-child-target: Introduce a new dependency on RuntimeDyld.NAKAMURA Takumi2016-01-111-0/+1
| | | | llvm-svn: 257410
* Add a missing error handling to llvm-lto.Rafael Espindola2016-01-111-0/+1
| | | | llvm-svn: 257395
* XFAIL the LLI remote JIT tests on Win32.Lang Hames2016-01-111-3/+1
| | | | llvm-svn: 257391
* lli/ChildTarget now depends on OrcJIT. Add that component to the Makefile. Lang Hames2016-01-111-1/+1
| | | | llvm-svn: 257360
* [LLI] Remove dependence on RemoteTarget.cpp from ChildTarget's Makefile.Lang Hames2016-01-111-1/+1
| | | | | | RemoteTarget.cpp was removed in r257343. llvm-svn: 257351
* [LLI] Replace the LLI remote-JIT support with the new ORC remote-JIT components.Lang Hames2016-01-1115-1510/+319
| | | | | | | | The new ORC remote-JITing support provides a superset of the old code's functionality, so we can replace the old stuff. As a bonus, a couple of previously XFAILed tests have started passing. llvm-svn: 257343
* [Orc] Rename OrcTargetSupport to OrcArchitectureSupport to avoid confusion withLang Hames2016-01-111-1/+1
| | | | | | the upcoming remote-target support classes. llvm-svn: 257302
* [Orc] Enable user-supplied memory managers in the CompileOnDemand layer.Lang Hames2016-01-091-1/+3
| | | | | | | Previously the CompileOnDemand layer was hard-coded to use a new SectionMemoryManager for each function when it was called. llvm-svn: 257265
* [llvm-symbolizer] -print-source-context-lines option to print source code ↵Mike Aizatsky2016-01-091-1/+5
| | | | | | | | around the line. Differential Revision: http://reviews.llvm.org/D15909 llvm-svn: 257236
* [llvm-symbolizer] Print out non-address lines verbatim.Mike Aizatsky2016-01-071-13/+21
| | | | | | Differential Revision: http://reviews.llvm.org/D15876 llvm-svn: 257115
* tools/llvm-config: improve shared library supportAndrew Wilkins2016-01-075-44/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: r252532 added support for reporting the monolithic library when LLVM_BUILD_LLVM_DYLIB is used. This would only be done if the individual components were not found, and the dynamic library is found. This diff extends this as follows: - If LLVM_LINK_LLVM_DYLIB is set, then prefer the shared library, even if all component libraries exist. - Two flags, --link-shared and --link-static are introduced to provide explicit guidance. If --link-shared is passed and the shared library does not exist, an error results. Additionally, changed the expected shared library names from (e.g.) LLVM-3.8.0 to LLVM-3.8. The former exists only in an installation (and then only in CMake builds I think?), and not in the build tree; this breaks usage of llvm-config during builds, e.g. by llvm-go. Reviewers: DiamondLovesYou, beanz Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15033 llvm-svn: 257003
* [llvm-objdump] Mark noreturn function as such.Davide Italiano2015-12-292-2/+4
| | | | | | Match attribute in the header to make MSVC happy. llvm-svn: 256560
* [llvm-objdump] Use stderr and not stdout for fatal errors.Davide Italiano2015-12-251-2/+2
| | | | llvm-svn: 256423
* llvm-dwarfdump: Add support for dumping .dSYM bundles.Adrian Prantl2015-12-231-2/+43
| | | | | | | | This replicates the logic of Darwin dwarfdump for manually opening up .dSYM bundles without introducing any new dependencies. <rdar://problem/20491670> llvm-svn: 256350
* [llvm-readobj] Use stderr and not stdout for error messages.Davide Italiano2015-12-231-2/+2
| | | | llvm-svn: 256347
* Disable use list order on the gold plugin.Rafael Espindola2015-12-221-1/+1
| | | | | | | | | It turns out that his is *really* slow. With this change the link of clang with plugin-opt=emit-llvm goes from 41 to 26 seconds. We can add an option to enable it again if needed. llvm-svn: 256302
* [MC, COFF] Support link /incremental conditionallyDavid Majnemer2015-12-213-7/+14
| | | | | | | | | | | | | | | | Today, we always take into account the possibility that object files produced by MC may be consumed by an incremental linker. This results in us initialing fields which vary with time (TimeDateStamp) which harms hermetic builds (e.g. verifying a self-host went well) and produces sub-optimal code because we cannot assume anything about the relative position of functions within a section (call sites can get redirected through incremental linker thunks). Let's provide an MCTargetOption which controls this behavior so that we can disable this functionality if we know a-priori that the build will not rely on /incremental. llvm-svn: 256203
* [llvm-objdump] Use appropriate helper. NFC.Davide Italiano2015-12-211-2/+1
| | | | llvm-svn: 256156
* [llvm-objdump] Move COFF function to where it belongs.Davide Italiano2015-12-203-50/+51
| | | | | | | Ideally much more stuff should be moved out of llvm-objdump.cpp, but that will happen later. llvm-svn: 256118
* [PGO] Improve Indexed Profile Reader efficiency Xinliang David Li2015-12-201-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | With the support of value profiling added, the Indexed prof reader gets less efficient. The prof reader initialization used to be just reading the file header, but with VP support added, initialization needs to walk through all profile keys of ondisk hash table resulting in very poor locality and large memory increase (keys are stored together with the profile data in the mapped profile buffer). Even worse, when the reader is used by the compiler (not llvm-profdata too), the penalty becomes very high as compilation of each single module requires touching profile data buffer for the whole program. In this patch, the icall target values (MD5hash) are no longer eargerly converted back to name strings when the data is read into memory. New interface is added to to profile reader so that InstrProfSymtab can be lazily created for Indexed profile reader on-demand. Creating of the symtab is intended to be used by llvm-profdata tool for symbolic dumping of VP data. It can be used with compiler (for legacy out of tree uses) too but not recommended due to compile time and memory reasons mentioned above. Some other cleanups are also included: Function Addr to md5 map is now consolated into InstrProfSymtab. InstrProfStringtab is no longer used and eliminated. llvm-svn: 256114
* [llvm-objdump] Fail early if we can't parse the object header.Davide Italiano2015-12-191-4/+5
| | | | llvm-svn: 256108
* Assert that we have all use/users in the getters.Rafael Espindola2015-12-191-3/+12
| | | | | | | | | | | | | | An error that is pretty easy to make is to use the lazy bitcode reader and then do something like if (V.use_empty()) The problem is that uses in unmaterialized functions are not accounted for. This patch adds asserts that all uses are known. llvm-svn: 256105
* Deprecate a few C APIs.Rafael Espindola2015-12-183-13/+38
| | | | | | | | | | | | | This deprecates: * LLVMParseBitcode * LLVMParseBitcodeInContext * LLVMGetBitcodeModuleInContext * LLVMGetBitcodeModule They are replaced with the functions with a 2 suffix which do not record a diagnostic. llvm-svn: 256065
* Delete dead code: only functions are materializable.Rafael Espindola2015-12-181-4/+0
| | | | llvm-svn: 256052
* Use a lambda to reduce code duplication.Rafael Espindola2015-12-181-23/+15
| | | | llvm-svn: 256050
* [sancov] IWYU fix: add proper header inclusion.Alexey Samsonov2015-12-181-0/+1
| | | | llvm-svn: 256040
* Drop materializeAllPermanently.Rafael Espindola2015-12-182-2/+2
| | | | | | | | This inlines materializeAll into the only caller (materializeAllPermanently) and renames materializeAllPermanently to just materializeAll. llvm-svn: 256024
* Revert "Improve DWARFDebugFrame::parse to also handle __eh_frame."Pete Cooper2015-12-183-21/+259
| | | | | | | | This reverts commit r256008. Its breaking multiple buildbots, although works for me locally. llvm-svn: 256013
* Improve DWARFDebugFrame::parse to also handle __eh_frame.Pete Cooper2015-12-183-259/+21
| | | | | | | | | | | | | | | LLVM MC has single methods which can handle the output of EH frame and DWARF CIE's and FDE's. This code improves DWARFDebugFrame::parse to do the same for parsing. This also allows llvm-objdump to support the --dwarf=frames option which objdump supports. This option dumps the .eh_frame section using the new code in DWARFDebugFrame::parse. http://reviews.llvm.org/D15535 Reviewed by Rafael Espindola. llvm-svn: 256008
* Add a test for LLVMGetBitcodeModule.Rafael Espindola2015-12-183-10/+25
| | | | llvm-svn: 255985
* Reorganize the C API headers to improve build times.Eric Christopher2015-12-181-0/+1
| | | | | | | | | Type specific declarations have been moved to Type.h and error handling routines have been moved to ErrorHandling.h. Both are included in Core.h so nothing should change for projects directly including the headers, but transitive dependencies may be affected. llvm-svn: 255965
* [ThinLTO] Metadata linking for imported functionsTeresa Johnson2015-12-171-7/+42
| | | | | | | | | | | | | | | | | | | | | | | Summary: Second patch split out from http://reviews.llvm.org/D14752. Maps metadata as a post-pass from each module when importing complete, suturing up final metadata to the temporary metadata left on the imported instructions. This entails saving the mapping from bitcode value id to temporary metadata in the importing pass, and from bitcode value id to final metadata during the metadata linking postpass. Depends on D14825. Reviewers: dexonsmith, joker.eph Subscribers: davidxl, llvm-commits, joker.eph Differential Revision: http://reviews.llvm.org/D14838 llvm-svn: 255909
* [llvm-objdump] Use report_fatal_error() for a more uniform error handling.Davide Italiano2015-12-171-29/+13
| | | | llvm-svn: 255871
* Change linkInModule to take a std::unique_ptr.Rafael Espindola2015-12-163-7/+8
| | | | | | | Passing in a std::unique_ptr should help find errors when the module is used after being linked into another module. llvm-svn: 255842
* [PGO] Handle and report overflow during profile merge for all types of dataNathan Slingerland2015-12-161-1/+5
| | | | | | | | | | | | Summary: Surface counter overflow when merging profile data. Merging still occurs on overflow but counts saturate to the maximum representable value. Overflow is reported to the user. Reviewers: davidxl, dnovillo, silvas Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15547 llvm-svn: 255825
* Use LLVM style variable name (NFC)Teresa Johnson2015-12-161-4/+4
| | | | | | Fixes variable name from r255779. llvm-svn: 255824
* [CMake] Adding llvm-profdata to the list of tools clang needs.Chris Bieneman2015-12-161-2/+4
| | | | | | Bootstrapping clang to generate PGO data (patches coming soon), requires llvm-profdata targets to be generated before clang. llvm-svn: 255794
* Reland "[llvm-readobj] Simplify usage of -codeview flag"Reid Kleckner2015-12-163-7/+16
| | | | | | Relands r255790 with fixed tests. llvm-svn: 255793
* Revert "[llvm-readobj] Simplify usage of -codeview flag"Reid Kleckner2015-12-163-16/+7
| | | | | | This reverts commit r255790. llvm-svn: 255791
OpenPOWER on IntegriCloud