<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/test/Transforms/SimplifyCFG, branch release_32</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/test/Transforms/SimplifyCFG?h=release_32</id>
<link rel='self' href='https://git.amat.us/llvm/atom/test/Transforms/SimplifyCFG?h=release_32'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2012-11-07T21:35:12Z</updated>
<entry>
<title>Only do switch-to-lookup table transformation when TargetTransformInfo</title>
<updated>2012-11-07T21:35:12Z</updated>
<author>
<name>Hans Wennborg</name>
<email>hans@hanshq.net</email>
</author>
<published>2012-11-07T21:35:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=b0319962cfdb18da38ef47da621f148fe144b092'/>
<id>urn:sha1:b0319962cfdb18da38ef47da621f148fe144b092</id>
<content type='text'>
is available.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167552 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix bad test IR in switch_to_lookup_table.ll</title>
<updated>2012-11-07T18:38:24Z</updated>
<author>
<name>Hans Wennborg</name>
<email>hans@hanshq.net</email>
</author>
<published>2012-11-07T18:38:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=ab1b6c83adf459d78bee1e87e235f4fdf8d4d106'/>
<id>urn:sha1:ab1b6c83adf459d78bee1e87e235f4fdf8d4d106</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167543 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Remove fixme about unreachable cases from SwitchToLookupTable</title>
<updated>2012-10-31T16:15:25Z</updated>
<author>
<name>Hans Wennborg</name>
<email>hans@hanshq.net</email>
</author>
<published>2012-10-31T16:15:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=eb3e089fb686e506647a4d8cfdc1d51869489801'/>
<id>urn:sha1:eb3e089fb686e506647a4d8cfdc1d51869489801</id>
<content type='text'>
SimplifyCFG will have removed those cases for us.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167132 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Do simple constant propagation in lookup table formation for switches</title>
<updated>2012-10-31T13:42:45Z</updated>
<author>
<name>Hans Wennborg</name>
<email>hans@hanshq.net</email>
</author>
<published>2012-10-31T13:42:45Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=e03d9e4ec7037526b94ce91985e7ff82ebc069fa'/>
<id>urn:sha1:e03d9e4ec7037526b94ce91985e7ff82ebc069fa</id>
<content type='text'>
By propagating the value for the switch condition, LLVM can now build
lookup tables for code such as:

  switch (x) {
    case 1: return 5;
    case 2: return 42;
    case 3: case 4: case 5:
      return x - 123;
    default:
      return 123;
  }

Given that x is known for each case, "x - 123" becomes a constant for
cases 3, 4, and 5.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167115 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>switch_to_lookup_table.ll: Remove some unnecessary lines, comments,</title>
<updated>2012-10-30T15:11:52Z</updated>
<author>
<name>Hans Wennborg</name>
<email>hans@hanshq.net</email>
</author>
<published>2012-10-30T15:11:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=92b469971e6125e1aae90c43e0f00a5cb1e88b47'/>
<id>urn:sha1:92b469971e6125e1aae90c43e0f00a5cb1e88b47</id>
<content type='text'>
function attributes, etc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167016 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Use TargetTransformInfo to control switch-to-lookup table transformation</title>
<updated>2012-10-30T11:23:25Z</updated>
<author>
<name>Hans Wennborg</name>
<email>hans@hanshq.net</email>
</author>
<published>2012-10-30T11:23:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=04d7d13d301df66f6c232e41611145c062183bf3'/>
<id>urn:sha1:04d7d13d301df66f6c232e41611145c062183bf3</id>
<content type='text'>
When the switch-to-lookup tables transform landed in SimplifyCFG, it
was pointed out that this could be inappropriate for some targets.
Since there was no way at the time for the pass to know anything about
the target, an awkward reverse-transform was added in CodeGenPrepare
that turned lookup tables back into switches for some targets.

This patch uses the new TargetTransformInfo to determine if a
switch should be transformed, and removes
CodeGenPrepare::ConvertLoadToSwitch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167011 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Also optimize large switch statements.</title>
<updated>2012-10-25T18:51:15Z</updated>
<author>
<name>Jakob Stoklund Olesen</name>
<email>stoklund@2pi.dk</email>
</author>
<published>2012-10-25T18:51:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=e5a7a68dfabcf10cf5a6409fd1e4020f69564c2e'/>
<id>urn:sha1:e5a7a68dfabcf10cf5a6409fd1e4020f69564c2e</id>
<content type='text'>
The isValueEqualityComparison() guard at the top of SimplifySwitch()
only applies to some of the possible transformations.

The newer transformations work just fine on large switches, and the
check on predecessor count is nonsensical.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166710 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>SimplifyCFG: Enhance the "remove CFG edge that leads to null pointer dereference" optimization to also handle instructions with multiple uses.</title>
<updated>2012-10-04T16:11:49Z</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2012-10-04T16:11:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=1e21db6e831923bb35d2c5e22b50ad198de49a61'/>
<id>urn:sha1:1e21db6e831923bb35d2c5e22b50ad198de49a61</id>
<content type='text'>
We conservatively only check the first use to avoid walking long use chains.
This catches the common case of having both a load and a store to a pointer
supplied by a PHI node.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165232 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>SimplifyCFG: Don't crash when forming a switch bitmap with an undef default value.</title>
<updated>2012-10-01T11:31:48Z</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2012-10-01T11:31:48Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=64f27e78c4af3b69930b1d05b13b80cb025f4079'/>
<id>urn:sha1:64f27e78c4af3b69930b1d05b13b80cb025f4079</id>
<content type='text'>
Fixes PR13985.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164934 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix a integer overflow in SimplifyCFG's look up table formation logic.</title>
<updated>2012-09-27T18:29:58Z</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2012-09-27T18:29:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=465251a7ce52161adbcb6e80cb84f135dd440de9'/>
<id>urn:sha1:465251a7ce52161adbcb6e80cb84f135dd440de9</id>
<content type='text'>
If the width is very large it gets truncated from uint64_t to uint32_t when
passed to TD-&gt;fitsInLegalInteger. The truncated value can fit in a register.
This manifested in massive memory usage or crashes (PR13946).

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