- Jul 24, 2018
-
-
Vedant Kumar authored
Add a -debugify-export option to opt. This exports per-pass `debugify` loss statistics to a file in CSV format. For some interesting numbers on debug value loss during an -O2 build of the sqlite3 amalgamation, see the review thread. Differential Revision: https://reviews.llvm.org/D49003 llvm-svn: 337787
-
Vedant Kumar authored
This is a minor cleanup in preparation for a change to export DI statistics from -check-debugify. To do that, it would be cleaner to have a dedicated header for the debugify interface. llvm-svn: 337786
-
Chandler Carruth authored
This is in preparation for extracting this into a re-usable utility in this code. llvm-svn: 337785
-
Chandler Carruth authored
This code was really nasty, had several bugs in it originally, and wasn't carrying its weight. While on Zen we have all 4 ports available for SHRX, on all of the Intel parts with Agner's tables, SHRX can only execute on 2 ports, giving it 1/2 the throughput of OR. Worse, all too often this pattern required two SHRX instructions in a chain, hurting the critical path by a lot. Even if we end up needing to safe/restore EFLAGS, that is no longer so bad. We pay for a uop to save the flag, but we very likely get fusion when it is used by forming a test/jCC pair or something similar. In practice, I don't expect the SHRX to be a significant savings here, so I'd like to avoid the complex code required. We can always resurrect this if/when someone has a specific performance issue addressed by it. llvm-svn: 337781
-
Fangrui Song authored
Summary: SmallVector's elements are moved when resizing and cause use-after-free. Reviewers: probinson, dblaikie Subscribers: JDevlieghere, llvm-commits Differential Revision: https://reviews.llvm.org/D49702 llvm-svn: 337772
-
Thomas Anderson authored
Differential Revision: https://reviews.llvm.org/D49704 llvm-svn: 337771
-
Wolfgang Pieb authored
llvm-svn: 337770
-
Wolfgang Pieb authored
The intent is to use it for location list tables as well. Change is almost NFC with the exception of the spelling of some strings used during dumping (all lowercase now). Reviewer: JDevlieghere Differential Revision: https://reviews.llvm.org/D49500 llvm-svn: 337763
-
Teresa Johnson authored
Summary: Similar to what lld already does for dllimport symbols which are prefaced with __imp_ (see lld patch r240620), strip off the __imp_ prefix in LTO. Otherwise we can get 2 separate GlobalResolution for a single symbol, the dllimport declaration, and the definition, which leads to incorrect LTO handling. Fixes PR38105. Reviewers: pcc Subscribers: mehdi_amini, inglorion, steven_wu, dexonsmith, llvm-commits Differential Revision: https://reviews.llvm.org/D49138 llvm-svn: 337762
-
Erik Pilkington authored
We really should set *status to memory_alloc_failure, but we need to refactor the demangler a bit to properly propagate the failure up the stack. Until then, its better to explicitly terminate then rely on a null dereference crash. rdar://31240372 llvm-svn: 337759
-
Martin Storsjö authored
This actually has nothing to do with the associative comdat sections that aren't supported by GNU binutils ld. Clarify the comments from SVN r335918 and use a separate flag for it. Differential Revision: https://reviews.llvm.org/D49645 llvm-svn: 337757
-
Martin Storsjö authored
Since SVN r335286, the .xdata sections are produced without an attached symbol, which requires using a different syntax when printing assembly output. Instead of the usual syntax of '.section <name>,"dr",discard,<symbol>', use '.section <name>,"dr"' + '.linkonce discard' (which is what GCC uses for all assembly output). This fixes PR38254. Differential Revision: https://reviews.llvm.org/D49651 llvm-svn: 337756
-
Martin Storsjö authored
This matches the structure used on X86 and ARM. This requires a little bit of duplication of the parts that are equal in both AArch64 COFF variants though. Before SVN r335286, these classes didn't add anything that MCAsmInfoCOFF didn't, but now they do. This makes AArch64 match X86 in how comdat is used for float constants for MinGW. Differential Revision: https://reviews.llvm.org/D49637 llvm-svn: 337755
-
- Jul 23, 2018
-
-
Vedant Kumar authored
The llvm::Optional data formatter needs to look through the `Storage` container if it's present. Before: 220 if (Op && Op->getOp() != dwarf::DW_OP_LLVM_fragment) -> 221 HasComplexExpression = true; 222 223 // If the register can only be described by a complex expression (i.e., 224 // multiple subregisters) it doesn't safely compose with another complex Target 0: (llc) stopped. (lldb) p Op (llvm::Optional<llvm::DIExpression::ExprOperand>) $0 = None After: (lldb) p Op (llvm::Optional<llvm::DIExpression::ExprOperand>) $0 = (llvm::DIExpression::ExprOperand) storage = { Op = 0x000000010603d460 } llvm-svn: 337752
-
Vedant Kumar authored
This avoids approx. 2 x 10^5 DenseMap insertions in both non-debug and debug -O2 builds of the sqlite3 amalgamation. llvm-svn: 337751
-
Teresa Johnson authored
Summary: Without this change, the WholeProgramDevirt pass, which requires the TargetLibraryInfo, will construct one from the default triple. Fixes PR38139. Reviewers: pcc Subscribers: mehdi_amini, inglorion, steven_wu, dexonsmith, llvm-commits Differential Revision: https://reviews.llvm.org/D49278 llvm-svn: 337750
-
George Burgess IV authored
This patch makes debug counters keep track of the total number of times we've called `shouldExecute` for each counter, so it's easier to build automated tooling on top of these. A patch to print these counts is coming soon. Patch by Zhizhou Yang! Differential Revision: https://reviews.llvm.org/D49560 llvm-svn: 337748
-
Fangrui Song authored
llvm-svn: 337747
-
Manoj Gupta authored
Summary: Check if the parent basic block and caller exists before calling CS.getCaller when constant folding strip.invariant.group instrinsic. This avoids a crash when the function containing the intrinsic is being inlined. The instruction is checked for any simplifiction but has not yet been added to a basic block. Reviewers: Prazek, rsmith, efriedma Reviewed By: efriedma Subscribers: eraman, llvm-commits Differential Revision: https://reviews.llvm.org/D49690 llvm-svn: 337742
-
Reid Kleckner authored
Don't try to generate large PIC code for non-ELF targets. Neither COFF nor MachO have relocations for large position independent code, and users have been using "large PIC" code models to JIT 64-bit code for a while now. With this change, if they are generating ELF code, their JITed code will truly be PIC, but if they target MachO or COFF, it will contain 64-bit immediates that directly reference external symbols. For a JIT, that's perfectly fine. llvm-svn: 337740
-
Matt Davis authored
Expand the abbreviation where it is first used, and use IPC elsewhere. llvm-svn: 337739
-
David Greene authored
RegScavenger::unprocess walks backward, so it should undo the effects of defs before undoing effects of kills. Previously it did things in the opposite order, leaving a register apparently unused (dead) in the case where an instruction both used (killed) and defined a register. Differential Revision: https://reviews.llvm.org/D42200 llvm-svn: 337735
-
Nirav Dave authored
llvm-svn: 337734
-
Michael J. Spencer authored
Looks like this bot hasn't been updated yet. llvm-svn: 337731
-
Michael J. Spencer authored
Differential Revision: https://reviews.llvm.org/D44910 llvm-svn: 337730
-
Paul Semel authored
Dynamic section holds a table, so the sh_entsize might be set. As the dynamic section entry size never changes, we can default it to the size of a dynamic entry. Differential Revision: https://reviews.llvm.org/D49619 llvm-svn: 337725
-
Krzysztof Parzyszek authored
Instead of comparing names, compare positions in the parent module. llvm-svn: 337723
-
Reid Kleckner authored
llvm-svn: 337720
-
Aaron Ballman authored
llvm-svn: 337719
-
Justin Bogner authored
These two tests are operating on the same test suite, which causes them to be racy about writing temporary files and can cause spurious failures. Merge them into one test to avoid the issue. llvm-svn: 337718
-
Fangrui Song authored
llvm-svn: 337714
-
Jordan Rupprecht authored
Summary: OpChain has subclasses, so add a virtual destructor. This fixes an issue when deleting subclasses of OpChain (see MatchSMLAD() specifically) in r337701. Reviewers: javed.absar Subscribers: llvm-commits, SjoerdMeijer, samparker Differential Revision: https://reviews.llvm.org/D49681 llvm-svn: 337713
-
Matt Morehouse authored
Fix double-free. llvm-svn: 337711
-
Matt Morehouse authored
Attempt to fix the leak introduced in r337687 and make sanitizer buildbots green again. llvm-svn: 337709
-
Nirav Dave authored
scalarizeVectorLoad creates MERGE_VALUES nodes which are immediately decomposed in expandLoad. Elide the node in these cases. llvm-svn: 337708
-
Simon Atanasyan authored
llvm-svn: 337705
-
Sam Parker authored
In preparing to allow ARMParallelDSP pass to parallelise more than smlads, I've restructed some elements: - The ParallelMAC struct has been renamed to BinOpChain. - The BinOpChain struct holds two value lists: LHS and RHS, as well as inheriting from the OpChain base class. - The OpChain struct holds all the values of the represented chain and has had the memory locations functionality inserted into it. - ParallelMACList becomes OpChainList and it now holds pointers instead of objects. Differential Revision: https://reviews.llvm.org/D49020 llvm-svn: 337701
-
Jonas Paulsson authored
Two minor issues: The new MCD SchedWrite name does not contain "Unit" like all the others, so a check is needed. Also, print "LSU" instead of "LS". Review: Ulrich Weigand llvm-svn: 337700
-
Cameron McInally authored
Differential Revision: https://reviews.llvm.org/D48809 llvm-svn: 337698
-
Jonas Devlieghere authored
The docs incorrectly said to repeat std::vector inside LLVM_YAML_IS_DOCUMENT_LIST_VECTOR. llvm-svn: 337695
-