<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/test/Transforms/MemCpyOpt, branch release_30</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/test/Transforms/MemCpyOpt?h=release_30</id>
<link rel='self' href='https://git.amat.us/llvm/atom/test/Transforms/MemCpyOpt?h=release_30'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2011-08-17T22:22:24Z</updated>
<entry>
<title>Atomic load/store handling for the passes using memdep (GVN, DSE, memcpyopt).</title>
<updated>2011-08-17T22:22:24Z</updated>
<author>
<name>Eli Friedman</name>
<email>eli.friedman@gmail.com</email>
</author>
<published>2011-08-17T22:22:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=56efe24431b045be120d1fd5f6b0aa43a6b01c48'/>
<id>urn:sha1:56efe24431b045be120d1fd5f6b0aa43a6b01c48</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137888 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Land the long talked about "type system rewrite" patch.  This</title>
<updated>2011-07-09T17:41:24Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2011-07-09T17:41:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=1afcace3a3a138b1b18e5c6270caa8dae2261ae2'/>
<id>urn:sha1:1afcace3a3a138b1b18e5c6270caa8dae2261ae2</id>
<content type='text'>
patch brings numerous advantages to LLVM.  One way to look at it
is through diffstat:
 109 files changed, 3005 insertions(+), 5906 deletions(-)

Removing almost 3K lines of code is a good thing.  Other advantages
include:

1. Value::getType() is a simple load that can be CSE'd, not a mutating
   union-find operation.
2. Types a uniqued and never move once created, defining away PATypeHolder.
3. Structs can be "named" now, and their name is part of the identity that
   uniques them.  This means that the compiler doesn't merge them structurally
   which makes the IR much less confusing.
4. Now that there is no way to get a cycle in a type graph without a named
   struct type, "upreferences" go away.
5. Type refinement is completely gone, which should make LTO much MUCH faster
   in some common cases with C++ code.
6. Types are now generally immutable, so we can use "Type *" instead 
   "const Type *" everywhere.

Downsides of this patch are that it removes some functions from the C API,
so people using those will have to upgrade to (not yet added) new API.  
"LLVM 3.0" is the right time to do this.

There are still some cleanups pending after this, this patch is large enough
as-is.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134829 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>rip out a ton of intrinsic modernization logic from AutoUpgrade.cpp, which is</title>
<updated>2011-06-18T06:05:24Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2011-06-18T06:05:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=b85e4eba85a38698f3b3332f82554bf8442547e2'/>
<id>urn:sha1:b85e4eba85a38698f3b3332f82554bf8442547e2</id>
<content type='text'>
for pre-2.9 bitcode files.  We keep x86 unaligned loads, movnt, crc32, and the
target indep prefetch change.

As usual, updating the testsuite is a PITA.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133337 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>make the asmparser reject function and type redefinitions.  'Merging' hasn't been</title>
<updated>2011-06-17T07:06:44Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2011-06-17T07:06:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=d589099eec8d120b5a7227072c4e717856e2276f'/>
<id>urn:sha1:d589099eec8d120b5a7227072c4e717856e2276f</id>
<content type='text'>
needed since llvm-gcc 3.4 days.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133248 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>manually upgrade a bunch of tests to modern syntax, and remove some that</title>
<updated>2011-06-17T03:14:27Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2011-06-17T03:14:27Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=26b0000166ca3d00f2a1990b43a1f45cdac4e9b6'/>
<id>urn:sha1:26b0000166ca3d00f2a1990b43a1f45cdac4e9b6</id>
<content type='text'>
are either unreduced or only test old syntax.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133228 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>PR10067: Add missing safety check to call return transformation in MemCpyOpt::processStore.  If something accesses the dest of the "copy" between the call and the copy, the performCallSlotOptzn transformation is not valid.</title>
<updated>2011-06-02T21:24:42Z</updated>
<author>
<name>Eli Friedman</name>
<email>eli.friedman@gmail.com</email>
</author>
<published>2011-06-02T21:24:42Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=70d893e84b0de21205ad042c6c00148d0e3cd74e'/>
<id>urn:sha1:70d893e84b0de21205ad042c6c00148d0e3cd74e</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132485 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Teach valuetracking that byval arguments with a specified alignment are</title>
<updated>2011-05-23T00:03:39Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2011-05-23T00:03:39Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=b3f0673d52b72f34434dec13c4e2044c82012ef6'/>
<id>urn:sha1:b3f0673d52b72f34434dec13c4e2044c82012ef6</id>
<content type='text'>
aligned.

Teach memcpyopt to not give up all hope when confonted with an underaligned
memcpy feeding an overaligned byval.  If the *source* of the memcpy can be
determined to be adequeately aligned, or if it can be forced to be, we can
eliminate the memcpy.

This addresses PR9794.  We now compile the example into:

define i32 @f(%struct.p* nocapture byval align 8 %q) nounwind ssp {
entry:
  %call = call i32 @g(%struct.p* byval align 8 %q) nounwind
  ret i32 %call
}

in both x86-64 and x86-32 mode.  We still don't get a tailcall though,
because tailcalls apparently can't handle byval.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131884 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Actually check memcpy lengths, instead of just commenting about</title>
<updated>2011-01-21T22:07:57Z</updated>
<author>
<name>Dan Gohman</name>
<email>gohman@apple.com</email>
</author>
<published>2011-01-21T22:07:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=8fb25c53bdc22a1f480ac0a6c0215a23f397deb3'/>
<id>urn:sha1:8fb25c53bdc22a1f480ac0a6c0215a23f397deb3</id>
<content type='text'>
how they should be checked.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123999 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>revert 123144, reenabling the rest of memset formation.</title>
<updated>2011-01-12T03:25:15Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2011-01-12T03:25:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=d318fc2ceb9d5902277f6e3b0bd7b51b92f5d872'/>
<id>urn:sha1:d318fc2ceb9d5902277f6e3b0bd7b51b92f5d872</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123302 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>revert r123146 which disabled code that wasn't the root cause</title>
<updated>2011-01-12T01:52:23Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2011-01-12T01:52:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=d2e905027b3774bbc29562a5e3f64ad46bf6b0b8'/>
<id>urn:sha1:d2e905027b3774bbc29562a5e3f64ad46bf6b0b8</id>
<content type='text'>
of the bootstrap miscompare issue.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123299 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
</feed>
