<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/test/Transforms/LoopStrengthReduce, branch release_26</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/test/Transforms/LoopStrengthReduce?h=release_26</id>
<link rel='self' href='https://git.amat.us/llvm/atom/test/Transforms/LoopStrengthReduce?h=release_26'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2009-06-20T00:40:56Z</updated>
<entry>
<title>Tweak this test to be a little less unusual.</title>
<updated>2009-06-20T00:40:56Z</updated>
<author>
<name>Dan Gohman</name>
<email>gohman@apple.com</email>
</author>
<published>2009-06-20T00:40:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=97b52b2a88dc86bd0e79a9417a9a11b6971df789'/>
<id>urn:sha1:97b52b2a88dc86bd0e79a9417a9a11b6971df789</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73808 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Don't (unconditionally) use getSCEVAtScope to simplify the step</title>
<updated>2009-06-19T17:33:15Z</updated>
<author>
<name>Dan Gohman</name>
<email>gohman@apple.com</email>
</author>
<published>2009-06-19T17:33:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=958e292c7a71e9105df2d46ac15dcd1f3cfa0ee2'/>
<id>urn:sha1:958e292c7a71e9105df2d46ac15dcd1f3cfa0ee2</id>
<content type='text'>
expression in IVUsers, because in the case of a use of a non-linear
addrec outside of a loop, this causes the addrec to be evaluated as
a linear addrec.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73774 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Revert 72493 and replace it with a more conservative fix, for now: don't</title>
<updated>2009-05-27T21:10:47Z</updated>
<author>
<name>Dan Gohman</name>
<email>gohman@apple.com</email>
</author>
<published>2009-05-27T21:10:47Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=c2695eba5700c785c2ae144eede7e1a932e3f5f3'/>
<id>urn:sha1:c2695eba5700c785c2ae144eede7e1a932e3f5f3</id>
<content type='text'>
rewrite the comparison if there is any implicit extension or truncation
on the induction variable. I'm planning for IVUsers to eventually take
over some of the work of this code, and for it to be generalized.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72496 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>In ChangeCompareStride, when the stride to be reused is truncated to</title>
<updated>2009-05-27T20:00:18Z</updated>
<author>
<name>Dan Gohman</name>
<email>gohman@apple.com</email>
</author>
<published>2009-05-27T20:00:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=ead28bd04bf42cdf8c29d12fa4c0f9d29a4c58cd'/>
<id>urn:sha1:ead28bd04bf42cdf8c29d12fa4c0f9d29a4c58cd</id>
<content type='text'>
a smaller type, promoted its offset back up to the type of the new
comparison. This fixes PR4222.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72493 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Suppress the IV reversal transformation in the case that the RHS</title>
<updated>2009-05-20T00:34:08Z</updated>
<author>
<name>Dan Gohman</name>
<email>gohman@apple.com</email>
</author>
<published>2009-05-20T00:34:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=513fae2db51c7d22ec1253e89939d27732b21a5e'/>
<id>urn:sha1:513fae2db51c7d22ec1253e89939d27732b21a5e</id>
<content type='text'>
of the comparison is defined inside the loop. This fixes a
use-before-def problem, because the transformation puts a use
of the RHS outside the loop.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72149 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Teach SCEVExpander to expand arithmetic involving pointers into GEP</title>
<updated>2009-05-19T02:15:55Z</updated>
<author>
<name>Dan Gohman</name>
<email>gohman@apple.com</email>
</author>
<published>2009-05-19T02:15:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=5be18e84766fb495b0bde3c8244c1df459a18683'/>
<id>urn:sha1:5be18e84766fb495b0bde3c8244c1df459a18683</id>
<content type='text'>
instructions. It attempts to create high-level multi-operand GEPs,
though in cases where this isn't possible it falls back to casting
the pointer to i8* and emitting a GEP with that. Using GEP instructions
instead of ptrtoint+arithmetic+inttoptr helps pointer analyses that
don't use ScalarEvolution, such as BasicAliasAnalysis.

