| 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 | 4 | -24/+67 |
| | | | | | | | | | use a timer group for the timers in SelectionDAGISel. Also, Split scheduling out from emitting, to give each their own timer. llvm-svn: 53476 | ||||
| * | Use find instead of lower_bound. | Dan Gohman | 2008-07-11 | 5 | -15/+14 |
| | | | | | llvm-svn: 53474 | ||||
| * | add support for returning i128, PR2532. | Chris Lattner | 2008-07-11 | 1 | -0/+14 |
| | | | | | llvm-svn: 53472 | ||||
| * | Trim unnecessary #includes. | Dan Gohman | 2008-07-11 | 8 | -6/+4 |
| | | | | | llvm-svn: 53471 | ||||
| * | Don't call lookupNumber more than we have to. | Owen Anderson | 2008-07-11 | 1 | -5/+8 |
| | | | | | llvm-svn: 53470 | ||||
| * | 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 | ||||
| * | Document 'mask' in this calculation. | Nick Lewycky | 2008-07-11 | 1 | -0/+1 |
| | | | | | llvm-svn: 53454 | ||||
| * | Align comments, colons and cases. Remove trailing | Duncan Sands | 2008-07-11 | 1 | -17/+17 |
| | | | | | | | whitespace. llvm-svn: 53453 | ||||
| * | Remove misleading constant from comment. | Nick Lewycky | 2008-07-11 | 1 | -1/+1 |
| | | | | | llvm-svn: 53452 | ||||
| * | Add another optimization from PR2330. Also catch some missing cases that are | Nick Lewycky | 2008-07-11 | 1 | -0/+39 |
| | | | | | | | similar. llvm-svn: 53451 | ||||
| * | The frame address on an x86-64 box needs to be offset by -8, not -4. | Bill Wendling | 2008-07-11 | 1 | -1/+1 |
| | | | | | llvm-svn: 53450 | ||||
| * | a missed optimization that Eli spotted | Chris Lattner | 2008-07-11 | 1 | -1/+1 |
| | | | | | llvm-svn: 53449 | ||||
| * | another bug in the same line. | Chris Lattner | 2008-07-11 | 1 | -1/+1 |
| | | | | | llvm-svn: 53448 | ||||
| * | fix a bug spotted by Eli's eagle eyes | Chris Lattner | 2008-07-11 | 1 | -2/+2 |
| | | | | | llvm-svn: 53447 | ||||
| * | simplify and merge a bunch of code. Instead of comparing against | Chris Lattner | 2008-07-11 | 1 | -81/+52 |
| | | | | | | | | | the min/max values for an integer type, compare against the min/max values we can prove contain the input. This might be a tighter bound, so this is general goodness. llvm-svn: 53446 | ||||
| * | fold away (x <= cst) earlier, allowing us to not have to | Chris Lattner | 2008-07-11 | 1 | -103/+68 |
| | | | | | | | handle them in some code. llvm-svn: 53445 | ||||
| * | Fix folding of icmp's of i1 where the comparison is signed. The code | Chris Lattner | 2008-07-11 | 1 | -10/+22 |
| | | | | | | | | was using the algorithm for folding unsigned comparisons which is completely wrong. This has been broken since the signless types change. llvm-svn: 53444 | ||||
| * | Fix a bogus optimization: folding (slt (zext i1 A to i32), 1) -> (slt i1 A, ↵ | Chris Lattner | 2008-07-11 | 1 | -16/+15 |
| | | | | | | | | | | | | true) This cause a regression in InstCombine/JavaCompare, which was doing the right thing on accident. To handle the missed case, generalize the comparisons based on masked bits a little bit to handle comparisons against the max value. For example, we can now xform (slt i32 (and X, 4), 4) -> (setne i32 (and X, 4), 4) llvm-svn: 53443 | ||||
| * | regenerate | Chris Lattner | 2008-07-11 | 3 | -1035/+1101 |
| | | | | | llvm-svn: 53440 | ||||
| * | Implement PR2538 | Chris Lattner | 2008-07-11 | 2 | -24/+64 |
| | | | | | llvm-svn: 53438 | ||||
| * | 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 | ||||
| * | Remove extraneous vertical whitespace before Eric gets the wrong idea ;-) | Chris Lattner | 2008-07-10 | 1 | -1/+0 |
| | | | | | llvm-svn: 53411 | ||||
| * | Fix an altivec constant miscompilation that Duncan found through | Chris Lattner | 2008-07-10 | 1 | -2/+4 |
| | | | | | | | his work on legalizetypes. llvm-svn: 53410 | ||||
| * | 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 | ||||
| * | Restructure dead argument elimination, try #3 :-) | Matthijs Kooijman | 2008-07-10 | 1 | -381/+551 |
| | | | | | | | | | | | | | | | | | | Rewrite the DeadArgumentElimination pass, to use a more explicit tracking of dependencies between return values and/or arguments. Also make the handling of arguments and return values the same. The pass now looks properly inside returned structs, but only at the first level (ie, not inside nested structs). This version fixed a few more bugs and was cleaned up a bit. It now passes all of LLVM's testing, and should still pass SPEC2006. There is still a minor bug with regard to returning nested structs. Since there is currently nothing that emits such IR, I will fix that in a seperate commit (partly because it requires a non-trivial fix). llvm-svn: 53400 | ||||
| * | - 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 | ||||
| * | Fix overzealous optimization. Thanks to Duncan Sands for pointing out my error! | Nick Lewycky | 2008-07-10 | 1 | -4/+9 |
| | | | | | llvm-svn: 53393 | ||||
| * | 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 | ||||
| * | Fix the build by adding a #include. | Owen Anderson | 2008-07-10 | 1 | -0/+1 |
| | | | | | llvm-svn: 53388 | ||||
| * | The source and dest of an alias are *not* required to have the same type, | Chris Lattner | 2008-07-10 | 1 | -9/+3 |
| | | | | | | | though that would be nice and make sense :). Patch by Nathan Keynes! llvm-svn: 53387 | ||||
| * | Fix for PR2472. Use movss to set lower 32-bits of a zero XMM vector. | Evan Cheng | 2008-07-10 | 1 | -0/+2 |
| | | | | | llvm-svn: 53386 | ||||
| * | open plugins with RTLD_GLOBAL, pointed out by Bram Adams. | Chris Lattner | 2008-07-10 | 1 | -1/+1 |
| | | | | | llvm-svn: 53385 | ||||
| * | SImplify ConstantVector::get a bit and make it turn a vector | Chris Lattner | 2008-07-10 | 1 | -8/+18 |
| | | | | | | | of all undefs into a single undef value. llvm-svn: 53384 | ||||
| * | Fix a case where vector comparison constant folding would cause an | Chris Lattner | 2008-07-10 | 1 | -33/+33 |
| | | | | | | | infinite recursion. part of PR2529 llvm-svn: 53383 | ||||

