summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Fix PR2553Chris Lattner2008-07-171-1/+2
| | | | llvm-svn: 53715
* When lowering certain atomics, we need to copy the memoperand from the oldMon P Wang2008-07-171-1/+5
| | | | | | atomic operation to the new one. llvm-svn: 53714
* Factorize some code for determining which libcall to use.Duncan Sands2008-07-174-562/+204
| | | | llvm-svn: 53713
* Inliner tweak. Function calls should cost more than one instruction!Evan Cheng2008-07-171-0/+5
| | | | llvm-svn: 53712
* Factor MergeBlockIntoPredecessor out into BasicBlockUtils.Owen Anderson2008-07-172-51/+56
| | | | llvm-svn: 53705
* Mark function used by asm block as used, otherwise optimizer may not see the ↵Devang Patel2008-07-161-1/+3
| | | | | | use and may delete the function. llvm-svn: 53692
* There's no need to iterate block merging and PRE. In fact, iterating the latterOwen Anderson2008-07-161-14/+12
| | | | | | could cause problems for memdep when it breaks critical edges. llvm-svn: 53691
* Somehow, custom lowering of i64 multiplications got dropped along the way.Scott Michel2008-07-161-104/+105
| | | | llvm-svn: 53689
* Fix the result type of X86's truncate to i8.Dan Gohman2008-07-161-5/+3
| | | | llvm-svn: 53688
* Fix the result type of a VECTOR_SHUFFLE+BIT_CONVERT dagcombine. ThisDan Gohman2008-07-161-3/+2
| | | | | | | was turned up by some new SelectionDAG assertion checks that I'm working on. llvm-svn: 53687
* Add support for promoting and expanding AssertZextDuncan Sands2008-07-162-0/+42
| | | | | | | and AssertSext. Needed when passing huge integer parameters with the zeroext or signext attributes. llvm-svn: 53684
* Fix a comment to say nonnegative instead of positive.Dan Gohman2008-07-161-1/+1
| | | | llvm-svn: 53681
* Add an assert to check for empty flags for MachineMemOperand.Dan Gohman2008-07-161-0/+1
| | | | llvm-svn: 53680
* Redo InstCombiner::visitExtractValueInst. Instead of using the (complicate)Matthijs Kooijman2008-07-161-5/+80
| | | | | | | FindInsertedValue, it now performs a number of simple transformations that should result in the same effect when applied iteratively. llvm-svn: 53673
* Reorder methods alphabetically. No functionality change.Duncan Sands2008-07-163-922/+913
| | | | | | | | While this is not a wonderful organizing principle, it does make it easy to find routines, and clear where to insert new ones. llvm-svn: 53672
* Turn on LegalizeTypes by default.Duncan Sands2008-07-161-4/+6
| | | | llvm-svn: 53671
* Don't use ++idx_begin when I actually mean idx_begin + 1, especially since weMatthijs Kooijman2008-07-161-1/+1
| | | | | | | | also use *idx_begin in the same expression, giving unpredictable results. This fixes this bug: http://lists.cs.uiuc.edu/pipermail/llvmdev/2008-July/015877.html llvm-svn: 53670
* Fix PR2296. Do not transform x86_sse2_storel_dq into a full-width store.Evan Cheng2008-07-161-1/+0
| | | | llvm-svn: 53666
* x86-64 PIC JIT fixes: do not generate the extra load for external GV's.Evan Cheng2008-07-162-8/+5
| | | | llvm-svn: 53661
* X86-64 PIC jump table values are different from x86-32 cases, they are dest ↵Evan Cheng2008-07-161-0/+4
| | | | | | - table base. llvm-svn: 53660
* TargetAsmInfo::SectionForGlobal showed up in a profile. Simplify it a little.Dan Gohman2008-07-151-5/+3
| | | | llvm-svn: 53639
* SelectionDAG::AssignNodeIds is unused.Dan Gohman2008-07-151-11/+0
| | | | llvm-svn: 53636
* Don't sort SDNodes by their addresses in SelectionDAG::dump. Instead,Dan Gohman2008-07-151-9/+5
| | | | | | | just use the AllNodes order, which is at least relatively stable across runs. llvm-svn: 53632
* Revert this, as it seems to still be broken.Owen Anderson2008-07-151-1/+1
| | | | llvm-svn: 53627
* Enable local PRE by default.Owen Anderson2008-07-151-1/+1
| | | | llvm-svn: 53616
* Have GVN do a pre-pass over the CFG that folds away unconditional branches ↵Owen Anderson2008-07-151-2/+63
| | | | | | where possible. This allows local PRE to be more aggressive. llvm-svn: 53615
* LegalizeTypes support for fabs on ppc long double.Duncan Sands2008-07-152-0/+15
| | | | llvm-svn: 53613
* Allow deadargelim to change return types even though now values were dead. ThisMatthijs Kooijman2008-07-151-11/+1
| | | | | | again canonicalizes {i32} into i32 and {} into void. llvm-svn: 53610
* Revert r53606. It turns out that explicitely tracking the liveness of theMatthijs Kooijman2008-07-151-97/+103
| | | | | | | | | | | return value as a whole in deadargelim is really not needed now that we simply rebuild the old return value and actually prevents some canonicalization from taking place. This revert stops deadargelim from changing {i32} into i32 for now, but I'll fix that next. llvm-svn: 53609
* Make deadargelim a bit less smart, so it doesn't choke on nested structs asMatthijs Kooijman2008-07-151-38/+21
| | | | | | | | | | | | return values that are still (partially) live. Instead of updating all uses of a call instruction after removing some elements, it now just rebuilds the original struct (With undef gaps where the unused values were) and leaves it to instcombine to clean this up. The added testcase still fails currently, but this is due to instcombine which isn't good enough yet. I will fix that part next. llvm-svn: 53608
* Don't use isa when we can reuse a previous dyn_cast.Matthijs Kooijman2008-07-151-3/+2
| | | | llvm-svn: 53607
* Make DeadArgElim keep liveness of the return value as a whole in addition toMatthijs Kooijman2008-07-151-126/+124
| | | | | | | | | | | only the liveness of partial return values (for functions returning a struct). This is more explicit to prevent unwanted changes in the return value. In particular, deadargelim now canonicalizes a function returning {i32} to returning i32 and {} to void, if the struct returned is not used in its entirety, but only the single element is used. llvm-svn: 53606
* LegalizeTypes support for promotion of bswap.Duncan Sands2008-07-152-0/+12
| | | | | | | | | | | | In LegalizeDAG the value is zero-extended to the new type before byte swapping. It doesn't matter how the extension is done since the new bits are shifted off anyway after the swap, so extend by any old rubbish bits. This results in the final assembler for the testcase being one line shorter. llvm-svn: 53604
* LegalizeTypes support for promotion of SIGN_EXTEND_INREG.Duncan Sands2008-07-152-0/+9
| | | | llvm-svn: 53603
* Reorder the integer promotion methods alphabetically.Duncan Sands2008-07-151-365/+356
| | | | | | No change in functionality. llvm-svn: 53602
* Let DAE keep a list of live functions, instead of simply marking all argumentsMatthijs Kooijman2008-07-151-6/+14
| | | | | | | and return values live for those functions. This doesn't change anything yet, but prepares for the coming commits. llvm-svn: 53601
* Split DAE::MarkLive into MarkLive and PropagateLiveness.Matthijs Kooijman2008-07-151-0/+6
| | | | llvm-svn: 53600
* Pass around const RetOrArg references instead of copying values. Also, markMatthijs Kooijman2008-07-151-3/+3
| | | | | | RetOrArg::getDescription() as const. llvm-svn: 53599
* Simplify debug code by using RetOrArg::getDescription().Matthijs Kooijman2008-07-151-6/+1
| | | | llvm-svn: 53598
* Fix indentation (intentionally left out of the previous commit).Matthijs Kooijman2008-07-151-51/+51
| | | | llvm-svn: 53592
* Move the deadargelim code for intrinsically alive functions into its ownMatthijs Kooijman2008-07-151-23/+25
| | | | | | method, to slightly simplify control flow. llvm-svn: 53591
* Fixed potential bug if the source and target of a bit convert have different ↵Mon P Wang2008-07-151-1/+3
| | | | | | alignment llvm-svn: 53590
* Correct this inversion!Nick Lewycky2008-07-151-1/+1
| | | | | | I swear that didn't show up in svn diff... llvm-svn: 53587
* Fix up comments.Nick Lewycky2008-07-151-5/+7
| | | | llvm-svn: 53586
* Fixed call stack alignment. Improved AsmPrinter alignment issues.Bruno Cardoso Lopes2008-07-155-18/+47
| | | | llvm-svn: 53585
* Reapply 53476 and 53480, with a fix so that it properly updatesDan Gohman2008-07-145-35/+75
| | | | | | | the BB member to the current basic block after emitting instructions. llvm-svn: 53567
* Fix uninitialized use of the Changed variable.Dan Gohman2008-07-141-0/+2
| | | | llvm-svn: 53564
* Improve debug output for MemOperandSDNode. PseudoSourceValue nodesDan Gohman2008-07-141-4/+7
| | | | | | | don't have value names, so use print instead of getName() to get a useful string. llvm-svn: 53563
* Fix edito in the PseudoSourceValue name list.Dan Gohman2008-07-141-1/+1
| | | | llvm-svn: 53562
* I don't think BUILD_PAIR can have a vector result.Duncan Sands2008-07-141-12/+0
| | | | | | Remove support for this. llvm-svn: 53559
OpenPOWER on IntegriCloud