summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* stringmap memory managed with malloc nowChris Lattner2007-04-041-1/+1
| | | | llvm-svn: 35666
* Fix 2007-04-04-BadFoldBitcastIntoMalloc.llJeff Cohen2007-04-041-4/+5
| | | | llvm-svn: 35665
* Re-materialize all loads from fixed stack slots.Evan Cheng2007-04-043-15/+34
| | | | llvm-svn: 35660
* Trivially re-materializable instructions have spill weights that are half of ↵Evan Cheng2007-04-041-6/+6
| | | | | | what it would be otherwise. llvm-svn: 35658
* For PR1302:Reid Spencer2007-04-041-8/+8
| | | | | | | Use local variable names that match the function parameter name that it is passed to so the code is more clear, to wit: is_bytecode -> is_native llvm-svn: 35656
* Fix comment.Duncan Sands2007-04-041-1/+1
| | | | llvm-svn: 35655
* For PR1302:Reid Spencer2007-04-041-31/+61
| | | | | | | Implement file tests for both LinkInLibrary and LinkInFile to determine if the file is native. Don't generate warnings if the file is native. llvm-svn: 35653
* For PR1302:Reid Spencer2007-04-043-6/+6
| | | | | | Adjust useage of sys::Path::FileType for new enumerator names. llvm-svn: 35651
* For PR1302:Reid Spencer2007-04-041-9/+38
| | | | | | Implement recognition of COFF, ELF and Mach-O object/shared lib files. llvm-svn: 35650
* use calloc instead of new/memset, it is more efficientChris Lattner2007-04-041-4/+2
| | | | llvm-svn: 35644
* Extend StringMap to support being initialized as completely empty. WhenChris Lattner2007-04-041-2/+22
| | | | | | initialized this way, they do not do a malloc to allocate their buckets. llvm-svn: 35642
* Implement inline asm modifier P.Evan Cheng2007-04-041-0/+1
| | | | llvm-svn: 35640
* Typo.Evan Cheng2007-04-041-1/+1
| | | | llvm-svn: 35639
* Adding more MMX instructions.Bill Wendling2007-04-032-64/+128
| | | | llvm-svn: 35638
* make a new missing features sectionChris Lattner2007-04-031-2/+6
| | | | llvm-svn: 35637
* Remove unused constant pool entries.Evan Cheng2007-04-031-32/+60
| | | | llvm-svn: 35635
* UpdatedBill Wendling2007-04-031-0/+4
| | | | llvm-svn: 35634
* Fix a bug I introduced with my patch yesterday which broke Qt (I convertedChris Lattner2007-04-031-1/+1
| | | | | | | | some constant exprs to apints). Thanks to Anton for tracking down a small testcase that triggered this! llvm-svn: 35633
* greatly reduce hte default size of stringmap.Chris Lattner2007-04-031-1/+1
| | | | llvm-svn: 35632
* Fixed a bug that causes codegen of noop like add r0, r0, #0.Evan Cheng2007-04-031-1/+1
| | | | llvm-svn: 35627
* reinstate the previous two patches, with a bugfix :)Chris Lattner2007-04-031-493/+525
| | | | | | ldecod now passes. llvm-svn: 35626
* Starting implementation of the ELF32 ABI specification of varargs handling.Nicolas Geoffray2007-04-032-9/+177
| | | | | | | LowerVASTART emits the right code if the subtarget is ELF32, the other intrinsics (VAARG, VACOPY and VAEND) are not yet implemented. llvm-svn: 35625
* The PPC64 ELF ABI is "intended to use the same structure layout and calling ↵Nicolas Geoffray2007-04-036-92/+46
| | | | | | | | | convention rules as the 64-bit PowerOpen ABI" (Reference http://www.linux-foundation.org/spec/ELF/ppc64/). Change all ELF tests to ELF32. llvm-svn: 35624
* Addition to the previous commit for getCalleeSavedRegClasses:Nicolas Geoffray2007-04-031-2/+4
| | | | | | | "The ELF ABI specifies F1-F8 registers as argument registers for double, not F1-F10. This affects only ELF, not MachO." llvm-svn: 35623
* The ELF ABI specifies F1-F8 registers as argument registers for double, notNicolas Geoffray2007-04-035-10/+12
| | | | | | F1-F10. This affects only ELF, not MachO. llvm-svn: 35622
* Reverting back to 1.723. The last two commits broke JM (and possibily ↵Evan Cheng2007-04-031-524/+491
| | | | | | others) on ARM. llvm-svn: 35620
* Inverted logic.Evan Cheng2007-04-031-1/+1
| | | | llvm-svn: 35619
* Bad bad bug. findRegisterUseOperand() returns -1 if a use if not found.Evan Cheng2007-04-031-1/+1
| | | | llvm-svn: 35618
* Changed to new MMX_ recipes.Bill Wendling2007-04-031-3/+3
| | | | llvm-svn: 35617
* Add FEMMS and ADDQ. Renamed MMX recipes to prepend the MMX_ to them.Bill Wendling2007-04-032-69/+85
| | | | llvm-svn: 35616
* split some code out into a helper functionChris Lattner2007-04-031-18/+30
| | | | llvm-svn: 35615
* Split a whole ton of code out of visitICmpInst into ↵Chris Lattner2007-04-031-520/+524
| | | | | | visitICmpInstWithInstAndIntCst. llvm-svn: 35614
* Fix PR1253 and xor2.ll:test[01]Chris Lattner2007-04-031-1/+30
| | | | llvm-svn: 35612
* Arm supports negative strides as well, add them. This lets us compile:Chris Lattner2007-04-031-3/+6
| | | | | | | | | | | | CodeGen/ARM/arm-negative-stride.ll to: LBB1_2: @bb str r1, [r3, -r0, lsl #2] add r0, r0, #1 cmp r0, r2 bne LBB1_2 @bb llvm-svn: 35609
* allow -1 strides to reuse "1" strides.Chris Lattner2007-04-021-1/+2
| | | | llvm-svn: 35607
* 1. Insert custom lowering hooks for ISD::ROTR and ISD::ROTL.Scott Michel2007-04-022-25/+76
| | | | | | | | | 2. Help DAGCombiner recognize zero/sign/any-extended versions of ROTR and ROTL patterns. This was motivated by the X86/rotate.ll testcase, which should now generate code for other platforms (and soon-to-come platforms.) Rewrote code slightly to make it easier to read. llvm-svn: 35605
* fix off by 1 error in displacement computationDale Johannesen2007-04-021-0/+5
| | | | llvm-svn: 35602
* fix the CodeGen/ARM/2007-03-13-InstrSched.ll regression: allow IV's with scalesChris Lattner2007-04-021-4/+20
| | | | | | to be folded into non-store instructions. llvm-svn: 35601
* Ugh. Copy coalescer does not update register numbers.Evan Cheng2007-04-021-2/+15
| | | | llvm-svn: 35600
* add support for the 'w' inline asm register class.Chris Lattner2007-04-021-6/+28
| | | | llvm-svn: 35598
* 1. Make use of APInt operation instead of using ConstantExpr::getXXX.Zhou Sheng2007-04-021-26/+19
| | | | | | 2. Use cheaper APInt methods. llvm-svn: 35594
* Use uint32_t for bitwidth instead of unsigned.Zhou Sheng2007-04-021-29/+29
| | | | llvm-svn: 35593
* Pass the type of the store access, not the type of the store, into theChris Lattner2007-04-021-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | target hook. This allows us to codegen a loop as: LBB1_1: @cond_next mov r2, #0 str r2, [r0, +r3, lsl #2] add r3, r3, #1 cmn r3, #1 bne LBB1_1 @cond_next instead of: LBB1_1: @cond_next mov r2, #0 str r2, [r0], #+4 add r3, r3, #1 cmn r3, #1 bne LBB1_1 @cond_next This looks the same, but has one fewer induction variable (and therefore, one fewer register) live in the loop. llvm-svn: 35592
* Fix a bug which caused us to never be able to use signed comparisons forChris Lattner2007-04-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | equality comparisons of a constant. This allows us to codegen the 'sintzero' loop in PR1288 as: LBB1_1: ;cond_next li r4, 0 addi r2, r2, 1 stw r4, 0(r3) addi r3, r3, 4 cmpwi cr0, r2, -1 bne cr0, LBB1_1 ;cond_next instead of: LBB1_1: ;cond_next addi r2, r2, 1 li r4, 0 xoris r5, r2, 65535 stw r4, 0(r3) addi r3, r3, 4 cmplwi cr0, r5, 65535 bne cr0, LBB1_1 ;cond_next This implements CodeGen/PowerPC/compare-simm.ll, and also cuts 74 instructions out of kc++. llvm-svn: 35590
* Wrap long lineChris Lattner2007-04-021-3/+3
| | | | llvm-svn: 35588
* use more obvious function name.Chris Lattner2007-04-021-1/+1
| | | | llvm-svn: 35587
* Treat xor of signbit like an add.Chris Lattner2007-04-021-1/+10
| | | | llvm-svn: 35586
* simplify (x+c)^signbit as (x+c+signbit), pointed out by PR1288. This implementsChris Lattner2007-04-021-1/+7
| | | | | | test/Transforms/InstCombine/xor.ll:test28 llvm-svn: 35584
* reduce use of std::setChris Lattner2007-04-021-6/+7
| | | | llvm-svn: 35576
* Various passes before isel split edges and do other CFG-restructuring changes.Chris Lattner2007-04-021-2/+175
| | | | | | | | | | | | | | | isel has its own particular features that it wants in the CFG, in order to reduce the number of times a constant is computed, etc. Make sure that we clean up the CFG before doing any other things for isel. Doing so can dramatically reduce the number of split edges and reduce the number of places that constants get computed. For example, this shrinks CodeGen/Generic/phi-immediate-factoring.ll from 44 to 37 instructions on X86, and from 21 to 17 MBB's in the output. This is primarily a code size win, not a performance win. This implements CodeGen/Generic/phi-immediate-factoring.ll and PR1296. llvm-svn: 35575
OpenPOWER on IntegriCloud