summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* LegalizeTypes support for fabs on ppc long double.Duncan Sands2008-07-153-0/+34
| | | | llvm-svn: 53613
* Remove a few tests which no longer hold for deadargelim (since it is nowMatthijs Kooijman2008-07-151-15/+7
| | | | | | | | allowed to canonicalize return values). Add a test that checks if return value and function attributes are not removed. llvm-svn: 53612
* Add a testcase for the canonicalizations now performed by deadargelim.Matthijs Kooijman2008-07-151-0/+24
| | | | llvm-svn: 53611
* 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-152-39/+35
| | | | | | | | | | | | 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
* Fix typo.Matthijs Kooijman2008-07-151-1/+1
| | | | llvm-svn: 53605
* LegalizeTypes support for promotion of bswap.Duncan Sands2008-07-153-0/+398
| | | | | | | | | | | | 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-153-0/+26
| | | | 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
* LinkOnce definitions have default scope, like weak definitions. Otherwise, ↵Devang Patel2008-07-151-1/+2
| | | | | | the linker may not be able to match LinkOnce definition from one module with an exteranl reference from other module. llvm-svn: 53580
* Goodbye tail duplication (for good this time).Evan Cheng2008-07-141-1/+0
| | | | llvm-svn: 53574
* This replaces all $(SolutionDir) macros with $(ProjectDir)..\ Chris Lattner2008-07-1430-155/+155
| | | | | | Patch by Nicolas Capens! llvm-svn: 53571
* Reapply 53476 and 53480, with a fix so that it properly updatesDan Gohman2008-07-148-39/+82
| | | | | | | 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
* Reformat this message to fit in 80 cols.Dan Gohman2008-07-141-4/+4
| | | | llvm-svn: 53561
* 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-142-2/+29
| | | | 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-145-171/+108
| | | | | | | | | | | | | | | | | 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
* implement linking of globals to functions, in one directionChris Lattner2008-07-142-81/+88
| | | | | | | | | | | (replacing a function with a global). This is needed when building llvm itself with LTO on darwin, because of the EXPLICIT_SYMBOL hack in lib/system/DynamicLibrary.cpp. Implementation of linking the other way will need to wait for a cleanup of LinkFunctionProtos. llvm-svn: 53546
* wrap long lines, remove some code from a non-assert build.Chris Lattner2008-07-141-5/+7
| | | | llvm-svn: 53545
* Fix a bunch of bugs handling vector compare constant expressions, fixingChris Lattner2008-07-142-34/+70
| | | | | | PR2317. llvm-svn: 53544
* Document and fix Constant::getVectorElements to return an empty vectorChris Lattner2008-07-141-12/+23
| | | | | | | | | when presented with a constant expr. If ConstantExpr::getV[IF]Cmp to work when ConstantFoldCompareInstruction returns an undef or constant expr. llvm-svn: 53541
* If a function calls setjmp, never inline it into other functions. This isChris Lattner2008-07-141-1/+23
| | | | | | | a hack around the fact that we don't represent the CFG correctly for sj/lj. It fixes PR2486. llvm-svn: 53540
* simplify some code, shuffle and insertelt always return a vector.Chris Lattner2008-07-141-2/+1
| | | | llvm-svn: 53538
* whitespace fix.Chris Lattner2008-07-141-1/+1
| | | | llvm-svn: 53537
* doxygenate comments and wrap to 80 cols.Chris Lattner2008-07-141-22/+23
| | | | llvm-svn: 53536
* Add a note.Chris Lattner2008-07-141-0/+12
| | | | llvm-svn: 53535
OpenPOWER on IntegriCloud