Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Various tweaks related to apint codegen. No functionality | Duncan Sands | 2008-06-09 | 3 | -4/+4 | |
| | | | | | | change for non-funky-sized integers. llvm-svn: 52151 | |||||
* | Handle empty aggregate values. | Dan Gohman | 2008-06-09 | 1 | -21/+22 | |
| | | | | llvm-svn: 52150 | |||||
* | Remove some DAG combiner assumptions about sizes | Duncan Sands | 2008-06-09 | 1 | -28/+21 | |
| | | | | | | | | | | | of integer types. Fix the isMask APInt method to actually work (hopefully) rather than crashing because it adds apints of different bitwidths. It looks like isShiftedMask is also broken, but I'm leaving that one to the APInt people (it is not used anywhere). llvm-svn: 52142 | |||||
* | Remove comparison methods for MVT. The main cause | Duncan Sands | 2008-06-08 | 9 | -89/+75 | |
| | | | | | | | | | | | of apint codegen failure is the DAG combiner doing the wrong thing because it was comparing MVT's using < rather than comparing the number of bits. Removing the < method makes this mistake impossible to commit. Instead, add helper methods for comparing bits and use them. llvm-svn: 52098 | |||||
* | CodeGen support for insertvalue and extractvalue, and for loads and | Dan Gohman | 2008-06-07 | 1 | -26/+233 | |
| | | | | | | stores of aggregate values. llvm-svn: 52069 | |||||
* | Connect successors before creating the DAG node for the branch. This has | Owen Anderson | 2008-06-07 | 1 | -22/+24 | |
| | | | | | | | no visible functionality change, but enables a future patch where node creation will update the CFG if it decides to create an unconditional rather than a conditional branch. llvm-svn: 52067 | |||||
* | Tighten up the abstraction slightly. | Duncan Sands | 2008-06-06 | 1 | -10/+10 | |
| | | | | llvm-svn: 52045 | |||||
* | Wrap MVT::ValueType in a struct to get type safety | Duncan Sands | 2008-06-06 | 16 | -1279/+1255 | |
| | | | | | | | | | | | | | | | | and better control the abstraction. Rename the type to MVT. To update out-of-tree patches, the main thing to do is to rename MVT::ValueType to MVT, and rewrite expressions like MVT::getSizeInBits(VT) in the form VT.getSizeInBits(). Use VT.getSimpleVT() to extract a MVT::SimpleValueType for use in switch statements (you will get an assert failure if VT is an extended value type - these shouldn't exist after type legalization). This results in a small speedup of codegen and no new testsuite failures (x86-64 linux). llvm-svn: 52044 | |||||
* | Fix a memcpy lowering bug. Even though the memcpy alignment is smaller than ↵ | Evan Cheng | 2008-06-04 | 1 | -2/+3 | |
| | | | | | | the desired alignment, the frame destination alignment may still be larger than the desired alignment. Don't change its alignment to something smaller. llvm-svn: 51970 | |||||
* | Fix spellnig error | Scott Michel | 2008-06-03 | 1 | -6/+5 | |
| | | | | llvm-svn: 51917 | |||||
* | Fold adds and subtracts of zero immediately, instead of waiting | Dan Gohman | 2008-06-02 | 1 | -4/+4 | |
| | | | | | | for dagcombine to do this. llvm-svn: 51886 | |||||
* | Add necessary 64-bit support so that gcc frontend compiles (mostly). Current | Scott Michel | 2008-06-02 | 1 | -1/+10 | |
| | | | | | | | issue is operand promotion for setcc/select... but looks like the fundamental stuff is implemented for CellSPU. llvm-svn: 51884 | |||||
* | Remove an unused variable. | Dan Gohman | 2008-05-31 | 1 | -1/+0 | |
| | | | | llvm-svn: 51807 | |||||
* | Remove an unused variable. | Dan Gohman | 2008-05-30 | 1 | -1/+0 | |
| | | | | llvm-svn: 51721 | |||||
* | Expand small memmovs using inline code. Set the X86 threshold for expanding | Dan Gohman | 2008-05-29 | 1 | -5/+73 | |
| | | | | | | memmove to a more plausible value, now that it's actually being used. llvm-svn: 51696 | |||||
* | Implement vector shift up / down and insert zero with ps{rl}lq / ps{rl}ldq. | Evan Cheng | 2008-05-29 | 1 | -3/+10 | |
| | | | | llvm-svn: 51667 | |||||
* | Fix some constructs that gcc-4.4 warns about. | Duncan Sands | 2008-05-27 | 1 | -1/+1 | |
| | | | | llvm-svn: 51591 | |||||
* | Add #includes to make some dependencies explicit. | Dan Gohman | 2008-05-23 | 1 | -0/+1 | |
| | | | | llvm-svn: 51496 | |||||
* | Generalize the new code in instcombine's ComputeNumSignBits for handling | Dan Gohman | 2008-05-23 | 1 | -7/+13 | |
| | | | | | | | and/or to handle more cases (such as this add-sitofp.ll testcase), and port it to selectiondag's ComputeNumSignBits. llvm-svn: 51469 | |||||
* | Use isSingleValueType instead of isFirstClassType to | Dan Gohman | 2008-05-23 | 1 | -2/+2 | |
| | | | | | | exclude struct and array types. llvm-svn: 51460 | |||||
* | Port the fix for the select operator from instcombine's | Dan Gohman | 2008-05-20 | 1 | -2/+2 | |
| | | | | | | ComputeNumSignBits to SelectionDAG's ComputeNumSignBits. llvm-svn: 51348 | |||||
* | Code simplification. | Dan Gohman | 2008-05-20 | 1 | -6/+4 | |
| | | | | llvm-svn: 51345 | |||||
* | If the result of a BIT_CONVERT is a v1* vector, it doesn't mean its source ↵ | Evan Cheng | 2008-05-16 | 1 | -3/+6 | |
| | | | | | | is a v1* vector. llvm-svn: 51192 | |||||
* | Silence the compiler warning differently. The | Duncan Sands | 2008-05-16 | 1 | -1/+1 | |
| | | | | | | original method caused gcc-4.2 to complain. llvm-svn: 51186 | |||||
* | Actually scalarize the operand to BIT_CONVERT instead of asking someone to do | Nate Begeman | 2008-05-15 | 1 | -1/+2 | |
| | | | | | | something with a v1 type. llvm-svn: 51160 | |||||
* | IR support for extractvalue and insertvalue instructions. Also, begin | Dan Gohman | 2008-05-15 | 1 | -0/+13 | |
| | | | | | | moving toward making structs and arrays first-class types. llvm-svn: 51157 | |||||
* | Make use of vector load and store operations to implement memcpy, memmove, ↵ | Evan Cheng | 2008-05-15 | 1 | -90/+135 | |
| | | | | | | and memset. Currently only X86 target is taking advantage of these. llvm-svn: 51140 | |||||
* | Use a better idiom to silence compiler warnings. | Evan Cheng | 2008-05-14 | 1 | -20/+5 | |
| | | | | llvm-svn: 51131 | |||||
* | Really silence compiler warnings. | Evan Cheng | 2008-05-14 | 1 | -2/+2 | |
| | | | | llvm-svn: 51126 | |||||
* | Really silence compiler warnings. | Evan Cheng | 2008-05-14 | 1 | -5/+20 | |
| | | | | llvm-svn: 51123 | |||||
* | Silence some compiler warnings. | Evan Cheng | 2008-05-14 | 3 | -5/+13 | |
| | | | | llvm-svn: 51115 | |||||
* | When bit-twiddling CondCode values for integer comparisons produces | Dan Gohman | 2008-05-14 | 1 | -0/+1 | |
| | | | | | | SETOEQ, is it does with (SETEQ & SETULE), map it to SETEQ. llvm-svn: 51112 | |||||
* | Whitespace cleanups. | Dan Gohman | 2008-05-14 | 1 | -1/+1 | |
| | | | | llvm-svn: 51089 | |||||
* | Instead of a vector load, shuffle and then extract an element. Load the ↵ | Evan Cheng | 2008-05-13 | 2 | -33/+88 | |
| | | | | | | | | | | | element from address with an offset. pshufd $1, (%rdi), %xmm0 movd %xmm0, %eax => movl 4(%rdi), %eax llvm-svn: 51026 | |||||
* | Clean up the use of static and anonymous namespaces. This turned up | Dan Gohman | 2008-05-13 | 2 | -13/+11 | |
| | | | | | | | several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017 | |||||
* | Teach Legalize how to scalarize VSETCC | Nate Begeman | 2008-05-12 | 1 | -0/+10 | |
| | | | | | | Teach X86 a few more vsetcc patterns. Custom lowering for unsupported ones is next. llvm-svn: 51009 | |||||
* | Xform bitconvert(build_pair(load a, load b)) to a single load if the load ↵ | Evan Cheng | 2008-05-12 | 2 | -1/+50 | |
| | | | | | | locations are at the right offset from each other. llvm-svn: 51008 | |||||
* | Refactor isConsecutiveLoad from X86 to TargetLowering so DAG combiner can ↵ | Evan Cheng | 2008-05-12 | 1 | -0/+68 | |
| | | | | | | make use of it. llvm-svn: 50991 | |||||
* | Add support for vicmp/vfcmp codegen, more legalize support coming. | Nate Begeman | 2008-05-12 | 3 | -0/+98 | |
| | | | | | | This is necessary to unbreak the build. llvm-svn: 50988 | |||||
* | Fix a missing break in the ISD::FLT_ROUNDS_ handling. Patch by giuma! | Dan Gohman | 2008-05-12 | 1 | -0/+1 | |
| | | | | llvm-svn: 50967 | |||||
* | Turn StripPointerCast() into a method | Anton Korobeynikov | 2008-05-07 | 1 | -2/+2 | |
| | | | | llvm-svn: 50836 | |||||
* | Fix a bug in the ComputeMaskedBits logic for multiply. | Dan Gohman | 2008-05-07 | 1 | -2/+2 | |
| | | | | llvm-svn: 50793 | |||||
* | Make StripPointerCast a common function (should we mak it method of Value ↵ | Anton Korobeynikov | 2008-05-06 | 1 | -3/+2 | |
| | | | | | | instead?) llvm-svn: 50775 | |||||
* | Make several variable declarations static. | Dan Gohman | 2008-05-06 | 1 | -2/+2 | |
| | | | | llvm-svn: 50696 | |||||
* | Instead of enumerating each opcode that isn't handled that | Dan Gohman | 2008-05-06 | 1 | -11/+1 | |
| | | | | | | | ComputeMaskedBits handles, just use a 'default:'. This avoids TargetLowering's list getting out of date with SelectionDAG's. llvm-svn: 50693 | |||||
* | Correct the value of LowBits in srem and urem handling in | Dan Gohman | 2008-05-06 | 1 | -3/+3 | |
| | | | | | | ComputeMaskedBits. llvm-svn: 50692 | |||||
* | Added addition atomic instrinsics and, or, xor, min, and max. | Mon P Wang | 2008-05-05 | 4 | -37/+100 | |
| | | | | llvm-svn: 50663 | |||||
* | Fix a mistake in the computation of leading zeros for udiv. | Dan Gohman | 2008-05-02 | 1 | -3/+5 | |
| | | | | llvm-svn: 50591 | |||||
* | Fix a typo in a comment. | Dan Gohman | 2008-05-02 | 1 | -1/+1 | |
| | | | | llvm-svn: 50562 | |||||
* | Use push_back(...) instead of resize(1, ...), per review feedback. | Dan Gohman | 2008-05-02 | 1 | -2/+2 | |
| | | | | llvm-svn: 50561 |