Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | New helper function getMBBFromIndex() that given an index in any instruction ↵ | Roman Levenstein | 2008-02-18 | 2 | -16/+30 | |
| | | | | | | of an MBB returns a pointer the MBB. Reviewed by Evan. llvm-svn: 47267 | |||||
* | Add support to GVN for performing sret return slot optimization. This means ↵ | Owen Anderson | 2008-02-18 | 2 | -2/+94 | |
| | | | | | | | | | | | that, if an sret function tail calls another sret function, it should pass its own sret parameter to the tail callee, allowing it to fill in the correct return value. llvm-gcc does not emit this by default. Instead, it allocates space in the caller for the sret of the tail call and then uses memcpy to copy the result into the caller's sret parameter. This optimization detects and optimizes that case. llvm-svn: 47265 | |||||
* | I got the predicate backwards in my last patch. The comment is correct, the ↵ | Owen Anderson | 2008-02-18 | 1 | -1/+1 | |
| | | | | | | code was not. llvm-svn: 47264 | |||||
* | This check is not correct for mallocs, so exclude them earlier. | Owen Anderson | 2008-02-18 | 1 | -2/+2 | |
| | | | | llvm-svn: 47263 | |||||
* | For now, avoid commuting def MI for copy MI's whose source is not killed. ↵ | Evan Cheng | 2008-02-18 | 1 | -0/+7 | |
| | | | | | | That simply trade a live interval for another and because only the non-two-address operands can be folded into loads, may end up pessimising code. llvm-svn: 47262 | |||||
* | switch simplifycfg from using vectors for most things to smallvectors, | Chris Lattner | 2008-02-18 | 1 | -14/+12 | |
| | | | | | | this speeds it up 2.3% on eon. llvm-svn: 47261 | |||||
* | More bitfield improvements. | Anders Carlsson | 2008-02-18 | 1 | -19/+53 | |
| | | | | llvm-svn: 47260 | |||||
* | Fix bug where we would report the wrong value for __alignof__ with an expr ↵ | Anders Carlsson | 2008-02-18 | 1 | -5/+6 | |
| | | | | | | that is not a type. llvm-svn: 47259 | |||||
* | optimize away stackrestore calls that have no intervening alloca or call. | Chris Lattner | 2008-02-18 | 2 | -13/+58 | |
| | | | | llvm-svn: 47258 | |||||
* | upgrade this test. | Chris Lattner | 2008-02-18 | 1 | -11/+11 | |
| | | | | llvm-svn: 47257 | |||||
* | Clarify that 'sret' only applies to pointers, and | Duncan Sands | 2008-02-18 | 1 | -2/+3 | |
| | | | | | | only applies to the first parameter. llvm-svn: 47256 | |||||
* | Make the definition of the noalias attribute clearer. | Owen Anderson | 2008-02-18 | 1 | -2/+3 | |
| | | | | llvm-svn: 47255 | |||||
* | Duncan pointed out that we can fast fail here, because the sret parameter of | Owen Anderson | 2008-02-18 | 1 | -1/+2 | |
| | | | | | | a function must be the first parameter. llvm-svn: 47254 | |||||
* | Fix a comment, and a bug where we weren't applying the tail call logic in ↵ | Owen Anderson | 2008-02-18 | 1 | -6/+8 | |
| | | | | | | cases that failed the first test. llvm-svn: 47253 | |||||
* | Fix bugs that Chris noticed in my last patch. | Owen Anderson | 2008-02-18 | 1 | -9/+17 | |
| | | | | llvm-svn: 47252 | |||||
* | simplify some code, BreakUpSubtract always returns nonnull now. | Chris Lattner | 2008-02-18 | 1 | -4/+2 | |
| | | | | llvm-svn: 47251 | |||||
* | bitcasts of pointers are always pointers. | Chris Lattner | 2008-02-18 | 1 | -5/+2 | |
| | | | | | | | If we see a memcpy of a pointer, make sure to check later uses of the pointer as well. llvm-svn: 47250 | |||||
* | Add support for setting parameters to CallSite. | Owen Anderson | 2008-02-18 | 1 | -0/+9 | |
| | | | | llvm-svn: 47249 | |||||
* | Add a predicate to Argument to check for the StructRet attribute. | Owen Anderson | 2008-02-17 | 2 | -0/+11 | |
| | | | | llvm-svn: 47248 | |||||
* | Teach getModRefInfo that memcpy, memmove, and memset don't "capture" memory ↵ | Owen Anderson | 2008-02-17 | 1 | -3/+13 | |
| | | | | | | | | | addresses. Also, noalias arguments are be considered "like" stack allocated ones for this purpose, because the only way they can be modref'ed is if they escape somewhere in the current function. llvm-svn: 47247 | |||||
* | Turn handling of parameter attributes back on, fixing the ObjC breakage | Nate Begeman | 2008-02-17 | 2 | -2/+3 | |
| | | | | llvm-svn: 47246 | |||||
* | Revert this temporarily, it's breaking objc :/ | Nate Begeman | 2008-02-17 | 1 | -2/+2 | |
| | | | | llvm-svn: 47245 | |||||
* | Fold (-x + -y) -> -(x+y) which promotes better association, fixing | Chris Lattner | 2008-02-17 | 2 | -2/+22 | |
| | | | | | | the second half of PR2047 llvm-svn: 47244 | |||||
* | Handle parameter attributes | Nate Begeman | 2008-02-17 | 1 | -3/+3 | |
| | | | | llvm-svn: 47243 | |||||
* | fix pasto | Chris Lattner | 2008-02-17 | 1 | -1/+1 | |
| | | | | llvm-svn: 47242 | |||||
* | Split up subtracts into add+negate if they have a reassociable use or operand | Chris Lattner | 2008-02-17 | 2 | -5/+21 | |
| | | | | | | that is also a subtract. This implements PR2047 and Transforms/Reassociate/subtest2.ll llvm-svn: 47241 | |||||
* | upgrade and simplify this test. | Chris Lattner | 2008-02-17 | 1 | -6/+7 | |
| | | | | llvm-svn: 47240 | |||||
* | make the logic for breaking up subtracts more explicit, no | Chris Lattner | 2008-02-17 | 1 | -9/+22 | |
| | | | | | | functionality change. llvm-svn: 47239 | |||||
* | Remove llvm-upgrade. | Tanya Lattner | 2008-02-17 | 50 | -906/+906 | |
| | | | | llvm-svn: 47238 | |||||
* | move PR2053 to here. | Chris Lattner | 2008-02-17 | 1 | -0/+12 | |
| | | | | llvm-svn: 47237 | |||||
* | Fix PR2042. One remaining issue: we don't currently diagnose | Chris Lattner | 2008-02-17 | 4 | -4/+11 | |
| | | | | | | | | | int foobar(int); int foobar() {} which requires ifdef'ing out a testcase in predefined-function.c. llvm-svn: 47236 | |||||
* | Change alignment for doubles to 32 bits which is what X86 has. | Anders Carlsson | 2008-02-17 | 1 | -1/+2 | |
| | | | | llvm-svn: 47234 | |||||
* | Implemnt isVariablyModifiedType correctly. | Eli Friedman | 2008-02-17 | 2 | -6/+25 | |
| | | | | llvm-svn: 47233 | |||||
* | fix this test. | Chris Lattner | 2008-02-17 | 1 | -1/+1 | |
| | | | | llvm-svn: 47232 | |||||
* | Remove llvm-upgrade | Tanya Lattner | 2008-02-17 | 1 | -10/+6 | |
| | | | | llvm-svn: 47231 | |||||
* | Remove llvm-upgrade. | Tanya Lattner | 2008-02-17 | 2 | -17/+21 | |
| | | | | llvm-svn: 47230 | |||||
* | this test isn't useful since we added @ notation for globals. | Chris Lattner | 2008-02-17 | 1 | -21/+0 | |
| | | | | llvm-svn: 47229 | |||||
* | this line was commented out. | Chris Lattner | 2008-02-17 | 1 | -1/+1 | |
| | | | | llvm-svn: 47228 | |||||
* | Remove llvm-upgrade and update tests. | Tanya Lattner | 2008-02-16 | 2 | -31/+8 | |
| | | | | llvm-svn: 47227 | |||||
* | implement codegen support for aggregates casted to void. | Chris Lattner | 2008-02-16 | 2 | -5/+18 | |
| | | | | llvm-svn: 47226 | |||||
* | Removing llvm upgrade, so remove tests specific to llvm-upgrade and update ↵ | Tanya Lattner | 2008-02-16 | 27 | -13270/+13054 | |
| | | | | | | the tests that used it. llvm-svn: 47225 | |||||
* | A couple of msvc compile fixes from the ml; I haven't tested with msvc, | Eli Friedman | 2008-02-16 | 2 | -2/+3 | |
| | | | | | | but the fixes are reasonable. llvm-svn: 47224 | |||||
* | Implement extern block var. | Lauro Ramos Venancio | 2008-02-16 | 3 | -4/+16 | |
| | | | | llvm-svn: 47223 | |||||
* | Remove any 'nest' parameter attributes if the function | Duncan Sands | 2008-02-16 | 2 | -10/+109 | |
| | | | | | | is not passed as an argument to a trampoline intrinsic. llvm-svn: 47220 | |||||
* | Some micro-optimizations. | Duncan Sands | 2008-02-16 | 1 | -4/+5 | |
| | | | | llvm-svn: 47219 | |||||
* | Add more tests | Anders Carlsson | 2008-02-16 | 1 | -8/+35 | |
| | | | | llvm-svn: 47217 | |||||
* | Better handling of the aligned attribute. | Anders Carlsson | 2008-02-16 | 4 | -18/+57 | |
| | | | | llvm-svn: 47216 | |||||
* | I cannot find a libgcc function for this builtin. Therefor expanding it to ↵ | Andrew Lenharth | 2008-02-16 | 9 | -9/+33 | |
| | | | | | | a noop (which is how it use to be treated). If someone who knows the x86 backend better than me could tell me how to get a lock prefix on an instruction, that would be nice to complete x86 support. llvm-svn: 47213 | |||||
* | Teach LegalizeTypes how to expand the operands of | Duncan Sands | 2008-02-16 | 2 | -4/+25 | |
| | | | | | | br_cc. This fixes 5 "make check" failures. llvm-svn: 47212 | |||||
* | Try to clarify which compilers can be used for the | Duncan Sands | 2008-02-16 | 1 | -6/+7 | |
| | | | | | | build. llvm-svn: 47211 |