Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Fix two issues that Eli Friedman pointed out, where would misoptimized code ↵ | Owen Anderson | 2008-06-01 | 1 | -3/+14 |
| | | | | | | | | | | | | | | | | like: char a[200]; init(a, a+200); OR int a[200]; char* b = (char*)a; char* c = (char*)a; foo(b, c); llvm-svn: 51850 | ||||
* | Don't remove the memcpy when call slot substitution fails. | Owen Anderson | 2008-06-01 | 1 | -0/+5 |
| | | | | llvm-svn: 51848 | ||||
* | API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. ↵ | Gabor Greif | 2008-05-16 | 1 | -1/+1 |
| | | | | | | Legacy interfaces will be in place for some time. (Merge from use-diet branch.) llvm-svn: 51200 | ||||
* | processStore may delete the instruction, avoid | Torok Edwin | 2008-05-04 | 1 | -2/+1 |
| | | | | | | using dyn_cast<> on already freed memory. llvm-svn: 50618 | ||||
* | Revert r50441. The original code was correct. Add some more comments so ↵ | Owen Anderson | 2008-04-29 | 1 | -3/+9 |
| | | | | | | that I don't make the same mistake in the future. llvm-svn: 50446 | ||||
* | Fix a bug in memcpyopt where the memcpy-memcpy transform was never being ↵ | Owen Anderson | 2008-04-29 | 1 | -4/+6 |
| | | | | | | | | | applied because we were checking for it in the wrong order. This caused a miscompilation because the return slot optimization assumes that the call it is dealing with is NOT a memcpy. llvm-svn: 50444 | ||||
* | We should be returning true here since we've changed the function. | Owen Anderson | 2008-04-29 | 1 | -1/+1 |
| | | | | llvm-svn: 50442 | ||||
* | Refactor memcpyopt based on Chris' suggestions. Consolidate several functions | Owen Anderson | 2008-04-21 | 1 | -92/+44 |
| | | | | | | and simplify code that was fallout from the separation of memcpyopt and gvn. llvm-svn: 50034 | ||||
* | Factor a bunch of functionality related to memcpy and memset transforms out of | Owen Anderson | 2008-04-09 | 1 | -0/+769 |
GVN and into its own pass. llvm-svn: 49419 |