summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Consolidate logic for creating NaNs. Silence compiler warning.Neil Booth2007-10-142-10/+16
| | | | llvm-svn: 42966
* Whether arithmetic is supported is a property of the semantics. Make itNeil Booth2007-10-141-41/+36
| | | | | | so, and clean up the checks by putting them in an inline function. llvm-svn: 42965
* Separate out parsing of decimal number. Use this to only allocateNeil Booth2007-10-141-97/+150
| | | | | | | memory for the significand once up-front. Also ignore insignificant trailing zeroes; this saves unnecessary multiplications later. llvm-svn: 42964
* New test case.Evan Cheng2007-10-141-0/+28
| | | | llvm-svn: 42963
* Unbreak x86-64.Evan Cheng2007-10-141-4/+3
| | | | llvm-svn: 42962
* When coalescing an EXTRACT_SUBREG and the dst register is a physical register,Evan Cheng2007-10-143-27/+29
| | | | | | | | the source register will be coalesced to the super register of the LHS. Properly merge in the live ranges of the resulting coalesced interval that were part of the original source interval to the live interval of the super-register. llvm-svn: 42961
* Revert 42908 for now.Evan Cheng2007-10-1413-78/+93
| | | | 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
* Disable some compile-time optimizations on PPCDale Johannesen2007-10-142-0/+15
| | | | | | long double. llvm-svn: 42958
* Fixing a typo. Found by Kevin André!Gordon Henriksen2007-10-141-1/+1
| | | | llvm-svn: 42956
* Clarify that fastcc has a problem with nested functionDuncan Sands2007-10-131-1/+1
| | | | | | trampolines, rather than with nested functions themselves. llvm-svn: 42955
* Enhance the truncstore optimization code to handle shiftedChris Lattner2007-10-131-2/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | values and propagate demanded bits through them in simple cases. This allows this code: void foo(char *P) { strcpy(P, "abc"); } to compile to: _foo: ldrb r3, [r1] ldrb r2, [r1, #+1] ldrb r12, [r1, #+2]! ldrb r1, [r1, #+1] strb r1, [r0, #+3] strb r2, [r0, #+1] strb r12, [r0, #+2] strb r3, [r0] bx lr instead of: _foo: ldrb r3, [r1, #+3] ldrb r2, [r1, #+2] orr r3, r2, r3, lsl #8 ldrb r2, [r1, #+1] ldrb r1, [r1] orr r2, r1, r2, lsl #8 orr r3, r2, r3, lsl #16 strb r3, [r0] mov r2, r3, lsr #24 strb r2, [r0, #+3] mov r2, r3, lsr #16 strb r2, [r0, #+2] mov r3, r3, lsr #8 strb r3, [r0, #+1] bx lr testcase here: test/CodeGen/ARM/truncstore-dag-combine.ll This also helps occasionally for X86 and other cases not involving unaligned load/stores. llvm-svn: 42954
* new testcaseChris Lattner2007-10-131-0/+18
| | | | llvm-svn: 42953
* Add a simple optimization to simplify the input toChris Lattner2007-10-132-1/+43
| | | | | | | truncate and truncstore instructions, based on the knowledge that they don't demand the top bits. llvm-svn: 42952
* If the power of 5 is exact, and the reciprocal exact, the error is zero not ↵Neil Booth2007-10-131-1/+1
| | | | | | one half-ulps. This prevents an infinite loop in rare cases. llvm-svn: 42950
* Fix test case.Evan Cheng2007-10-131-1/+1
| | | | llvm-svn: 42949
* New tests.Evan Cheng2007-10-132-0/+102
| | | | llvm-svn: 42948
* Local spiller optimization: Evan Cheng2007-10-132-4/+54
| | | | | | | | | | | | | | | | | | | Turn this: movswl %ax, %eax movl %eax, -36(%ebp) xorl %edi, -36(%ebp) into movswl %ax, %eax xorl %edi, %eax movl %eax, -36(%ebp) by unfolding the load / store xorl into an xorl and a store when we know the value in the spill slot is available in a register. This doesn't change the number of instructions but reduce the number of times memory is accessed. Also unfold some load folding instructions and reuse the value when similar situation presents itself. llvm-svn: 42947
* Change unfoldMemoryOperand(). User is now responsible for passing in theEvan Cheng2007-10-133-13/+20
| | | | | | | register used by the unfolded instructions. User can also specify whether to unfold the load, the store, or both. llvm-svn: 42946
* Optionally create a MachineInstr without default implicit operands.Evan Cheng2007-10-132-5/+6
| | | | llvm-svn: 42945
* 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-1212-44/+45
| | | | | | | for fastcc from X86CallingConv.td. This means that nested functions are not supported for calling convention 'fastcc'. llvm-svn: 42934
* Fix this test to not depend on the assembly output containing somethingDan Gohman2007-10-121-1/+1
| | | | | | | that includes the string "st". This probably fixes the regression on Darwin. llvm-svn: 42932
* Dest type is always i8 *. This allows some simplification.Devang Patel2007-10-121-33/+12
| | | | | | Do not filter memmove. llvm-svn: 42930
* Fix ocaml bindings for picky linkers. :)Gordon Henriksen2007-10-121-2/+3
| | | | | | Thanks to Török Edvin for helping to track this down. llvm-svn: 42927
* Due to the new tail call optimization, trampolines can noDuncan Sands2007-10-121-1/+0
| | | | | | longer be created for fastcc functions. llvm-svn: 42925
* ppc long double. Implement fabs and fneg.Dale Johannesen2007-10-121-0/+16
| | | | llvm-svn: 42924
* Update.Evan Cheng2007-10-121-18/+2
| | | | llvm-svn: 42922
* don't use intptr_t without including it.Chris Lattner2007-10-121-1/+3
| | | | llvm-svn: 42921
* Fix a bug in my patch last night that broke InstCombine/2007-10-12-Crash.llChris Lattner2007-10-122-1/+45
| | | | llvm-svn: 42920
* Implement i64->ppcf128 conversions.Dale Johannesen2007-10-121-1/+20
| | | | llvm-svn: 42919
* Make this compute the correct offset, handling alignment of the elementChris Lattner2007-10-121-2/+3
| | | | | | pointer correctly. llvm-svn: 42918
* Did mean to leave this in. INSERT_SUBREG isn't being coalesced yet.Evan Cheng2007-10-121-2/+1
| | | | llvm-svn: 42916
* Remove duplicate comment.Neil Booth2007-10-121-11/+0
| | | | llvm-svn: 42913
* Implement correctly-rounded decimal->binary conversion, i.e. conversionNeil Booth2007-10-122-13/+364
| | | | | | | | | | | from user input strings. Such conversions are more intricate and subtle than they may appear; it is unlikely I have got it completely right first time. I would appreciate being informed of any bugs and incorrect roundings you might discover. llvm-svn: 42912
* Remove a field that was never used.Neil Booth2007-10-121-9/+6
| | | | llvm-svn: 42911
* If we're trying to be arbitrary precision, unsigned char clearly won't cut ↵Neil Booth2007-10-121-1/+1
| | | | | | it. Needed for dec->bin conversions. llvm-svn: 42910
* Don't attempt to mask no bitsNeil Booth2007-10-121-1/+2
| | | | llvm-svn: 42909
* Change the names used for internal labels to use the currentDan Gohman2007-10-1213-93/+78
| | | | | | | | | function symbol name instead of a codegen-assigned function number. Thanks Evan! :-) llvm-svn: 42908
* Fix some corner cases with vectors in copyToRegs and copyFromRegs.Dan Gohman2007-10-121-1/+16
| | | | llvm-svn: 42907
* Add support to SplitVectorOp for powi, where the second operandDan Gohman2007-10-121-0/+6
| | | | | | is a scalar integer. llvm-svn: 42906
* 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
* Restrict EXTRACT_SUBREG coalescing to avoid negative performance impact.Evan Cheng2007-10-121-1/+6
| | | | llvm-svn: 42903
* Doh.Evan Cheng2007-10-121-1/+1
| | | | llvm-svn: 42901
* EXTRACT_SUBREG test case.Evan Cheng2007-10-121-0/+35
| | | | llvm-svn: 42900
* EXTRACT_SUBREG coalescing support. The coalescer now treats EXTRACT_SUBREG likeEvan Cheng2007-10-1212-241/+415
| | | | | | | | | (almost) a register copy. However, it always coalesced to the register of the RHS (the super-register). All uses of the result of a EXTRACT_SUBREG are sub- register uses which adds subtle complications to load folding, spiller rewrite, etc. llvm-svn: 42899
* Some clean up.Evan Cheng2007-10-121-3/+0
| | | | llvm-svn: 42898
* Cosmetic.Evan Cheng2007-10-121-1/+1
| | | | llvm-svn: 42897
* Fix typos.Evan Cheng2007-10-121-5/+5
| | | | llvm-svn: 42896
OpenPOWER on IntegriCloud