re PR tree-optimization/90856 (ICE: verify_gimple failed (error: incompatible types in 'PHI' argument 1))

2019-06-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90856
	* tree-sra.c (build_ref_for_model): Only use
	build_reconstructed_reference when address-spaces are the same.

	* gcc.target/i386/pr90856.c: New testcase.

From-SVN: r272244
This commit is contained in:
Richard Biener 2019-06-13 13:03:13 +00:00 committed by Richard Biener
parent 478cb3ce7e
commit 9bc83b61ff
4 changed files with 27 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2019-06-13 Richard Biener <rguenther@suse.de>
PR tree-optimization/90856
* tree-sra.c (build_ref_for_model): Only use
build_reconstructed_reference when address-spaces are the same.
2019-06-13 Jakub Jelinek <jakub@redhat.com>
* config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't

View File

@ -1,3 +1,8 @@
2019-06-13 Richard Biener <rguenther@suse.de>
PR tree-optimization/90856
* gcc.target/i386/pr90856.c: New testcase.
2019-06-13 Jakub Jelinek <jakub@redhat.com>
* g++.dg/tree-ssa/ssa-dse-1.C: Don't match exact number of chars of

View File

@ -0,0 +1,14 @@
/* { dg-do compile } */
/* { dg-options "-O3" } */
typedef struct { int v; } S1;
typedef struct { S1 s1[32]; } S2;
S1 clearS1() { S1 s; s.v = 1; return s; }
void
clearS2(__seg_gs S2 *p, int n)
{
for (int i = 0; i < n; ++i)
p->s1[i] = clearS1();
}

View File

@ -1854,6 +1854,8 @@ build_ref_for_model (location_t loc, tree base, HOST_WIDE_INT offset,
tree res;
if (model->grp_same_access_path
&& !TREE_THIS_VOLATILE (base)
&& (TYPE_ADDR_SPACE (TREE_TYPE (base))
== TYPE_ADDR_SPACE (TREE_TYPE (model->expr)))
&& offset <= model->offset
/* build_reconstructed_reference can still fail if we have already
massaged BASE because of another type incompatibility. */