alias-1.c: New test.
2005-04-11 Andrew Pinski <pinskia@physics.uc.edu> * gcc.dg/tree-ssa/alias-1.c: New test. 2005-04-11 Andrew Pinski <pinskia@physics.uc.edu> * tree-ssa-alias.c (may_alias_p): If the variable is a global variable and the pointer is parameter and -fargument-noalias-global is used, then the pointer cannot alias the variable. From-SVN: r97978
This commit is contained in:
parent
78a7dc9032
commit
d3010d7286
4 changed files with 37 additions and 0 deletions
|
@ -1,3 +1,10 @@
|
|||
2005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
|
||||
|
||||
* tree-ssa-alias.c (may_alias_p): If the variable
|
||||
is a global variable and the pointer is parameter
|
||||
and -fargument-noalias-global is used, then
|
||||
the pointer cannot alias the variable.
|
||||
|
||||
2005-04-11 James A. Morrison <phython@gcc.gnu.org>
|
||||
|
||||
* config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2005-04-11 Andrew Pinski <pinskia@physics.uc.edu>
|
||||
|
||||
* gcc.dg/tree-ssa/alias-1.c: New test.
|
||||
|
||||
2005-04-11 Diego Novillo <dnovillo@redhat.com>
|
||||
|
||||
PR tree-optimization/20920
|
||||
|
|
16
gcc/testsuite/gcc.dg/tree-ssa/alias-1.c
Normal file
16
gcc/testsuite/gcc.dg/tree-ssa/alias-1.c
Normal file
|
@ -0,0 +1,16 @@
|
|||
/* { dg-options "-O2 -fargument-noalias-global -fdump-tree-optimizated" } */
|
||||
int f;
|
||||
void link_error ();
|
||||
|
||||
void g(int *i)
|
||||
{
|
||||
*i = 0;
|
||||
f = 1;
|
||||
if (*i != 0)
|
||||
link_error ();
|
||||
}
|
||||
|
||||
|
||||
/* We should have removed the link_error on the tree level as we told GCC
|
||||
that *i cannot point to f via the option -fargument-noalias-global. */
|
||||
/* { dg-final { scan-tree-dump-times "link_error" 0 "optimized"} } */
|
|
@ -1708,6 +1708,16 @@ may_alias_p (tree ptr, HOST_WIDE_INT mem_alias_set,
|
|||
alias_stats.simple_resolved++;
|
||||
return false;
|
||||
}
|
||||
|
||||
/* If -fargument-noalias-global is >1, pointer arguments may
|
||||
not point to global variables. */
|
||||
if (flag_argument_noalias > 1 && is_global_var (var)
|
||||
&& TREE_CODE (ptr) == PARM_DECL)
|
||||
{
|
||||
alias_stats.alias_noalias++;
|
||||
alias_stats.simple_resolved++;
|
||||
return false;
|
||||
}
|
||||
|
||||
m_ann = var_ann (mem);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue