summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Fix an obsolete top-level comment.Dan Gohman2008-07-111-3/+2
| | | | llvm-svn: 53481
* Factor out debugging code into the common base class.Dan Gohman2008-07-113-8/+5
| | | | llvm-svn: 53480
* Add support for putting NamedRegionTimers in TimerGroups, andDan Gohman2008-07-114-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 Gohman2008-07-115-15/+14
| | | | llvm-svn: 53474
* add support for returning i128, PR2532.Chris Lattner2008-07-111-0/+14
| | | | llvm-svn: 53472
* Trim unnecessary #includes.Dan Gohman2008-07-118-6/+4
| | | | llvm-svn: 53471
* Don't call lookupNumber more than we have to.Owen Anderson2008-07-111-5/+8
| | | | llvm-svn: 53470
* Remove an apparently useless routine: there shouldDuncan Sands2008-07-112-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 anDuncan Sands2008-07-113-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 Sands2008-07-112-11/+21
| | | | llvm-svn: 53460
* Port a shift-by-1 optimization from LegalizeDAG: itDuncan Sands2008-07-111-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 shiftsDuncan Sands2008-07-112-6/+23
| | | | | | on 16 bit machines. llvm-svn: 53458
* Document 'mask' in this calculation.Nick Lewycky2008-07-111-0/+1
| | | | llvm-svn: 53454
* Align comments, colons and cases. Remove trailingDuncan Sands2008-07-111-17/+17
| | | | | | whitespace. llvm-svn: 53453
* Remove misleading constant from comment.Nick Lewycky2008-07-111-1/+1
| | | | llvm-svn: 53452
* Add another optimization from PR2330. Also catch some missing cases that areNick Lewycky2008-07-111-0/+39
| | | | | | similar. llvm-svn: 53451
* The frame address on an x86-64 box needs to be offset by -8, not -4.Bill Wendling2008-07-111-1/+1
| | | | llvm-svn: 53450
* a missed optimization that Eli spottedChris Lattner2008-07-111-1/+1
| | | | llvm-svn: 53449
* another bug in the same line.Chris Lattner2008-07-111-1/+1
| | | | llvm-svn: 53448
* fix a bug spotted by Eli's eagle eyesChris Lattner2008-07-111-2/+2
| | | | llvm-svn: 53447
* simplify and merge a bunch of code. Instead of comparing againstChris Lattner2008-07-111-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 Lattner2008-07-111-103/+68
| | | | | | handle them in some code. llvm-svn: 53445
* Fix folding of icmp's of i1 where the comparison is signed. The codeChris Lattner2008-07-111-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 Lattner2008-07-111-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
* regenerateChris Lattner2008-07-113-1035/+1101
| | | | llvm-svn: 53440
* Implement PR2538Chris Lattner2008-07-112-24/+64
| | | | llvm-svn: 53438
* Fix a bug in the soft-float handling of FCOPYSIGN that Duncan noticedChris Lattner2008-07-101-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 Lattner2008-07-101-5/+8
| | | | llvm-svn: 53434
* Make stack slot coloring's debug output more consistent withDan Gohman2008-07-101-1/+1
| | | | | | other passes. llvm-svn: 53415
* Change StackSlotForVirtReg (which maps vregs to frame indices) from std::map ↵Evan Cheng2008-07-101-8/+8
| | | | | | to IndexedMap. llvm-svn: 53414
* Remove extraneous vertical whitespace before Eric gets the wrong idea ;-)Chris Lattner2008-07-101-1/+0
| | | | llvm-svn: 53411
* Fix an altivec constant miscompilation that Duncan found throughChris Lattner2008-07-101-2/+4
| | | | | | his work on legalizetypes. llvm-svn: 53410
* Add support for 128 bit multiplicative operations.Duncan Sands2008-07-102-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 Sands2008-07-104-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 Sands2008-07-101-3/+3
| | | | llvm-svn: 53406
* Remove PromoteIntRes_FP_ROUND - not sure what itDuncan Sands2008-07-104-14/+1
| | | | | | | was doing there: FP_ROUND returns a float, not an integer. llvm-svn: 53405
* Make sure the alignment of the temporary createdDuncan Sands2008-07-101-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 Sands2008-07-105-49/+43
| | | | llvm-svn: 53403
* Don't barf when dumping a constant that containsDuncan Sands2008-07-101-1/+1
| | | | | | a ginormous value (eg: i128 -1). llvm-svn: 53402
* Restructure dead argument elimination, try #3 :-)Matthijs Kooijman2008-07-101-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 Cheng2008-07-103-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 Lewycky2008-07-101-4/+9
| | | | llvm-svn: 53393
* Use DenseMap instead of std::map in local register allocation. This ↵Owen Anderson2008-07-101-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 Anderson2008-07-101-10/+14
| | | | llvm-svn: 53389
* Fix the build by adding a #include.Owen Anderson2008-07-101-0/+1
| | | | llvm-svn: 53388
* The source and dest of an alias are *not* required to have the same type,Chris Lattner2008-07-101-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 Cheng2008-07-101-0/+2
| | | | llvm-svn: 53386
* open plugins with RTLD_GLOBAL, pointed out by Bram Adams.Chris Lattner2008-07-101-1/+1
| | | | llvm-svn: 53385
* SImplify ConstantVector::get a bit and make it turn a vectorChris Lattner2008-07-101-8/+18
| | | | | | of all undefs into a single undef value. llvm-svn: 53384
* Fix a case where vector comparison constant folding would cause anChris Lattner2008-07-101-33/+33
| | | | | | infinite recursion. part of PR2529 llvm-svn: 53383
OpenPOWER on IntegriCloud