summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* [Hexagon] Adding any8, all8, and/or/xor/andn/orn/not predicate register ↵Colin LeMahieu2014-12-083-0/+106
| | | | | | forms, mask, and vitpack instructions and patterns. llvm-svn: 223710
* [PowerPC]Activate FeatureVSX for the Power targetBill Seurer2014-12-081-5/+3
| | | | | | | | This change activates FeatureVSX for Power 7 and Power 8 in PPC.td. http://reviews.llvm.org/D6570 llvm-svn: 223709
* [PowerPC] Don't use a non-allocatable register to implement the 'cc' aliasHal Finkel2014-12-084-9/+349
| | | | | | | | | | | | | | | | GCC accepts 'cc' as an alias for 'cr0', and we need to do the same when processing inline asm constraints. This had previously been implemented using a non-allocatable register, named 'cc', that was listed as an alias of 'cr0', but the infrastructure does not seem to support this properly (neither the register allocator nor the scheduler properly accounts for the alias). Instead, we can just process this as a naming alias inside of the inline asm constraint-processing code, so we'll do that instead. There are two regression tests, one where the post-RA scheduler did the wrong thing with the non-allocatable alias, and one where the register allocator did the wrong thing. Fixes PR21742. llvm-svn: 223708
* [Hexagon] Fixing broken test.Colin LeMahieu2014-12-081-1/+1
| | | | llvm-svn: 223704
* [Hexagon] Adding xtype doubleword add, sub, and, or, xor and patterns.Colin LeMahieu2014-12-082-46/+60
| | | | llvm-svn: 223702
* [Hexagon] Adding xtype doubleword comparisons. Removing unused multiclass.Colin LeMahieu2014-12-083-32/+58
| | | | llvm-svn: 223701
* [Hexagon] Adding xtype parity, min, minu, max, maxu instructions.Colin LeMahieu2014-12-086-0/+122
| | | | llvm-svn: 223693
* [Hexagon] Adding xtype halfword add/sub ll/hl/lh/hh/sat/<<16 instructions.Colin LeMahieu2014-12-082-2/+152
| | | | llvm-svn: 223692
* Make myself the code owner for llgo.Peter Collingbourne2014-12-081-1/+1
| | | | llvm-svn: 223691
* R600/SI: Move continue after checking s_mov_b32.Matt Arsenault2014-12-081-3/+3
| | | | | | There's nothing else to bother trying to shrink these. llvm-svn: 223686
* ConstantFold: Zero-sized globals might land on top of another globalDavid Majnemer2014-12-082-3/+21
| | | | | | | A zero sized array is zero sized and might share its address with another global. llvm-svn: 223684
* Clean up the rst for the debug info tutorialEric Christopher2014-12-081-52/+52
| | | | llvm-svn: 223682
* Lazily link GlobalVariables and GlobalAliases.Rafael Espindola2014-12-087-121/+175
| | | | | | | | | | | We were already lazily linking functions, but all GlobalValues can be treated uniformly for this. The test updates are to ensure that a given GlobalValue is still linked in. This fixes pr21494. llvm-svn: 223681
* [Hexagon] Adding add/sub with saturation. Removing unused def. Cleaning up ↵Colin LeMahieu2014-12-083-16/+26
| | | | | | shift patterns. llvm-svn: 223680
* InstSimplify: Try to bring back the rest of r223583David Majnemer2014-12-082-2/+16
| | | | | | | This reverts r223624 with a small tweak, hopefully this will make stage3 equivalent. llvm-svn: 223679
* Once more on the cmake build. nativecodegen->native on the dependencies.Eric Christopher2014-12-085-5/+5
| | | | | | Thanks to Rafael Espindola for testing assistance. llvm-svn: 223678
* Attempt to fix the cmake build by requiring mcjit on the cmakeEric Christopher2014-12-085-0/+5
| | | | | | dependencies for the KS tutorials llvm-svn: 223677
* [CompactUnwind] Fix register encoding logicBruno Cardoso Lopes2014-12-084-74/+152
| | | | | | | | | | | | Fix a compact unwind encoding logic bug which would try to encode more callee saved registers than it should, leading to early bail out in the encoding logic and abusive use of DWARF frame mode unnecessarily. Also remove no-compact-unwind.ll which was testing the wrong thing based on this bug and move it to valid 'compact unwind' tests. Added other few more tests too. llvm-svn: 223676
* Fix KS tutorial build failure.Eric Christopher2014-12-085-775/+1059
| | | | | | | make all doesn't build the examples and it was uniquified since last build. llvm-svn: 223675
* Don't crash when the key of a comdat is lazily linked.Rafael Espindola2014-12-082-5/+20
| | | | llvm-svn: 223673
* InstrProf: An intrinsic and lowering for instrumentation based profilingJustin Bogner2014-12-0814-0/+497
| | | | | | | | | | | | | | | | | | | | | Introduce the ``llvm.instrprof_increment`` intrinsic and the ``-instrprof`` pass. These provide the infrastructure for writing counters for profiling, as in clang's ``-fprofile-instr-generate``. The implementation of the instrprof pass is ported directly out of the CodeGenPGO classes in clang, and with the followup in clang that rips that code out to use these new intrinsics this ends up being NFC. Doing the instrumentation this way opens some doors in terms of improving the counter performance. For example, this will make it simple to experiment with alternate lowering strategies, and allows us to try handling profiling specially in some optimizations if we want to. Finally, this drastically simplifies the frontend and puts all of the lowering logic in one place. llvm-svn: 223672
* Add Chapter 8 to the Kaleidoscope tutorial. This chapter addsEric Christopher2014-12-086-263/+2214
| | | | | | | | | a description of how to add debug information using DWARF and DIBuilder to the language. Thanks to David Blaikie for his assistance with this tutorial. llvm-svn: 223671
* Fix the JIT code for the Kaleidoscope tutorial.Eric Christopher2014-12-084-8/+36
| | | | llvm-svn: 223670
* AArch64: treat HFAs containing "half" types as blocks too.Tim Northover2014-12-082-0/+12
| | | | llvm-svn: 223669
* [X86] Improved tablegen patters for matching TZCNT/LZCNT.Andrea Di Biagio2014-12-082-24/+160
| | | | | | | | | | | Teach ISel how to match a TZCNT/LZCNT from a conditional move if the condition code is X86_COND_NE. Existing tablegen patterns only allowed to match TZCNT/LZCNT from a X86cond with condition code equal to X86_COND_E. To avoid introducing extra rules, I added an 'ImmLeaf' definition that checks if the condition code is COND_E or COND_NE. llvm-svn: 223668
* [Hexagon] Adding combine reg, reg with predicated forms.Colin LeMahieu2014-12-083-0/+13
| | | | llvm-svn: 223667
* Simplify the test. NFC.Rafael Espindola2014-12-082-6/+7
| | | | | | | Since the main file was empty, we can just copy the content of the Input file into it. llvm-svn: 223666
* Simplify test. NFC.Rafael Espindola2014-12-082-20/+11
| | | | | | | This is just testing the largest merge mode for comdats. No need to use hard to read names and fancy types. llvm-svn: 223665
* [Hexagon] Adding packhl instruction.Colin LeMahieu2014-12-082-0/+8
| | | | llvm-svn: 223664
* Use CHECK-DAG to reduce the noise in an upcoming patch.Rafael Espindola2014-12-081-12/+12
| | | | llvm-svn: 223663
* [mips] Add Mips-specific CCIf's for accessing the MipsCCState. NFC.Daniel Sanders2014-12-081-13/+28
| | | | | | | | | | | | Reviewers: vmedic Reviewed By: vmedic Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6213 llvm-svn: 223662
* [X86] Improved lowering of packed v8i16 vector shifts by non-constant count.Andrea Di Biagio2014-12-082-19/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this patch, the backend sub-optimally expanded the non-constant shift count of a v8i16 shift into a sequence of two 'movd' plus 'movzwl'. With this patch the backend checks if the target features sse4.1. If so, then it lets the shuffle legalizer deal with the expansion of the shift amount. Example: ;; define <8 x i16> @test(<8 x i16> %A, <8 x i16> %B) { %shamt = shufflevector <8 x i16> %B, <8 x i16> undef, <8 x i32> zeroinitializer %shl = shl <8 x i16> %A, %shamt ret <8 x i16> %shl } ;; Before (with -mattr=+avx): vmovd %xmm1, %eax movzwl %ax, %eax vmovd %eax, %xmm1 vpsllw %xmm1, %xmm0, %xmm0 retq Now: vpxor %xmm2, %xmm2, %xmm2 vpblendw $1, %xmm1, %xmm2, %xmm1 vpsllw %xmm1, %xmm0, %xmm0 retq llvm-svn: 223660
* Move the ValueMap lookup inside linkFunctionBody. NFC.Rafael Espindola2014-12-081-16/+15
| | | | llvm-svn: 223659
* Use range loops. NFC.Rafael Espindola2014-12-081-10/+9
| | | | llvm-svn: 223658
* Use range loops. NFC.Rafael Espindola2014-12-081-12/+10
| | | | llvm-svn: 223657
* Fix linking of prologue data.Rafael Espindola2014-12-082-23/+28
| | | | | | It would crash when the function was lazy linked. llvm-svn: 223656
* [CMake] Fix installation of llvm-ranlib on multiconfig builder.NAKAMURA Takumi2014-12-082-1/+26
| | | | | | | Introduce install_symlink.cmake from clang/tools/driver/clang_symlink.cmake. FIXME: Would it be generalized? llvm-svn: 223655
* Simple style fixes.Rafael Espindola2014-12-081-14/+15
| | | | | | | | * Use a range loop. * Move simple continue checks earlier. * clang-format. llvm-svn: 223654
* Move materialize/Dematerialize calls to linkFunctionBody. NFC.Rafael Espindola2014-12-081-15/+12
| | | | | | Just less code duplication. llvm-svn: 223653
* Removal Of Duplicate Test Case from shift.ll fileSonam Kumari2014-12-081-1/+1
| | | | llvm-svn: 223648
* X86 intrinsics moved form X86ISelLowering.cpp to X86IntrinsicsInfo.hElena Demikhovsky2014-12-082-133/+48
| | | | | | | | X86ISelLowering.cpp has a long switch for intrinsics. I moved a part of this long switch to the new intrinsics table in X86IntrinsicsInfo.h. No functional changes, just code and compile time optimization. llvm-svn: 223641
* lit: Don't use python 2.6 featuresDavid Majnemer2014-12-081-1/+1
| | | | | | LLVM supports python 2.5, this fixes a (somewhat) recent regression. llvm-svn: 223626
* Revert a part of r223583, for now. It seems causing different emission ↵NAKAMURA Takumi2014-12-082-14/+0
| | | | | | between stage2(gcc-clang) and stage3 clang. Investigating. llvm-svn: 223624
* IR: Fix bitcode compatability filenamesDuncan P. N. Exon Smith2014-12-082-0/+0
| | | | | | | As a fixup to r223616, follow the convention of naming the files after the LLVM release whose bitcode they're maintaining compatability with. llvm-svn: 223623
* IR: Revert r223618 behaviour of MDNode::concatenate()Duncan P. N. Exon Smith2014-12-071-12/+23
| | | | | | | | | | | | | r223618 including special handling of `MDNode::intersect()`: if the first operand is a self-reference with the same operands you're trying to return, return it instead. Reuse that handling in `MDNode::concatenate()` in the hopes that it fixes a polly test that seems to rely on the old behaviour [1]. [1]: http://lab.llvm.org:8011/builders/polly-amd64-linux/builds/25167 llvm-svn: 223619
* IR: Drop uniquing for self-referencing MDNodesDuncan P. N. Exon Smith2014-12-072-1/+55
| | | | | | | | | | | | | | | It doesn't make sense to unique self-referencing nodes. Drop uniquing for them. Note that `MDNode::intersect()` occasionally returns self-referencing nodes. Previously these would be returned by `MDNode::get()`. I'm not convinced this was intended behaviour -- to me it seems it should return a node whose only operand is the self-reference -- but I don't know much about alias scopes so I'm preserving it for now. This is part of PR21532. llvm-svn: 223618
* IR: Remove reference to ENABLE_MDNODE_UNIQUINGDuncan P. N. Exon Smith2014-12-071-4/+0
| | | | | | | | | Apparently `MDNode` uniquing used to be optional. I suppose the configure flag must have disappeared at some point. Change the test so it actually tests uniquing, and remove the check for `ENABLE_MDNODE_UNIQUING`. llvm-svn: 223617
* IR: Add missing tests for function-local metadataDuncan P. N. Exon Smith2014-12-077-1/+73
| | | | | | | | | | | | | | | | | | | | | | | Add assembly and bitcode tests that I neglected to add in r223564 (IR: Disallow complicated function-local metadata) and r223574 (IR: Disallow function-local metadata attachments). Found a couple of bugs: - The error message for function-local attachments gave the wrong line number -- it indicated the next token (typically on the next line) instead of the token that started the attachment. Fixed. - Metadata arguments of the form `!{i32 0, i32 %v}` (or with the arguments reversed) fired an assertion in `ValueEnumerator` in LLVM v3.5, so I suppose this never really worked. I suppose this was "fixed" by r223564. (Thanks to dblaikie for pointing out my omission.) Part of PR21532. llvm-svn: 223616
* R600/SI: Disable VMEM and SMEM clauses by breaking them with S_NOPMarek Olsak2014-12-071-8/+46
| | | | | | This is only a workaround. llvm-svn: 223615
* R600/SI: Set 20-bit immediate byte offset for SMRD on VIMarek Olsak2014-12-076-20/+85
| | | | llvm-svn: 223614
OpenPOWER on IntegriCloud