summaryrefslogtreecommitdiffstats
path: root/llvm/tools
Commit message (Collapse)AuthorAgeFilesLines
* Fix 80 column violationsAdrian Prantl2017-09-301-4/+8
| | | | llvm-svn: 314575
* Add commentsAdrian Prantl2017-09-301-0/+5
| | | | llvm-svn: 314574
* [llvm-rc] Serialize MENU resources to .res files (serialization, pt 3).Marek Sokolowski2017-09-294-4/+98
| | | | | | | | | | | | | | | | | | | | This allows MENU resources to be serialized. MENU resource statement doc: msdn.microsoft.com/en-us/library/windows/desktop/aa381025.aspx POPUP sub-statement doc: msdn.microsoft.com/en-us/library/windows/desktop/aa381030.aspx MENUITEM sub-statement doc: msdn.microsoft.com/en-us/library/windows/desktop/aa381024.aspx MENUHEADER structure: msdn.microsoft.com/en-us/library/windows/desktop/ms648018.aspx (and NORMALMENUITEM, POPUPMENUITEM structs). Thanks for Nico Weber for his original work in this area. Differential Revision: https://reviews.llvm.org/D37828 llvm-svn: 314562
* [llvm-rc] Serialize ACCELERATORS to .res files (serialization, pt 2).Marek Sokolowski2017-09-294-11/+205
| | | | | | | | | | | | | | | | | | | | This allows llvm-rc to serialize ACCELERATORS resources. Additionally, as this is the first type of resource to support basic optional resource statements (LANGUAGE, CHARACTERISTICS, VERSION), ACCELERATORS statement documentation: msdn.microsoft.com/en-us/library/windows/desktop/aa380610.aspx Accelerator table structure documentation: msdn.microsoft.com/en-us/library/windows/desktop/ms648010.aspx Optional resource statement fields are described in: msdn.microsoft.com/en-us/library/windows/desktop/ms648027.aspx Thanks for Nico Weber for his original work in this area. Differential Revision: https://reviews.llvm.org/D37824 llvm-svn: 314549
* [llvm-rc] Refactoring needed for ACCELERATORS and MENU resources.Marek Sokolowski2017-09-294-49/+72
| | | | | | | | | | | | | | | | | | | | This is a part of llvm-rc serialization patch set (serialization, pt 1.5). This: * Unifies the internal representation of flags in ACCELERATORS and MENU with the corresponding representation in .res files (noticed in https://reviews.llvm.org/D37828#inline-329828). * Creates an RCResource subclass, OptStatementsRCResource, describing resource statements that can declare resource-local optional statements (proposed in https://reviews.llvm.org/D37824#inline-329775). These modifications don't fit to any of the current patches, so I'm submitting them as a separate patch. Differential Revision: https://reviews.llvm.org/D37841 llvm-svn: 314541
* [llvm-rc] Serialize HTML resources to .res files (serialization, pt 1).Marek Sokolowski2017-09-297-5/+501
| | | | | | | | | | | | | | This allows to process HTML resources defined in .rc scripts and output them to resulting .res files. Additionally, some infrastructure allowing to output these files is created. This is the first resource type we can operate on. Thanks to Nico Weber for his original work in this area. Differential Revision: reviews.llvm.org/D37283 llvm-svn: 314538
* Display relative hotness with two decimal digits after the decimal pointAdam Nemet2017-09-291-1/+1
| | | | | | | | | I've seen cases where tiny inlined functions have such a high execution count that most everything would show up with a relative of hotness of 0%. Since the inlined functions effectively disappear you need to tune in the lower range, thus we need more precision. llvm-svn: 314537
* [WebAssembly] Allow each data segment to specify its own alignmentSam Clegg2017-09-293-18/+14
| | | | | | | | | Also, add a flags field as we will almost certainly be needing that soon too. Differential Revision: https://reviews.llvm.org/D38296 llvm-svn: 314534
* Make find_opt_files varargAdam Nemet2017-09-294-5/+5
| | | | | | | This is slightly less verbose for the common case of a single build directory and more intuitive when using this API directly from the interpreter. llvm-svn: 314491
* llvm-readobj: fix a few typos (NFC)Saleem Abdulrasool2017-09-291-3/+3
| | | | | | | | Correct the spelling of multiple in a couple of sites. Patch by Alex Langford! llvm-svn: 314485
* llvm-dwarfdump: support .apple-namespaces in --findAdrian Prantl2017-09-291-0/+2
| | | | llvm-svn: 314481
* [llvm-rc] Import all make_unique invocations from llvm namespace.Marek Sokolowski2017-09-291-20/+22
| | | | | | | | Previous patch fixed one of LLVM buildbots (lld-x86_64-win7). However, some others have already been failing because of make_unique compilation error (llvm-clang-x86_64-expensive-checks-win). llvm-svn: 314480
* llvm-dwarfdump: add support for .apple_types in --findAdrian Prantl2017-09-291-5/+14
| | | | llvm-svn: 314479
* [llvm-rc] Add user-defined resources parsing ability. [8/8]Marek Sokolowski2017-09-294-1/+55
| | | | | | | | | | | | | This allows llvm-rc to parse user-defined resources (ref: msdn.microsoft.com/en-us/library/windows/desktop/aa381054.aspx). These statements either import files, or put the specified raw data in the resulting resource file. Thanks to Nico Weber for his original work in this area. Differential Revision: https://reviews.llvm.org/D37033 llvm-svn: 314478
* [llvm-rc] Add integer expressions parsing ability. [7/8]Marek Sokolowski2017-09-284-4/+117
| | | | | | | | | | | | | | This allows the ints to be written as integer expressions evaluating to unsigned 16-bit/32-bit integers. All the expressions may use the following operators: + - & | ~, and parentheses. Minus token - can be also unary. There is no precedence of the operators other than the unary operators binding stronger than their binary counterparts. Differential Revision: https://reviews.llvm.org/D37022 llvm-svn: 314477
* [llvm-rc] Fix-up for r314468 (argument-dependent lookup in make_unique).Marek Sokolowski2017-09-281-4/+4
| | | | llvm-svn: 314472
* [llvm-rc] Add VERSIONINFO parsing ability. [6/8]Marek Sokolowski2017-09-284-0/+257
| | | | | | | | | | | | | This extends the set of llvm-rc parser's available resources by another one, VERSIONINFO. Ref: msdn.microsoft.com/en-us/library/windows/desktop/aa381058.aspx Thanks to Nico Weber for his original work in this area. Differential Revision: https://reviews.llvm.org/D37021 llvm-svn: 314468
* try and appease gccAdrian Prantl2017-09-281-1/+1
| | | | llvm-svn: 314442
* llvm-dwarfdump: implement --find for .apple_namesAdrian Prantl2017-09-281-1/+24
| | | | | | | | | | | | This patch implements the dwarfdump option --find=<name>. This option looks for a DIE in the accelerator tables and dumps it if found. This initial patch only adds support for .apple_names to keep the review small, adding the other sections and pubnames support should be trivial though. Differential Revision: https://reviews.llvm.org/D38282 llvm-svn: 314439
* [llvm-cov] Create directory structure when filtering using -name*= optionsSean Eveson2017-09-289-53/+84
| | | | | | | | | | | Before this change using any of the -name*= command line options with an output directory would result in a single file (functions.txt/functions.html) containing the coverage for those specific functions. Now you get the same directory structure as when not using any -name*= options. Differential Revision: https://reviews.llvm.org/D38280 llvm-svn: 314396
* Update the description of AVR32 for the ELFDumperDylan McKay2017-09-271-1/+1
| | | | | | AVR32 is an unrelated architecture with 32-bit addressing. llvm-svn: 314359
* Revert "[llvm-cov] Create directory structure when filtering using -name*= ↵Sean Eveson2017-09-279-84/+53
| | | | | | | | options" Test failures. llvm-svn: 314314
* [llvm-cov] Create directory structure when filtering using -name*= optionsSean Eveson2017-09-279-53/+84
| | | | | | | | | | | Before this change using any of the -name*= command line options with an output directory would result in a single file (functions.txt/functions.html) containing the coverage for those specific functions. Now you get the same directory structure as when not using any -name*= options. Differential Revision: https://reviews.llvm.org/D38280 llvm-svn: 314310
* [SimplifyCFG] add a struct to house optional folds (PR34603)Sanjay Patel2017-09-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was intended to be no-functional-change, but it's not - there's a test diff. So I thought I should stop here and post it as-is to see if this looks like what was expected based on the discussion in PR34603: https://bugs.llvm.org/show_bug.cgi?id=34603 Notes: 1. The test improvement occurs because the existing 'LateSimplifyCFG' marker is not carried through the recursive calls to 'SimplifyCFG()->SimplifyCFGOpt().run()->SimplifyCFG()'. The parameter isn't passed down, so we pick up the default value from the function signature after the first level. I assumed that was a bug, so I've passed 'Options' down in all of the 'SimplifyCFG' calls. 2. I split 'LateSimplifyCFG' into 2 bits: ConvertSwitchToLookupTable and KeepCanonicalLoops. This would theoretically allow us to differentiate the transforms controlled by those params independently. 3. We could stash the optional AssumptionCache pointer and 'LoopHeaders' pointer in the struct too. I just stopped here to minimize the diffs. 4. Similarly, I stopped short of messing with the pass manager layer. I have another question that could wait for the follow-up: why is the new pass manager creating the pass with LateSimplifyCFG set to true no matter where in the pipeline it's creating SimplifyCFG passes? // Create an early function pass manager to cleanup the output of the // frontend. EarlyFPM.addPass(SimplifyCFGPass()); --> /// \brief Construct a pass with the default thresholds /// and switch optimizations. SimplifyCFGPass::SimplifyCFGPass() : BonusInstThreshold(UserBonusInstThreshold), LateSimplifyCFG(true) {} <-- switches get converted to lookup tables and loops may not be in canonical form If this is unintended, then it's possible that the current behavior of dropping the 'LateSimplifyCFG' setting via recursion was masking this bug. Differential Revision: https://reviews.llvm.org/D38138 llvm-svn: 314308
* [llvm-cov] Improve const-correctness of filters. NFC.Sean Eveson2017-09-272-18/+21
| | | | llvm-svn: 314281
* [XRay] fix the -Werror build by handling all enum cases in switchesMartin Pelikan2017-09-272-1/+5
| | | | | | Followup to D32840. llvm-svn: 314270
* [XRay] convert FDR arg1 log entriesMartin Pelikan2017-09-273-3/+6
| | | | | | | | | | | | | | | | | | | | Summary: A new FDR metadata record will support logging a function call argument; appending multiple metadata records will represent a sequence of arguments meaning that "holes" are not representable by the buffer format. Each call argument is currently a 64-bit value (useful for "this" pointers and synchronization objects). If present, we put this argument to the function call "entry" record it belongs to, and alter its type to notify the user of its presence. Reviewers: dberris Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D32840 llvm-svn: 314269
* Reland: [llvm-objcopy] Add support for dynamic relocationsJake Ehrlich2017-09-271-8/+8
| | | | | | | | | This change adds support for dynamic relocations (allocated SHT_REL/SHT_RELA sections with a dynamic symbol table as their link). I had to reland this because of a I wasn't initilizing some pointers. llvm-svn: 314263
* Initialize the RelocationSectionBase::Section member.James Y Knight2017-09-261-0/+2
| | | | | | In r314227, it wasn't always, and would thus contain random garbage. llvm-svn: 314256
* [llvm-objcopy] Add support for dynamic relocationsJake Ehrlich2017-09-262-40/+53
| | | | | | | | | | | | | | | This change adds support for dynamic relocations (allocated SHT_REL/SHT_RELA sections with a dynamic symbol table as their link). The binary I added for the test is here: https://drive.google.com/file/d/0B3gtIAmiMwZXSjJUZE9pUjd4M0k/view?usp=sharing Unless support for dynamic symbol tables in yaml2obj is added this is needed. Differential Revision: https://reviews.llvm.org/D37915 llvm-svn: 314227
* [dsymutil] Better support for symbol aliasesJonas Devlieghere2017-09-261-0/+24
| | | | | | | | | | | This patch adds logic to follow a symbol's aliases when the symbol name cannot be found in the current object file. It checks the main binary for the symbol's address and queries the current object for its aliases (symbols with the same address) before printing out a warning. Differential revision: https://reviews.llvm.org/D38230 llvm-svn: 314198
* [llvm-cov] Warn if -show-functions is used without query filesVedant Kumar2017-09-251-2/+9
| | | | | | | | | | llvm-cov's report mode does not print any output when -show-functions is specified and no source files are specified. This can be surprising, so the tool should at least print out an error message when this happens. rdar://problem/34636859 llvm-svn: 314175
* Add section headers to SpecialCaseListsVlad Tsyrklevich2017-09-252-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Sanitizer blacklist entries currently apply to all sanitizers--there is no way to specify that an entry should only apply to a specific sanitizer. This is important for Control Flow Integrity since there are several different CFI modes that can be enabled at once. For maximum security, CFI blacklist entries should be scoped to only the specific CFI mode(s) that entry applies to. Adding section headers to SpecialCaseLists allows users to specify more information about list entries, like sanitizer names or other metadata, like so: [section1] fun:*fun1* [section2|section3] fun:*fun23* The section headers are regular expressions. For backwards compatbility, blacklist entries entered before a section header are put into the '[*]' section so that blacklists without sections retain the same behavior. SpecialCaseList has been modified to also accept a section name when matching against the blacklist. It has also been modified so the follow-up change to clang can define a derived class that allows matching sections by SectionMask instead of by string. Reviewers: pcc, kcc, eugenis, vsk Reviewed By: eugenis, vsk Subscribers: vitalybuka, llvm-commits Differential Revision: https://reviews.llvm.org/D37924 llvm-svn: 314170
* [llvm-objcopy] Refactor code to include initialize methodJake Ehrlich2017-09-252-34/+92
| | | | | | | | | | | | | | | This change refactors some of the code to allow for some code deduplication in later diffs as well as just to make adding a new section type more self contained to the class itself. The idea for this was first mentioned by James in D 37915 and will be used in that change as recommended. This change follows changes for dynamic sections but precedes support for dynamic relocations. Differential Revision: https://reviews.llvm.org/D38008 llvm-svn: 314148
* Commit missing fixes for tool_file_renameReid Kleckner2017-09-231-2/+2
| | | | llvm-svn: 314051
* [Support] Rename tool_output_file to ToolOutputFile, NFCReid Kleckner2017-09-2319-54/+52
| | | | | | | This class isn't similar to anything from the STL, so it shouldn't use the STL naming conventions. llvm-svn: 314050
* [dwarfdump] Fix ambiguous call to make_uniqueJonas Devlieghere2017-09-221-2/+2
| | | | | | | | Fix buildbot failures: - http://lab.llvm.org:8011/builders/lldb-x86-windows-msvc2015/builds/13153 - http://lab.llvm.org:8011/builders/lld-x86_64-win7/builds/13566 llvm-svn: 313971
* [obj2yaml] Don't crash for input files without symbol tableAlexander Richardson2017-09-221-0/+2
| | | | | | | | | | | | Summary: Previously we would dereference Symtab without checking for null. Reviewers: davide, atanasyan, rafael Reviewed By: davide, atanasyan Differential Revision: https://reviews.llvm.org/D38080 llvm-svn: 313970
* [dwarfdump] Add support for redirecting output to a fileJonas Devlieghere2017-09-221-24/+44
| | | | | | | | | This patch adds the -o and --out-file options for compatibility with Darwin's dwarfdump. Differential revision: https://reviews.llvm.org/D38125 llvm-svn: 313969
* Convert the archive writer to use Error.Rafael Espindola2017-09-211-2/+2
| | | | | | This found one place in lld that was not checking the error. llvm-svn: 313937
* Fix a bug in llvm-objdump when disassembling using the wrong default CPUKevin Enderby2017-09-211-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | in the second slice of a Mach-O universal file. The code in llvm-objdump in in DisassembleMachO() was getting the default CPU then incorrectly setting into the global variable used for the -mcpu option if that was not set. This caused a second call to DisassembleMachO() to use the wrong default CPU when disassembling the next slice in a Mach-O universal file. And would result in bad disassembly and an error message about an recognized processor for the target: % llvm-objdump -d -m -arch all fat.macho-armv7s-arm64 fat.macho-armv7s-arm64 (architecture armv7s): (__TEXT,__text) section armv7: 0: 60 47 bx r12 fat.macho-armv7s-arm64 (architecture arm64): 'cortex-a7' is not a recognized processor for this target (ignoring processor) 'cortex-a7' is not a recognized processor for this target (ignoring processor) (__TEXT,__text) section ___multc3: 0: .long 0x1e620810 rdar://34439149 llvm-svn: 313921
* [llvm-readobj] Fix big-endian byte swap in WindowsResourceDumper.Marek Sokolowski2017-09-211-1/+1
| | | | | | | | | | | The previous version of dumper implemented UTF-16 byte swap incorrectly on big-endian machines. This now gets fixed. Thanks to Bill Seurer for testing the patch locally. Differential Review: https://reviews.llvm.org/D38150 llvm-svn: 313912
* llvm-dwarfdump: Add support for the --arch command line option.Adrian Prantl2017-09-211-16/+57
| | | | llvm-svn: 313888
* Add missing file from r313884.Benjamin Kramer2017-09-211-1/+1
| | | | llvm-svn: 313885
* [dsymutil] Don't resolve DIE reference to NULL DIE.Jonas Devlieghere2017-09-211-2/+6
| | | | | | | | | | | | | This patch prevents dsymutil from resolving a reference to a NULL DIE when a bogus reference happens to be coincidentally referencing a NULL DIE. Now this is detected as an invalid reference and a warning is printed. Fixes: https://bugs.llvm.org/show_bug.cgi?id=33873 Differential revision: https://reviews.llvm.org/D38078 llvm-svn: 313872
* [llvm-cov] Improve error messaging for function mismatchesVedant Kumar2017-09-211-1/+15
| | | | | | | | | Passing "-dump" to llvm-cov will now print more detailed information about function hash and counter mismatches. This should make it easier to debug *.profdata files which contain incorrect records, and to debug other scenarios where coverage goes missing due to mismatch issues. llvm-svn: 313853
* llvm-dwarfdump: move -eh-frame into the right section in the help output.Adrian Prantl2017-09-201-1/+1
| | | | llvm-svn: 313836
* [llvm-readobj] Fix 'Teach readobj to dump .res files', pt 3.Marek Sokolowski2017-09-201-1/+2
| | | | | | Fix (r313790) missing ulittle{}_t error on some buildbots. llvm-svn: 313834
* [llvm-readobj] Fix 'Teach readobj to dump .res files', pt 2.Marek Sokolowski2017-09-201-2/+5
| | | | | | | Another fix-up for r313790. Big-endian hosts swapped byte order in UTF16 words. llvm-svn: 313833
* [WebAssembly] Add support for local symbol bindingsSam Clegg2017-09-202-8/+4
| | | | | | Differential Revision: https://reviews.llvm.org/D38096 llvm-svn: 313817
OpenPOWER on IntegriCloud