Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Fix isNegatibleForFree to not return true for ConstantFP nodes | Chris Lattner | 2008-02-26 | 1 | -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 memory | Evan Cheng | 2008-02-26 | 1 | -0/+55 | |
| | | | | | | operands into inline asm block. llvm-svn: 47589 | |||||
* | Refactor inline asm constraint matching code out of SDIsel into TargetLowering. | Evan Cheng | 2008-02-26 | 2 | -93/+17 | |
| | | | | llvm-svn: 47587 | |||||
* | Remove debugging help. | Devang Patel | 2008-02-26 | 1 | -1/+0 | |
| | | | | llvm-svn: 47585 | |||||
* | Update bitcode reader and writer to handle multiple return values. | Devang Patel | 2008-02-26 | 2 | -18/+34 | |
| | | | | | | Take 2. llvm-svn: 47583 | |||||
* | Pass const vectors by reference. | Devang Patel | 2008-02-26 | 1 | -4/+4 | |
| | | | | llvm-svn: 47577 | |||||
* | Revert the assert for MUL_LOHI with an unused high result; Chris | Dan Gohman | 2008-02-25 | 1 | -3/+0 | |
| | | | | | | pointed out that this isn't correct at -O0. llvm-svn: 47575 | |||||
* | Revise previous patch per review. | Dale Johannesen | 2008-02-25 | 1 | -4/+3 | |
| | | | | llvm-svn: 47573 | |||||
* | Add an assert to verify that we don't see an | Dan Gohman | 2008-02-25 | 1 | -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 high | Dan Gohman | 2008-02-25 | 1 | -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 Gohman | 2008-02-25 | 1 | -3/+3 | |
| | | | | llvm-svn: 47566 | |||||
* | Convert MaskedValueIsZero and all its users to use APInt. Also add | Dan Gohman | 2008-02-25 | 9 | -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 Cheng | 2008-02-25 | 1 | -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 level | Dale Johannesen | 2008-02-25 | 1 | -39/+75 | |
| | | | | | | of TokenFactor underneath chain (seems to be enough) llvm-svn: 47554 | |||||
* | In debug builds check that the key property holds: all | Duncan Sands | 2008-02-25 | 1 | -12/+30 | |
| | | | | | | result and operand types are legal. llvm-svn: 47546 | |||||
* | Correctly determine whether a argument load can be folded into its uses. | Evan Cheng | 2008-02-25 | 1 | -45/+52 | |
| | | | | llvm-svn: 47545 | |||||
* | Fix an issue where GVN was performing the return slot optimization when it was | Owen Anderson | 2008-02-25 | 1 | -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 Cheng | 2008-02-25 | 1 | -2/+2 | |
| | | | | llvm-svn: 47542 | |||||
* | Fix an issue where GVN would try to use an instruction before its definition ↵ | Owen Anderson | 2008-02-25 | 1 | -0/+7 | |
| | | | | | | when performing return slot optimization. llvm-svn: 47541 | |||||
* | Add support to LegalizeTypes for building legal vectors | Duncan Sands | 2008-02-24 | 3 | -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 (like | Bill Wendling | 2008-02-24 | 3 | -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 Cheng | 2008-02-23 | 2 | -39/+18 | |
| | | | | llvm-svn: 47533 | |||||
* | Merge current work back to tree to minimize diffs and drift. Major highlights | Scott Michel | 2008-02-23 | 9 | -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 Cheng | 2008-02-23 | 1 | -20/+6 | |
| | | | | | | fixed stack slots. llvm-svn: 47529 | |||||
* | If remating a machine instr with virtual register operand, make sure the vr ↵ | Evan Cheng | 2008-02-23 | 1 | -2/+1 | |
| | | | | | | is avaliable at all uses regardless of whether it would be folded. llvm-svn: 47526 | |||||
* | Turning on remat of pic loads. | Evan Cheng | 2008-02-23 | 1 | -1/+1 | |
| | | | | llvm-svn: 47524 | |||||
* | Fix a bug that caused opt and other tools to silently ignore | Dan Gohman | 2008-02-23 | 1 | -1/+1 | |
| | | | | | | invalid command-line options. llvm-svn: 47523 | |||||
* | No need recognize load from a fixed argument slot as re-materializable. ↵ | Evan Cheng | 2008-02-23 | 1 | -12/+0 | |
| | | | | | | LiveIntervalAnalysis already handles it as a special case. llvm-svn: 47522 | |||||
* | Properly read and write bitcodes for multiple return values. | Devang Patel | 2008-02-23 | 2 | -18/+39 | |
| | | | | llvm-svn: 47521 | |||||
* | Recognize loads of arguments as re-materializable first. Therefore if ↵ | Evan Cheng | 2008-02-23 | 1 | -24/+26 | |
| | | | | | | isReallyTriviallyReMaterializable() returns true it doesn't confuse it as a "normal" re-materializable instruction. llvm-svn: 47520 | |||||
* | Regenerate. | Devang Patel | 2008-02-23 | 2 | -2/+2 | |
| | | | | llvm-svn: 47519 | |||||
* | Use isa check instead of getTypeID() check. | Devang Patel | 2008-02-23 | 1 | -1/+1 | |
| | | | | llvm-svn: 47518 | |||||
* | Fixed buffer overflow reported by Argiris Kirtzidis. | Ted Kremenek | 2008-02-23 | 1 | -1/+1 | |
| | | | | llvm-svn: 47517 | |||||
* | print getresult operand and its type directly. | Devang Patel | 2008-02-23 | 1 | -11/+1 | |
| | | | | llvm-svn: 47514 | |||||
* | Use dyn_cast instead of isa + cast. | Devang Patel | 2008-02-23 | 1 | -2/+2 | |
| | | | | llvm-svn: 47511 | |||||
* | Regenerate | Devang Patel | 2008-02-23 | 3 | -487/+447 | |
| | | | | llvm-svn: 47509 | |||||
* | To support multiple return values, now ret instruction supports multiple ↵ | Devang Patel | 2008-02-23 | 4 | -51/+68 | |
| | | | | | | operands instead of one aggregate operand. llvm-svn: 47508 | |||||
* | Fix spill weight updating bug. | Evan Cheng | 2008-02-23 | 1 | -15/+27 | |
| | | | | llvm-svn: 47507 | |||||
* | Split ParameterAttributes.h, putting the complicated | Dale Johannesen | 2008-02-22 | 19 | -320/+323 | |
| | | | | | | | stuff into ParamAttrsList.h. Per feedback from ParamAttrs changes. llvm-svn: 47504 | |||||
* | Same isPhysRegAvailable bug as local register allocator. | Evan Cheng | 2008-02-22 | 1 | -1/+1 | |
| | | | | llvm-svn: 47500 | |||||
* | Really really bad local register allocator bug. On X86, it was never using ↵ | Evan Cheng | 2008-02-22 | 1 | -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 Cheng | 2008-02-22 | 1 | -0/+2 | |
| | | | | llvm-svn: 47496 | |||||
* | Regenerate | Devang Patel | 2008-02-22 | 3 | -468/+466 | |
| | | | | llvm-svn: 47495 | |||||
* | Use SymbolicValueRef to parse getresult operand | Devang Patel | 2008-02-22 | 1 | -3/+2 | |
| | | | | llvm-svn: 47494 | |||||
* | Make sure reload of implicit uses are issued before remat's. | Evan Cheng | 2008-02-22 | 1 | -3/+15 | |
| | | | | llvm-svn: 47492 | |||||
* | Generated files for 47484. | Dale Johannesen | 2008-02-22 | 3 | -293/+295 | |
| | | | | llvm-svn: 47485 | |||||
* | Pass alignment on ByVal parameters, from FE, all | Dale Johannesen | 2008-02-22 | 4 | -1/+38 | |
| | | | | | | the way through. It is now used for codegen. llvm-svn: 47484 | |||||
* | MMX vectors are passed 4-byte aligned. | Dale Johannesen | 2008-02-22 | 1 | -4/+4 | |
| | | | | llvm-svn: 47483 | |||||
* | Provide __main hooks for cygwin & mingw32 | Anton Korobeynikov | 2008-02-22 | 2 | -17/+28 | |
| | | | | llvm-svn: 47479 | |||||
* | Fixed a typo. | Zhou Sheng | 2008-02-22 | 1 | -1/+1 | |
| | | | | llvm-svn: 47478 |