summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Forgot to obey 80 column rule. Fixing that.Chuck Rose III2007-09-051-1/+2
| | | | llvm-svn: 41725
* Added default parameters to GetElementPtrInstr constructor call. Visual ↵Chuck Rose III2007-09-051-1/+1
| | | | | | Studio 2k5 was getting confused and was unable to compile it. Suspected compiler error. llvm-svn: 41721
* Due to label merging, the last label for an invokeDuncan Sands2007-09-051-3/+2
| | | | | | | | may be the same as the first label for the following invoke. Remove a micro-optimization which was wrong in this case. llvm-svn: 41720
* Fix PR1628. When exception handling is turned on,Duncan Sands2007-09-053-87/+165
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | labels are generated bracketing each call (not just invokes). This is used to generate entries in the exception table required by the C++ personality. However it gets in the way of tail-merging. This patch solves the problem by no longer placing labels around ordinary calls. Instead we generate entries in the exception table that cover every instruction in the function that wasn't covered by an invoke range (the range given by the labels around the invoke). As an optimization, such entries are only generated for parts of the function that contain a call, since for the moment those are the only instructions that can throw an exception [1]. As a happy consequence, we now get a smaller exception table, since the same region can cover many calls. While there, I also implemented folding of invoke ranges - successive ranges are merged when safe to do so. Finally, if a selector contains only a cleanup, there's a special shorthand for it - place a 0 in the call-site entry. I implemented this while there. As a result, the exception table output (excluding filters) is now optimal - it cannot be made smaller [2]. The problem with throw filters is that folding them optimally is hard, and the benefit of folding them is minimal. [1] I tested that having trapping instructions (eg divide by zero) in such a region doesn't cause trouble. [2] It could be made smaller with the help of higher layers, eg by having branch folding reorder basic blocks ending in invokes with the same landing pad so they follow each other. I don't know if this is worth doing. llvm-svn: 41718
* Add the 64-bit versions of the DS* Altivec instructions.Bill Wendling2007-09-051-14/+45
| | | | llvm-svn: 41717
* Insert cloned loop basic blocks before original loop header.Devang Patel2007-09-041-1/+3
| | | | llvm-svn: 41713
* Fix for PR1632. EHSELECTION always produces a i32 value.Evan Cheng2007-09-041-1/+1
| | | | llvm-svn: 41712
* Fix for PR1613: added 64-bit rotate left PPC instructions and patterns.Evan Cheng2007-09-041-0/+10
| | | | llvm-svn: 41711
* Update generated files.David Greene2007-09-043-2812/+3786
| | | | llvm-svn: 41706
* Mac OS X X86-64 ABI is same as the standard.Evan Cheng2007-09-041-6/+2
| | | | llvm-svn: 41700
* Update GEP constructors to use an iterator interface to fixDavid Greene2007-09-0417-130/+89
| | | | | | GLIBCXX_DEBUG issues. llvm-svn: 41697
* Reapply r41578 with proper fixAnton Korobeynikov2007-09-031-0/+1
| | | | llvm-svn: 41680
* Silence warning while compiling with gcc 4.2Anton Korobeynikov2007-09-022-2/+4
| | | | llvm-svn: 41676
* Emit proper "secrel" directive, where possible. This fixes invalid asm ↵Anton Korobeynikov2007-09-021-43/+28
| | | | | | | | syntax of debug info on mingw32. Also, cleanup some stuff. llvm-svn: 41675
* More tweaks to improve compile time.Evan Cheng2007-09-012-41/+56
| | | | llvm-svn: 41669
* Fix a gcroot lowering bug.Evan Cheng2007-09-011-2/+5
| | | | llvm-svn: 41668
* Oops, should be part of 41664; won't work very well without this piece.Dale Johannesen2007-08-311-0/+38
| | | | llvm-svn: 41665
* Add mod, copysign, abs operations to APFloat.Dale Johannesen2007-08-312-37/+67
| | | | | | | | Implement some constant folding in SelectionDAG and DAGCombiner using APFloat. Remove double versions of constructor and getValue from ConstantFPSDNode. llvm-svn: 41664
* std::map -> DenseMap for slight compile time benefit.Evan Cheng2007-08-311-7/+7
| | | | llvm-svn: 41650
* Revise per review of previous patch.Dale Johannesen2007-08-312-14/+28
| | | | llvm-svn: 41645
* Initial support for calling functions with byval arguments on x86-64Rafael Espindola2007-08-312-22/+37
| | | | llvm-svn: 41643
* Align i64 and f64 at 8 byte on x86-64.Rafael Espindola2007-08-311-6/+12
| | | | | | | This is mandated table 3.1 at http://www.x86-64.org/documentation/abi.pdf llvm-svn: 41642
* Remove an unnecessary element, saving 4 bytes per LiveInterval.Evan Cheng2007-08-311-3/+0
| | | | llvm-svn: 41641
* Use std::map instead of a (potentially very sparse) array to track val# ↵Evan Cheng2007-08-311-36/+27
| | | | | | defined by copy from the other live range. Minor compile time win when number of val# is large. llvm-svn: 41640
* Enhance APFloat to retain bits of NaNs (fixes oggenc).Dale Johannesen2007-08-319-109/+137
| | | | | | | Use APFloat interfaces for more references, mostly of ConstantFPSDNode. llvm-svn: 41632
* Instruction formats added used to generate multiply instructions of V5TE.Raul Herbster2007-08-301-39/+52
| | | | llvm-svn: 41629
* Unused relocation type reloc_arm_absolute removed.Raul Herbster2007-08-301-2/+0
| | | | llvm-svn: 41628
* Comments added. It now generates V5TE multiply instructions. However, it is ↵Raul Herbster2007-08-301-58/+175
| | | | | | still necessary to model PUWLSH bits more clearly. llvm-svn: 41627
* ARM instruction table was modified by adding information to generate ↵Raul Herbster2007-08-301-42/+57
| | | | | | multiply instruction of V5TE. llvm-svn: 41626
* JITInfo now resolves function addrs and also relocations. It always emits a ↵Raul Herbster2007-08-301-30/+43
| | | | | | stub. llvm-svn: 41625
* Added support to fold X86 load / store instructions. This allow ↵Evan Cheng2007-08-302-49/+99
| | | | | | rematerialized loads to be folded into their uses. llvm-svn: 41599
* Try fold re-materialized load instructions into its uses.Evan Cheng2007-08-301-11/+22
| | | | llvm-svn: 41598
* Add a variant of foldMemoryOperand to fold any load / store, not just load / ↵Evan Cheng2007-08-305-0/+26
| | | | | | store from / to stack slots. llvm-svn: 41597
* Mark load instructions with isLoad = 1.Evan Cheng2007-08-305-6/+21
| | | | llvm-svn: 41595
* Use i64 on a PPC64 machineBill Wendling2007-08-301-1/+1
| | | | llvm-svn: 41590
* Change LegalFPImmediates to use APFloat.Dale Johannesen2007-08-307-29/+101
| | | | | | | | | Add APFloat interfaces to ConstantFP, SelectionDAG. Fix integer bit in double->APFloat conversion. Convert LegalizeDAG to use APFloat interface in ConstantFPSDNode uses. llvm-svn: 41587
* Fix use of declaration inside case blockAnton Korobeynikov2007-08-291-1/+2
| | | | llvm-svn: 41584
* Change LiveRange so it keeps a pointer to the VNInfo rather than an index.Evan Cheng2007-08-293-213/+252
| | | | | | | Changes related modules so VNInfo's are not copied. This decrease copy coalescing time by 45% and overall compilation time by 10% on siod. llvm-svn: 41579
* Lower FRAME_TO_ADDR_OFFSET to zero by default (if not custom lowered)Anton Korobeynikov2007-08-291-1/+13
| | | | llvm-svn: 41578
* Move getX86RegNum into X86RegisterInfo and use itDuncan Sands2007-08-296-88/+80
| | | | | | | | in the trampoline lowering. Lookup the jump and mov opcodes for the trampoline rather than hard coding them. llvm-svn: 41577
* update theseChris Lattner2007-08-292-2/+2
| | | | llvm-svn: 41565
* Add an option, -view-sunit-dags, for viewing the actual SUnit DAGs used byDan Gohman2007-08-282-1/+77
| | | | | | scheduling. llvm-svn: 41556
* Recover most of the compile time regression due to recent live interval changes.Evan Cheng2007-08-282-44/+46
| | | | | | | | 1. Eliminate the costly live interval "swapping". 2. Change ValueNumberInfo container from SmallVector to std::vector. The former performs slowly when the vector size is very large. llvm-svn: 41536
* Added method to get Mips register numbersBruno Cardoso Lopes2007-08-283-61/+113
| | | | | | | Changed the stack frame layout, StackGrowsUp fits better to Mips strange stack. Stack offset calculation bug fixed! llvm-svn: 41529
* Changed stack allocation On LowerFORMAL_ARGUMENTS.Bruno Cardoso Lopes2007-08-281-20/+29
| | | | | | | Added comments about new stack allocation. Expand SelectCC for i32 results llvm-svn: 41527
* Mask directive completed with CalleeSave infoBruno Cardoso Lopes2007-08-282-73/+111
| | | | | | Comments for Mips directives added. llvm-svn: 41526
* Added methods to record SPOffsets from LowerFORMAL_ARGUMENTSBruno Cardoso Lopes2007-08-281-3/+53
| | | | llvm-svn: 41525
* Cut off crazy computation. This helps PR1622 slightly.Chris Lattner2007-08-281-0/+4
| | | | llvm-svn: 41522
* Use simpler test to filter loops.Devang Patel2007-08-271-14/+3
| | | | llvm-svn: 41516
* Update InvokeInst to work like CallInstDavid Greene2007-08-279-31/+9
| | | | llvm-svn: 41506
OpenPOWER on IntegriCloud