summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix isNegatibleForFree to not return true for ConstantFP nodes Chris Lattner2008-02-261-33/+47
| | | | | | | | | 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-261-0/+55
| | | | | | operands into inline asm block. llvm-svn: 47589
* Refactor inline asm constraint matching code out of SDIsel into TargetLowering.Evan Cheng2008-02-262-93/+17
| | | | llvm-svn: 47587
* Remove debugging help.Devang Patel2008-02-261-1/+0
| | | | llvm-svn: 47585
* Update bitcode reader and writer to handle multiple return values. Devang Patel2008-02-262-18/+34
| | | | | | Take 2. llvm-svn: 47583
* Pass const vectors by reference.Devang Patel2008-02-261-4/+4
| | | | llvm-svn: 47577
* 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
* Revise previous patch per review.Dale Johannesen2008-02-251-4/+3
| | | | llvm-svn: 47573
* 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
* Convert MaskedValueIsZero and all its users to use APInt. Also addDan Gohman2008-02-259-70/+101
| | | | | | a SignBitIsZero function to simplify a common use case. llvm-svn: 47561
* 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
* 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
* 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-251-45/+52
| | | | llvm-svn: 47545
* Fix an issue where GVN was performing the return slot optimization when it wasOwen Anderson2008-02-251-8/+26
| | | | | | | 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-251-2/+2
| | | | llvm-svn: 47542
* Fix an issue where GVN would try to use an instruction before its definition ↵Owen Anderson2008-02-251-0/+7
| | | | | | 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-243-38/+40
| | | | | | | | | %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-232-39/+18
| | | | llvm-svn: 47533
* Merge current work back to tree to minimize diffs and drift. Major highlightsScott Michel2008-02-239-993/+1903
| | | | | | | | | | | | | | 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
* Rematerialization logic was overly conservative when it comes to loads from ↵Evan Cheng2008-02-231-20/+6
| | | | | | fixed stack slots. llvm-svn: 47529
* If remating a machine instr with virtual register operand, make sure the vr ↵Evan Cheng2008-02-231-2/+1
| | | | | | is avaliable at all uses regardless of whether it would be folded. llvm-svn: 47526
* Turning on remat of pic loads.Evan Cheng2008-02-231-1/+1
| | | | llvm-svn: 47524
* Fix a bug that caused opt and other tools to silently ignoreDan Gohman2008-02-231-1/+1
| | | | | | invalid command-line options. llvm-svn: 47523
* No need recognize load from a fixed argument slot as re-materializable. ↵Evan Cheng2008-02-231-12/+0
| | | | | | LiveIntervalAnalysis already handles it as a special case. llvm-svn: 47522
* Properly read and write bitcodes for multiple return values.Devang Patel2008-02-232-18/+39
| | | | llvm-svn: 47521
* Recognize loads of arguments as re-materializable first. Therefore if ↵Evan Cheng2008-02-231-24/+26
| | | | | | isReallyTriviallyReMaterializable() returns true it doesn't confuse it as a "normal" re-materializable instruction. llvm-svn: 47520
* Regenerate.Devang Patel2008-02-232-2/+2
| | | | llvm-svn: 47519
* Use isa check instead of getTypeID() check.Devang Patel2008-02-231-1/+1
| | | | llvm-svn: 47518
* Fixed buffer overflow reported by Argiris Kirtzidis.Ted Kremenek2008-02-231-1/+1
| | | | llvm-svn: 47517
* print getresult operand and its type directly.Devang Patel2008-02-231-11/+1
| | | | llvm-svn: 47514
* Use dyn_cast instead of isa + cast.Devang Patel2008-02-231-2/+2
| | | | llvm-svn: 47511
* RegenerateDevang Patel2008-02-233-487/+447
| | | | llvm-svn: 47509
* To support multiple return values, now ret instruction supports multiple ↵Devang Patel2008-02-234-51/+68
| | | | | | operands instead of one aggregate operand. llvm-svn: 47508
* Fix spill weight updating bug.Evan Cheng2008-02-231-15/+27
| | | | llvm-svn: 47507
* Split ParameterAttributes.h, putting the complicatedDale Johannesen2008-02-2219-320/+323
| | | | | | | stuff into ParamAttrsList.h. Per feedback from ParamAttrs changes. llvm-svn: 47504
* Same isPhysRegAvailable bug as local register allocator.Evan Cheng2008-02-221-1/+1
| | | | llvm-svn: 47500
* Really really bad local register allocator bug. On X86, it was never using ↵Evan Cheng2008-02-221-1/+1
| | | | | | | | ESI, EDI, and EBP because of a bug in RALocal::isPhysRegAvailable(). For example, when it checks if ESI is available, it then looks at registers aliases to ESI. SIL is marked -2 (not allocatable) but isPhysRegAvailable() incorrectly assumes it is in use and returns false for ESI. llvm-svn: 47499
* Add debugging printfs.Evan Cheng2008-02-221-0/+2
| | | | llvm-svn: 47496
* RegenerateDevang Patel2008-02-223-468/+466
| | | | llvm-svn: 47495
* Use SymbolicValueRef to parse getresult operandDevang Patel2008-02-221-3/+2
| | | | llvm-svn: 47494
* Make sure reload of implicit uses are issued before remat's.Evan Cheng2008-02-221-3/+15
| | | | llvm-svn: 47492
* Generated files for 47484.Dale Johannesen2008-02-223-293/+295
| | | | llvm-svn: 47485
* Pass alignment on ByVal parameters, from FE, allDale Johannesen2008-02-224-1/+38
| | | | | | the way through. It is now used for codegen. llvm-svn: 47484
* MMX vectors are passed 4-byte aligned.Dale Johannesen2008-02-221-4/+4
| | | | llvm-svn: 47483
* Provide __main hooks for cygwin & mingw32Anton Korobeynikov2008-02-222-17/+28
| | | | llvm-svn: 47479
* Fixed a typo.Zhou Sheng2008-02-221-1/+1
| | | | llvm-svn: 47478
OpenPOWER on IntegriCloud