summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [CodeGenObjCXX] Fix handling of blocks in lambda.Akira Hatanaka2016-05-042-26/+47
| | | | | | | | | | | This fixes a crash that occurs when a block captures a reference that is captured by its enclosing lambda. rdar://problem/18586651 Differential Revision: http://reviews.llvm.org/D19536 llvm-svn: 268532
* [MSan] [Mips64] Add tests for vararg handling.Marcin Koscielnicki2016-05-042-0/+85
| | | | | | Differential Revision: http://reviews.llvm.org/D19919 llvm-svn: 268531
* Revert "[InstCombine] Canonicalize icmp instructions based on dominating ↵Balaram Makam2016-05-044-185/+0
| | | | | | | | conditions." This reverts commit 573a40f79b35cf3e71db331bb00f6a84f03b835d. llvm-svn: 268530
* [ARM] Fix Scavenger assert due to underestimated stack sizeWeiming Zhao2016-05-042-6/+211
| | | | | | | | | | | | | Summary: Currently, when checking if a stack is "BigStack" or not, it doesn't count into spills and arguments. Therefore, LLVM won't reserve spill slot for this actually "BigStack". This may cause scavenger failure. Reviewers: rengolin Subscribers: aemerson, rengolin, tberghammer, danalbert, srhines, llvm-commits Differential Revision: http://reviews.llvm.org/D19896 llvm-svn: 268529
* Fix spelling in comment. NFC.Simon Pilgrim2016-05-041-1/+1
| | | | llvm-svn: 268528
* [ObjC] Enter a new evaluation context before callingAkira Hatanaka2016-05-042-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BuildBlockForLambdaConversion. Previously, clang would build an incorrect AST for the following code: id test() { return @{@"a": [](){}, @"b": [](){}}; } ReturnStmt 0x10d080448 `-ExprWithCleanups 0x10d080428 |-cleanup Block 0x10d0801f0 // points to the second BlockDecl ... -BlockDecl 0x10d07f150 // First block ... -BlockDecl 0x10d0801f0 // Second block ... `-ExprWithCleanups 0x10d0801d0 |-cleanup Block 0x10d07f150 // points to the first BlockDecl To fix the bug, this commit enters a new evaluation context to reset ExprNeedsCleanups before each block is parsed. rdar://problem/16879958 Differential Revision: http://reviews.llvm.org/D18815 llvm-svn: 268527
* Revert r268504Simon Pilgrim2016-05-042-1519/+11965
| | | | llvm-svn: 268526
* [ELF][MIPS] R_MIPS_GOT_DISP, R_MIPS_GOT_PAGE, R_MIPS_GOT_OFST relocations ↵Simon Atanasyan2016-05-042-2/+90
| | | | | | | | | | | | support These relocations introduced by MIPS N64 ABI. R_MIPS_GOT_DISP references GOT entry with full symbol's address, R_MIPS_GOT_PAGE creates GOT entry with address of memory page which includes symbol's address, R_MIPS_GOT_OFST used together with R_MIPS_GOT_PAGE. This relocation calculates offset from beginning of memory page to the symbol address. llvm-svn: 268525
* Adding test cases showing the behavior of LoopUnrollPass according to ↵Marianne Mailhot-Sarrasin2016-05-041-0/+160
| | | | | | | | | | optnone and optsize attributes The unroll pass was disabled by clang in /Os. Those new test cases shows that the pass will behave correctly even if it is not fully disabled. This patch is related in some way to the clang commit (http://reviews.llvm.org/D19827), which re-enables the pass in /Os. Differential Revision: http://reviews.llvm.org/D19870 llvm-svn: 268524
* Update test CHECK lines after r268509. NFC.Pete Cooper2016-05-041-1/+0
| | | | | | | | r268509 causes this test case to be fully unrolled, so checking for an icmp is no longer valid. Given that this test is for ARC anyway, checking for the icmp seems unecessary. llvm-svn: 268523
* [NVPTX:doc] Update code examples to conform to the latest IR.Jingyue Wu2016-05-041-23/+23
| | | | llvm-svn: 268522
* [InstCombine] Canonicalize icmp instructions based on dominating conditions.Balaram Makam2016-05-044-0/+185
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch canonicalizes conditions based on the constant range information of the dominating branch condition. For example: %cmp = icmp slt i64 %a, 0 br i1 %cmp, label %land.lhs.true, label %lor.rhs lor.rhs: %cmp2 = icmp sgt i64 %a, 0 Would now be canonicalized into: %cmp = icmp slt i64 %a, 0 br i1 %cmp, label %land.lhs.true, label %lor.rhs lor.rhs: %cmp2 = icmp ne i64 %a, 0 Reviewers: mcrosier, gberry, t.p.northover, llvm-commits, reames, hfinkel, sanjoy, majnemer Subscribers: MatzeB, majnemer, mcrosier Differential Revision: http://reviews.llvm.org/D18841 llvm-svn: 268521
* Fix a SIGSEGV caused by dereferencing a pointer without a null checkBryan Chan2016-05-041-2/+2
| | | | llvm-svn: 268520
* [Support] Creation of minidump after compiler crash on WindowsLeny Kholodov2016-05-046-1/+247
| | | | | | | | | | | In the current implementation compiler only prints stack trace to console after crash. This patch adds saving of minidump files which contain a useful subset of the information for further debugging. Differential Revision: http://reviews.llvm.org/D18216 llvm-svn: 268519
* Reland "Use ScopedPrinter in llvm-pdbdump"Reid Kleckner2016-05-043-1139/+1431
| | | | | | | This reverts r268508 and reinstates r268506 with an additional cast from TypeLeafKind to unsigned to allow conversion to HexNumber. llvm-svn: 268517
* [PowerPC] Generate VSX version of splat wordNemanja Ivanovic2016-05-048-9/+186
| | | | | | | | | | This patch corresponds to review: http://reviews.llvm.org/D18592 It allows the PPC back end to generate the xxspltw instruction where we previously only emitted vspltw. llvm-svn: 268516
* Delete getTlsGotRel.Rafael Espindola2016-05-043-25/+2
| | | | | | | It was an old hack to avoid duplicating expression computation, but that is not needed with getExprRel. llvm-svn: 268515
* [X86][SSE] Regenerate vector bswap testsSimon Pilgrim2016-05-041-60/+91
| | | | llvm-svn: 268514
* Typo. NFC.Chad Rosier2016-05-041-3/+3
| | | | llvm-svn: 268513
* [SimplifyCFG] isSafeToSpeculateStore now ignores debug infoHans Wennborg2016-05-042-2/+74
| | | | | | | | | | | | | | | This patch fixes PR27615. @llvm.dbg.value instructions no longer count towards the maximum number of instructions to look back at in the instruction list when searching for a store instruction. This should make the output consistent between debug and non-debug build. Patch by Henric Karlsson <henric.karlsson@ericsson.com>! Differential Revision: http://reviews.llvm.org/D19912 llvm-svn: 268512
* [Coverage] Fix an issue where a coverage region might not be created for a ↵Igor Kudrin2016-05-042-3/+42
| | | | | | | | | | | macro containing a loop statement. The issue happened when a macro contained a full for or while statement, which body ended at the end of the macro. Differential Revision: http://reviews.llvm.org/D19725 llvm-svn: 268511
* Fixed some spelling errors in assert messages. No functional change. Thanks ↵Marshall Clow2016-05-041-19/+19
| | | | | | to giffunip@yahoo.com for the report. llvm-svn: 268510
* Do not disable completely loop unroll when optimizing for size.Marianne Mailhot-Sarrasin2016-05-041-1/+1
| | | | | | | | Let the loop unroll pass handle /Os. It already checks that option and adjust its thresholds accordingly. Also, will allow the #pragma unroll to have an effect in /Os. Differential Revision: http://reviews.llvm.org/D19827 llvm-svn: 268509
* Revert "Use ScopedPrinter in llvm-pdbdump"Chad Rosier2016-05-043-1431/+1139
| | | | | | This reverts commit r268506 due to build breakage. llvm-svn: 268508
* Use a uniform name for the load combine pass. NFC.Chad Rosier2016-05-041-6/+5
| | | | llvm-svn: 268507
* Use ScopedPrinter in llvm-pdbdumpZachary Turner2016-05-043-1139/+1431
| | | | | | | | | | | | | | | | When printing raw PDB file fields, streams, and records, use the ScopedPrinter class so we have consistency with llvm-readobj's output format. For the most part this is pretty mechanical, but I had to fix up the test file to conform to the new YAMLesque output format. i added a few additional helper functions to the ScopedPrinter such as one to print a dotted version, etc. Differential Revision: http://reviews.llvm.org/D19897 Reviewed By: rnk llvm-svn: 268506
* Removed another dead code. NFC.George Rimar2016-05-041-3/+0
| | | | llvm-svn: 268505
* [SelectionDAG] BITREVERSE vector legalization of bit operationsSimon Pilgrim2016-05-042-11965/+1519
| | | | | | | | Vector bit operations are typically promoted instead of having custom lowering. This patch changes the isOperationLegalOrCustom tests for vector AND/OR operations to use isOperationLegalOrPromote instead, allowing the SSE implementations to stay on the simd unit. Differential Revision: http://reviews.llvm.org/D19805 llvm-svn: 268504
* AMDGPU/R600: Minor cleanup in InstrInfoJan Vesely2016-05-041-17/+16
| | | | | | | | | | | | | | Use std::make_pair instead of constructor Use C++11 loop Reuse helper var Reviewers: tstellardAMD Subsribers: arsenm Differential Revision: http://reviews.llvm.org/D19787 llvm-svn: 268503
* [RS4GC] Use SetVector/MapVector instead of DenseSet/DenseMap to guarantee ↵Igor Laevsky2016-05-046-106/+66
| | | | | | | | | | | | | | | stable ordering Goal of this change is to guarantee stable ordering of the statepoint arguments and other newly inserted values such as gc.relocates. Previously we had explicit sorting in a couple of places. However for unnamed values ordering was partial and overall we didn't have any strong invariant regarding it. This change switches all data structures to use SetVector's and MapVector's which provide possibility for deterministic iteration over them. Explicit sorting is now redundant and was removed. Differential Revision: http://reviews.llvm.org/D19669 llvm-svn: 268502
* Simplify handling of hint relocations.Rafael Espindola2016-05-045-15/+7
| | | | llvm-svn: 268501
* Update to ISL 0.17.Michael Kruse2016-05-0465-7174/+9557
| | | | | | | | | | | | This release includes sevaral improvments compared to the previous version isl-0.16.1-145-g243bf7c (from the ISL 0.17 announcement): - optionally combine SCCs incrementally in scheduler - optionally maximize coincidence in scheduler - optionally avoid loop coalescing in scheduler - minor AST generator improvements - improve support for expansions in schedule trees llvm-svn: 268500
* Sort entries. NFC.Rafael Espindola2016-05-041-1/+1
| | | | llvm-svn: 268499
* The test files are auto-generated by update_llc_test_checks.py utility.Elena Demikhovsky2016-05-042-186/+1198
| | | | | | No functional changes. llvm-svn: 268498
* Removed dead code. NFC.George Rimar2016-05-041-7/+0
| | | | llvm-svn: 268497
* [mips][ias] Only round section sizes when explicitly requested.Daniel Sanders2016-05-046-40/+49
| | | | | | | | As requested by Rafael Espindola in his post-commit comments on r268036. This makes the previous behaviour the default while still allowing verification of IAS. llvm-svn: 268496
* Print the cpio trailer after every member.Rafael Espindola2016-05-044-21/+18
| | | | | | | | | This is both simpler and safer. If we crash at any point, there is a valid cpio file to reproduce the crash. Thanks to Rui for the suggestion. llvm-svn: 268495
* [clang-tidy] Remove STL dependency from a test.Gabor Horvath2016-05-041-1/+11
| | | | llvm-svn: 268494
* [Sparc] Allow taking of function address into a register.Chris Dewhurst2016-05-042-5/+56
| | | | | | | | Modification of previously existing code (variable rename only), with unit test added. Differential Revision: http://reviews.llvm.org/D19368 llvm-svn: 268493
* [clang-tidy] New: checker misc-unconventional-assign-operator replacing ↵Gabor Horvath2016-05-0410-49/+91
| | | | | | | | | | | | | | misc-assign-operator-signature Summary: Finds return statements in assign operator bodies where the return value is different from '*this'. Only assignment operators with correct return value Class& are checked. Reviewers: aaron.ballman, alexfh, sbenza Subscribers: o.gyorgy, baloghadamsoftware, LegalizeAdulthood, aaron.ballman, Eugene.Zelenko, xazax.hun, cfe-commits Differential Revision: http://reviews.llvm.org/D18265 llvm-svn: 268492
* [mips][microMIPS] Add CodeGen support for microMIPSr6 ROTR and ROTRV and add ↵Zlatko Buljan2016-05-0417-11/+155
| | | | | | | | tests for LL, SC, SYSCALL, ROTR, ROTRV, LWM32, SWM32 and MOVEP instructions Differential Revision: http://reviews.llvm.org/D19857 llvm-svn: 268491
* [ASTMatchers] New matcher forFunctionGabor Horvath2016-05-044-0/+89
| | | | | | | | | | | | Summary: Matcher proposed in the review of checker misc-assign-operator (name pending). Its goal is to find the direct enclosing function declaration of a statement and run the inner matcher on it. Two version is attached in this patch (thus it will not compile), to be decided which approach to take. The second one always chooses one single parent while the first one does a depth-first search upwards (thus a height-first search) and returns the first positive match of the inner matcher (thus it always returns zero or one matches, not more). Further questions: is it enough to implement it in-place, or ASTMatchersInternals or maybe ASTMatchFinder should be involved? Reviewers: sbenza Subscribers: aaron.ballman, klimek, o.gyorgy, xazax.hun, cfe-commits Differential Revision: http://reviews.llvm.org/D19357 llvm-svn: 268490
* [X86] Add -m[no-]x87 and -m[no-]80387 options to control FeatureX87.Andrey Turetskiy2016-05-042-0/+11
| | | | | | | | | Add -m[no-]x87 and -m[no-]80387 options to control FeatureX87. -m[no-]80387 options is added for compatibility with GCC. Differential Revision: http://reviews.llvm.org/D19658 llvm-svn: 268489
* Add missing -mno-cx16 driver option.Andrey Turetskiy2016-05-042-2/+3
| | | | | | Differential Revision: http://reviews.llvm.org/D19658 llvm-svn: 268488
* Add a test for driver options from m_x86_Features_Group.Andrey Turetskiy2016-05-041-0/+44
| | | | | | Differential Revision: http://reviews.llvm.org/D19658 llvm-svn: 268487
* [ELF][MIPS] Fix typo in the comment. NFC.Simon Atanasyan2016-05-041-1/+1
| | | | llvm-svn: 268486
* [ELF][MIPS] Read/write .MIPS.options sectionSimon Atanasyan2016-05-048-12/+144
| | | | | | | | | MIPS N64 ABI introduces .MIPS.options section which specifies miscellaneous options to be applied to an object/shared/executable file. LLVM as well as modern versions of GNU tools read and write the only type of the options - ODK_REGINFO. It is exact copy of .reginfo section used by O32 ABI. llvm-svn: 268485
* When renaming a class, ename pointers to that class as well.Manuel Klimek2016-05-042-0/+27
| | | | | | Patch by Miklos Vajna. llvm-svn: 268484
* [Sparc] Implement __builtin_setjmp, __builtin_longjmp back-end.Chris Dewhurst2016-05-045-21/+384
| | | | | | | | | | | | | | This code implements builtin_setjmp and builtin_longjmp exception handling intrinsics for 32-bit Sparc back-ends. The code started as a mash-up of the PowerPC and X86 versions, although there are sufficient differences to both that had to be made for Sparc handling. Note: I have manual tests running. I'll work on a unit test and add that to the rest of this diff in the next day. Also, this implementation is only for 32-bit Sparc. I haven't focussed on a 64-bit version, although I have left the code in a prepared state for implementing this, including detecting pointer size and comments indicating where I suspect there may be differences. Differential Revision: http://reviews.llvm.org/D19798 llvm-svn: 268483
* [mips] Remove -mattr=+n64 and fix indentation in tailcall.ll RUN lines. NFC.Daniel Sanders2016-05-041-5/+5
| | | | | | | -mattr=+n64 isn't the correct way to specify the ABI and N64 is already the default for the RUN line concerned. llvm-svn: 268482
OpenPOWER on IntegriCloud