summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Handle i32->f32 bitconvert results.Bruno Cardoso Lopes2008-08-042-1/+6
| | | | llvm-svn: 54315
* Add atomic sub for other sizesAndrew Lenharth2008-08-031-1/+2
| | | | llvm-svn: 54314
* Emit saveri with the correct operand order, patch by Richard Pennington!Chris Lattner2008-08-031-1/+1
| | | | llvm-svn: 54313
* Fix PR2615Bruno Cardoso Lopes2008-08-031-1/+7
| | | | llvm-svn: 54312
* Improved asm inline for hi,lo resultsBruno Cardoso Lopes2008-08-025-23/+77
| | | | | | | | Added hi,lo registers to be used,def implicitly. This provides better handle of instructions which use hi/lo. Fixes a small BranchAnalysis bug llvm-svn: 54274
* Apply the same pattern used in 'and' lowering for 'or'Bruno Cardoso Lopes2008-08-022-8/+10
| | | | llvm-svn: 54273
* Fix comment typos.Duncan Sands2008-08-012-3/+3
| | | | llvm-svn: 54266
* Expand fcopysignBruno Cardoso Lopes2008-07-311-0/+1
| | | | llvm-svn: 54250
* Handle more SELECT corner cases considering legalize types, probabily wont ↵Bruno Cardoso Lopes2008-07-312-31/+48
| | | | | | | | work with the default legalizer. llvm-svn: 54249
* Add a flag to disable jump table generation (allDale Johannesen2008-07-314-3/+14
| | | | | | | | switches use the binary search algorithm) for environments that don't support it. PPC64 JIT is such an environment; turn the flag on for that. llvm-svn: 54248
* Improve dagcombining for sext-loads and sext-in-reg nodes.Dan Gohman2008-07-311-9/+21
| | | | llvm-svn: 54239
* Added pattern for floating point zero immediate (avoiding a constant poolBruno Cardoso Lopes2008-07-302-3/+16
| | | | | | | | access). Added pattern to match bitconvert node. Fixed MTC1 asm string bug. llvm-svn: 54229
* Move SelectionDAG::viewGraph() out of line; as an inline functionDan Gohman2008-07-301-0/+5
| | | | | | it isn't always visible to gdb. llvm-svn: 54228
* Don't look for leaf values to store when lowering stores ofDan Gohman2008-07-301-2/+6
| | | | | | empty structs. This fixes PR2612. llvm-svn: 54226
* Use existing LiveInterval methods to simplify live interval merging. Thanks ↵Owen Anderson2008-07-301-31/+32
| | | | | | to Evan for pointing these out. llvm-svn: 54225
* Reapply r54147 with a constraint to only use the 8-bitDan Gohman2008-07-302-25/+61
| | | | | | | | | | | subreg form on x86-64, to avoid the problem with x86-32 having GPRs that don't have 8-bit subregs. Also, change several 16-bit instructions to use equivalent 32-bit instructions. These have a smaller encoding and avoid partial-register updates. llvm-svn: 54223
* Value numbers whose def index is a special sentinel value should not be ↵Owen Anderson2008-07-301-11/+13
| | | | | | remapped. llvm-svn: 54218
* Fixed bug in global address lowering for functions and in Brcond loweringBruno Cardoso Lopes2008-07-301-6/+7
| | | | llvm-svn: 54215
* Removed small section flag for mips, the assembler doesnt support this flagBruno Cardoso Lopes2008-07-302-4/+18
| | | | llvm-svn: 54214
* Added new features to represent specific instructions groupsBruno Cardoso Lopes2008-07-303-8/+45
| | | | llvm-svn: 54213
* Instruction definition cleanupBruno Cardoso Lopes2008-07-301-63/+43
| | | | llvm-svn: 54212
* Added support for overloading intrinsics (atomics) based on pointersMon P Wang2008-07-303-15/+52
| | | | | | | to different address spaces. This alters the naming scheme for those intrinsics, e.g., atomic.load.add.i32 => atomic.load.add.i32.p0i32 llvm-svn: 54195
* Another SCEV issue from PR2607; essentially the same issue, but this Eli Friedman2008-07-301-4/+4
| | | | | | | | | | | time applying to the implicit comparison in smin expressions. The correct way to transform an inequality into the opposite inequality, either signed or unsigned, is with a not expression. I looked through the SCEV code, and I don't think there are any more occurrences of this issue. llvm-svn: 54194
* More fixes for corner cases when remapping live range indices.Owen Anderson2008-07-301-10/+10
| | | | llvm-svn: 54186
* When merging live intervals, we also need to merge in any live ranges that ↵Owen Anderson2008-07-301-13/+42
| | | | | | | | are inputs to two-address instructions that themselves define a range we already care about. llvm-svn: 54185
* Fix for PR2607: SCEV miscomputing the loop count for loops with an Eli Friedman2008-07-301-3/+7
| | | | | | | | | | | | SGT exit condition. Essentially, the correct way to flip an inequality in 2's complement is the not operator, not the negation operator. That said, the difference only affects cases involving INT_MIN. Also, enhance the pre-test search logic to be a bit smarter about inequalities flipped with a not operator, so it can eliminate the smax from the iteration count for simple loops. llvm-svn: 54184
* When merging a PHI operand's live interval into the PHI's live interval, we ↵Owen Anderson2008-07-291-9/+17
| | | | | | | | need to merge over all liveranges in the operand's interval that share the relevant value number, not just the range that immediately precedes the PHI. llvm-svn: 54174
* Don't decrement the BB remap when we don't need to.Owen Anderson2008-07-291-8/+4
| | | | llvm-svn: 54173
* Fix PR2609. If a label is deleted, then it needsDuncan Sands2008-07-291-4/+3
| | | | | | | | to be marked invalid regardless of whether it is a debug, an exception handling or (hopefully) a GC label. llvm-svn: 54172
* Changed some methods order.Bruno Cardoso Lopes2008-07-291-45/+46
| | | | llvm-svn: 54169
* Fix broken CellSPU lowering, re-instate braces in LegalizeNate Begeman2008-07-292-6/+5
| | | | llvm-svn: 54168
* Added floating point lowering for select.Bruno Cardoso Lopes2008-07-294-86/+185
| | | | llvm-svn: 54167
* Disable a fix in the previous patch, since it breaks CellSPU.Nate Begeman2008-07-291-2/+4
| | | | | | | The CellSPU codegen is broken, but needs to be fixed before we can put this back in. llvm-svn: 54164
* Add vector shifts to the IR, patch by Eli Friedman.Nate Begeman2008-07-299-310/+334
| | | | | | CodeGen & Clang work coming next. llvm-svn: 54161
* Add -unroll-allow-partial command line option that enabled the loop unroller toMatthijs Kooijman2008-07-291-4/+26
| | | | | | | | partially unroll a loop when fully unrolling would not fit under the threshold. Patch by Mikael Lepistö. llvm-svn: 54160
* Restructure ArgumentPromotion a bit. Instead of just having a single booleanMatthijs Kooijman2008-07-291-99/+235
| | | | | | | | | | | | | that says "unconditional loads from this argument are safe", we now keep track of the safety per set of indices from which loads happen. This prevents ArgPromotion from promoting loads that aren't really valid. As an added effect, this will now disregard the the type of the indices passed to a GEP, so "load GEP %A, i32 1" and "load GEP %A, i64 1" will result in a single argument, not two. This fixes PR2598, for which a testcase has been added as well. llvm-svn: 54159
* Add a GetElementPtrInst::getIndexedType that accepts uint64_t's instead of ↵Matthijs Kooijman2008-07-291-4/+20
| | | | | | just Value*'s. llvm-svn: 54157
* Fix for PR2578. Do not split off a block whose size is less than ↵Evan Cheng2008-07-291-0/+3
| | | | | | FreeRangeHeader::getMinBlockSize(). Patch by Damien. llvm-svn: 54152
* Revert 54147.Dan Gohman2008-07-292-16/+0
| | | | llvm-svn: 54148
* Add x86 isel patterns to match what would be a ZERO_EXTEND_INREG operation,Dan Gohman2008-07-282-0/+16
| | | | | | | | which is represented in codegen as an 'and' operation. This matches them with movz instructions, instead of leaving them to be matched by and instructions with an immediate field. llvm-svn: 54147
* Fold the useful features of alist and alist_node into ilist, andDan Gohman2008-07-2811-124/+89
| | | | | | | | | | | | | | | | a new ilist_node class, and remove them. Unlike alist_node, ilist_node doesn't attempt to manage storage itself, so it avoids the associated problems, including being opaque in gdb. Adjust the Recycler class so that it doesn't depend on alist_node. Also, change it to use explicit Size and Align parameters, allowing it to work when the largest-sized node doesn't have the greatest alignment requirement. Change MachineInstr's MachineMemOperand list from a pool-backed alist to a std::list for now. llvm-svn: 54146
* Don't remove volatile loads. Thanks to Duncan for noticing this one.Owen Anderson2008-07-281-1/+1
| | | | llvm-svn: 54144
* Disable gp_rel relocation for constant pools access for now.Bruno Cardoso Lopes2008-07-281-7/+11
| | | | llvm-svn: 54142
* Since build_vector is a variadic node, the numberDuncan Sands2008-07-281-1/+1
| | | | | | of operands should be -1 not 0. llvm-svn: 54141
* Added floating point lowering for setcc and brcond.Bruno Cardoso Lopes2008-07-287-30/+158
| | | | | | | Fixed COMM asm directive usage. ConstantPool using custom FourByteConstantSection. llvm-svn: 54139
* Fix a typo in a comment.Dan Gohman2008-07-281-1/+1
| | | | llvm-svn: 54136
* Add support for eliminating stores that store the same value that was just ↵Owen Anderson2008-07-281-2/+35
| | | | | | | | loaded. This fixes PR2599. llvm-svn: 54133
* Fix a subtle bug when removing instructions from memdep. In very specific Owen Anderson2008-07-281-0/+4
| | | | | | | | circumstances we could end up remapping a dependee to the same instruction that we're trying to remove. Handle this properly by just falling back to a conservative solution. llvm-svn: 54132
* Remove <iostream> include.Bill Wendling2008-07-271-2/+2
| | | | llvm-svn: 54131
* Make the ScheduleDAG's GraphRoot edge be blue and dashed too, likeDan Gohman2008-07-271-1/+2
| | | | | | the SelectionDAG's. llvm-svn: 54129
OpenPOWER on IntegriCloud