summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Tighten up some checks. Fix FPOWI splitting forDuncan Sands2008-07-141-3/+3
| | | | | | non-power-of-two vectors. llvm-svn: 53558
* Reapply r53540, now with the matching header!Chris Lattner2008-07-141-1/+23
| | | | llvm-svn: 53557
* An INSERT_VECTOR_ELT can insert a larger valueDuncan Sands2008-07-141-4/+5
| | | | | | | | than the vector element type. Don't forget to handle this when the insertion index is not a constant. llvm-svn: 53556
* According to the docs, it is possible to have anDuncan Sands2008-07-141-11/+19
| | | | | | | | | | 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
* There should be no extending loads or truncatingDuncan Sands2008-07-141-4/+4
| | | | | | | | 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
* Ignore TargetConstant with an illegal type. TheseDuncan Sands2008-07-142-10/+23
| | | | | | | | | | 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
* Added Subtarget support into RegisterInfoBruno Cardoso Lopes2008-07-149-116/+200
| | | | | | | | | | | | Added HasABICall and HasAbsoluteCall (equivalent to gcc -mabicall and -mno-shared). HasAbsoluteCall is not implemented but HasABICall is the default for o32 ABI. Now, both should help into a more accurate relocation types implementation. Added IsLinux is needed to choose between asm directives. Instruction name strings cleanup. AsmPrinter improved. llvm-svn: 53551
* Revert r53540 - it does not compile.Duncan Sands2008-07-141-23/+1
| | | | llvm-svn: 53549
* Reimplement LinkFunctionProtos in terms of GetLinkageResult. This fixesChris Lattner2008-07-141-167/+102
| | | | | | | | | | | | | | | | | the second half of link-global-to-func.ll and causes some minor changes in messages. There are two TODOs here. First, this causes a regression in 2008-07-06-AliasWeakDest.ll, which is now failing (so I xfailed it). Anton, I would really appreciate it if you could take a look at this. It should be a matter of adding proper alias support to GetLinkageResult, and was probably already a latent bug that would manifest with globals. The second todo is to reimplement LinkAlias in the same pattern as function and global linking. This should be pretty straight-forward for someone who knows aliases, but isn't a requirement for correctness. llvm-svn: 53548
* don't do any linkage, not even type resolution, of symbols that have Chris Lattner2008-07-141-6/+10
| | | | | | internal linkage. llvm-svn: 53547
OpenPOWER on IntegriCloud