aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools
AgeCommit message (Collapse)AuthorFilesLines
2016-09-13[llvm-cov] - Included footer "Generated by llvm-cov -- llvm version <version ↵Ying Yi3-3/+18
number>" in the coverage report. The llvm-cov version information will be useful to the user when comparing the code coverage across different versions of llvm-cov. This patch provides the llvm-cov version information in the generated coverage report. Differential Revision: https://reviews.llvm.org/D24457 llvm-svn: 281321
2016-09-12llvm-size: Add --totals optionHemant Kulkarni1-2/+39
Differential Revision: https://reviews.llvm.org/D24308 llvm-svn: 281233
2016-09-12llvm-objdump: Add --start-address and --stop-address optionsHemant Kulkarni1-4/+41
Differential Revision: https://reviews.llvm.org/D24160 llvm-svn: 281232
2016-09-11[ORC] Rename RPCChannel to RPCByteChannel. NFC.Lang Hames2-3/+4
llvm-svn: 281171
2016-09-10[llvm-cov] Move the 'jump to first unexecuted line' linkVedant Kumar6-33/+31
Having it in the same row as the source name is jarring. Move it next to the "Source" column label. llvm-svn: 281146
2016-09-10[llvm-cov] Minor visual tweaks for html reportsVedant Kumar2-56/+23
- Change the location of the 'Region Coverage' column. - Use less css and text for some labels. llvm-svn: 281145
2016-09-09[pdb] Print out some more info when dumping a raw stream.Zachary Turner2-16/+40
We have various command line options that print the type of a stream, the size of a stream, etc but nowhere that it can all be viewed together. Since a previous patch introduced the ability to dump the bytes of a stream, this seems like a good place to present a full view of the stream's properties including its size, what kind of data it represents, and the blocks it occupies. So I added the ability to print that information to the -stream-data command line option. llvm-svn: 281077
2016-09-09[llvm-cov] Remove some asserts in the html renderer (NFC)Vedant Kumar1-5/+1
These asserts are making tests fragile. The renderer does not enter an invalid state when they fail, however, it may spit out a garbled coverage report because the source text no longer matches the provided coverage mapping. Another follow-up to r281072. llvm-svn: 281076
2016-09-09[pdb] Add command line options for dumping individual streams and blocksZachary Turner4-81/+94
I ran into a situation where I wanted to print out the contents of page 6 of a PDB as a binary blob, and there was no straightforward way to do that. In addition to adding that, this patch also adds the ability to dump a stream by index as a binary blob, and it will stitch together all the blocks and dump the whole thing as one seemingly contiguous sequence of bytes. llvm-svn: 281070
2016-09-09[pdb] Pass CVRecord's through the visitor as non-const references.Zachary Turner3-33/+12
This simplifies a lot of code, and will actually be necessary for an upcoming patch to serialize TPI record hash values. The idea before was that visitors should be examining records, not modifying them. But this is no longer true with a visitor that constructs a CVRecord from Yaml. To handle this until now, we were doing some fixups on CVRecord objects at a higher level, but the code is really awkward, and it makes sense to just have the visitor write the bytes into the CVRecord. In doing so I uncovered a few bugs related to `Data` and `RawData` and fixed those. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D24362 llvm-svn: 281067
2016-09-09[pdb] Write PDB TPI Stream from Yaml.Zachary Turner8-60/+156
This writes the full sequence of type records described in Yaml to the TPI stream of the PDB file. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D24316 llvm-svn: 281063
2016-09-09[llvm-cov] Handle native paths correctly in the text indexVedant Kumar1-1/+5
Treat filenames the same way in the text index as we do in the html index. This is a follow-up to r281008 (an attempt to unbreak the native_separators.c test on Windows). Patch by Maggie Yi! llvm-svn: 281062
2016-09-09[llvm-cov] Emit a summary in the report directory's indexVedant Kumar6-28/+125
llvm-cov writes out an index file in '-output-dir' mode, albeit not a very informative one. Try to fix that by using the CoverageReport API to include some basic summary information in the index file. llvm-svn: 281011
2016-09-09[llvm-cov] Constify some methods (NFC)Vedant Kumar2-4/+5
llvm-svn: 281010
2016-09-09[llvm-cov] Add an API to prepare file reports (NFC)Vedant Kumar2-20/+47
It would be nice to prepare file reports (using the CoverageReport API) without actually rendering them to the console. I plan on using this to flesh out the 'index' files in the coverage views. llvm-svn: 281009
2016-09-08llvm-objdump: add missing ) in help output, NFCSaleem Abdulrasool1-1/+1
Add a missing ')' in the help output. NFC. llvm-svn: 281000
2016-09-08[llvm-cov] Fix issues with segment highlighting in the html viewVedant Kumar1-16/+10
The text and html coverage views take different approaches to emitting highlighted regions. That's because this problem is easier in the text view: there's no need to worry about escaping text or adding tooltip content to a highlighted snippet. Unfortunately, the html view didn't get region highlighting quite right. This patch fixes the situation, bringing parity between the two views. llvm-svn: 280981
2016-09-08[pdb] Make YamlTypeDumperCallbacks reuse *this.Zachary Turner2-9/+18
Previously we were making new instances of YamlTypeDumperCallbacks in order to recurse down and serialize / deserialize nested records such as field lists. This meant you could not pass context from a higher operation to a lower operation because it would be using a new instance of the visitor callback delegate. YAMLIO library was updated to support context-sensitive mappings, so now we can reuse the same instance of the visitor callback delegate even for nested operations. llvm-svn: 280978
2016-09-08[llvm-cov] Use less space to describe source namesVedant Kumar7-42/+33
In r279628, we made SourceCoverageView list the binary associated with a view and started adding labels (e.g "Source: foo" or "Function: bar") to everything. Condense this information a bit to unclutter reports. llvm-svn: 280896
2016-09-08[llvm-cov] Drop the longest common filename prefix from summariesVedant Kumar1-2/+20
Remove the longest common prefix from filenames when printing coverage summaries. This makes them easier to compare. llvm-svn: 280895
2016-09-07[lib/LTO] Add a way to run a custom pipelineDavide Italiano1-0/+7
Differential Revision: https://reviews.llvm.org/D24095 llvm-svn: 280830
2016-09-07[opt] Remove an unused argument to runPassPipeline().Davide Italiano3-3/+3
I have plans to use this API also in libLTO (and maybe lld). llvm-svn: 280770
2016-09-06Re-add "Make FieldList records print as a YAML sequence"Zachary Turner3-2/+51
This was originally submitted in r280549, and reverted in r280577 due to breaking one MSVC buildbot. The issue is that MSVC 2013 doesn't synthesize move constructors. So even though i was writing std::move(A) it was copying it, leading to a bogus ArrayRef. The solution here is to simply remove the std::vector<> from the type, since it is unused and unnecessary. This way the ArrayRef continues to point into the original memory backing the CVType. llvm-svn: 280769
2016-09-06[llvm-cov] Use colors consistently in the summaryVedant Kumar1-32/+32
Use the same color for counts and percentages. There doesn't seem to be a reason for them to be different, and the summary looks more consistent this way. llvm-svn: 280765
2016-09-06[llvm-cov] Clean up the summary class, delete dead code (NFC)Vedant Kumar3-59/+59
llvm-svn: 280764
2016-09-06[llvm-cov] Add the project summary to the text coverage report for each ↵Ying Yi5-9/+16
source file. This patch is a spin-off from https://reviews.llvm.org/D23922. It extends the text view to preserve the same feature as the html view. Differential Revision: https://reviews.llvm.org/D24241 llvm-svn: 280756
2016-09-06[llvm-cov] Add the "Go to first unexecuted line" feature.Ying Yi6-8/+47
This patch provides easy navigation to find the zero count lines, especially useful when the source file is very large. Differential Revision: https://reviews.llvm.org/D23277 llvm-svn: 280739
2016-09-06Add an c++ itanium demangler to llvm.Rafael Espindola5-17/+43
This adds a copy of the demangler in libcxxabi. The code also has no dependencies on anything else in LLVM. To enforce that I added it as another library. That way a BUILD_SHARED_LIBS will fail if anyone adds an use of StringRef for example. The no llvm dependency combined with the fact that this has to build on linux, OS X and Windows required a few changes to the code. In particular: No constexpr. No alignas On OS X at least this library has only one global symbol: __ZN4llvm16itanium_demangleEPKcPcPmPi My current plan is: Commit something like this Change lld to use it Change lldb to use it as the fallback Add a few #ifdefs so that exactly the same file can be used in libcxxabi to export abi::__cxa_demangle. Once the fast demangler in lldb can handle any names this implementation can be replaced with it and we will have the one true demangler. llvm-svn: 280732
2016-09-06bugpoint: Return Errors instead of passing around stringsJustin Bogner10-543/+558
This replaces the threading of `std::string &Error` through all of these APIs with checked Error returns instead. There are very few places here that actually emit any errors right now, but threading the APIs through will allow us to replace a bunch of exit(1)'s that are scattered through this code with proper error handling. This is more or less NFC, but does move around where a couple of error messages are printed out. llvm-svn: 280720
2016-09-06Revert "bugpoint: Stop threading errors through APIs that never fail"Justin Bogner7-90/+112
This isn't the right thing to do - it turns out a number of the APIs that "never fail" just exit(1) if something bad happens. We can and should thread Error through this instead. That diff will make more sense with this reverted. Sorry for the noise. This reverts r280690 llvm-svn: 280691
2016-09-06bugpoint: Stop threading errors through APIs that never failJustin Bogner7-112/+90
This simplifies ListReducer and most of its subclasses by removing the std::string &Error that was threaded through all of them but almost never used. If we end up needing error handling in more places here we can reinstate it using llvm::Error instead of these unwieldy strings. The 2 cases (out of 12) that actually can hit the error cases are a little bit awkward now, but those will clean up as I refactor this API further. llvm-svn: 280690
2016-09-04[ORC] Clone module flags metadata into the globals module in theLang Hames1-6/+6
CompileOnDemandLayer. Also contains a tweak to the orc-lazy jit in LLI to enable the test case. llvm-svn: 280632
2016-09-03Revert r280549.Nico Weber2-54/+1
The test it added doesn't pass: http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/15318/steps/ninja%20check%201/logs/FAIL%3A%20LLVM%3A%3Apdbdump-yaml-types.test Command Output (stdout): -- $ "D:/buildslave/clang-x64-ninja-win7/stage1/./bin\llvm-pdbdump.EXE" "pdb2yaml" "-tpi-stream" "D:\buildslave\clang-x64-ninja-win7\llvm\test\DebugInfo\PDB/Inputs/empty.pdb" $ "D:/buildslave/clang-x64-ninja-win7/stage1/./bin\FileCheck.EXE" "-check-prefix=YAML" "D:\buildslave\clang-x64-ninja-win7\llvm\test\DebugInfo\PDB\pdbdump-yaml-types.test" # command stderr: D:\buildslave\clang-x64-ninja-win7\llvm\test\DebugInfo\PDB\pdbdump-yaml-types.test:36:7: error: expected string not found in input YAML: Name: apartment ^ <stdin>:153:10: note: scanning from here Value: 161 ^ llvm-svn: 280577
2016-09-02[codeview] Make FieldList records print as a yaml sequence.Zachary Turner2-1/+54
Before we were kind of imitating the behavior of a Yaml sequence by outputting each record one after the other. This makes it a little cumbersome when we want to go the other direction -- from Yaml to Pdb. So this treats FieldList records as no different than any other list of records, by printing them as a Yaml sequence with the exact same format. llvm-svn: 280549
2016-09-02[llvm-readobj] - Teach readobj to print DT_AUXILIARY dynamic tag in human ↵George Rimar1-0/+4
readable form. Previously DT_AUXILIARY was unknown, patch fixes that. Differential revision: https://reviews.llvm.org/D24138 llvm-svn: 280471
2016-09-02bugpoint: clang-format all of bugpoint. NFCJustin Bogner11-1157/+1088
I'm going to clean up the APIs here a bit and touch many many lines anyway. llvm-svn: 280450
2016-09-01bugpoint: clang-format and modernize comments in ListReducer. NFCJustin Bogner1-36/+32
llvm-svn: 280414
2016-09-01Add a counter-function insertion passHal Finkel2-0/+2
As discussed in https://reviews.llvm.org/D22666, our current mechanism to support -pg profiling, where we insert calls to mcount(), or some similar function, is fundamentally broken. We insert these calls in the frontend, which means they get duplicated when inlining, and so the accumulated execution counts for the inlined-into functions are wrong. Because we don't want the presence of these functions to affect optimizaton, they should be inserted in the backend. Here's a pass which would do just that. The knowledge of the name of the counting function lives in the frontend, so we're passing it here as a function attribute. Clang will be updated to use this mechanism. Differential Revision: https://reviews.llvm.org/D22825 llvm-svn: 280347
2016-08-31[codeview] Have visitTypeBegin return the record type.Zachary Turner2-3/+8
Previously we were assuming that any visitation of types would necessarily be against a type we had binary data for. Reasonable assumption when were just reading PDBs and dumping them, but once we start writing PDBs from Yaml this breaks down, because we have no binary data yet, only Yaml, and from that we need to read the record kind and perform the switch based on that. So this patch does that. Instead of having the visitor switch on the kind that is already in the CVType record, we change the visitTypeBegin() method to return the Kind, and switch on the returned value. This way, the default implementation can still return the value from the CVType, but the implementation which visits Yaml records and serializes binary PDB type records can use the field in the Yaml as the source of the switch. llvm-svn: 280307
2016-08-31Fix the MSVC 2013 build by using Elf_Word instead of making a local typedefReid Kleckner1-6/+4
llvm-svn: 280304
2016-08-31[codeview] Add TypeVisitorCallbackPipeline.Zachary Turner2-7/+22
We were kind of hacking this together before by embedding the ability to forward requests into the TypeDeserializer. When we want to start adding more different kinds of visitor callback interfaces though, this doesn't scale well and is very inflexible. So introduce the notion of a pipeline, which itself implements the TypeVisitorCallbacks interface, but which contains an internal list of other callbacks to invoke in sequence. Also update the existing uses of CVTypeVisitor to use this new pipeline class for deserializing records before visiting them with another visitor. llvm-svn: 280293
2016-08-31[llvm-cov] Drop redundant "No." suffix in a column titleVedant Kumar1-1/+1
llvm-svn: 280181
2016-08-30llvm-readobj: speculative fix for MSVCSaleem Abdulrasool1-1/+1
Use the typedef rather than using to type alias the typename. llvm-svn: 280158
2016-08-30Revert "ELFDumper: Unversioned symbols must not have trailing @"Hemant Kulkarni1-3/+0
This reverts commit 8df7a877949e8782a3a28e3ecdb0770c1e444056. Fixing other repositories and adding changes together. llvm-svn: 280152
2016-08-30ELFDumper: Unversioned symbols must not have trailing @Hemant Kulkarni1-0/+3
llvm-svn: 280140
2016-08-30llvm-readobj: add support for printing GNU NotesSaleem Abdulrasool3-0/+145
Add support for printing the GNU Notes. This allows an easy way to view the build id for a binary built with the build id. Currently, this only handles the GNU notes, though it would be easy to extend for other note types (default, FreeBSD, NetBSD, etc). Only the GNU style is supported currently. llvm-svn: 280131
2016-08-30[llvm-cov] Use the native path in the coverage report.Ying Yi3-2/+10
The coverage reports contain the source or binary file paths. On Windows, the file path might contain the seperators of both '/' and '\'. This patch uses the native path in the coverage reports. For example, on Windows, all '/' are converted to '\'. Differential Revision: https://reviews.llvm.org/D23922 llvm-svn: 280061
2016-08-29[Orc] Simplify LogicalDylib and move it back inside CompileOnDemandLayer. AlsoLang Hames1-7/+21
switch to using one indirect stub manager per logical dylib rather than one per input module. LogicalDylib is a helper class used by the CompileOnDemandLayer to manage symbol resolution between modules during lazy compilation. In particular, it ensures that internal symbols resolve correctly even in the case where multiple input modules contain the same internal symbol name (which must to be promoted to external hidden linkage so that functions in any given module can be split out by lazy compilation). LogicalDylib's resolution scheme (before this commit) required one stub-manager per input module. This made recompilation of functions (by adding a module containing a new definition) difficult, as the stub manager for any given symbol was bound to the module that supplied the original definition. By using one stubs manager for the whole logical dylib symbols can be more easily replaced, although support for doing this is not included in this patch (it will be implemented in a follow up). llvm-svn: 279952
2016-08-26[ThinLTO] Move loading of cache entry to clientTeresa Johnson2-6/+11
Summary: Have the cache pass back the path to the cache entry when it is ready to be loaded, instead of a buffer. For gold-plugin we can simply pass this file back to gold directly, which avoids expensive writing of a separate tmp file. Ensure the cache entry is not deleted on cleanup by adjusting the setting of the IsTemporary flags. Moved the loading of the buffer into llvm-lto2 to maintain current behavior. Reviewers: mehdi_amini Subscribers: llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D23946 llvm-svn: 279883
2016-08-25llvm-objdump: ELF: Handle code and data mix in all scenariosHemant Kulkarni1-11/+94
Differential Revision: https://reviews.llvm.org/D23621 llvm-svn: 279770