summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* fold noop vbitconvert instructionsChris Lattner2007-04-121-0/+9
| | | | llvm-svn: 35943
* Fix weirdness handling single element vectors.Chris Lattner2007-04-121-5/+2
| | | | llvm-svn: 35941
* Fix mmx paddq, add support for the 'y' register class, though it isn't tested.Chris Lattner2007-04-121-1/+5
| | | | llvm-svn: 35940
* For PR1284:Reid Spencer2007-04-123-14/+202
| | | | | | Implement the "part_set" intrinsic. llvm-svn: 35938
* improve the patch for PR1318 to also support grouped options with customChris Lattner2007-04-121-7/+12
| | | | | | | | | handlers (like the pass list). My previous fix only supported *new* command line options, not additions to old ones. This fixes test/Feature/load_module.ll llvm-svn: 35935
* Fix CodeGen/X86/2007-03-24-InlineAsmPModifier.llChris Lattner2007-04-111-6/+8
| | | | llvm-svn: 35926
* Build Hello by default so it can be used in test cases.Reid Spencer2007-04-111-1/+1
| | | | llvm-svn: 35922
* fix an infinite loop compiling ldecod, notice by JeffC.Chris Lattner2007-04-111-1/+1
| | | | llvm-svn: 35910
* Fix incorrect fall-throughs in addr mode code. This fixes ↵Chris Lattner2007-04-111-3/+3
| | | | | | CodeGen/ARM/arm-negative-stride.ll llvm-svn: 35909
* Fix Transforms/ScalarRepl/union-pointer.llChris Lattner2007-04-111-6/+7
| | | | llvm-svn: 35906
* Fix PR1318 by reacting appropriately to a mutating option list.Chris Lattner2007-04-111-0/+14
| | | | llvm-svn: 35905
* Fix a bug where ICmpInst objects instantiated directly with a name wouldReid Spencer2007-04-111-2/+2
| | | | | | | not retain that name. Not noticed because AsmParser always sets name after construction. However, llvm2cpp noticed. llvm-svn: 35903
* Fix an approximate calculation in an assertion not to give false negatives.Reid Spencer2007-04-111-1/+1
| | | | llvm-svn: 35901
* Turn stuff like:Chris Lattner2007-04-111-9/+40
| | | | | | | | | | | | | icmp slt i32 %X, 0 ; <i1>:0 [#uses=1] sext i1 %0 to i32 ; <i32>:1 [#uses=1] into: %X.lobit = ashr i32 %X, 31 ; <i32> [#uses=1] This implements InstCombine/icmp.ll:test[34] llvm-svn: 35891
* Simplify some comparisons to arithmetic, this implements:Chris Lattner2007-04-111-0/+27
| | | | | | Transforms/InstCombine/icmp.ll llvm-svn: 35890
* Fix this harder.Chris Lattner2007-04-111-12/+19
| | | | llvm-svn: 35888
* don't create shifts by zero, fix some problems with my previous patchChris Lattner2007-04-111-3/+7
| | | | llvm-svn: 35887
* canonicalize (x <u 2147483648) -> (x >s -1) and (x >u 2147483647) -> (x <s 0)Chris Lattner2007-04-111-25/+32
| | | | llvm-svn: 35886
* fix a miscompilation of:Chris Lattner2007-04-111-63/+59
| | | | | | | | | | | | | | | define i32 @test(i32 %X) { entry: %Y = and i32 %X, 4 ; <i32> [#uses=1] icmp eq i32 %Y, 0 ; <i1>:0 [#uses=1] sext i1 %0 to i32 ; <i32>:1 [#uses=1] ret i32 %1 } by moving code out of commonIntCastTransforms into visitZExt. Simplify the APInt gymnastics in it etc. llvm-svn: 35885
* doneChris Lattner2007-04-111-28/+0
| | | | llvm-svn: 35884
* Teach the codegen to turn [aez]ext (setcc) -> selectcc of 1/0, which oftenChris Lattner2007-04-111-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | allows other simplifications. For example, this compiles: int isnegative(unsigned int X) { return !(X < 2147483648U); } Into this code: x86: movl 4(%esp), %eax shrl $31, %eax ret arm: mov r0, r0, lsr #31 bx lr thumb: lsr r0, r0, #31 bx lr instead of: x86: cmpl $0, 4(%esp) sets %al movzbl %al, %eax ret arm: mov r3, #0 cmp r0, #0 movlt r3, #1 mov r0, r3 bx lr thumb: mov r2, #1 mov r1, #0 cmp r0, #0 blt LBB1_2 @entry LBB1_1: @entry cpy r2, r1 LBB1_2: @entry cpy r0, r2 bx lr Testcase here: test/CodeGen/Generic/ispositive.ll llvm-svn: 35883
* Codegen integer abs more efficiently using the trick from the PPC CWG. ThisChris Lattner2007-04-111-4/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | improves codegen on many architectures. Tests committed as CodeGen/*/iabs.ll X86 Old: X86 New: _test: _test: movl 4(%esp), %ecx movl 4(%esp), %eax movl %ecx, %eax movl %eax, %ecx negl %eax sarl $31, %ecx testl %ecx, %ecx addl %ecx, %eax cmovns %ecx, %eax xorl %ecx, %eax ret ret PPC Old: PPC New: _test: _test: cmpwi cr0, r3, -1 srawi r2, r3, 31 neg r2, r3 add r3, r3, r2 bgt cr0, LBB1_2 ; xor r3, r3, r2 LBB1_1: ; blr mr r3, r2 LBB1_2: ; blr ARM Old: ARM New: _test: _test: rsb r3, r0, #0 add r3, r0, r0, asr #31 cmp r0, #0 eor r0, r3, r0, asr #31 movge r3, r0 bx lr mov r0, r3 bx lr Thumb Old: Thumb New: _test: _test: neg r2, r0 asr r2, r0, #31 cmp r0, #0 add r0, r0, r2 bge LBB1_2 eor r0, r2 LBB1_1: @ bx lr cpy r0, r2 LBB1_2: @ bx lr Sparc Old: Sparc New: test: test: save -96, %o6, %o6 save -96, %o6, %o6 sethi 0, %l0 sra %i0, 31, %l0 sub %l0, %i0, %l0 add %i0, %l0, %l1 subcc %i0, -1, %l1 xor %l1, %l0, %i0 bg .BB1_2 restore %g0, %g0, %g0 nop retl .BB1_1: nop or %g0, %l0, %i0 .BB1_2: restore %g0, %g0, %g0 retl nop It also helps alpha/ia64 :) llvm-svn: 35881
* fix a regression introduced by my last patch.Chris Lattner2007-04-111-14/+1
| | | | llvm-svn: 35879
* Hack to get sys::Path to recognize macho dylibs.Chris Lattner2007-04-111-4/+7
| | | | llvm-svn: 35878
* For PR1146:Reid Spencer2007-04-1110-115/+123
| | | | | | | Put the parameter attributes in their own ParamAttr name space. Adjust the rest of llvm as a result. llvm-svn: 35877
* Teach sys::Path how to recognize different kinds of object files for ELFReid Spencer2007-04-111-7/+25
| | | | | | | and Mach-O systems. Additionally, correct the Mach-O logic code to look at byte 12 not byte 15. Hopefully this fixes the llvm-ld warning on Darwin. llvm-svn: 35876
* Simplify SROA conversion to integer in some ways, make it more general in ↵Chris Lattner2007-04-111-131/+138
| | | | | | | | | | | others. We now tolerate small amounts of undefined behavior, better emulating what would happen if the transaction actually occurred in memory. This fixes SingleSource/UnitTests/2007-04-10-BitfieldTest.c on PPC, at least until Devang gets a chance to fix the CFE from doing undefined things with bitfields :) llvm-svn: 35875
* Make isDynamicLibrary detect more than just an ELF file.Reid Spencer2007-04-111-2/+10
| | | | llvm-svn: 35874
* Add support for our first SSSE3 instruction "pmulhrsw".Bill Wendling2007-04-107-10/+54
| | | | llvm-svn: 35869
* new micro optznChris Lattner2007-04-101-0/+30
| | | | llvm-svn: 35867
* restore support for negative stridesChris Lattner2007-04-101-3/+5
| | | | llvm-svn: 35859
* apparently some people commit without building the tree, or they forget toChris Lattner2007-04-102-2/+2
| | | | | | commit a LOT of files. llvm-svn: 35858
* unbreak the build :(Chris Lattner2007-04-101-1/+1
| | | | llvm-svn: 35857
* Fix build problem.Jeff Cohen2007-04-101-1/+1
| | | | llvm-svn: 35856
* Strengthen the boundary conditions of this fold, implementingChris Lattner2007-04-091-3/+3
| | | | | | InstCombine/set.ll:test25 llvm-svn: 35852
* No longer needed.Jeff Cohen2007-04-091-1/+0
| | | | llvm-svn: 35850
* Re-constify things that don't break the build. Last patch in thisOwen Anderson2007-04-091-2/+4
| | | | | | series, I promise. llvm-svn: 35848
* remove dead target hooks.Chris Lattner2007-04-091-19/+0
| | | | llvm-svn: 35847
* remove dead target hooksChris Lattner2007-04-092-98/+49
| | | | llvm-svn: 35846
* remove some dead hooksChris Lattner2007-04-092-49/+0
| | | | llvm-svn: 35845
* eliminate the last uses of some TLI methods.Chris Lattner2007-04-091-3/+7
| | | | llvm-svn: 35844
* Unconst-ify stuff that broke the build.Owen Anderson2007-04-091-1/+1
| | | | llvm-svn: 35843
* Const-ify some parameters, and some cosmetic cleanups. No functionalityOwen Anderson2007-04-091-3/+4
| | | | | | change. llvm-svn: 35842
* Tabs -> SpacesOwen Anderson2007-04-091-36/+36
| | | | llvm-svn: 35841
* remove some dead target hooks, subsumed by isLegalAddressingModeChris Lattner2007-04-095-75/+0
| | | | llvm-svn: 35840
* Improve some _slow_ behavior introduced in my patches the last few days.Owen Anderson2007-04-091-42/+42
| | | | llvm-svn: 35839
* switch LSR to use isLegalAddressingMode instead of other simpler hooksChris Lattner2007-04-091-18/+21
| | | | llvm-svn: 35837
* Check _all_ PHINodes.Devang Patel2007-04-091-1/+1
| | | | llvm-svn: 35836
* Fix a bug in PPCTargetLowering::isLegalAddressingMode, scales other than 0/1/2Chris Lattner2007-04-091-0/+3
| | | | | | are always unsupported. llvm-svn: 35835
* Use integer log for metric calculationAnton Korobeynikov2007-04-091-2/+2
| | | | llvm-svn: 35834
OpenPOWER on IntegriCloud