summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* ARM: stop asserting on weird <3 x Ty> vectors in ISelLowering.Tim Northover2016-03-173-2/+19
| | | | llvm-svn: 263741
* [libFuzzer] deprecate several flagsKostya Serebryany2016-03-177-51/+10
| | | | llvm-svn: 263739
* [libFuzzer] add __attribute__((no_sanitize_memory)) to two functions that ↵Kostya Serebryany2016-03-171-0/+2
| | | | | | may be called from signal handler(s) or from msan. This will hopefully avoid msan false reports which I can't reproduce llvm-svn: 263737
* [msan fix] unitalized variableMichael J. Spencer2016-03-171-3/+3
| | | | llvm-svn: 263736
* [InstCombine] Combine A->B->A BitCastGuozhi Wei2016-03-173-0/+200
| | | | | | | | | | This patch enhances InstCombine to handle following case: A -> B bitcast PHI B -> A bitcast llvm-svn: 263734
* [Statepoints] Export a magic constant into a header; NFCSanjoy Das2016-03-172-1/+3
| | | | llvm-svn: 263733
* [lit] Enqueue tests on a separate thread to not hit limits on parallel queuesFilipe Cabecinhas2016-03-171-2/+14
| | | | | | | | | | | | | | | | | Summary: The multiprocessing.Queue.put() call can hang if we try queueing all the tests before starting to take them out of the queue. The current implementation hangs if tests exceed 2^^15, on Mac OS X. This might happen with a ninja check-all if one has a bunch of llvm projects. Reviewers: delcypher, bkramer Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D17609 llvm-svn: 263731
* [AMDGPU] add VI disassembler tests. NFC.Valery Pykhtin2016-03-1713-3/+1700
| | | | | | | | Autogenerated from the corresponding assembler tests with a few FIXME added (will fix soon). Differential Revision: http://reviews.llvm.org/D18249 llvm-svn: 263729
* [PowerPC] Disable CTR loops optimization for soft float operationsPetar Jovanovic2016-03-172-0/+148
| | | | | | | | | | | | This patch prevents CTR loops optimization when using soft float operations inside loop body. Soft float operations use function calls, but function calls are not allowed inside CTR optimized loops. Patch by Aleksandar Beserminji. Differential Revision: http://reviews.llvm.org/D17600 llvm-svn: 263727
* [WebAssembly] Stackify code emitted by eliminateFrameIndex and SP writebackDerek Schuff2016-03-175-60/+126
| | | | | | | | | | | | | | | | | Summary: MRI::eliminateFrameIndex can emit several instructions to do address calculations; these can usually be stackified. Because instructions with FI operands can have subsequent operands which may be expression trees, find the top of the leftmost tree and insert the code before it, to keep the LIFO property. Also use stackified registers when writing back the SP value to memory in the epilog; it's unnecessary because SP will not be used after the epilog, and it results in better code. Differential Revision: http://reviews.llvm.org/D18234 llvm-svn: 263725
* [COFF] Refactor section alignment calculationDavid Majnemer2016-03-172-3/+18
| | | | | | | Section alignment isn't completely trivial, let it live in one place so that we may reuse it in LLVM. llvm-svn: 263722
* Forgot to commit this with r263692David Majnemer2016-03-171-1/+1
| | | | llvm-svn: 263721
* AMDGPU/SI: Do not generate s_waitcnt after ds_permute/ds_bpermuteChangpeng Fang2016-03-173-3/+51
| | | | | | | | | | | | | | | | Symmary: ds_permute/ds_bpermute do not read memory so s_waitcnt is not needed. Reviewers arsenm, tstellarAMD Subscribers llvm-commits, arsenm Differential Revision: http://reviews.llvm.org/D18197 llvm-svn: 263720
* AMDGPU: mark atomic instructions as sources of divergenceNicolai Haehnle2016-03-172-0/+22
| | | | | | | | | | | | | | Summary: As explained by the comment, threads will typically see different values returned by atomic instructions even if the arguments are equal. Reviewers: arsenm, tstellarAMD Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D18156 llvm-svn: 263719
* [X86][SSE] Simplified blend-with-zero combiningSimon Pilgrim2016-03-174-20/+63
| | | | | | | | We were being too aggressive in trying to combine a shuffle into a blend-with-zero pattern, often resulting in a endless loop of contrasting combines This patch stops the combine if we already have a blend in place (means we miss some domain corrections) llvm-svn: 263717
* propagate 'unpredictable' metadata on select instructions Sanjay Patel2016-03-173-9/+13
| | | | | | | | | | | | This is similar to D18133 where we allowed profile weights on select instructions. This extends that change to also allow the 'unpredictable' attribute of branches to apply to selects. A test to check that 'unpredictable' metadata is preserved when cloning instructions was checked in at: http://reviews.llvm.org/rL263648 Differential Revision: http://reviews.llvm.org/D18220 llvm-svn: 263716
* ARM: Revert SVN r253865, 254158, fix windows divisionSaleem Abdulrasool2016-03-174-88/+113
| | | | | | | | | | | | | | | | | | | | | | The two changes together weakened the test and caused a regression with division handling in MSVC mode. They were applied to avoid an assertion being triggered in the block frequency analysis. However, the underlying problem was simply being masked rather than solved properly. Address the actual underlying problem and revert the changes. Rather than analyze the cause of the assertion, the division failure was assumed to be an overflow. The underlying issue was a subtle bug in the BB construction in the emission of the div-by-zero check (WIN__DBZCHK). We did not construct the proper successor information in the basic blocks, nor did we update the PHIs associated with the basic block when we split them. This would result in assertions being triggered in the block frequency analysis pass. Although the original tests are being removed, the tests themselves performed very little in terms of validation but merely tested that we did not assert when generating code. Update this with new tests that actually ensure that we do not regress on the code generation. llvm-svn: 263714
* [llvm-objdump] Add REQUIRES x86 directive to fix buildbotsSimon Atanasyan2016-03-171-0/+1
| | | | llvm-svn: 263708
* [llvm-objdump] Add '0x' prefix to a target displacement number to accent its ↵Simon Atanasyan2016-03-172-1/+11
| | | | | | | | | | | hex format It might be hard to recognize a hexadecimal number without '0x' prefix. Besides that '0x' prefix corresponds to GNU objdump behaviour. Differential Revision: http://reviews.llvm.org/D18207 llvm-svn: 263705
* [mips] Use `formatImm` call to print immediate value in the `MipsInstPrinter`Simon Atanasyan2016-03-172-2/+13
| | | | | | | | | That allows, for example, to print hex-formatted immediates using llvm-objdump --print-imm-hex command line option. Differential Revision: http://reviews.llvm.org/D18195 llvm-svn: 263704
* [mips] Eliminate instances of "potentially uninitialised local variable" ↵Scott Egerton2016-03-171-16/+13
| | | | | | | | | | | | | | | | | | warnings, NFC Summary: This should eliminate all occurrences of this within LLVMMipsAsmParser. This patch is in response to http://reviews.llvm.org/D17983. I was unable to reproduce the warnings on my machine so please advise if this fixes the warnings. Reviewers: ariccio, vkalintiris, dsanders Subscribers: dblaikie, dsanders, llvm-commits Differential Revision: http://reviews.llvm.org/D18087 llvm-svn: 263703
* Remove obselete reference to TypeResolve from the tutorial.Wilfred Hughes2016-03-171-4/+1
| | | | | | TypeResolve went away in r134829 in 2011. llvm-svn: 263702
* Minor grammar fix in kaleidoscope tutorial.Wilfred Hughes2016-03-171-2/+2
| | | | llvm-svn: 263700
* Further typo fixes in kaleidoscope tutorial.Wilfred Hughes2016-03-171-3/+3
| | | | llvm-svn: 263697
* Fix typo in kaleidoscope tutorial.Wilfred Hughes2016-03-171-1/+1
| | | | llvm-svn: 263696
* [yaml2obj, COFF] Correctly handle section alignmentDavid Majnemer2016-03-172-2/+26
| | | | | | | | | The section alignment field was marked optional but not provided a default value: initialize it with 0. While we are here, ensure that the section alignment is plausible. llvm-svn: 263692
* [Statepoints] Separate out logic for statepoint directives; NFCSanjoy Das2016-03-173-14/+54
| | | | | | | | | | | This splits out the logic that maps the `"statepoint-id"` attribute into the actual statepoint ID, and the `"statepoint-num-patch-bytes"` attribute into the number of patchable bytes the statpeoint is lowered into. The new home of this logic is in IR/Statepoint.cpp, and this refactoring will support similar functionality when lowering calls with deopt operand bundles in the future. llvm-svn: 263685
* [Statepoint] Remove unused header; NFCSanjoy Das2016-03-171-1/+0
| | | | llvm-svn: 263684
* [Statepoints] Minor NFC cleanupsSanjoy Das2016-03-172-37/+31
| | | | | | | Mostly code simplifcations, and bringing up IR/Statepoints.cpp up to LLVM coding style. llvm-svn: 263683
* [SelectionDAG] Remove visitStatepoint; NFCSanjoy Das2016-03-173-11/+2
| | | | | | | This way we have a single entry point into StatepointLowering. The method was a direct dispatch to LowerStatepoint anyway. llvm-svn: 263682
* Require allocator parameter to YAML traits.Pete Cooper2016-03-171-1/+1
| | | | | | | | | | The allocator here can still be a nullptr, but this atleast makes the single caller which needed nullptr be explicit about it. Note, lld started always passing a parameter here as of r263680. If anything builds out of sync, that would be why errors may occur. llvm-svn: 263681
* use FileCheck for tighter checkingSanjay Patel2016-03-161-4/+22
| | | | llvm-svn: 263679
* Add optional allocator to YAML code to avoid leaking lld atoms.Pete Cooper2016-03-161-2/+6
| | | | | | | | | | In lld we allocate atoms on an allocator and so don't run their destructors. This means we also shouldn't allocate memory inside them without that also being on an allocator. Reviewed by Lang Hames and Rafael Espindola. llvm-svn: 263676
* reduce check strings; no need to check IR commentsSanjay Patel2016-03-161-7/+7
| | | | llvm-svn: 263675
* use FileCheck for tighter checkingSanjay Patel2016-03-161-7/+17
| | | | llvm-svn: 263674
* Upgrade TBAA *before* upgrading intrinsicsChris Bieneman2016-03-163-6/+12
| | | | | | | | | | | | Summary: If TBAA is on an intrinsic and it gets upgraded and drops the TBAA we hit an odd assert. We should just upgrade the TBAA first because it doesn't have side-effects. Reviewers: reames, apilipenko, manmanren Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D18229 llvm-svn: 263673
* Fix indentation; NFCSanjoy Das2016-03-161-3/+2
| | | | llvm-svn: 263672
* Extract out a SelectionDAGBuilder::LowerAsStatepoint; NFCSanjoy Das2016-03-162-144/+197
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This is a step towards implementing "direct" lowering of calls and invokes with deopt operand bundles into STATEPOINT nodes (as opposed to having them mandatorily pass through RewriteStatepointsForGC, which is the case today). This change extracts out a `SelectionDAGBuilder::LowerAsStatepoint` helper function that is able to lower a "statepoint like thing", and uses it to lower `gc.statepoint` calls. This is an NFC now, but in a later change we will use `LowerAsStatepoint` to directly lower calls and invokes with operand bundles without going through an intermediate `gc.statepoint` IR representation. FYI: I expect `SelectionDAGBuilder::StatepointInfo` will evolve as I add support for lowering non gc.statepoints, right now it is fairly tightly coupled with an IR level `gc.statepoint`. Reviewers: reames, pgavlin, JosephTremoulet Subscribers: sanjoy, mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D18106 llvm-svn: 263671
* use FileCheck for tighter checkingSanjay Patel2016-03-161-2/+36
| | | | | | | | I'm testing out a script that auto-generates the check lines. It's 98% copied from utils/update_llc_test_checks.py. If others think this is useful, please let me know. llvm-svn: 263668
* use FileCheck for tighter checkingSanjay Patel2016-03-161-7/+15
| | | | | | | | I'm testing out a script that auto-generates the check lines. It's 98% copied from utils/update_llc_test_checks.py. If others think this is useful, please let me know. llvm-svn: 263667
* Variable name cleanup /NFCXinliang David Li2016-03-162-7/+8
| | | | llvm-svn: 263666
* Tweak some atomics functions in preparation for larger changes; NFC.James Y Knight2016-03-1617-56/+58
| | | | | | | | | | | | | | | | - Rename getATOMIC to getSYNC, as llvm will soon be able to emit both '__sync' libcalls and '__atomic' libcalls, and this function is for the '__sync' ones. - getInsertFencesForAtomic() has been replaced with shouldInsertFencesForAtomic(Instruction), so that the decision can be made per-instruction. This functionality will be used soon. - emitLeadingFence/emitTrailingFence are no longer called if shouldInsertFencesForAtomic returns false, and thus don't need to check the condition themselves. llvm-svn: 263665
* [SelectionDAG] Extract out populateCallLoweringInfo; NFCSanjoy Das2016-03-163-30/+31
| | | | | | | | | SelectionDAGBuilder::populateCallLoweringInfo is now used instead of SelectionDAGBuilder::lowerCallOperands. The populateCallLoweringInfo interface is more composable in face of design changes like http://reviews.llvm.org/D18106 llvm-svn: 263663
* [ProfileData] Make a utility method public, NFCVedant Kumar2016-03-162-2/+8
| | | | | | | | | | | The swift frontend needs to be able to look up PGO function name variables based on the original raw function name. That's because it's not possible to create PGO function name variables while emitting swift IR. Instead, we have to create the name variables while lowering swift IR to llvm IR, at which point we fix up all calls to the increment intrinsic to point to the right name variable. llvm-svn: 263662
* AMDGPU: Prevent uniform loops from becoming infiniteNicolai Haehnle2016-03-162-0/+34
| | | | | | | | | | | | | | Summary: Uniform loops where the branch leaving the loop is predicated on VCCNZ must be skipped if EXEC = 0, otherwise they will be infinite. Reviewers: tstellarAMD, arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D18137 llvm-svn: 263658
* [Hexagon] Adding missing break in switch statement. Extra operands would ↵Colin LeMahieu2016-03-161-0/+1
| | | | | | have been appended to the end. llvm-svn: 263657
* [SLP] Make DataLayout a member variable.Chad Rosier2016-03-161-38/+35
| | | | llvm-svn: 263656
* Revert "[LSR] Create fewer redundant instructions."Geoff Berry2016-03-162-56/+20
| | | | | | This reverts commit r263644. Investigating bootstrap failures. llvm-svn: 263655
* Removed trailing whitespaceSimon Pilgrim2016-03-161-12/+12
| | | | llvm-svn: 263650
* [X86] Reduced alignment of widened vector load/stores to better match ↵Simon Pilgrim2016-03-162-28/+76
| | | | | | PR26953 cases llvm-svn: 263649
OpenPOWER on IntegriCloud