re PR tree-optimization/80591 (AArch64 kernel miscompilation starting with r246809)

2017-05-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80591
	Revert
	2017-04-10  Richard Biener  <rguenther@suse.de>

	* tree-ssa-structalias.c (find_func_aliases): Properly handle
	asm inputs.

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

From-SVN: r247487
This commit is contained in:
Richard Biener 2017-05-02 11:26:25 +00:00 committed by Richard Biener
parent 12bdf10b34
commit cdd7941640
4 changed files with 36 additions and 2 deletions

View File

@ -1,3 +1,12 @@
2017-05-02 Richard Biener <rguenther@suse.de>
PR tree-optimization/80591
Revert
2017-04-10 Richard Biener <rguenther@suse.de>
* tree-ssa-structalias.c (find_func_aliases): Properly handle
asm inputs.
2017-04-28 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/80531

View File

@ -1,3 +1,8 @@
2017-05-02 Richard Biener <rguenther@suse.de>
PR tree-optimization/80591
* gcc.dg/torture/pr80591.c: New testcase.
2017-04-27 Jakub Jelinek <jakub@redhat.com>
PR c++/80534

View File

@ -0,0 +1,20 @@
/* PR tree-optimization/80591 */
/* { dg-do compile } */
/* { dg-skip-if "" { *-*-* } "-flto" } */
/* { dg-additional-options "-fdump-tree-optimized" } */
static inline __attribute__((always_inline)) int *
foo (void)
{
__UINTPTR_TYPE__ sp;
asm ("" : "=r" (sp));
return (int *) sp;
}
void
bar (void)
{
foo ()[0] += 26;
}
/* { dg-final { scan-tree-dump "\\+ 26;" "optimized" } } */

View File

@ -4944,14 +4944,14 @@ find_func_aliases (struct function *fn, gimple *origt)
make_escape_constraint (build_fold_addr_expr (op));
/* The asm may read global memory, so outputs may point to
any global or escaped memory. */
any global memory. */
if (op)
{
auto_vec<ce_s, 2> lhsc;
struct constraint_expr rhsc, *lhsp;
unsigned j;
get_constraint_for (op, &lhsc);
rhsc.var = escaped_id;
rhsc.var = nonlocal_id;
rhsc.offset = 0;
rhsc.type = SCALAR;
FOR_EACH_VEC_ELT (lhsc, j, lhsp)