- Jul 14, 2008
-
-
Dan Gohman authored
llvm-svn: 53562
-
Duncan Sands authored
Remove support for this. llvm-svn: 53559
-
Duncan Sands authored
non-power-of-two vectors. llvm-svn: 53558
-
Duncan Sands authored
than the vector element type. Don't forget to handle this when the insertion index is not a constant. llvm-svn: 53556
-
Duncan Sands authored
extending load of a vector. Handle this case when splitting vector loads. I'm not completely sure what is supposed to happen, but I think it means hi should be set to undef. LegalizeDAG does not consider this case. llvm-svn: 53555
-
Duncan Sands authored
stores of one-element vectors. Also, neaten the handling of INSERT_VECTOR_ELT when the inserted type is larger than the vector element type. llvm-svn: 53554
-
Duncan Sands authored
are used for passing huge immediates in inline ASM from the front-end straight down to the ASM writer. Of course this is a hack, but it is simple, limited in scope, works in practice, and is what LegalizeDAG does. llvm-svn: 53553
-
- Jul 12, 2008
-
-
Evan Cheng authored
llvm-svn: 53504
-
Evan Cheng authored
Fix PR2536: a nasty spiller bug. If a two-address instruction uses a register but the use portion of its live range is not part of its liveinterval, it must be defined by an implicit_def. In that case, do not spill the use. e.g. 8 %reg1024<def> = IMPLICIT_DEF 12 %reg1024<def> = INSERT_SUBREG %reg1024<kill>, %reg1025, 2 The live range [12, 14) are not part of the r1024 live interval since it's defined by an implicit def. It will not conflicts with live interval of r1025. Now suppose both registers are spilled, you can easily see a situation where both registers are reloaded before the INSERT_SUBREG and both target registers that would overlap. llvm-svn: 53503
-
Evan Cheng authored
llvm-svn: 53502
-
Dan Gohman authored
instead of using the frame index for the SVOffset, which was inconsistent. llvm-svn: 53486
-
Dan Gohman authored
llvm-svn: 53481
-
Dan Gohman authored
llvm-svn: 53480
-
- Jul 11, 2008
-
-
Dan Gohman authored
use a timer group for the timers in SelectionDAGISel. Also, Split scheduling out from emitting, to give each their own timer. llvm-svn: 53476
-
Dan Gohman authored
llvm-svn: 53471
-
Duncan Sands authored
be no need to split the result of a vector RET node, since they are always already legal. llvm-svn: 53462
-
Duncan Sands authored
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
-
Duncan Sands authored
llvm-svn: 53460
-
Duncan Sands authored
was presumably added after the rest of the code was copied to LegalizeTypes. llvm-svn: 53459
-
Duncan Sands authored
on 16 bit machines. llvm-svn: 53458
-
Chris Lattner authored
when working on legalizetypes. Both legalizetypes and legalizeops now produce hte same code for CodeGen/ARM/fcopysign.ll. llvm-svn: 53435
-
Chris Lattner authored
llvm-svn: 53434
-
- Jul 10, 2008
-
-
Dan Gohman authored
other passes. llvm-svn: 53415
-
Evan Cheng authored
llvm-svn: 53414
-
Duncan Sands authored
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
-
Duncan Sands authored
Be nice to 16 bit machines by supporting FP_TO_XINT expansion for these. llvm-svn: 53407
-
Duncan Sands authored
llvm-svn: 53406
-
Duncan Sands authored
was doing there: FP_ROUND returns a float, not an integer. llvm-svn: 53405
-
Duncan Sands authored
in CreateStackStoreLoad is good enough for both the source and destination types. llvm-svn: 53404
-
Duncan Sands authored
llvm-svn: 53403
-
Duncan Sands authored
a ginormous value (eg: i128 -1). llvm-svn: 53402
-
Evan Cheng authored
- Change the horrible N^2 isRegReDefinedByTwoAddr. Now callers must supply 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
-
Owen Anderson authored
Use DenseMap instead of std::map in local register allocation. This improves the time on instcombine from .31s to .22s llvm-svn: 53390
-
Owen Anderson authored
llvm-svn: 53389
-
Owen Anderson authored
llvm-svn: 53378
-
Dan Gohman authored
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
-
Dan Gohman authored
of examining every operand of every user. llvm-svn: 53374
-
Dan Gohman authored
getMemOperand function to be moved into the base class as well and made non-virtual. llvm-svn: 53372
-
- Jul 09, 2008
-
-
Evan Cheng authored
llvm-svn: 53369
-
Owen Anderson authored
Loosen our check here. Local regalloc only cares that the reg is used and def'd by the same instruction, but about the details of the relationship. llvm-svn: 53367
-