summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Add a new MergeFunctions pass. It finds identical functions and merges them.Nick Lewycky2008-11-021-0/+358
| | | | | | | | This triggers only 60 times in llvm-test (look at .llvm.bc, not .linked.rbc) and so it probably wont be turned on by default. Also, may of those are likely to go away when PR2973 is fixed. llvm-svn: 58557
* Fix demanded bits analysis with srem by negative number. Based on a patchNick Lewycky2008-11-021-3/+3
| | | | | | by Richard Osborne. llvm-svn: 58555
* Fix this recently moved code to use the correct type. CI is now aDan Gohman2008-11-021-2/+2
| | | | | | | ConstantInt, and SI is the original cast instruction. This fixes PR2996. llvm-svn: 58549
* Added interface to allow clients to create a MemIntrinsicNode forMon P Wang2008-11-011-4/+17
| | | | | | target intrinsics that touches memory llvm-svn: 58548
* Reverting back 58505. Will commit it once I have the bc reader/writer/docsSanjiv Gupta2008-11-011-2/+1
| | | | | | ready. llvm-svn: 58547
* Whitespace fixes. No functionality change.Bill Wendling2008-10-311-27/+27
| | | | llvm-svn: 58539
* Invalidate debug/eh/gc labels when unreachable MBB is deleted.Anton Korobeynikov2008-10-311-13/+27
| | | | | | Based on patch by Martin Nowack! llvm-svn: 58536
* Add comment.Evan Cheng2008-10-311-0/+2
| | | | llvm-svn: 58533
* Use better data structure for ConstPoolId2AddrMap.Evan Cheng2008-10-312-15/+20
| | | | llvm-svn: 58532
* Actually make debug output understandable.Evan Cheng2008-10-311-4/+4
| | | | llvm-svn: 58529
* x86_64 rip-relative and magic mode addressMon P Wang2008-10-311-4/+8
| | | | llvm-svn: 58528
* Forgot this in last commit.Evan Cheng2008-10-311-1/+1
| | | | llvm-svn: 58527
* Encode PICADD; some code clean up.Evan Cheng2008-10-311-76/+101
| | | | llvm-svn: 58526
* Remove some unused virtual function bodies.Dan Gohman2008-10-311-7/+5
| | | | llvm-svn: 58524
* Revert r58489. It isn't correct for all cases.Bill Wendling2008-10-312-3/+4
| | | | llvm-svn: 58523
* Change x86 register allocation ordering to match that of gcc. Otherwise some ↵Evan Cheng2008-10-311-19/+19
| | | | | | tools get confused by prologue generated by llvm. llvm-svn: 58517
* Add a fixme.Evan Cheng2008-10-311-0/+3
| | | | llvm-svn: 58514
* Add a bunch of libcalls for ppcf128 that were somehowDuncan Sands2008-10-313-38/+249
| | | | | | completely forgotten about when writing LegalizeTypes. llvm-svn: 58508
* For some targets pointer and int are 16-bits. Allow 16-bits as a valid indexSanjiv Gupta2008-10-311-1/+2
| | | | | | in such cases. llvm-svn: 58505
* Don't skip over all "terminator" instructions when determining where to put theBill Wendling2008-10-312-4/+3
| | | | | | | callee-saved restore code. It could skip over conditional jumps accidentally. Instead, just skip the "return" instructions. llvm-svn: 58489
* Fix warning.Daniel Dunbar2008-10-311-1/+1
| | | | llvm-svn: 58486
* Use MOVSSmr instead of EXTRACTPSmr in the case of extractingDan Gohman2008-10-311-2/+6
| | | | | | vector element 0 for a store, as it's smaller and faster. llvm-svn: 58483
* Revert errant deletion. The target needs to be able to specify that it ↵Jim Grosbach2008-10-301-0/+5
| | | | | | doesn't want the generic constant pool to be emitted. llvm-svn: 58475
* I think we got non-machine specific constpool entries covered.Evan Cheng2008-10-301-1/+2
| | | | llvm-svn: 58474
* Canonicalize sext(i1) to i1?-1:0, and update various instcombineDan Gohman2008-10-301-40/+91
| | | | | | optimizations accordingly. llvm-svn: 58457
* Fix PR2986: do not use a potentially illegalDuncan Sands2008-10-301-1/+6
| | | | | | | | | | type for the shift amount type. Add a check that shifts and rotates use the type returned by getShiftAmountTy for the amount. This exposed some problems in CellSPU and PPC, which have already been fixed. llvm-svn: 58455
* Shift amounts should have type getShiftAmountTyDuncan Sands2008-10-301-9/+9
| | | | | | | (i32 for PPC, not i8). Correct this, and some formatting while there. llvm-svn: 58451
* Add InlineCost class for represent the estimated cost of inlining aDaniel Dunbar2008-10-305-15/+43
| | | | | | | | | function. - This explicitly models the costs for functions which should "always" or "never" be inlined. This fixes bugs where such costs were not previously respected. llvm-svn: 58450
* Shift amounts should have the type given byDuncan Sands2008-10-301-5/+5
| | | | | | getShiftAmountTy (i32 in the case of CellSPU). llvm-svn: 58449
* Add missing vsetcc expansion for wideningMon P Wang2008-10-301-1/+12
| | | | llvm-svn: 58443
* ARM JIT should observe -relocation-model command line option.Evan Cheng2008-10-302-2/+6
| | | | llvm-svn: 58433
* Add initial support for vector widening. Logic is set to widen for X86.Mon P Wang2008-10-305-31/+926
| | | | | | | One will only see an effect if legalizetype is not active. Will move support to LegalizeType soon. llvm-svn: 58426
* Resolve bug 2947: vararg-marked functions must spill registers R3-R79 to stackScott Michel2008-10-302-114/+69
| | | | | | | | | so that va_start/va_arg/et.al. will walk arguments correctly for Cell SPU. N.B.: Because neither clang nor llvm-gcc-4.2 can be built for CellSPU, this is still unexorcised code. llvm-svn: 58415
* Correct way to handle CONSTPOOL_ENTRY instructions.Evan Cheng2008-10-294-37/+82
| | | | llvm-svn: 58409
* Add debugging support.Evan Cheng2008-10-292-1/+26
| | | | llvm-svn: 58408
* Let target resolve some relocation results.Evan Cheng2008-10-291-30/+23
| | | | llvm-svn: 58407
* Fix PEXTRQ encodingNate Begeman2008-10-291-1/+1
| | | | llvm-svn: 58403
* Add a RM pseudoreg for the rounding mode, whichDale Johannesen2008-10-294-165/+200
| | | | | | | | | | | | | | | | | allows ppcf128->int conversion to work with DeadInstructionElimination. This is now turned off but RM is harmless. It does not do a complete job of modeling the rounding mode. Revert marking MFCR as using all 7 CR subregisters; while correct, this caused the problem in PR 2964, plus the local RA crash noted in the comments. This was needed to make DeadInstructionElimination, but as we are not running that, it is backed out for now. Eventually it should go back in and the other problems fixed where they're broken. llvm-svn: 58391
* Uniformize capitalization of NodeId.Duncan Sands2008-10-292-12/+12
| | | | llvm-svn: 58386
* Fix PR2967 by not deleting volatile load/stores that occur before unreachable.Chris Lattner2008-10-291-0/+11
| | | | | | | I don't really see this as being needed, but there is little harm from doing it. llvm-svn: 58385
* Fix PR2977: LegalizeTypes support for expandingDuncan Sands2008-10-294-0/+20
| | | | | | VAARG. llvm-svn: 58379
* Add sanity checking for BUILD_PAIR (I noticed theDuncan Sands2008-10-292-7/+24
| | | | | | | | | other day that PPC custom lowering could create a BUILD_PAIR of two f64 with a result type of... f64! - already fixed). Fix a place that triggers the sanity check. llvm-svn: 58378
* - More pre-split fixes: spill slot live interval computation bug; restore ↵Evan Cheng2008-10-292-39/+94
| | | | | | | | point bug. - If a def is spilt, remember its spill index to allow its reuse. llvm-svn: 58375
* Fix a FIXME: in ReplaceNodeWith, if the new nodeDuncan Sands2008-10-292-87/+108
| | | | | | | | | | | | | | | | | | | | | is morphed by AnalyzeNewNode into a previously processed node, and different result values of that node are remapped to values with different nodes, then we could end up using wrong values here [we were assuming that all results remap to values with the same underlying node]. This seems theoretically possible, but I don't have a testcase. The meat of the patch is in the changes to AnalyzeNewNode/AnalyzeNewValue and ReplaceNodeWith. While there, I changed names like RemapNode to RemapValue, since it really remaps values. To tell the truth, I would be much happier if we were only remapping nodes (it would simplify a bunch of logic, and allow for some cute speedups) but I haven't yet worked out how to do that. llvm-svn: 58372
* Fix 80 column violations.Duncan Sands2008-10-291-2/+2
| | | | llvm-svn: 58371
* Fix 80 column violations.Duncan Sands2008-10-291-5/+10
| | | | llvm-svn: 58370
* - Rewrite code that update register live interval that's split.Evan Cheng2008-10-293-85/+177
| | | | | | | - Create and update spill slot live intervals. - Lots of bug fixes. llvm-svn: 58367
* Factor shouldInline method out of Inliner.Daniel Dunbar2008-10-291-18/+26
| | | | | | - No functionality change. llvm-svn: 58355
* Assorted comment/naming fixes, 80-col violations, and reindentation.Daniel Dunbar2008-10-282-12/+11
| | | | | | - No functionality change. llvm-svn: 58352
* (A & sext(C)) | (B & ~sext(C) -> C ? A : BDan Gohman2008-10-281-0/+19
| | | | llvm-svn: 58351
OpenPOWER on IntegriCloud