summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [llvm-readobj] - Teach readobj to print PT_OPENBSD_BOOTDATA headerGeorge Rimar2016-12-063-1/+16
| | | | | | | | | | | | | These are OpenBSD specific program headers. OpenBSD commit: https://github.com/openbsd/src/commit/d39116912b9536bd77326260dc5c6e593fd4ee24 It is required for fixing PR31288. Differential revision: https://reviews.llvm.org/D27456 llvm-svn: 288831
* [InstSimplify] add tests for or-of-icmps; NFCSanjay Patel2016-12-061-0/+1352
| | | | llvm-svn: 288830
* [CMake] Fixing clang standalone buildChris Bieneman2016-12-062-2/+4
| | | | | | I broke this in r288770. llvm-svn: 288829
* Fix FileCheck pattern.Joerg Sonnenberger2016-12-061-2/+2
| | | | llvm-svn: 288828
* Allow additional output since e.g. OSX appends flags likeJoerg Sonnenberger2016-12-061-2/+2
| | | | | | | | "-mlinker-version=264.3.102" automatically. Wiring down a target on the other hand is problematic as this actually needs to run codegen and doesn't work with -###. llvm-svn: 288827
* [MS ABI] Implement more of the Itanium mangling rulesDavid Majnemer2016-12-062-21/+77
| | | | | | | | | | | | We didn't implement handle corner cases like: - lambdas used to initialize a field - lambdas in default argument initializers This fixes PR31197. Differential Revision: https://reviews.llvm.org/D27226 llvm-svn: 288826
* [X86][SSE] Add knownbits test demonstrating demandedelts not ignoring undef ↵Simon Pilgrim2016-12-061-0/+21
| | | | | | shuffle elements llvm-svn: 288825
* Make test case slightly more robust by explicitly passing --sysroot.Joerg Sonnenberger2016-12-061-3/+3
| | | | | | Otherwise it would change when DEFAULT_SYSROOT is provided. llvm-svn: 288823
* If clang was configured for a DEFAULT_SYSROOT and no --sysroot argumentJoerg Sonnenberger2016-12-061-0/+5
| | | | | | is seen, record one with the implicit default. llvm-svn: 288822
* Allow clang to write compilation database records.Joerg Sonnenberger2016-12-065-1/+81
| | | | | | | | | | | | | | | | | | | | When integrating compilation database output into existing build systems, two approaches dominate so far. Ad-hoc implementation of the JSON output rules or using compiler wrappers. This patch adds a new option "-MJ foo.json" which gives a slightly cleaned up compilation record. The output is a fragment, i.e. you still need to add the array markers, but it allows multiple files to be easy merged. This way the only change in a build system is adding the option with potentially a per-target output file and merging the files with something like (echo '['; cat *.o.json; echo ']' > compilation_database.json or some additional filtering to remove the trailing comma for strict JSON compliance. Differential Revision: https://reviews.llvm.org/D27140 llvm-svn: 288821
* [X86][SSE] Added vector sext_in_reg combine testsSimon Pilgrim2016-12-061-0/+58
| | | | llvm-svn: 288819
* Fix doc string typo: s/@__yes/@__objc_yes/Jonathan Roelofs2016-12-061-1/+1
| | | | llvm-svn: 288818
* Removed trailing whitespaces. NFC.George Rimar2016-12-061-1/+1
| | | | llvm-svn: 288817
* [Support/ELF] - Add OpenBSD PT_OPENBSD_BOOTDATA constant.George Rimar2016-12-061-1/+2
| | | | | | | OpenBSD commit for reference: https://github.com/openbsd/src/commit/d39116912b9536bd77326260dc5c6e593fd4ee24 llvm-svn: 288816
* [X86] Improve UMAX/UMIN knownbits testSimon Pilgrim2016-12-061-36/+8
| | | | | | Test the sequential effect of each op llvm-svn: 288815
* Avoid repeated calls to Op.getOpcode(). NFCI.Simon Pilgrim2016-12-061-3/+4
| | | | llvm-svn: 288814
* Fix two clang-tidy misc-move-forwarding-reference warningsMalcolm Parsons2016-12-062-2/+2
| | | | | | Patch by Michael Sharpe. llvm-svn: 288813
* [globalisel][aarch64] Fix unintended assumptions about PartialMappingIdx. NFC.Daniel Sanders2016-12-062-18/+21
| | | | | | | | | | | | | | | | | | | | | | Summary: This is NFC but prevents assertions when PartialMappingIdx is tablegen-erated. The assumptions were: 1) FirstGPR is 0 2) FirstGPR is the first of the First* enumerators. GPR32 is changed to 1 to demonstrate that assumption #1 is fixed. #2 will be covered by a subsequent patch that tablegen-erates information and swaps the order of GPR and FPR as a side effect. Depends on D27336 Reviewers: ab, t.p.northover, qcolombet Subscribers: aemerson, rengolin, vkalintiris, dberris, rovka, llvm-commits Differential Revision: https://reviews.llvm.org/D27337 llvm-svn: 288812
* Update to isl-0.17.1-314-g3106e8dMichael Kruse2016-12-0625-150/+488
| | | | | | | | | | | | This version includes an update for imath (isl-0.17.1-49-g2f1c129). It fixes the compilation under windows, which does not know ssize_t. In addition, isl-0.17.1-288-g0500299 changed the way isl_test finds the source directory. It now generates a file isl_srcdir.c at configure-time, containing the source path, to not require setting the environment variable "srcdir" at test-time. The cmake build system had to be modified to also generate that file. llvm-svn: 288811
* [globalisel][aarch64] Replace magic numbers with corresponding enumerators ↵Daniel Sanders2016-12-061-29/+49
| | | | | | | | | | | | in ValMappings. NFC Reviewers: ab, t.p.northover, qcolombet Subscribers: aemerson, rengolin, vkalintiris, dberris, llvm-commits, rovka Differential Revision: https://reviews.llvm.org/D27336 llvm-svn: 288810
* [globalisel][aarch64] Correct argument names in comments.Daniel Sanders2016-12-061-3/+3
| | | | llvm-svn: 288809
* Don't print empty PT_LOAD.Rafael Espindola2016-12-063-13/+27
| | | | | | | | | | If we do, the freebsd dynamic linker tries to call mmap with a size 0, which fails. It is hard to avoid creating them when linker scripts are used, so we just delete empty PT_LOADs at the end. llvm-svn: 288808
* [SLPVectorizer][X86] Tests to show missed buildvector sitofp/fptosi ↵Simon Pilgrim2016-12-062-0/+100
| | | | | | | | | vectorizations e.g. buildvector(sitofp(i32), sitofp(i32), sitofp(i32), sitofp(i32)) --> sitofp(buildvector(i32, i32, i32, i32)) llvm-svn: 288807
* [ARM] Better error message for invalid flag-preserving Thumb1 instsOliver Stannard2016-12-062-2/+5
| | | | | | | | | | When we see a non flag-setting instruction for which only the flag-setting version is available in Thumb1, we should give a better error message than "invalid instruction". Differential Revision: https://reviews.llvm.org/D27414 llvm-svn: 288805
* [X86][AVX512] Detect repeated constant patterns in BUILD_VECTOR suitable for ↵Ayman Musa2016-12-065-11/+1329
| | | | | | | | | | | | broadcasting. Check if a build_vector node includes a repeated constant pattern and replace it with a broadcast of that pattern. For example: "build_vector <0, 1, 2, 3, 0, 1, 2, 3>" would be replaced by "broadcast <0, 1, 2, 3>" Differential Revision: https://reviews.llvm.org/D26802 llvm-svn: 288804
* Don't crash trying to write an 0 addend.Rafael Espindola2016-12-063-1/+13
| | | | | | | | | For preemptable symbols the dynamic linker does all the work. Trying to compute the addend is at best wasteful and can also lead to crashes in cases of programs that uses tls but doesn't define any tls variables. llvm-svn: 288803
* Make the test a bit more strict. NFC.Rafael Espindola2016-12-061-1/+7
| | | | llvm-svn: 288802
* [X86] Add tests to show missed opportunities to calculate knownbits in ↵Simon Pilgrim2016-12-061-0/+94
| | | | | | SMAX/SMIN/UMAX/UMIN llvm-svn: 288801
* [PowerPC] Improvements for BUILD_VECTOR Vol. 4Nemanja Ivanovic2016-12-065-49/+5002
| | | | | | | | | | | | This is the final patch in the series of patches that improves BUILD_VECTOR handling on PowerPC. This adds a few peephole optimizations to remove redundant instructions. It also adds a large test case which encompasses a large set of code patterns that build vectors - this test case was the motivator for this series of patches. Differential Revision: https://reviews.llvm.org/D26066 llvm-svn: 288800
* [globalisel][aarch64] Prefix PartialMappingIdx enumerators with 'PMI_' to ↵Daniel Sanders2016-12-062-66/+70
| | | | | | | | fit coding standards. This also stops things like 'None' polluting the llvm::AArch64 namespace. llvm-svn: 288799
* Fix MSVC -Wmicrosoft-enum-value 'enumerator value is not representable' warningSimon Pilgrim2016-12-061-1/+1
| | | | llvm-svn: 288798
* Use Timeout<> in EvaluateExpressionOptions classPavel Labath2016-12-0619-93/+77
| | | | llvm-svn: 288797
* Fix MSVC bool to uint64_t promotion warningSimon Pilgrim2016-12-061-1/+1
| | | | llvm-svn: 288796
* [LCG] Add some much needed asserts and verify runs to uncoverChandler Carruth2016-12-061-4/+12
| | | | | | | | | | | | | | | | | a hilarious bug and fix it. We somehow were never verifying the RefSCCs newly formed when splitting an existing one apart, and when verifying them we weren't really checking the SCC indices mapping effectively. If we had been, it would have been blindingly obvious that right after putting something int `RC.SCCs` we should update `RC.SCCIndices` instead of `SCCIndices` which we were about to clear and rebuild anyways. =[ Anyways, this is thoroughly covered by existing tests now that we actually verify things properly. llvm-svn: 288795
* [framelowering] Improve tracking of first CS pop instruction.Florian Hahn2016-12-062-5/+49
| | | | | | | | | | | | Summary: This patch makes sure FirstCSPop and MBBI never point to DBG_VALUE instructions, which affected the code generated. Reviewers: mkuper, aprantl, MatzeB Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D27343 llvm-svn: 288794
* Also recognize -std=iso9899:201xBenjamin Kramer2016-12-062-1/+4
| | | | | | | | | | | It should already be handled but a typo in the LANGSTANDARD() definition was introduced in r147220. Patch by Alexander Richardson, test case by me. Differential Revision:https://reviews.llvm.org/D27427 llvm-svn: 288793
* Add missing parens in assert.Sam McCall2016-12-061-1/+1
| | | | | | | | | | Summary: Add missing parens in assert, which warn in GCC. Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D27448 llvm-svn: 288792
* [clang-move] ignore unsupported symbol kinds when checking if all symbols ↵Eric Liu2016-12-063-5/+41
| | | | | | are moved. llvm-svn: 288791
* [PM] Basic cleanups to CGSCC update code, NFC.Chandler Carruth2016-12-061-41/+36
| | | | | | | Just using InstIterator, simpler loop structures, and making better use of the visit callback infrastructure. llvm-svn: 288790
* Revert r288787: Add missing stdbool.h module.Eric Fiselier2016-12-061-4/+1
| | | | | | | | Reverting because I didn't properly test this patch. Although it's probably correct to add a stdbool_h module I thought the change fixed more than it did. I'll re-commit after more investigation. llvm-svn: 288789
* [XRay][compiler-rt] Only add unit tests if we're building XRay.Dean Michael Berris2016-12-062-8/+6
| | | | | | | | | | As constructed before this patch, in case we run into case where we don't actually build the XRay library, we really ought to not be adding the unit test runs. This should fix the bootstrap build failures. This is a follow-up further to D26232. llvm-svn: 288788
* Add missing stdbool.h module. The test suite now passes on OS X with modulesEric Fiselier2016-12-061-1/+4
| | | | llvm-svn: 288787
* [XRay][compiler-rt] CMake fixes for XRay -- take 2.Dean Michael Berris2016-12-061-3/+5
| | | | | | | | | | The bootstrap buildbot complains about not being able to find the unittests for XRay, when the conditionals to include or not include tests and unit tests don't match. This is a follow-up to D26232. llvm-svn: 288786
* [XRay][compiler-rt] Fix unit test adding logic.Dean Michael Berris2016-12-061-1/+1
| | | | | | | | | Before this change we would add the unit tests potentially even if we don't actually include the unit tests. This is a follow-up on D26232. llvm-svn: 288785
* [X86] Remove another weird scalar sqrt/rcp/rsqrt pattern.Craig Topper2016-12-062-7/+2
| | | | | | | | This pattern turned a vector sqrt/rcp/rsqrt operation of sse_load_f32/f64 into the the scalar instruction for the operation and put undef into the upper bits. For correctness, the resulting code should still perform the sqrt/rcp/rsqrt on the upper bits after the load is extended since that's what the operation asked for. Particularly in the case where the upper bits are 0, in that case we need calculate the sqrt/rcp/rsqrt of the zeroes and keep the result in the upper-bits. This implies we should be using the packed instruction still. The only test case for this pattern is one I just added so there was no coverage of this. llvm-svn: 288784
* [X86] Add test case demonstrating a case where a vector sqrt being passed ↵Craig Topper2016-12-061-0/+12
| | | | | | | | | | (scalar_to_vector loadf64) uses a scalar sqrt instruction. This occurs due to a pattern that uses sse_load_f32/f64 with vector sqrt/rcp/rsqrt operations and turns them into scalar instructions. Perhaps for the case were the upper bits come from undef this is ok. I believe a (vzmovl load64) would do the same thing but those seems to become vzload instead and selectScalarSSELoad doesn't handle that today. In that case we should be performing the vector operation on the zeros in the upper bits which is not equivalent to using a scalar instruction. I will remove this pattern in a follow up patch. There appears to be no other test content for it. llvm-svn: 288783
* [X86] Regenerate a test using update_llc_test_checks.pyCraig Topper2016-12-061-92/+183
| | | | llvm-svn: 288782
* [X86] Remove bad pattern that caused 128-bit loads being used by scalar ↵Craig Topper2016-12-062-4/+2
| | | | | | | | sqrt/rcp/rsqrt intrinsics to select the memory form of the corresponding instruction and violate the semantics of the intrinsic. The intrinsics are supposed to pass the upper bits straight through to their output register. This means we need to make sure we still perform the 128-bit load to get those upper bits to pass to give to the instruction since the memory form of the instruction only reads 32 or 64 bits. llvm-svn: 288781
* [X86] Add test case that shows a scalar sqrtsd intrinsic of a 128-bit vector ↵Craig Topper2016-12-061-0/+26
| | | | | | | | load using the load form of the sqrtsd instruction which violates the intrinsic semantics. The sqrtsd instruction only loads 64-bits and writes bits 63:0 with the sqrt result. Bits 127:64 are preserved in the destination register. The semantics of the intrinsic indicate bits 127:64 should come from the intrinsic argument which in this case is a 128-bit load. So the generated code should have a 128-bit load and use a register form of sqrtsd. llvm-svn: 288780
* [X86] Correct pattern for VSQRTSSr_Int, VSQRTSDr_Int, VRCPSSr_Int, and ↵Craig Topper2016-12-062-35/+5
| | | | | | | | | | VRSQRTSSr_Int to not have an IMPLICIT_DEF on the first input. The semantics of the intrinsic are clear and not undefined. The intrinsic takes one argument, the lower bits are affected by the operation and the upper bits should be passed through. The instruction itself takes two operands, the high bits of the first operand are passed through and the low bits of the second operand are modified by the operation. To match this to the intrinsic we should pass the single intrinsic input to both operands. I had to remove the stack folding test for these instructions since they depended on the incorrect behavior. The same register is now used for both inputs so the load can't be folded. llvm-svn: 288779
OpenPOWER on IntegriCloud