Also, make the AddrModeMatcher more aggressive in handling GEPs.
Previously it assumed that operand 0 of a GEP would require a register
in almost all cases. It now does extra checking and can do more
matching if operand 0 of the GEP is foldable. This fixes a problem
that was exposed by SCEVExpander using GEPs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72093 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Factor the code for collecting IV users out of LSR into an IVUsers class,</title>
<updated>2009-05-12T02:17:14Z</updated>
<author>
<name>Dan Gohman</name>
<email>gohman@apple.com</email>
</author>
<published>2009-05-12T02:17:14Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=81db61a2e6d3c95a2738c3559a108e05e9d7a05a'/>
<id>urn:sha1:81db61a2e6d3c95a2738c3559a108e05e9d7a05a</id>
<content type='text'>
and generalize it so that it can be used by IndVarSimplify. Implement the
base IndVarSimplify transformation code using IVUsers. This removes
TestOrigIVForWrap and associated code, as ScalarEvolution now has enough
builtin overflow detection and folding logic to handle all the same cases,
and more. Run "opt -iv-users -analyze -disable-output" on your favorite
loop for an example of what IVUsers does.

This lets IndVarSimplify eliminate IV casts and compute trip counts in
more cases. Also, this happens to finally fix the remaining testcases
in PR1301.

Now that IndVarSimplify is being more aggressive, it occasionally runs
into the problem where ScalarEvolutionExpander's code for avoiding
duplicate expansions makes it difficult to ensure that all expanded
instructions dominate all the instructions that will use them. As a
temporary measure, IndVarSimplify now uses a FixUsesBeforeDefs function
to fix up instructions inserted by SCEVExpander. Fortunately, this code
is contained, and can be easily removed once a more comprehensive
solution is available.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71535 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Temporarily reverting r71008. It was causing this failure:</title>
<updated>2009-05-05T20:49:46Z</updated>
<author>
<name>Bill Wendling</name>
<email>isanbard@gmail.com</email>
</author>
<published>2009-05-05T20:49:46Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=a48941087bc5c176556d5f24e255e58936a0e14c'/>
<id>urn:sha1:a48941087bc5c176556d5f24e255e58936a0e14c</id>
<content type='text'>
Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/
CodeGen/X86/dg.exp ...
FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/
CodeGen/X86/change-compare-stride-1.ll
Failed with exit(1) at line 2
while running: grep {cmpq       $-478,} change-compare-stride-1.ll.tmp
child process exited abnormally



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71013 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Handle overflow of 64-bit loop conditions.</title>
<updated>2009-05-05T20:22:36Z</updated>
<author>
<name>David Greene</name>
<email>greened@obbligato.org</email>
</author>
<published>2009-05-05T20:22:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=58deef5559db65f742fc67adcdaba04ce83f0764'/>
<id>urn:sha1:58deef5559db65f742fc67adcdaba04ce83f0764</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71008 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Previously, RecursivelyDeleteDeadInstructions provided an option</title>
<updated>2009-05-02T18:29:22Z</updated>
<author>
<name>Dan Gohman</name>
<email>gohman@apple.com</email>
</author>
<published>2009-05-02T18:29:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=afc36a9520971832dfbebc0333593bf5d3098296'/>
<id>urn:sha1:afc36a9520971832dfbebc0333593bf5d3098296</id>
<content type='text'>
of returning a list of pointers to Values that are deleted. This was
unsafe, because the pointers in the list are, by nature of what
RecursivelyDeleteDeadInstructions does, always dangling. Replace this
with a simple callback mechanism. This may eventually be removed if
all clients can reasonably be expected to use CallbackVH.

Use this to factor out the dead-phi-cycle-elimination code from LSR
utility function, and generalize it to use the
RecursivelyDeleteTriviallyDeadInstructions utility function.

This makes LSR more aggressive about eliminating dead PHI cycles;
adjust tests to either be less trivial or to simply expect fewer
instructions.


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