| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Fix an obsolete top-level comment. | Dan Gohman | 2008-07-11 | 1 | -3/+2 |
| | | | | | llvm-svn: 53481 | ||||
| * | Factor out debugging code into the common base class. | Dan Gohman | 2008-07-11 | 3 | -8/+5 |
| | | | | | llvm-svn: 53480 | ||||
| * | Add support for putting NamedRegionTimers in TimerGroups, and | Dan Gohman | 2008-07-11 | 3 | -22/+33 |
| | | | | | | | | | use a timer group for the timers in SelectionDAGISel. Also, Split scheduling out from emitting, to give each their own timer. llvm-svn: 53476 | ||||
| * | Trim unnecessary #includes. | Dan Gohman | 2008-07-11 | 3 | -3/+0 |
| | | | | | llvm-svn: 53471 | ||||
| * | Remove an apparently useless routine: there should | Duncan Sands | 2008-07-11 | 2 | -15/+0 |
| | | | | | | | | be no need to split the result of a vector RET node, since they are always already legal. llvm-svn: 53462 | ||||
| * | It is pointless to turn a UINT_TO_FP into an | Duncan Sands | 2008-07-11 | 3 | -79/+118 |
| | | | | | | | | | | SINT_TO_FP libcall plus additional operations: it might as well be a direct UINT_TO_FP libcall. So only turn it into an SINT_TO_FP if the target has special handling for SINT_TO_FP. llvm-svn: 53461 | ||||
| * | Add two missing SINT_TO_FP libcalls. | Duncan Sands | 2008-07-11 | 2 | -11/+21 |
| | | | | | llvm-svn: 53460 | ||||
| * | Port a shift-by-1 optimization from LegalizeDAG: it | Duncan Sands | 2008-07-11 | 1 | -0/+7 |
| | | | | | | | | was presumably added after the rest of the code was copied to LegalizeTypes. llvm-svn: 53459 | ||||
| * | Add support for 128 bit shifts and 32 bit shifts | Duncan Sands | 2008-07-11 | 2 | -6/+23 |
| | | | | | | | on 16 bit machines. llvm-svn: 53458 | ||||
| * | Fix a bug in the soft-float handling of FCOPYSIGN that Duncan noticed | Chris Lattner | 2008-07-10 | 1 | -2/+5 |
| | | | | | | | | when working on legalizetypes. Both legalizetypes and legalizeops now produce hte same code for CodeGen/ARM/fcopysign.ll. llvm-svn: 53435 | ||||
| * | make legalize types be a command line option: -enable-legalize-types. | Chris Lattner | 2008-07-10 | 1 | -5/+8 |
| | | | | | llvm-svn: 53434 | ||||
| * | Make stack slot coloring's debug output more consistent with | Dan Gohman | 2008-07-10 | 1 | -1/+1 |
| | | | | | | | other passes. llvm-svn: 53415 | ||||
| * | Change StackSlotForVirtReg (which maps vregs to frame indices) from std::map ↵ | Evan Cheng | 2008-07-10 | 1 | -8/+8 |
| | | | | | | | to IndexedMap. llvm-svn: 53414 | ||||
| * | Add support for 128 bit multiplicative operations. | Duncan Sands | 2008-07-10 | 2 | -21/+62 |
| | | | | | | | | | | Lack of these caused a bootstrap failure with Fortran on x86-64 with LegalizeTypes turned on. While there, be nice to 16 bit machines and support expansion of i32 too. llvm-svn: 53408 | ||||
| * | Add a mysteriously missing libcall, FPTOSINT_F80_I32. | Duncan Sands | 2008-07-10 | 4 | -6/+32 |
| | | | | | | | | Be nice to 16 bit machines by supporting FP_TO_XINT expansion for these. llvm-svn: 53407 | ||||
| * | Fix a FIXME: use an apint in CTTZ legalization. | Duncan Sands | 2008-07-10 | 1 | -3/+3 |
| | | | | | llvm-svn: 53406 | ||||
| * | Remove PromoteIntRes_FP_ROUND - not sure what it | Duncan Sands | 2008-07-10 | 4 | -14/+1 |
| | | | | | | | | was doing there: FP_ROUND returns a float, not an integer. llvm-svn: 53405 | ||||
| * | Make sure the alignment of the temporary created | Duncan Sands | 2008-07-10 | 1 | -2/+6 |
| | | | | | | | | in CreateStackStoreLoad is good enough for both the source and destination types. llvm-svn: 53404 | ||||
| * | Make the LegalizeType method naming scheme more regular. | Duncan Sands | 2008-07-10 | 5 | -49/+43 |
| | | | | | llvm-svn: 53403 | ||||
| * | Don't barf when dumping a constant that contains | Duncan Sands | 2008-07-10 | 1 | -1/+1 |
| | | | | | | | a ginormous value (eg: i128 -1). llvm-svn: 53402 | ||||
| * | - Change the horrible N^2 isRegReDefinedByTwoAddr. Now callers must supply ↵ | Evan Cheng | 2008-07-10 | 3 | -32/+19 |
| | | | | | | | | | the operand index of def machineoperand and at most one full scan of non-implicit operands is needed. - Change local register allocator to use the new isRegReDefinedByTwoAddr instead of reinventing the wheel. llvm-svn: 53394 | ||||
| * | Use DenseMap instead of std::map in local register allocation. This ↵ | Owen Anderson | 2008-07-10 | 1 | -3/+16 |
| | | | | | | | improves the time on instcombine from .31s to .22s llvm-svn: 53390 | ||||
| * | Fix 403.gcc. Finally got the check for two-address-ness correct. | Owen Anderson | 2008-07-10 | 1 | -10/+14 |
| | | | | | llvm-svn: 53389 | ||||
| * | Revert r53367, which was breaking things. | Owen Anderson | 2008-07-09 | 1 | -1/+3 |
| | | | | | llvm-svn: 53378 | ||||
| * | Simplify hasNUsesOfValue and hasAnyUsesOfValue even more. This | Dan Gohman | 2008-07-09 | 1 | -14/+2 |
| | | | | | | | | | | | | makes their special-case checks of use_size() less beneficial, so remove them. This eliminates all but one use of use_size(), which is in AssignTopologicalOrder, which uses it only once for each node, and so can reasonably afford to recompute it, as this allows the UsesSize field of SDNode to be removed altogether. llvm-svn: 53377 | ||||
| * | hasAnyUseOfValue can check SDUse nodes of its users directly instead | Dan Gohman | 2008-07-09 | 1 | -13/+3 |
| | | | | | | | of examining every operand of every user. llvm-svn: 53374 | ||||
| * | Move MemoryVT out of LSBaseNode into MemSDNode, allowing the | Dan Gohman | 2008-07-09 | 1 | -28/+16 |
| | | | | | | | | getMemOperand function to be moved into the base class as well and made non-virtual. llvm-svn: 53372 | ||||
| * | Avoid creating expensive comment string if it's not going to be printed. | Evan Cheng | 2008-07-09 | 1 | -1/+4 |
| | | | | | llvm-svn: 53369 | ||||
| * | Loosen our check here. Local regalloc only cares that the reg is used and ↵ | Owen Anderson | 2008-07-09 | 1 | -3/+1 |
| | | | | | | | | | def'd by the same instruction, but about the details of the relationship. llvm-svn: 53367 | ||||
| * | Move the IsVolatile and SVOffset fields into the MemSDNode base | Dan Gohman | 2008-07-09 | 1 | -0/+11 |
| | | | | | | | | | | | class, and store IsVolatile and Alignment in a more compact form. This makes AtomicSDNode slightly larger, but it shrinks LoadSDNode and StoreSDNode, which are much more common and are the largest of the SDNode subclasses. Also, this lets the isVolatile() and getAlignment() accessors be non-virtual. llvm-svn: 53361 | ||||
| * | Don't use an expensive check for two-address-ness when we have the ↵ | Owen Anderson | 2008-07-09 | 1 | -2/+13 |
| | | | | | | | | | information sitting around to determine it much more quickly, This speeds up the local register allocator from 0.37s to 0.31s on instcombine. llvm-svn: 53359 | ||||
| * | Factor local liveness computation out into its own function. | Owen Anderson | 2008-07-09 | 1 | -28/+36 |
| | | | | | llvm-svn: 53352 | ||||
| * | Reuse the MO variable instead of recomputing it in RegAllocLocal. | Dan Gohman | 2008-07-09 | 2 | -9/+9 |
| | | | | | | | Keep RegAllocSimple in sync. llvm-svn: 53351 | ||||
| * | Give RegAllocSimple a TargetInstrInfo member to keep it consistent | Dan Gohman | 2008-07-09 | 1 | -2/+2 |
| | | | | | | | with RegAllocLocal. llvm-svn: 53347 | ||||
| * | RegAllocLocal has a TargetInstrInfo data member. Use it instead | Dan Gohman | 2008-07-09 | 1 | -5/+1 |
| | | | | | | | of having local variables duplicate it. llvm-svn: 53346 | ||||
| * | Use find with std::map, when that's what's needed, instead of lower_bound | Dan Gohman | 2008-07-09 | 2 | -5/+4 |
| | | | | | | | with extra checks. llvm-svn: 53344 | ||||
| * | Switch to new section name handling facility | Anton Korobeynikov | 2008-07-09 | 1 | -4/+7 |
| | | | | | llvm-svn: 53316 | ||||
| * | Remove some unneeded includes. | Duncan Sands | 2008-07-09 | 2 | -4/+0 |
| | | | | | llvm-svn: 53289 | ||||
| * | Redo LegalizeTypes soft float support for | Duncan Sands | 2008-07-09 | 2 | -96/+103 |
| | | | | | | | | | | SINT_TO_FP and UINT_TO_FP. This now produces the same code as LegalizeDAG (the previous code was based on a mistaken idea of what LegalizeDAG did in this case). llvm-svn: 53288 | ||||
| * | Forgot to update the chain result when softening | Duncan Sands | 2008-07-09 | 1 | -12/+21 |
| | | | | | | | loads. llvm-svn: 53287 | ||||
| * | LegalizeTypes soft float support for FP_TO_SINT and | Duncan Sands | 2008-07-09 | 2 | -4/+134 |
| | | | | | | | FP_TO_UINT. llvm-svn: 53286 | ||||
| * | LegalizeTypes support for powi soft float. | Duncan Sands | 2008-07-09 | 2 | -3/+16 |
| | | | | | llvm-svn: 53285 | ||||
| * | Make the role of MVT::i32 clearer here, and add a | Duncan Sands | 2008-07-09 | 1 | -3/+4 |
| | | | | | | | note since it is not clear whether it is correct. llvm-svn: 53284 | ||||
| * | Missed alignment argument on stores lowered from memcpy. | Evan Cheng | 2008-07-09 | 1 | -1/+1 |
| | | | | | llvm-svn: 53281 | ||||
| * | Make the DICountVisitor not a visitor. This keeps us from calling virtual | Bill Wendling | 2008-07-09 | 1 | -33/+154 |
| | | | | | | | functions and junk. llvm-svn: 53279 | ||||
| * | const-ify SelectionDAG::getNodeValueTypes. | Dan Gohman | 2008-07-09 | 1 | -2/+2 |
| | | | | | llvm-svn: 53264 | ||||
| * | It's no longer necessary to test if a MachineBasicBlock's | Dan Gohman | 2008-07-08 | 1 | -2/+1 |
| | | | | | | | parent is non-null. It now always is. llvm-svn: 53263 | ||||
| * | Verify that MachineMemOperand alignment is a non-zero power of 2. | Dan Gohman | 2008-07-08 | 1 | -0/+1 |
| | | | | | llvm-svn: 53262 | ||||
| * | Factor out the code for computing an alignment value, and make it | Dan Gohman | 2008-07-08 | 1 | -38/+32 |
| | | | | | | | | available to getAtomic in addition to just getLoad and getStore, to prevent MachineMemOperands with 0 alignment. llvm-svn: 53261 | ||||
| * | Fix the build. Apparently MachineInstr& is no longer implicitly convertable ↵ | Owen Anderson | 2008-07-08 | 1 | -1/+1 |
| | | | | | | | to MachineBasicBlock::iterator. llvm-svn: 53260 | ||||

