Commit 4c3643a5 by Richard Biener Committed by Richard Biener

re PR tree-optimization/88621 (wrong code at -O1 and above on x86_64-linux-gnu…

re PR tree-optimization/88621 (wrong code at -O1 and above on x86_64-linux-gnu in 64-bit mode (not in 32-bit mode))

2019-01-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/88621
	* tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
	bitfields when canoncalizing.

	* gcc.dg/torture/pr88621.c: New testcase.

From-SVN: r267510
parent 3ff59baa
2019-01-02 Richard Biener <rguenther@suse.de>
PR tree-optimization/88621
* tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
bitfields when canoncalizing.
2019-01-02 Richard Biener <rguenther@suse.de>
PR target/87545
* config/i386/x86-tune-costs.h (intel_cost): Adjust
cost of cheap SSE instruction.
......
2019-01-02 Richard Biener <rguenther@suse.de>
PR tree-optimization/88621
* gcc.dg/torture/pr88621.c: New testcase.
2019-01-02 Jakub Jelinek <jakub@redhat.com>
PR ipa/88561
......
/* { dg-do run } */
struct S
{
int b:4;
int c;
} e = { -1, 0 };
int d, f;
int main ()
{
while (f)
{
struct S g = { 0, 0 };
e = g;
}
L:
while (e.b > 0)
;
e.b = 0;
if (d)
goto L;
return 0;
}
......@@ -1468,9 +1468,10 @@ gather_mem_refs_stmt (struct loop *loop, gimple *stmt)
tree mem_base;
if (aor.max_size_known_p ()
&& aor.offset.is_constant (&offset)
&& aor.offset.is_constant (&size)
&& aor.offset.is_constant (&max_size)
&& aor.size.is_constant (&size)
&& aor.max_size.is_constant (&max_size)
&& size == max_size
&& (size % BITS_PER_UNIT) == 0
&& (mem_base = get_addr_base_and_unit_offset (aor.ref, &mem_off)))
{
hash = iterative_hash_expr (ao_ref_base (&aor), 0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment