summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [CMake] Support symlinks with the same name as the binaryChris Bieneman2016-09-161-2/+8
| | | | | | | | This supports creating symlinks to tools in different directories than the tool is built to. This is useful for the LLDB framework build which I’m sending patches for shortly. llvm-svn: 281788
* [InstCombine] canonicalize vector select with constant vector condition to ↵Sanjay Patel2016-09-165-26/+104
| | | | | | | | | | | | | | | | | | | | shuffle As discussed on llvm-dev ( http://lists.llvm.org/pipermail/llvm-dev/2016-August/104210.html ): turn a vector select with constant condition operand into a shuffle as a canonicalization step. Shuffles may be easier to reason about in conjunction with other shuffles and insert/extract. Possible known (minor?) regressions from this change are filed as: https://llvm.org/bugs/show_bug.cgi?id=28530 https://llvm.org/bugs/show_bug.cgi?id=28531 https://llvm.org/bugs/show_bug.cgi?id=30371 If something terrible happens to perf after this commit, feel free to revert until a backend fix is in place. Differential Revision: https://reviews.llvm.org/D24279 llvm-svn: 281787
* AMDGPU: Allow some control flow intrinsics to be CSEdMatt Arsenault2016-09-166-43/+170
| | | | | | | | | | | These clean up some unnecessary or instructions in cases with complex loops. In the original testcase I noticed this, the same or with exec was repeated 5 or 6 times in a row. With this only one is emitted or sometimes a copy. llvm-svn: 281786
* CodeGen: Add more checks to nobuiltin.c test, add a negative test.Peter Collingbourne2016-09-161-5/+7
| | | | llvm-svn: 281785
* [safestack] Fix assertion failure in stack coloring.Evgeniy Stepanov2016-09-162-4/+45
| | | | | | | | | | This is a fix for PR30318. Clang may generate IR where an alloca is already live when entering a BB with lifetime.start. In this case, conservatively extend the alloca lifetime all the way back to the block entry. llvm-svn: 281784
* [RegAllocGreedy] Fix the list of NewVRegs for last chance recoloring.Quentin Colombet2016-09-161-2/+22
| | | | | | | | | | | | | | | | | When trying to recolor a register we may split live-ranges in the process. When we create new live-ranges we will have to process them, but when we move a register from Assign to Split, the allocation is not changed until the whole recoloring session is successful. Therefore, only push the live-ranges that changed from Assign to Split when the recoloring is successful. Same as the previous commit, I was not able to produce a test case that reproduce the problem with in-tree targets. Note: The bug has been here since the recoloring scheme has been added back in r200883 (Feb 2014). llvm-svn: 281783
* [RegAllocGreedy] Fix an assertion and condition when last chance recoloring ↵Quentin Colombet2016-09-161-2/+3
| | | | | | | | | | | | | | | | is used. When last chance recoloring is used, the list of NewVRegs may not be empty when calling selectOrSplitImpl. Indeed, another coloring may have taken place with splitting/spilling in the same recoloring session. Relax an assertion to take this into account and adapt a condition to act as if the NewVRegs were local to this selectOrSplitImpl instance. Unfortunately I am unable to produce a test case for this, I was only able to reproduce the conditions on an out-of-tree target. llvm-svn: 281782
* AMDGPU: Refactor kernel argument loweringTom Stellard2016-09-165-54/+109
| | | | | | | | | | | | | | | | | | | Summary: The main challenge in lowering kernel arguments for AMDGPU is determing the memory type of the argument. The generic calling convention code assumes that only legal register types can be stored in memory, but this is not the case for AMDGPU. This consolidates all the logic AMDGPU uses for deducing memory types into a single function. This will make it much easier to support different ABIs in the future. Reviewers: arsenm Subscribers: arsenm, wdng, nhaehnle, llvm-commits, yaxunl Differential Revision: https://reviews.llvm.org/D24614 llvm-svn: 281781
* AMDGPU: Use SOPK compare instructionsMatt Arsenault2016-09-169-52/+726
| | | | llvm-svn: 281780
* AMDGPU/SI: Add support for triples with the mesa3d operating systemTom Stellard2016-09-1610-77/+89
| | | | | | | | | | | | | | Summary: mesa3d will use the same kernel calling convention as amdhsa, but it will handle everything else like the default 'unknown' OS type. Reviewers: arsenm Subscribers: arsenm, llvm-commits, kzhuravl Differential Revision: https://reviews.llvm.org/D22783 llvm-svn: 281779
* Put SHF_ALLOC sections first, even with linker scripts.Rafael Espindola2016-09-164-30/+54
| | | | | | | | | | | | This matches gold and bfd, and is pretty much required by some linker scripts. They end with commands like foo 0 : { *(bar) } if we put any SHF_ALLOC sections after they can have an address that is too low. llvm-svn: 281778
* [InstCombine] allow vector types for constant folding / computeKnownBits ↵Sanjay Patel2016-09-164-12/+21
| | | | | | | | | | | | | | | | (PR24942) computeKnownBits() already works for integer vectors, so allow vector types when calling that from InstCombine. I don't think the change to use m_APInt in computeKnownBits is strictly necessary because we do check for ConstantVector later, but it's more efficient to handle the splat case without needing to loop on vector elements. This should work with InstSimplify, but doesn't yet, so I made that a FIXME comment on the test for PR24942: https://llvm.org/bugs/show_bug.cgi?id=24942 Differential Revision: https://reviews.llvm.org/D24677 llvm-svn: 281777
* Rename SortSectionPolicy::IgnoreConfig to None.Rui Ueyama2016-09-164-16/+14
| | | | | | Because it corresponds to SORT_NONE. None was renamed Default. llvm-svn: 281776
* Only process commands in a ONLY_IF_RO if it matches.Rafael Espindola2016-09-162-15/+29
| | | | | | | This matches bfd behavior. It also makes future changes simpler as we don't have to worry about ignoring these commands in multiple places llvm-svn: 281775
* [LTO] Add ability to parse AA pipelines.Davide Italiano2016-09-164-4/+33
| | | | | | | This is supposed to be a drop in replacement for what lld provides via --lto-newpm-aa-pipeline. llvm-svn: 281774
* [WebAssembly] Fix function types of CFGStackify testsDerek Schuff2016-09-161-3/+3
| | | | | | Make the function's declared type match its (lack of) return type llvm-svn: 281773
* Fix constraint checking in ONLY_IF_RO.Rafael Espindola2016-09-163-11/+25
| | | | | | We have to look at all the relevant input sections at once. llvm-svn: 281772
* [ELF] - Implemented --sort-section cmd line option and SORT_NONE script command.George Rimar2016-09-167-19/+102
| | | | | | | | | | | | | | | | This fixes Bug 30385 - SORT_NONE not implemented, `SORT_NONE' disables section sorting by ignoring the command line section sorting option. That is why this patch also implements --sort-section option. Description of sorting rules available at https://sourceware.org/binutils/docs/ld/Input-Section-Wildcards.html Differential revision: https://reviews.llvm.org/D24604 llvm-svn: 281771
* Fix compiler warnings where two values weren't being initialized.Greg Clayton2016-09-161-2/+2
| | | | llvm-svn: 281770
* [X86][SSE] Added vector sub combine testsSimon Pilgrim2016-09-161-0/+249
| | | | llvm-svn: 281769
* [X86][SSE] Added vector add combine testsSimon Pilgrim2016-09-161-0/+339
| | | | | | Some work great and others currently demonstrate the anti-vector bias prevalent in DAGCombiner llvm-svn: 281768
* [libc++] Fix inline attribute for non-MSVC WindowsShoaib Meenai2016-09-161-3/+9
| | | | | | | | | gcc and clang in gcc compatibility mode do not accept __forceinline. Use the gcc attribute for them instead. Differential Revision: https://reviews.llvm.org/D24678 llvm-svn: 281766
* Set the correct triple when creating an ArchSpec for Windows.Zachary Turner2016-09-161-0/+3
| | | | | | | Patch by Walter Erquinigo Differential Revision: https://reviews.llvm.org/D24283 llvm-svn: 281765
* Add unit tests for a few string conversion functions in Args.Zachary Turner2016-09-1610-48/+133
| | | | | | | Also provided a StringRef overload for these functions and have the const char* overloads delegate to the StringRef overload. llvm-svn: 281764
* Install libLLVM if needed with LLVM_INSTALL_TOOLCHAIN_ONLYDerek Schuff2016-09-161-1/+2
| | | | | | | | | | | | | | Summary: When LLVM_LINK_LLVM_DYLIB is set, the libLLVM shared library needs to be installed in the toolchain. Without this chanage LLVM_INSTALL_TOOLCHAIN_ONLY combined with LLVM_LINK_LLVM_DYLIB results in a broken install. Patch by Sam Clegg Differential Revision: https://reviews.llvm.org/D24676 llvm-svn: 281763
* Defer asm errors to post-statement failureNirav Dave2016-09-1616-830/+520
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recommitting after fixing AsmParser initialization and X86 inline asm error cleanup. Allow errors to be deferred and emitted as part of clean up to simplify and shorten Assembly parser code. This will allow error messages to be emitted in helper functions and be modified by the caller which has better context. As part of this many minor cleanups to the Parser: * Unify parser cleanup on error * Add Workaround for incorrect return values in ParseDirective instances * Tighten checks on error-signifying return values for parser functions and fix in-tree TargetParsers to be more consistent with the changes. * Fix AArch64 test cases checking for spurious error messages that are now fixed. These changes should be backwards compatible with current Target Parsers so long as the error status are correctly returned in appropriate functions. Reviewers: rnk, majnemer Subscribers: aemerson, jyknight, llvm-commits Differential Revision: https://reviews.llvm.org/D24047 llvm-svn: 281762
* Change extractProfMetadata and extractProfTotalWeight to const member function.Dehao Chen2016-09-162-28/+20
| | | | llvm-svn: 281760
* Make test slightly more explicit. NFC.Michael Kuperstein2016-09-161-2/+7
| | | | llvm-svn: 281759
* LoopDistribute should preserve GlobalsAA.Eli Friedman2016-09-161-0/+2
| | | | | | Differential Revision: https://reviews.llvm.org/D24204 llvm-svn: 281758
* LoopLoadElimination should preserve GlobalsAA.Eli Friedman2016-09-161-0/+2
| | | | | | | | Avoids losing GlobalsAA in the standard pass pipeline. Differential Revision: https://reviews.llvm.org/D24094 llvm-svn: 281757
* auto-generate checksSanjay Patel2016-09-161-2/+4
| | | | llvm-svn: 281756
* auto-generate checksSanjay Patel2016-09-161-137/+203
| | | | llvm-svn: 281755
* Recommit r281721 "[ELF] - Linkerscript: implement EXCLUDE_FILE in the middle ↵George Rimar2016-09-165-26/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of a input section description." With fix for 2 bots. Details about the fix performed is on a review page. Initial commit message: This is PR30387: From PR description: We fail to parse SECTIONS { foo : { *(sec0 EXCLUDE_FILE (zed1.o) sec1 EXCLUDE_FILE (zed2.o) sec2 ) } } The semantics according to bfd are: Include sec1 from every file but zed1.o Include sec2 from every file but zed2.o Include sec0 from every file Patch implements the support. Differential revision: https://reviews.llvm.org/D24650 llvm-svn: 281754
* Introduce inline assembly parsing test is PR30372.Nirav Dave2016-09-161-0/+12
| | | | llvm-svn: 281753
* Fix test after renaming -name-anon-functions pass to -name-anon-globalsMehdi Amini2016-09-163-6/+6
| | | | llvm-svn: 281752
* [LTO] Use llvm-nm instead of nm in new testsTeresa Johnson2016-09-162-3/+3
| | | | | | | | | | | The use of nm in the new tests added with r281725 caused a couple of bot failures: http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/15701 http://bb.pgr.jp/builders/ninja-clang-i686-msc19-R/builds/6939 Use llvm-nm instead. llvm-svn: 281750
* Actually remove the Mangler from the AsmPrinter and clean up the places it ↵Eric Christopher2016-09-168-19/+7
| | | | | | was "used" but not used. llvm-svn: 281749
* Fix a hidden use of grabbing the Mangler from the AsmPrinter and updateEric Christopher2016-09-161-4/+4
| | | | | | accordingly. llvm-svn: 281748
* Remove undefined weak hooks from dll thunk export list to really fix windows ↵Reid Kleckner2016-09-161-12/+0
| | | | | | build llvm-svn: 281747
* [compiler-rt] Don't force ASAN_HAS_EXCEPTIONS to be true for all buildsFrancis Ricci2016-09-161-3/+0
| | | | | | | | | | | | | | Summary: This value is already defaulted to true in asan_internal.h. Allow the value to be overriden in cases where exceptions are unavailable. Reviewers: kcc, samsonov, compnerd Subscribers: kubabrecka, dberris, beanz, mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D24633 llvm-svn: 281746
* Rename NameAnonFunctions to NameAnonGlobals to match what it is doing (NFC)Mehdi Amini2016-09-1610-42/+42
| | | | llvm-svn: 281745
* Fix NameAnonFunctions pass: for ThinLTO we need to rename global variables ↵Mehdi Amini2016-09-162-5/+16
| | | | | | | | | | | as well A follow-up patch will rename this pass and the source file accordingly, but I figured the non-NFC change will be easier to spot in isolation. Differential Revision: https://reviews.llvm.org/D24641 llvm-svn: 281744
* [InstCombine] add helper functions for visitICmpInst(); NFCISanjay Patel2016-09-162-523/+559
| | | | llvm-svn: 281743
* [IRObjectFile] Turn llvm_unreachable("foo") into something more explicative.Davide Italiano2016-09-161-1/+1
| | | | llvm-svn: 281742
* [LTO] Prevent asm references to be dropped from the output.Davide Italiano2016-09-162-0/+46
| | | | | | Differential Revision: https://reviews.llvm.org/D24617 llvm-svn: 281741
* Improve handling ASSERT outside SECTIONS blockEugene Leviant2016-09-164-43/+62
| | | | | | Differential revision: https://reviews.llvm.org/D24450 llvm-svn: 281740
* [AArch64][GlobalISel] Add default regbank mapping for int<>FP.Ahmed Bougacha2016-09-162-0/+91
| | | | llvm-svn: 281739
* [AArch64][GlobalISel] Add default regbank mapping for G_FCMP.Ahmed Bougacha2016-09-162-0/+31
| | | | llvm-svn: 281738
* [AArch64][GlobalISel] Add default regbank mapping for FP ops.Ahmed Bougacha2016-09-162-1/+157
| | | | | | These should have all their operands - even scalars - go on FPR. llvm-svn: 281737
* Change how we compute offsets with linker scripts.Rafael Espindola2016-09-164-132/+142
| | | | | | | | | | | | This fixes pr30367, but more importantly, it changes how we compute offsets. Now offset computation in a walk over linker script commands, like the rest of assignAddresses. IMHO this is simpler to understand and if we ever have to create multiple outputsections or chunks to change how we handle test/ELF/linkerscript/alternate-sections.s it should be easier to do it. llvm-svn: 281736
OpenPOWER on IntegriCloud