summaryrefslogtreecommitdiffstats
path: root/llvm/test
Commit message (Collapse)AuthorAgeFilesLines
* On x86, if the only use of a i64 load is a i64 store, generate a pair of ↵Evan Cheng2009-03-122-3/+16
| | | | | | double load and store instead. llvm-svn: 66776
* add no-unwind, remove duplicate run line.Chris Lattner2009-03-121-3/+2
| | | | llvm-svn: 66775
* add nounwindsChris Lattner2009-03-121-2/+2
| | | | llvm-svn: 66773
* Revert r66024. The JIT encoding for CALLpcrel32 is wrong -- see PR3773, and theDan Gohman2009-03-111-9/+0
| | | | | | assembly text output uses an indirect call ("call *") instead of a direct call. llvm-svn: 66735
* optimize i8 and i16 tls values.Rafael Espindola2009-03-112-0/+20
| | | | llvm-svn: 66725
* My last coalescer fix introduced a subtler one. It's aborting a commuting ↵Evan Cheng2009-03-111-0/+85
| | | | | | optimization too late and left the live intervals to be out of sync with instructions. This fixes 8b10b. llvm-svn: 66715
* For yonah, fix a vector shuffle case for v16i8 where we didn't properly ↵Mon P Wang2009-03-111-0/+14
| | | | | | clear some bits. llvm-svn: 66684
* implement support for C-style string literal concatenation in td files.Chris Lattner2009-03-111-0/+3
| | | | llvm-svn: 66663
* Fixed a v8i16 shuffle case that should generate a pshufb instead of a ↵Mon P Wang2009-03-111-0/+9
| | | | | | pshuflw/hw. llvm-svn: 66645
* reapply my previous patch (r66358) with a tweak to set theChris Lattner2009-03-112-5/+3
| | | | | | | | | alignment of the generated constant pool entry to the desired alignment of a type. If we don't do this, we end up trying to do movsd from 4-byte alignment memory. This fixes 450.soplex and 456.hmmer. llvm-svn: 66641
* Two coalescer fixes in one.Evan Cheng2009-03-111-0/+28
| | | | | | | 1. Use the same value# to represent unknown values being merged into sub-registers. 2. When coalescer commute an instruction and the destination is a physical register, update its sub-registers by merging in the extended ranges. llvm-svn: 66610
* Readd test, but XFAIL it.Bill Wendling2009-03-101-0/+14
| | | | llvm-svn: 66581
* Revert 66358 for now. It's breaking povray, 450.soplex, and 456.hmmer on x86 ↵Evan Cheng2009-03-102-15/+3
| | | | | | / Darwin. llvm-svn: 66574
* Tweak the DejaGNU voodoo to match Bill's advice.Stuart Hastings2009-03-101-2/+2
| | | | llvm-svn: 66547
* Do not attempt to do parial redundancy elimination on void values.John Criswell2009-03-101-0/+82
| | | | | | | Also fixed a punctuation error in the header comment. This fixes PR3775. llvm-svn: 66542
* Global variables don't have a corresponding llvm.dbg.declare, yet it is possibleTorok Edwin2009-03-102-1/+75
| | | | | | | | to obtain debug info about them. Introduce helpers to access debug info for global variables. Also introduce a helper that works for both local and global variables. llvm-svn: 66541
* If a function is marked alwaysinline, it must be inlined (possibly for ↵Evan Cheng2009-03-101-0/+15
| | | | | | correctness). Do so even if the callee has dynamic alloca and the caller doesn't. llvm-svn: 66539
* Add radar number.Bill Wendling2009-03-101-0/+2
| | | | llvm-svn: 66534
* wire up support for emitting "special" values from inline asmChris Lattner2009-03-101-0/+6
| | | | | | format strings with the standard ${:foo} syntax. llvm-svn: 66527
* Check for warnings about inappropriate weak_imports.Stuart Hastings2009-03-101-0/+22
| | | | | | Darwin-specific; marked XFAIL for others. llvm-svn: 66514
* Ignore debug info while evaluating function.Devang Patel2009-03-091-0/+98
| | | | llvm-svn: 66490
* Fix PR3763 by using proper APInt methods instead of uint64_t's.Chris Lattner2009-03-091-0/+25
| | | | llvm-svn: 66434
* ARM isLegalAddressImmediate should check if type is a simple type now that ↵Evan Cheng2009-03-091-0/+13
| | | | | | optimizer can create values of funky scalar types. llvm-svn: 66429
* Yet another case where the spiller marked two uses of the same register on ↵Evan Cheng2009-03-091-0/+18
| | | | | | the same instruction as kill. This fixes PR3706. llvm-svn: 66428
* testcase for PR3744Chris Lattner2009-03-091-0/+14
| | | | llvm-svn: 66401
* teach SROA to handle promoting vector allocas with a memset into them intoChris Lattner2009-03-081-2/+16
| | | | | | a vector type instead of into an integer type. llvm-svn: 66368
* Enhance SROA to "promote to scalar" allocas which are Chris Lattner2009-03-082-6/+20
| | | | | | | memcpy/memmove'd into or out of. This fixes a serious perf issue that Nate ran into. llvm-svn: 66366
* Recognize triplets starting with armv5-, armv6- etc. And set the ARM arch ↵Evan Cheng2009-03-081-1/+1
| | | | | | version accordingly. llvm-svn: 66365
* If a MI uses the same register more than once, only mark one of them as 'kill'.Evan Cheng2009-03-081-0/+78
| | | | llvm-svn: 66363
* implement an optimization to codegen c ? 1.0 : 2.0 as load { 2.0, 1.0 } + c*4. Chris Lattner2009-03-082-3/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For 2009-03-07-FPConstSelect.ll we now produce: _f: xorl %eax, %eax testl %edi, %edi movl $4, %ecx cmovne %rax, %rcx leaq LCPI1_0(%rip), %rax movss (%rcx,%rax), %xmm0 ret previously we produced: _f: subl $4, %esp cmpl $0, 8(%esp) movss LCPI1_0, %xmm0 je LBB1_2 ## entry LBB1_1: ## entry movss LCPI1_1, %xmm0 LBB1_2: ## entry movss %xmm0, (%esp) flds (%esp) addl $4, %esp ret on PPC the code also improves to: _f: cntlzw r2, r3 srwi r2, r2, 5 li r3, lo16(LCPI1_0) slwi r2, r2, 2 addis r3, r3, ha16(LCPI1_0) lfsx f1, r3, r2 blr from: _f: li r2, lo16(LCPI1_1) cmplwi cr0, r3, 0 addis r2, r2, ha16(LCPI1_1) beq cr0, LBB1_2 ; entry LBB1_1: ; entry li r2, lo16(LCPI1_0) addis r2, r2, ha16(LCPI1_0) LBB1_2: ; entry lfs f1, 0(r2) blr This also improves the existing pic-cpool case from: foo: subl $12, %esp call .Lllvm$1.$piclabel .Lllvm$1.$piclabel: popl %eax addl $_GLOBAL_OFFSET_TABLE_ + [.-.Lllvm$1.$piclabel], %eax cmpl $0, 16(%esp) movsd .LCPI1_0@GOTOFF(%eax), %xmm0 je .LBB1_2 # entry .LBB1_1: # entry movsd .LCPI1_1@GOTOFF(%eax), %xmm0 .LBB1_2: # entry movsd %xmm0, (%esp) fldl (%esp) addl $12, %esp ret to: foo: call .Lllvm$1.$piclabel .Lllvm$1.$piclabel: popl %eax addl $_GLOBAL_OFFSET_TABLE_ + [.-.Lllvm$1.$piclabel], %eax xorl %ecx, %ecx cmpl $0, 4(%esp) movl $8, %edx cmovne %ecx, %edx fldl .LCPI1_0@GOTOFF(%eax,%edx) ret This triggers a few dozen times in spec FP 2000. llvm-svn: 66358
* fix a serious pessimization that Tron on IRC pointed out where we wouldChris Lattner2009-03-071-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | "boolify" pointers, generating really awful code because getting the pointer value requires a load itself. Before: _foo: movb $1, _X.b ret _get: xorl %ecx, %ecx movb _X.b, %al testb %al, %al movl $_Y, %eax cmove %ecx, %eax ret With the xform disabled: _foo: movl $_Y, _X ret _get: movl _X, %eax ret llvm-svn: 66351
* Arithmetic instructions don't set EFLAGS bits OF and CF bitsDan Gohman2009-03-071-0/+17
| | | | | | | | | | | the same say the "test" instruction does in overflow cases, so eliminating the test is only safe when those bits aren't needed, as is the case for COND_E and COND_NE, or if it can be proven that no overflow will occur. For now, just restrict the optimization to COND_E and COND_NE and don't do any overflow analysis. llvm-svn: 66318
* Add a comment.Mikhail Glushenkov2009-03-061-0/+1
| | | | llvm-svn: 66278
* Trailing whitespace.Mikhail Glushenkov2009-03-061-3/+3
| | | | llvm-svn: 66269
* Trailing whitespace.Mikhail Glushenkov2009-03-061-18/+18
| | | | llvm-svn: 66268
* While thinking about the one-definition-rule and tryingDuncan Sands2009-03-061-0/+11
| | | | | | | | | | | | | to find a tiny mouse hole to squeeze through, it struck me that globals without a name can be considered internal since they can't be referenced from outside the current module. This patch makes GlobalOpt give them internal linkage. Also done for aliases even though they always have names, since in my opinion anonymous aliases should be allowed for consistency with global variables and functions. So if that happens one day, this code is ready! llvm-svn: 66267
* While converting an aggregate to scalare, ignore and remove aggregate's ↵Devang Patel2009-03-061-0/+184
| | | | | | debug info. llvm-svn: 66262
* While hoisting instruction to speculatively execute simple bb, ignore dbg ↵Devang Patel2009-03-061-0/+108
| | | | | | intrinsics. llvm-svn: 66255
* Skip DbgInfoIntrinsic.Devang Patel2009-03-061-0/+66
| | | | llvm-svn: 66244
* Fix ScheduleDAGRRList::CopyAndMoveSuccessors' handling of nodesDan Gohman2009-03-061-0/+35
| | | | | | | | | | | with multiple chain operands. This can occur when the scheduler has added chain operands to a node that already has a chain operand, in order to handle physical register dependencies. This fixes an llvm-gcc bootstrap failure on x86-64 introduced in r66058. llvm-svn: 66240
* Revert 66224.Devang Patel2009-03-061-0/+2
| | | | llvm-svn: 66233
* Revert rev. 66167. Devang Patel2009-03-061-0/+1
| | | | | | We are still not out of woods yet. llvm-svn: 66232
* Do not let debug info prevert globalopt from shriking a global vars to boolean.Devang Patel2009-03-061-0/+65
| | | | llvm-svn: 66224
* Fix the "test" optimization to recognize "dec" as an add ofDan Gohman2009-03-052-0/+23
| | | | | | | negative one, as subtracts of immediates are canonicalized to adds. llvm-svn: 66180
* Make this test more thorough. Not only should there be no %esi,Dan Gohman2009-03-051-3/+5
| | | | | | there should be no spilling of anything. llvm-svn: 66179
* GlobalOpt only process non constant local GVs while optimizing global vars.Devang Patel2009-03-051-1/+0
| | | | | | | | | | | | If non constant local GV named A is used by a constant local GV named B (e.g. llvm.dbg.variable) and B is not used by anyone else then eliminate A as well as B. In other words, debug info should not interfere in removal of unused GV. --This life, and those below, will be ignored-- M test/Transforms/GlobalOpt/2009-03-03-dbg.ll M lib/Transforms/IPO/GlobalOpt.cpp llvm-svn: 66167
* Do not split edges to EH landing pads. It will cause code size explosion.Evan Cheng2009-03-051-0/+34
| | | | llvm-svn: 66140
* Ignore the debug info intrinsics when looking for dependency through basic ↵Zhou Sheng2009-03-051-0/+125
| | | | | | block. llvm-svn: 66119
* Should have XFAILed this test.Bill Wendling2009-03-041-0/+54
| | | | llvm-svn: 66086
* Temporarily revert r65994. It was causing rdar://6646455.Bill Wendling2009-03-041-52/+0
| | | | llvm-svn: 66083
OpenPOWER on IntegriCloud