<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/test/Transforms/SimplifyCFG, branch release_28</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/test/Transforms/SimplifyCFG?h=release_28</id>
<link rel='self' href='https://git.amat.us/llvm/atom/test/Transforms/SimplifyCFG?h=release_28'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2010-08-30T10:48:29Z</updated>
<entry>
<title>Correct bogus module triple specifications.</title>
<updated>2010-08-30T10:48:29Z</updated>
<author>
<name>Duncan Sands</name>
<email>baldrick@free.fr</email>
</author>
<published>2010-08-30T10:48:29Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=cdd4f8c7cb0e5aa6e8d2b73f668c459936fe11d3'/>
<id>urn:sha1:cdd4f8c7cb0e5aa6e8d2b73f668c459936fe11d3</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112469 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Instead, teach SimplifyCFG to trim non-address-taken blocks from</title>
<updated>2010-08-16T14:41:14Z</updated>
<author>
<name>Dan Gohman</name>
<email>gohman@apple.com</email>
</author>
<published>2010-08-16T14:41:14Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=7a4994356b0e9726384edda57f7db65e5bc10673'/>
<id>urn:sha1:7a4994356b0e9726384edda57f7db65e5bc10673</id>
<content type='text'>
indirectbr destination lists.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111122 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Teach SimplifyCFG how to simplify indirectbr instructions.</title>
<updated>2010-08-14T00:29:42Z</updated>
<author>
<name>Dan Gohman</name>
<email>gohman@apple.com</email>
</author>
<published>2010-08-14T00:29:42Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=e2c6d131d12c779a410740e0a90545def75e0f48'/>
<id>urn:sha1:e2c6d131d12c779a410740e0a90545def75e0f48</id>
<content type='text'>
 - Eliminate redundant successors.
 - Convert an indirectbr with one successor into a direct branch.

Also, generalize SimplifyCFG to be able to be run on a function entry block.
It knows quite a few simplifications which are applicable to the entry
block, and it only needs a few checks to avoid trouble with the entry block.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111060 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Test case for r105914.</title>
<updated>2010-06-13T16:16:54Z</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2010-06-13T16:16:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=c125fedcc72f37266ce896e052a82735bb8340da'/>
<id>urn:sha1:c125fedcc72f37266ce896e052a82735bb8340da</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105915 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>make simplifycfg insert an llvm.trap before the 'unreachable' it introduces</title>
<updated>2010-05-08T22:15:59Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2010-05-08T22:15:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=c7d7e0cbe0a83881e4a01b0be745e169bd1baea0'/>
<id>urn:sha1:c7d7e0cbe0a83881e4a01b0be745e169bd1baea0</id>
<content type='text'>
when it detects undefined behavior.  llvm.trap generally codegens into some
thing really small (e.g. a 2 byte ud2 instruction on x86) and debugging this
sort of thing is "nontrivial".  For example, we now compile:

void foo() { *(int*)0 = 42; }

into:

_foo:
	pushl	%ebp
	movl	%esp, %ebp
	ud2

Some may even claim that this is a security hole, though that seems dubious
to me.  This addresses rdar://7958343 - Optimizing away null dereference 
potentially allows arbitrary code execution


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103356 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>testcase for r99914, provided by baldrick!</title>
<updated>2010-03-31T20:37:13Z</updated>
<author>
<name>Gabor Greif</name>
<email>ggreif@gmail.com</email>
</author>
<published>2010-03-31T20:37:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=4e86da71b325e71d86b39fe3a63109d1fbad5739'/>
<id>urn:sha1:4e86da71b325e71d86b39fe3a63109d1fbad5739</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100043 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Floating-point add, sub, and mul are now spelled fadd, fsub, and fmul,</title>
<updated>2010-03-02T01:11:08Z</updated>
<author>
<name>Dan Gohman</name>
<email>gohman@apple.com</email>
</author>
<published>2010-03-02T01:11:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=a9445e11c553855a6caacbbbf77a9b993ecc651e'/>
<id>urn:sha1:a9445e11c553855a6caacbbbf77a9b993ecc651e</id>
<content type='text'>
respectively.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97531 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Teach SimplifyCFG about magic pointer constants.</title>
<updated>2010-02-05T22:03:18Z</updated>
<author>
<name>Jakob Stoklund Olesen</name>
<email>stoklund@2pi.dk</email>
</author>
<published>2010-02-05T22:03:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=58e9ee85fda5083e2eea987917e8eab6ba31fe5e'/>
<id>urn:sha1:58e9ee85fda5083e2eea987917e8eab6ba31fe5e</id>
<content type='text'>
Weird code sometimes uses pointer constants other than null. This patch
teaches SimplifyCFG to build switch instructions in those cases.

Code like this:

void f(const char *x) {
  if (!x)
    puts("null");
  else if ((uintptr_t)x == 1)
    puts("one");
  else if (x == (char*)2 || x == (char*)3)
    puts("two");
  else if ((intptr_t)x == 4)
    puts("four");
  else
    puts(x);
}

Now becomes a switch:

define void @f(i8* %x) nounwind ssp {
entry:
  %magicptr23 = ptrtoint i8* %x to i64            ; &lt;i64&gt; [#uses=1]
  switch i64 %magicptr23, label %if.else16 [
    i64 0, label %if.then
    i64 1, label %if.then2
    i64 2, label %if.then9
    i64 3, label %if.then9
    i64 4, label %if.then14
  ]

Note that LLVM's own DenseMap uses magic pointers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95439 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Delete useless trailing semicolons.</title>
<updated>2010-01-05T17:55:26Z</updated>
<author>
<name>Dan Gohman</name>
<email>gohman@apple.com</email>
</author>
<published>2010-01-05T17:55:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=aceba31b7a04fd28680209b2677915378877bc13'/>
<id>urn:sha1:aceba31b7a04fd28680209b2677915378877bc13</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92740 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>fix two bogus tests that the asmparser now rejects.</title>
<updated>2009-12-30T05:54:51Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2009-12-30T05:54:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=c17e2849d10a961abf7183222baab31d84e3990f'/>
<id>urn:sha1:c17e2849d10a961abf7183222baab31d84e3990f</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92303 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
</feed>
