summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Optimize most common case by using single RetVal in ReturnInst.Devang Patel2008-02-262-20/+52
| | | | llvm-svn: 47607
* Correct function comments.Arnold Schwaighofer2008-02-261-19/+23
| | | | llvm-svn: 47606
* Fix PR2096, a regression introduced with my patch last night. ThisChris Lattner2008-02-262-1/+51
| | | | | | also fixes cfrac, flops, and 175.vpr llvm-svn: 47605
* Really feed llvm-as with the testcase, do not let it read from stdin. This ↵Gabor Greif2008-02-262-2/+2
| | | | | | fixes the hangs seen on solaris10. llvm-svn: 47604
* unbreak check-oneGabor Greif2008-02-261-0/+1
| | | | | | | by supplying a dummy "verbose" procedure llvm-svn: 47603
* While hunting for two hanging tests,Gabor Greif2008-02-262-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | (on solaris10, which are: CodeGen/PowerPC/frounds.ll Transforms/InstCombine/2008-02-23-MulSub.ll) I needed a tool to figure out which one is the guilty. To this end I have added a verbosity option to the test/Makefile. It can be invoked thus: gmake check TESTSUITE=CodeGen/PowerPC VERBOSE="-v -v" (The number of "-v"s specifies the verbosity level. Instead of "-v" other aliases can be specified, please consult the dejagnu docs for info.) At level >= 2 following line is logged for each test, before running it: ABOUT TO RUN: <test>.ll llvm-svn: 47602
* Fix a nasty bug in LegalizeTypes (spotted inDuncan Sands2008-02-266-60/+70
| | | | | | | | | | | | | | | | | CodeGen/PowerPC/illegal-element-type.ll): suppose a node X is processed, and processing maps it to a node Y. Then X continues to exist in the DAG, but with no users. While processing some other node, a new node may be created that happens to be equal to X, and thus X will be reused rather than a truly new node. This can cause X to "magically reappear", and since it is in the Processed state in will not be reprocessed, so at the end of type legalization the illegal node X can still be present. The solution is to replace X with Y whenever X gets resurrected like this. llvm-svn: 47601
* De-tabifyBill Wendling2008-02-263-6/+4
| | | | llvm-svn: 47600
* De-tabify.Bill Wendling2008-02-262-24/+24
| | | | llvm-svn: 47599
* De-tabify.Bill Wendling2008-02-262-9/+9
| | | | llvm-svn: 47598
* DetabifyBill Wendling2008-02-264-25/+25
| | | | llvm-svn: 47597
* Detabify.Bill Wendling2008-02-265-56/+55
| | | | llvm-svn: 47596
* De-tabify.Bill Wendling2008-02-262-19/+19
| | | | llvm-svn: 47595
* Add support for intermodule tail calls on x86/32bit withArnold Schwaighofer2008-02-261-12/+24
| | | | | | | | GOT-style position independent code. Before only tail calls to protected/hidden functions within the same module were optimized. Now all function calls are tail call optimized. llvm-svn: 47594
* Change the lowering of arguments for tail call optimizedArnold Schwaighofer2008-02-262-42/+84
| | | | | | | | | | | | calls. Before arguments that could overwrite each other were explicitly lowered to a stack slot, not giving the register allocator a chance to optimize. Now a sequence of copyto/copyfrom virtual registers ensures that arguments are loaded in (virtual) registers before they are lowered to the stack slot (and might overwrite each other). Also parameter stack slots are marked mutable for (potentially) tail calling functions. llvm-svn: 47593
* This is possible:Evan Cheng2008-02-262-2/+63
| | | | | | | | | vr1 = extract_subreg vr2, 3 ... vr3 = extract_subreg vr1, 2 The end result is vr3 is equal to vr2 with subidx 2. llvm-svn: 47592
* Fix isNegatibleForFree to not return true for ConstantFP nodes Chris Lattner2008-02-262-33/+61
| | | | | | | | | after legalize. Just because a constant is legal (e.g. 0.0 in SSE) doesn't mean that its negated value is legal (-0.0). We could make this stronger by checking to see if the negated constant is actually legal post negation, but it doesn't seem like a big deal. llvm-svn: 47591
* Fix PR2076. CodeGenPrepare now sinks address computation for inline asm memoryEvan Cheng2008-02-262-0/+88
| | | | | | operands into inline asm block. llvm-svn: 47589
* Refactor inline asm constraint matching code out of SDIsel into TargetLowering.Evan Cheng2008-02-263-94/+107
| | | | llvm-svn: 47587
* Remove debugging help.Devang Patel2008-02-261-1/+0
| | | | llvm-svn: 47585
* test svn commit capabilityNick Kledzik2008-02-261-0/+1
| | | | llvm-svn: 47584
* Update bitcode reader and writer to handle multiple return values. Devang Patel2008-02-263-19/+35
| | | | | | Take 2. llvm-svn: 47583
* Pass const vectors by reference.Devang Patel2008-02-262-8/+8
| | | | llvm-svn: 47577
* Add missing include (for ptrdiff_t).Eli Friedman2008-02-251-0/+1
| | | | llvm-svn: 47576
* Revert the assert for MUL_LOHI with an unused high result; ChrisDan Gohman2008-02-251-3/+0
| | | | | | pointed out that this isn't correct at -O0. llvm-svn: 47575
* when making bytecode modules, link as libraryAndrew Lenharth2008-02-251-1/+1
| | | | llvm-svn: 47574
* Revise previous patch per review.Dale Johannesen2008-02-251-4/+3
| | | | llvm-svn: 47573
* Factor the assert for indexed loads/stores out of LoadSDNodeDan Gohman2008-02-251-8/+4
| | | | | | and StoreSDNode into LSBaseSDNode. llvm-svn: 47570
* Add an assert to verify that we don't see anDan Gohman2008-02-251-0/+3
| | | | | | {S,U}MUL_LOHI with an unused high value. llvm-svn: 47569
* Remove the hack that turned an {S,U}MUL_LOHI with an unused highDan Gohman2008-02-251-9/+0
| | | | | | | | result into a MUL late in the X86 codegen process. ISD::MUL is once again Legal on X86, so this is no longer needed. And, the hack was suboptimal; see PR1874 for details. llvm-svn: 47567
* Make some static variables const.Dan Gohman2008-02-251-3/+3
| | | | llvm-svn: 47566
* add an assertion to catch a null PATypeHolder, patch by Erick TryzelaarChris Lattner2008-02-251-1/+2
| | | | llvm-svn: 47563
* Convert MaskedValueIsZero and all its users to use APInt. Also addDan Gohman2008-02-2510-71/+106
| | | | | | a SignBitIsZero function to simplify a common use case. llvm-svn: 47561
* add LSBaseSDNode::getOffset at Dan's request.Chris Lattner2008-02-251-0/+3
| | | | llvm-svn: 47558
* All remat'ed loads cannot be folded into two-address code. Not just argument ↵Evan Cheng2008-02-251-4/+4
| | | | | | loads. This change doesn't really have any impact on codegen. llvm-svn: 47557
* prune #includes, fit in 80 cols.Chris Lattner2008-02-252-6/+7
| | | | llvm-svn: 47556
* make this self contained.Chris Lattner2008-02-251-0/+1
| | | | llvm-svn: 47555
* Expand removal of MMX memory copies to allow 1 levelDale Johannesen2008-02-251-39/+75
| | | | | | of TokenFactor underneath chain (seems to be enough) llvm-svn: 47554
* Add a new method to SDNode/SDOperand named getValueSizeInBitsDan Gohman2008-02-251-0/+12
| | | | | | | that combines getValueType and MVT::getSizeInBits, since this occurrs frequently. llvm-svn: 47552
* In debug builds check that the key property holds: allDuncan Sands2008-02-251-12/+30
| | | | | | result and operand types are legal. llvm-svn: 47546
* Correctly determine whether a argument load can be folded into its uses.Evan Cheng2008-02-252-47/+54
| | | | llvm-svn: 47545
* Fix an issue where GVN was performing the return slot optimization when it wasOwen Anderson2008-02-252-8/+58
| | | | | | | not safe. This is fixed by more aggressively checking that the return slot is not used elsewhere in the function. llvm-svn: 47544
* Temporarily reverting 46959.Evan Cheng2008-02-252-2/+3
| | | | llvm-svn: 47542
* Fix an issue where GVN would try to use an instruction before its definition ↵Owen Anderson2008-02-253-1/+33
| | | | | | when performing return slot optimization. llvm-svn: 47541
* Add support to LegalizeTypes for building legal vectorsDuncan Sands2008-02-243-1/+103
| | | | | | | | | out of illegal elements (BUILD_VECTOR). Uses and beefs up BUILD_PAIR, though it didn't really have to. Like most of LegalizeTypes, does not support soft-float. This cures all "make check" vector building failures. llvm-svn: 47537
* Some platforms use the same name for 32-bit and 64-bit registers (likeBill Wendling2008-02-245-39/+58
| | | | | | | | | %r3 on PPC) in their ASM files. However, it's hard for humans to read during debugging. Adding a new field to the register data that lets you specify a different name to be printed than the one that goes into the ASM file -- %x3 instead of %r3, for instance. llvm-svn: 47534
* Backing out r47521 for now. This has broken a number of tests.Evan Cheng2008-02-233-40/+19
| | | | llvm-svn: 47533
* Merge current work back to tree to minimize diffs and drift. Major highlightsScott Michel2008-02-2311-998/+1918
| | | | | | | | | | | | | | for CellSPU modifications: - SPUInstrInfo.td refactoring: "multiclass" really is _your_ friend. - Other improvements based on refactoring effort in SPUISelLowering.cpp, esp. in SPUISelLowering::PerformDAGCombine(), where zero amount shifts and rotates are now eliminiated, other scalar-to-vector-to-scalar silliness is also eliminated. - 64-bit operations are being implemented, _muldi3.c gcc runtime now compiles and generates the right code. More work still needs to be done. llvm-svn: 47532
* Testcase for Revision 47478.Zhou Sheng2008-02-231-0/+9
| | | | llvm-svn: 47531
* Rematerialization logic was overly conservative when it comes to loads from ↵Evan Cheng2008-02-232-20/+55
| | | | | | fixed stack slots. llvm-svn: 47529
OpenPOWER on IntegriCloud