<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gcc.git, branch devel/loop-unswitch-support-switches</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/'/>
<entry>
<title>Use NSDMI for predicate class</title>
<updated>2022-05-24T11:47:48+00:00</updated>
<author>
<name>Richard Biener</name>
<email>rguenther@suse.de</email>
</author>
<published>2022-05-24T11:47:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=271072ca259dd285e7723d9bf6da7295e4090dfa'/>
<id>271072ca259dd285e7723d9bf6da7295e4090dfa</id>
<content type='text'>
Use NSDMI for predicate class
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use NSDMI for predicate class
</pre>
</div>
</content>
</entry>
<entry>
<title>Another bogus range from .invert so don't use it.</title>
<updated>2022-05-18T12:23:24+00:00</updated>
<author>
<name>Richard Biener</name>
<email>rguenther@suse.de</email>
</author>
<published>2022-05-18T12:18:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=da159b3057a9b4fbd51697ad369fa96eadfbb0e9'/>
<id>da159b3057a9b4fbd51697ad369fa96eadfbb0e9</id>
<content type='text'>
From _1 &lt; _2 we conclude [-INF, +INF - 1] and invert it as [+INF, +INF] -
oops.  Compute the other edge range explicitely.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
From _1 &lt; _2 we conclude [-INF, +INF - 1] and invert it as [+INF, +INF] -
oops.  Compute the other edge range explicitely.
</pre>
</div>
</content>
</entry>
<entry>
<title>Properly only consider reachable BBs predicates</title>
<updated>2022-05-18T11:59:26+00:00</updated>
<author>
<name>Richard Biener</name>
<email>rguenther@suse.de</email>
</author>
<published>2022-05-18T11:59:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=8d64734864d8c43c854b0e3a9e52b97230bc1e2a'/>
<id>8d64734864d8c43c854b0e3a9e52b97230bc1e2a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Make sure to cost bb[0], work around unreachable predicates</title>
<updated>2022-05-18T09:57:10+00:00</updated>
<author>
<name>Richard Biener</name>
<email>rguenther@suse.de</email>
</author>
<published>2022-05-18T09:57:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=399a970a9e2302fa0ffefc03fad7d8d56801c2e6'/>
<id>399a970a9e2302fa0ffefc03fad7d8d56801c2e6</id>
<content type='text'>
This applies a workaround to avoid unswitching on predicates from
BBs that are considered unreachable and to that effect makes sure
to always cost bb[0] which we always put on the worklist as reachable.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This applies a workaround to avoid unswitching on predicates from
BBs that are considered unreachable and to that effect makes sure
to always cost bb[0] which we always put on the worklist as reachable.
</pre>
</div>
</content>
</entry>
<entry>
<title>This fixes the execute FAIL of gfortran.fortran-torture/execute/forall_7.f90</title>
<updated>2022-05-18T08:59:23+00:00</updated>
<author>
<name>Richard Biener</name>
<email>rguenther@suse.de</email>
</author>
<published>2022-05-18T08:59:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=74ccb99070906ed9bbed2079e6ffba732ef1678d'/>
<id>74ccb99070906ed9bbed2079e6ffba732ef1678d</id>
<content type='text'>
Using global ranges and inverting them is not correct - in the
particular case we ended up with a global range from a if (a_1 = b_2)
predicate and used the inversion on the false edge.  The change
refactors the predicate CTORs again, using range-ops to create a bare
range from the comparison in the GIMPLE_COND only and for switches
resorts to computing the ranges manually by unioning the case ranges.

The ranger query in the simplification code should probably change
as well to use a path_range_query where we should seed the path
range oracle with the predicate stack of the loop version we want
to simplify.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Using global ranges and inverting them is not correct - in the
particular case we ended up with a global range from a if (a_1 = b_2)
predicate and used the inversion on the false edge.  The change
refactors the predicate CTORs again, using range-ops to create a bare
range from the comparison in the GIMPLE_COND only and for switches
resorts to computing the ranges manually by unioning the case ranges.

The ranger query in the simplification code should probably change
as well to use a path_range_query where we should seed the path
range oracle with the predicate stack of the loop version we want
to simplify.
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid ICE when removing a case sharing the edge with the default case</title>
<updated>2022-05-18T07:18:24+00:00</updated>
<author>
<name>Richard Biener</name>
<email>rguenther@suse.de</email>
</author>
<published>2022-05-18T07:18:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=ef6f1e135618a39ea456416093575b68ea5fc28e'/>
<id>ef6f1e135618a39ea456416093575b68ea5fc28e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'origin/master' into unswitch</title>
<updated>2022-05-17T17:10:08+00:00</updated>
<author>
<name>Richard Biener</name>
<email>rguenther@suse.de</email>
</author>
<published>2022-05-17T15:54:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=1990086f5791cba8c267c430119e38c5030451d9'/>
<id>1990086f5791cba8c267c430119e38c5030451d9</id>
<content type='text'>
Bootstraps OK, has

