summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* Fix PR1749 and InstCombine/2007-10-28-EmptyField.ll by handlingChris Lattner2007-10-291-1/+7
| | | | | | zero-length fields better. llvm-svn: 43427
* New entry.Evan Cheng2007-10-281-0/+62
| | | | llvm-svn: 43420
* Fix off-by-one stack offset computations (dwarf information) for callee-savedAnton Korobeynikov2007-10-261-1/+2
| | | | | | | | registers in case, when FP pointer was eliminated. This should fixes misc. random EH-related crahses, when stuff is compiled with -fomit-frame-pointer. Thanks Duncan for nailing this bug! llvm-svn: 43381
* clo/clz aren't supported on mips I. Keep them around for when we'llEric Christopher2007-10-261-105/+107
| | | | | | want them later (mips32/64). llvm-svn: 43380
* Loosen up iv reuse to allow reuse of the same stride but a larger type when ↵Evan Cheng2007-10-263-19/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | truncating from the larger type to smaller type is free. e.g. Turns this loop: LBB1_1: # entry.bb_crit_edge xorl %ecx, %ecx xorw %dx, %dx movw %dx, %si LBB1_2: # bb movl L_X$non_lazy_ptr, %edi movw %si, (%edi) movl L_Y$non_lazy_ptr, %edi movw %dx, (%edi) addw $4, %dx incw %si incl %ecx cmpl %eax, %ecx jne LBB1_2 # bb into LBB1_1: # entry.bb_crit_edge xorl %ecx, %ecx xorw %dx, %dx LBB1_2: # bb movl L_X$non_lazy_ptr, %esi movw %cx, (%esi) movl L_Y$non_lazy_ptr, %esi movw %dx, (%esi) addw $4, %dx incl %ecx cmpl %eax, %ecx jne LBB1_2 # bb llvm-svn: 43375
* Support non-POSIX hosts by removing use of strncasecmp.Dale Johannesen2007-10-251-44/+53
| | | | llvm-svn: 43364
* Disable a couple more things for ppcf128.Dale Johannesen2007-10-231-2/+4
| | | | llvm-svn: 43267
* Temporary solution: added a different set of BCTRL_Macho / BCTRL_ELF with ↵Evan Cheng2007-10-233-8/+18
| | | | | | right callee-saved defs set for ppc64. llvm-svn: 43248
* Fix memcpy lowering when addresses are 4-byte aligned but size is not ↵Evan Cheng2007-10-223-40/+86
| | | | | | multiple of 4. llvm-svn: 43234
* Fix the folding of multiplication into addresses on x86, which was brokenDan Gohman2007-10-221-0/+5
| | | | | | by the recent {U,S}MUL_LOHI changes. llvm-svn: 43230
* Use ptr type in the immediate field of a BxA instruction so we don't end up ↵Evan Cheng2007-10-221-1/+2
| | | | | | selecting 32-bit call instruction for ppc64. llvm-svn: 43228
* Fix an unfolding bug.Evan Cheng2007-10-221-1/+2
| | | | llvm-svn: 43212
* Allow for copysign having f80 second argument.Dale Johannesen2007-10-211-0/+9
| | | | | | Fixes 5550319. llvm-svn: 43205
* Resolve unfold tables ambiguity.Evan Cheng2007-10-191-6/+7
| | | | llvm-svn: 43194
* Local spiller optimization:Evan Cheng2007-10-194-39/+114
| | | | | | | | | | | | | | | | Turn a store folding instruction into a load folding instruction. e.g. xorl %edi, %eax movl %eax, -32(%ebp) movl -36(%ebp), %eax orl %eax, -32(%ebp) => xorl %edi, %eax orl -36(%ebp), %eax mov %eax, -32(%ebp) This enables the unfolding optimization for a subsequent instruction which will also eliminate the newly introduced store instruction. llvm-svn: 43192
* split LowerMEMCPY into LowerMEMCPYCall and LowerMEMCPYInline in the ARM backend.Rafael Espindola2007-10-192-29/+70
| | | | llvm-svn: 43176
* Add support for byval function whose argument is not 32 bit aligned.Rafael Espindola2007-10-191-8/+17
| | | | | | | | | | To do this it is necessary to add a "always inline" argument to the memcpy node. For completeness I have also added this node to memmove and memset. I have also added getMem* functions, because the extra argument makes it cumbersome to use getNode and because I get confused by it :-) llvm-svn: 43172
* comment fixesChris Lattner2007-10-191-3/+3
| | | | llvm-svn: 43168
* Add an easy microoptimization I noticed.Chris Lattner2007-10-191-0/+19
| | | | llvm-svn: 43164
* More ppcf128 issues (maybe the last)?Dale Johannesen2007-10-191-0/+7
| | | | llvm-svn: 43160
* - Added getOpcodeAfterMemoryUnfold(). It doesn't unfold an instruction, but ↵Evan Cheng2007-10-1814-28/+48
| | | | | | | | only returns the opcode of the instruction post unfolding. - Fix some copy+paste bugs. llvm-svn: 43153
* Use SmallVectorImpl instead of SmallVector with hardcoded size in MRegister ↵Evan Cheng2007-10-1814-62/+62
| | | | | | public interface. llvm-svn: 43150
* Fix a misnamed parameter.Christopher Lamb2007-10-181-1/+1
| | | | llvm-svn: 43145
* Fix a typoChristopher Lamb2007-10-181-1/+1
| | | | llvm-svn: 43144
* Work around downrev gccs which do not inherit visibility of theGordon Henriksen2007-10-181-2/+2
| | | | | | Registry<>::iterator member class. llvm-svn: 43122
* legalizing the ret operation on f64 shouldn't introduce a newChris Lattner2007-10-181-4/+6
| | | | | | i64 bit convert needlessly. llvm-svn: 43116
* Switching TargetMachineRegistry to use the new generic Registry.Gordon Henriksen2007-10-172-39/+18
| | | | llvm-svn: 43094
* Change fp to sint legalization on x86-32 to do 2 x i32 Chris Lattner2007-10-171-2/+12
| | | | | | loads instead of 1 x i64 loads. This doesn't change any functionality yet. llvm-svn: 43068
* fix some funny indentation, add comments.Chris Lattner2007-10-171-60/+61
| | | | llvm-svn: 43066
* Check for invalid cc's in f80 select.Dale Johannesen2007-10-161-0/+2
| | | | llvm-svn: 43033
* Fix a bug handling frame references in ppc inline asm when the frame offsetChris Lattner2007-10-161-24/+33
| | | | | | doesn't fit into 16 bits. llvm-svn: 43032
* Correction to tail call optimization code. The new return addressArnold Schwaighofer2007-10-161-11/+19
| | | | | | | | | | was stored to the acutal stack slot before the parameters were lowered to their stack slot. This could cause arguments to be overwritten by the return address if the called function had less parameters than the caller function. The update should remove the last failing test case of llc-beta: SPASS. llvm-svn: 43027
* Change LowerFP_TO_SINT to create the specific code it needs instead of Chris Lattner2007-10-151-4/+11
| | | | | | | | | | unconditionally creating an i64 bitcast. With the future legalizer design, operation legalization can't introduce new nodes with illegal types. This fixes the rest of olden on ppc32. llvm-svn: 43005
* LowerFP_TO_SINT must not create a stack object if it's not needed.Evan Cheng2007-10-151-6/+6
| | | | llvm-svn: 43004
* Handle PPC long double in CBackend.Dale Johannesen2007-10-151-0/+9
| | | | llvm-svn: 42972
* Unbreak x86-64.Evan Cheng2007-10-141-4/+3
| | | | llvm-svn: 42962
* Revert 42908 for now.Evan Cheng2007-10-148-51/+50
| | | | llvm-svn: 42960
* Fix type mismatch error in PPC Altivec (only causesDale Johannesen2007-10-141-2/+2
| | | | | | a problem when asserts are on). From vecLib. llvm-svn: 42959
* Clarify that fastcc has a problem with nested functionDuncan Sands2007-10-131-1/+1
| | | | | | trampolines, rather than with nested functions themselves. llvm-svn: 42955
* Change unfoldMemoryOperand(). User is now responsible for passing in theEvan Cheng2007-10-132-12/+19
| | | | | | | register used by the unfolded instructions. User can also specify whether to unfold the load, the store, or both. llvm-svn: 42946
* Correcting the corrections. Bad bad baaad emacs!Arnold Schwaighofer2007-10-121-1/+1
| | | | llvm-svn: 42935
* Corrected many typing errors. And removed 'nest' parameter handlingArnold Schwaighofer2007-10-129-37/+38
| | | | | | | for fastcc from X86CallingConv.td. This means that nested functions are not supported for calling convention 'fastcc'. llvm-svn: 42934
* Due to the new tail call optimization, trampolines can noDuncan Sands2007-10-121-1/+0
| | | | | | longer be created for fastcc functions. llvm-svn: 42925
* Update.Evan Cheng2007-10-121-18/+2
| | | | llvm-svn: 42922
* Change the names used for internal labels to use the currentDan Gohman2007-10-128-50/+51
| | | | | | | | | function symbol name instead of a codegen-assigned function number. Thanks Evan! :-) llvm-svn: 42908
* Mark vector ctpop, cttz, and ctlz as Expand on x86.Dan Gohman2007-10-121-0/+3
| | | | llvm-svn: 42905
* Mark vector pow, ctpop, cttz, and ctlz as Expand on PowerPC.Dan Gohman2007-10-121-1/+4
| | | | llvm-svn: 42904
* Fold load / store into MOV32to32_ and MOV16to16_.Evan Cheng2007-10-121-0/+4
| | | | llvm-svn: 42895
* Flag MOV32to32_ with EXTRACT_SUBREG. They should not be scheduled apart.Evan Cheng2007-10-121-7/+7
| | | | llvm-svn: 42894
* Set ISD::FPOW to Expand.Dan Gohman2007-10-116-4/+21
| | | | llvm-svn: 42881
OpenPOWER on IntegriCloud