summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [llvm-pdbutil] Add support for dumping cross module imports/exports.Zachary Turner2017-06-165-5/+81
| | | | llvm-svn: 305532
* [llvm-pdbutil] Add a function for iterating over debug subsections.Zachary Turner2017-06-151-104/+102
| | | | | | NFC, just adds a helper function to reduce boilerplate. llvm-svn: 305531
* [PartialInlining] Code RefactoringXinliang David Li2017-06-151-191/+223
| | | | | | | This is a NFC code refactoring and interface cleanup. This paves the way to enable outlining-only mode for the partial inliner. llvm-svn: 305530
* [llvm-pdbutil] Add support for dumping lines and inlinee lines.Zachary Turner2017-06-1512-65/+308
| | | | llvm-svn: 305529
* Try to fix uninitialized read reported by msan.Zachary Turner2017-06-151-0/+1
| | | | llvm-svn: 305528
* Revert "[DAG] Allow truncated and extend memory operations in Store Merge. ↵Ahmed Bougacha2017-06-151-21/+10
| | | | | | | | NFCI." This reverts commit r305468, as it caused PR33475. llvm-svn: 305527
* [llvm-pdbutil] Add back support for dumping file checksums.Zachary Turner2017-06-156-405/+489
| | | | | | When dumping module source files, also dump checksums. llvm-svn: 305526
* test-release.sh: Run the test-suite using phase3 clangTom Stellard2017-06-151-1/+4
| | | | | | | | | | | | Summary: We were using the system compiler to run the test suite. Reviewers: hansw Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D34246 llvm-svn: 305525
* [llvm-pdbutil] Add back the ability to dump hashes and index offsets.Zachary Turner2017-06-157-109/+173
| | | | | | | This was regressed in a previous patch that re-wrote the dumper, and I'm incrementally adding back the pieces that are missing. llvm-svn: 305524
* [AMDGPU] Testing commit access only, no real changeAlfred Huang2017-06-151-1/+1
| | | | llvm-svn: 305523
* UnitTests: Followup to 305519Matthias Braun2017-06-152-6/+6
| | | | | | | We have to use ASSERT_XXX instead of EXPECT_XXX if the test cannot continue in the failure case. llvm-svn: 305522
* [libFuzzer] change the default max_len from 64 to 4096. This will affect ↵Kostya Serebryany2017-06-159-8/+17
| | | | | | cases where libFuzzer is run w/o initial corpus or with a corpus of very small items. llvm-svn: 305521
* Remove some non-determinstic numbers from pdb test.Zachary Turner2017-06-151-5/+5
| | | | llvm-svn: 305520
* UnitTests: Replace some if(x)report_fatal_error() with EXPECT_TRUE(!x)Matthias Braun2017-06-152-12/+6
| | | | llvm-svn: 305519
* Fix pdb embedded paths.Zachary Turner2017-06-151-4/+4
| | | | | | | Obviously the paths are going to be machine dependent, so don't try to match them in the test. llvm-svn: 305518
* Resubmit "[llvm-pdbutil] rewrite the "raw" output style."Zachary Turner2017-06-1542-5184/+3926
| | | | | | | | | This resubmits commit c0c249e9f2ef83e1d1e5f166b50673d92f3579d7. It was broken due to some weird template issues, which have since been fixed. llvm-svn: 305517
* RegScavenging: Add scavengeRegisterBackwards()Matthias Braun2017-06-1514-233/+514
| | | | | | | | | | | | | | | | | | Re-apply r276044/r279124. Trying to reproduce or disprove the ppc64 problems reported in the stage2 build last time, which I cannot reproduce right now. This is a variant of scavengeRegister() that works for enterBasicBlockEnd()/backward(). The benefit of the backward mode is that it is not affected by incomplete kill flags. This patch also changes PrologEpilogInserter::doScavengeFrameVirtualRegs() to use the register scavenger in backwards mode. Differential Revision: http://reviews.llvm.org/D21885 llvm-svn: 305516
* docs/Phabricator: Better git examples to produce full context patchesMatthias Braun2017-06-151-1/+2
| | | | llvm-svn: 305515
* Try to fix MSVC build.Rafael Espindola2017-06-151-3/+3
| | | | llvm-svn: 305514
* Set affinity to none/false in child processesJonathan Peyton2017-06-151-1/+12
| | | | | | | | | | | | Reset affinity to none (false for proc-bind-var) so that threads in the child processes are not bound tightly, unless the user explicitly sets this in KMP_AFFINITY/OMP_PROC_BIND, in child processes. This can improve performance for scripting languages which fork for parallelism like Python's multiprocessing module. Differential Revision: https://reviews.llvm.org/D34154 llvm-svn: 305513
* Move clearOutputSections before sortSections.Rafael Espindola2017-06-153-148/+133
| | | | | | | | | | | | | | | | | | This is probably the main patch left in unifying our intermediary representation. It moves the creation of default commands before section sorting. This has the nice effect that we now have one location where we decide where an orphan section should be placed. Before this patch sortSections would decide the relative location of orphan sections to other sections, but it was up to placeOrphanSection to decide on the exact location. We now only sort sections we created since the linker script is already in the correct order. llvm-svn: 305512
* [Completion] Code complete the members for a dependent type after a '::'Alex Lorenz2017-06-152-3/+25
| | | | | | | | | | This commit is a follow up to r302797 which added support for dependent completions after the '.' and '->' operators. This commit adds support for dependent completions after the '::' operator. Differential Revision: https://reviews.llvm.org/D34173 llvm-svn: 305511
* [InstCombine] Add two FIXMEs for bad single use checks. NFCCraig Topper2017-06-151-0/+4
| | | | llvm-svn: 305510
* [InstCombine] Add test cases to demonstrate instcombine increasing ↵Craig Topper2017-06-151-0/+237
| | | | | | instruction count when trying to fold (select (icmp eq (and X, C1), 0), Y, (or Y, C2))->(or (shl (and X, C1), C3), y) when the pieces have multiple uses. llvm-svn: 305509
* [index] Record C++17 global binding declarationsAlex Lorenz2017-06-153-1/+37
| | | | | | | | The global C++17 binding declarations should be indexed as variable symbols. Differential Revision: https://reviews.llvm.org/D33920 llvm-svn: 305508
* Added braces to work around gcc warning in googletest: suggest explicit ↵Galina Kistanova2017-06-154-8/+16
| | | | | | braces to avoid ambiguous 'else'. NFC. llvm-svn: 305507
* Added braces to work around gcc warning in googletest: suggest explicit ↵Galina Kistanova2017-06-155-11/+22
| | | | | | braces to avoid ambiguous 'else'. NFC. llvm-svn: 305506
* Revert "[llvm-pdbutil] rewrite the "raw" output style."Zachary Turner2017-06-1543-3911/+5184
| | | | | | | | | This reverts commit 83ea17ebf2106859a51fbc2a86031b44d33696ad. This is failing due to some strange template problems, so reverting until it can be straightened out. llvm-svn: 305505
* [index] Index static_assert declarationsAlex Lorenz2017-06-152-0/+23
| | | | | | | | | | static_assert declarations have to be visited while indexing so that we can gather the references to declarations that are present in their assert expression. Differential Revision: https://reviews.llvm.org/D33913 llvm-svn: 305504
* [DWARF] Removed dead code. The verifier functionality is provided bySpyridoula Gravani2017-06-151-242/+0
| | | | | | the DWARFVerifier class (as it should). llvm-svn: 305503
* COFF: add support for lib mode usageSaleem Abdulrasool2017-06-154-3/+30
| | | | | | | | | | When link is invoked with `/def:` and no input files, it behaves as if `lib.exe` was invoked. Emulate this behaviour, generating the import library from the def file that was passed. Because there is no input to actually generate the dll, we simply process the def file early and exit once we have created the import library. llvm-svn: 305502
* Split PGO memory intrinsic optimization into its own source fileTeresa Johnson2017-06-153-361/+420
| | | | | | | | | | | | | | Summary: Split the PGOMemOPSizeOpt pass out from IndirectCallPromotion.cpp into its own file. Reviewers: davidxl Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D34248 llvm-svn: 305501
* Use _LIBCPP_FALLTHROUGH() to avoid warnings about [[gnu::fallthrough]] being ↵Eric Fiselier2017-06-151-1/+1
| | | | | | unsupported llvm-svn: 305500
* Fix some more warnings.Zachary Turner2017-06-154-28/+19
| | | | llvm-svn: 305499
* [coroutines] Remove pass-through operator co_await; Replace it with the ↵Eric Fiselier2017-06-152-14/+7
| | | | | | | | | | | | input expression Reviewers: GorNishanov, rsmith Reviewed By: GorNishanov Differential Revision: https://reviews.llvm.org/D34216 llvm-svn: 305498
* Fix some -Wreorder issues.Zachary Turner2017-06-153-3/+2
| | | | llvm-svn: 305497
* [coroutines] Allow co_await and co_yield expressions that return an lvalue ↵Eric Fiselier2017-06-155-8/+106
| | | | | | | | | | | | | | | | | | to compile Summary: The title says it all. Reviewers: GorNishanov, rsmith Reviewed By: GorNishanov Subscribers: rjmccall, cfe-commits Differential Revision: https://reviews.llvm.org/D34194 llvm-svn: 305496
* [llvm-pdbutil] rewrite the "raw" output style.Zachary Turner2017-06-1543-5184/+3921
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After some internal discussions, we agreed that the raw output style had outlived its usefulness. It was originally created before we had even thought of dumping to YAML, and it was intended to give us some insight into the internals of a PDB file. Now we have YAML mode which does almost exactly this but is more powerful in that it can round-trip back to a PDB, which the raw mode could not do. So the raw mode had become purely a maintenance burden. One option was to just delete it. However, its original goal was to be as readable as possible while staying close to the "metal" - i.e. presenting the output in a way that maps directly to the underlying file format. We don't actually need that last requirement anymore since it's covered by the yaml mode, so we could repurpose "raw" mode to actually just be as readable as possible. This patch implements about 80% of the functionality previously in raw mode, but in a completely different style that is more akin to what cvdump outputs. Records are very compressed, often times appearing on just one line. One nice thing about this is that it makes full record matching easier, because you can grep for indices, names, and leaf types on a single line often. See the tests for some examples of what the new output looks like. Note that this patch actually regresses the functionality of raw mode in a few areas, but only because the patch was already unreasonably large and going 100% would have been even worse. Specifically, this patch is missing: The ability to dump module debug subsections (checksums, lines, etc) The ability to dump section headers Aside from that everything is here. While goign through the tests fixing them all up, I found many duplicate tests. They've been deleted. In subsequent patches I will go through and re-add the missing functionality. Differential Revision: https://reviews.llvm.org/D34191 llvm-svn: 305495
* DivergencyAnalysis patch for reviewAlexander Timofeev2017-06-1510-2/+88
| | | | llvm-svn: 305494
* [InstCombine] Make the context instruction parameter of foldOrOfICmps a ↵Craig Topper2017-06-152-10/+10
| | | | | | reference to discourage passing nullptr and to remove the '&' from all of the call sites. NFC llvm-svn: 305493
* [InstCombine] Pre-commit test cases for the transform proposed in D34244.Craig Topper2017-06-151-0/+58
| | | | llvm-svn: 305492
* LexerTest memory leak fix-Erich Keane2017-06-151-1/+3
| | | | | | | | A new LexerTest unittest introduced a memory leak. This patch uses a unique_ptr with a custom deleter to ensure it is properly deleted. llvm-svn: 305491
* [MachineLICM] Hoist TOC-based address instructionsLei Huang2017-06-155-2/+140
| | | | | | | | | | | | | | | | | | Add condition for MachineLICM to safely hoist instructions that utilize non constant registers that are reserved. On PPC, global variable access is done through the table of contents (TOC) which is always in register X2. The ABI reserves this register in any functions that have calls or access global variables. A call through a function pointer involves saving, changing and restoring this register around the call and thus MachineLICM does not consider it to be invariant. We can however guarantee the register is preserved across the call and thus is invariant. Differential Revision: https://reviews.llvm.org/D33562 llvm-svn: 305490
* [ubsan] Fix a faulty memory accessibility checkVedant Kumar2017-06-154-3/+62
| | | | | | | | | | | | | The dynamic type check needs to inspect vtables, but could crash if it encounters a vtable pointer to inaccessible memory. In the first attempt to fix the issue (r304437), we performed a memory accessibility check on the wrong range of memory. This should *really* fix the problem. Patch by Max Moroz! Differential Revision: https://reviews.llvm.org/D34215 llvm-svn: 305489
* Fold variable into assert.Benjamin Kramer2017-06-151-2/+1
| | | | | | Silences an unused variable warning in Release builds. llvm-svn: 305488
* [InstCombine] Handle (iszero(A & K1) | iszero(A & K2)) -> (A & (K1 | K2)) != ↵Craig Topper2017-06-152-29/+18
| | | | | | | | | | | | (K1 | K2) when the one of the Ands is commuted relative to the other Currently we expect A to be on the same side in both Ands but nothing guarantees that. While there also switch to using matchers for some of the code. Differential Revision: https://reviews.llvm.org/D34230 llvm-svn: 305487
* Silence warning with assertions disabled.Peter Collingbourne2017-06-151-0/+1
| | | | llvm-svn: 305485
* ISel: Fix FastISel of swifterror valuesArnold Schwaighofer2017-06-157-14/+300
| | | | | | | | | | | | The code assumed that we process instructions in basic block order. FastISel processes instructions in reverse basic block order. We need to pre-assign virtual registers before selecting otherwise we get def-use relationships wrong. This only affects code with swifterror registers. rdar://32659327 llvm-svn: 305484
* [BasicAA] Add test case that goes with r305481.Craig Topper2017-06-151-0/+53
| | | | | | Forgot to 'git add' the file. llvm-svn: 305483
* Apply summary-based dead stripping to regular LTO modules with summaries.Peter Collingbourne2017-06-1512-116/+260
| | | | | | | | | | | | | | | If a regular LTO module has a summary index, then instead of linking it into the combined regular LTO module right away, add it to the combined summary index and associate it with a special module that represents the combined regular LTO module. Any such modules are linked during LTO::run(), at which time we use the results of summary-based dead stripping to control whether to link prevailing symbols. Differential Revision: https://reviews.llvm.org/D33922 llvm-svn: 305482
OpenPOWER on IntegriCloud