FAIL: gfortran.fortran-torture/execute/forall_7.f90 execution,  -O3 -g

and ICEs 511.povray_r, 526.blender_r, 538.imagick_r with -Ofast znver2

splines.cpp:687:5: internal compiler error: in tree_unswitch_single_loop, at tree-ssa-loop-unswitch.cc:902

blender/source/blender/modifiers/intern/MOD_weightvg_util.c:120:6: internal compiler error: Segmentation fault

magick/composite.c:1631:32: internal compiler error: in tree_unswitch_single_loop, at tree-ssa-loop-unswitch.cc:902

the 902 is the size estimation assert recently added.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bootstraps OK, has

FAIL: gfortran.fortran-torture/execute/forall_7.f90 execution,  -O3 -g

and ICEs 511.povray_r, 526.blender_r, 538.imagick_r with -Ofast znver2

splines.cpp:687:5: internal compiler error: in tree_unswitch_single_loop, at tree-ssa-loop-unswitch.cc:902

blender/source/blender/modifiers/intern/MOD_weightvg_util.c:120:6: internal compiler error: Segmentation fault

magick/composite.c:1631:32: internal compiler error: in tree_unswitch_single_loop, at tree-ssa-loop-unswitch.cc:902

the 902 is the size estimation assert recently added.
</pre>
</div>
</content>
</entry>
<entry>
<title>Do not clear bb-&gt;aux in duplicate_loop_body_to_header_edge</title>
<updated>2022-05-17T15:53:46+00:00</updated>
<author>
<name>Richard Biener</name>
<email>rguenther@suse.de</email>
</author>
<published>2022-05-17T15:18:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=941efd87e22b1b88e3488b8e681d14d0d66e45ac'/>
<id>941efd87e22b1b88e3488b8e681d14d0d66e45ac</id>
<content type='text'>
duplicate_loop_body_to_header_edge clears bb-&gt;aux which is not wanted
by a new use in loop unswitching.  The clearing was introduced with
r0-69110-g6580ee7781f903 and it seems accidentially so.

2022-05-17  Richard Biener  &lt;rguenther@suse.de&gt;

	* cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Do
	not clear bb-&gt;aux of the copied blocks.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
duplicate_loop_body_to_header_edge clears bb-&gt;aux which is not wanted
by a new use in loop unswitching.  The clearing was introduced with
r0-69110-g6580ee7781f903 and it seems accidentially so.

2022-05-17  Richard Biener  &lt;rguenther@suse.de&gt;

	* cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Do
	not clear bb-&gt;aux of the copied blocks.
</pre>
</div>
</content>
</entry>
<entry>
<title>Check for equivalence after merging relations.</title>
<updated>2022-05-17T15:43:32+00:00</updated>
<author>
<name>Andrew MacLeod</name>
<email>amacleod@redhat.com</email>
</author>
<published>2022-05-17T01:39:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=6101a276c34b94f692206739d98aa7faf2e7b2ad'/>
<id>6101a276c34b94f692206739d98aa7faf2e7b2ad</id>
<content type='text'>
When registering a relation, we need to merge with any existing relation
before checking if it was an equivalence... otherwise it was not being
handled properly.

	gcc/
	PR tree-optimization/105458
	* value-relation.cc (path_oracle::register_relation): Merge, then check
	for equivalence.

	gcc/testsuite/
	* gcc.dg/pr105458.c: New.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When registering a relation, we need to merge with any existing relation
before checking if it was an equivalence... otherwise it was not being
handled properly.

	gcc/
	PR tree-optimization/105458
	* value-relation.cc (path_oracle::register_relation): Merge, then check
	for equivalence.

	gcc/testsuite/
	* gcc.dg/pr105458.c: New.
</pre>
</div>
</content>
</entry>
<entry>
<title>Really use first found predicate.  Adjust limit for loop-unswitch-16.c</title>
<updated>2022-05-17T15:39:22+00:00</updated>
<author>
<name>Richard Biener</name>
<email>rguenther@suse.de</email>
</author>
<published>2022-05-17T15:39:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/gcc.git/commit/?id=3a3e129ce081c7936e7470d0a2cb3c0fbdd7490b'/>
<id>3a3e129ce081c7936e7470d0a2cb3c0fbdd7490b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
