gimple-ssa-isolate-paths.c (check_loadstore): Mark discovered memory references as volatile.
* gimple-ssa-isolate-paths.c (check_loadstore): Mark discovered memory references as volatile. (insert_trap_and_remove_trailing_statements): Fix comment. * gcc.dg/tree-ssa/isolate-1.c: Update expected output. * gcc.dg/tree-ssa/isolate-5.c: Verify the load survives through the SSA optimizers. From-SVN: r204722
This commit is contained in:
parent
6e022c863a
commit
115d185182
5 changed files with 24 additions and 5 deletions
|
@ -1,3 +1,9 @@
|
|||
2013-11-12 Jeff Law <law@redhat.com>
|
||||
|
||||
* gimple-ssa-isolate-paths.c (check_loadstore): Mark discovered
|
||||
memory references as volatile.
|
||||
(insert_trap_and_remove_trailing_statements): Fix comment.
|
||||
|
||||
2013-11-12 Vladimir Makarov <vmakarov@redhat.com>
|
||||
|
||||
PR other/58712
|
||||
|
|
|
@ -51,7 +51,12 @@ check_loadstore (gimple stmt ATTRIBUTE_UNUSED, tree op, void *data)
|
|||
{
|
||||
if ((TREE_CODE (op) == MEM_REF || TREE_CODE (op) == TARGET_MEM_REF)
|
||||
&& operand_equal_p (TREE_OPERAND (op, 0), (tree)data, 0))
|
||||
return true;
|
||||
{
|
||||
TREE_THIS_VOLATILE (op) = 1;
|
||||
TREE_SIDE_EFFECTS (op) = 1;
|
||||
update_stmt (stmt);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -64,7 +69,7 @@ insert_trap_and_remove_trailing_statements (gimple_stmt_iterator *si_p, tree op)
|
|||
code that wishes to catch the signal can do so.
|
||||
|
||||
If the dereference is a load, then there's nothing to do as the
|
||||
LHS will be a throw-away SSA_NAME and the LHS is the NULL dereference.
|
||||
LHS will be a throw-away SSA_NAME and the RHS is the NULL dereference.
|
||||
|
||||
If the dereference is a store and we can easily transform the RHS,
|
||||
then simplify the RHS to enable more DCE. */
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2013-11-12 Jeff Law <law@redhat.com>
|
||||
|
||||
* gcc.dg/tree-ssa/isolate-1.c: Update expected output.
|
||||
* gcc.dg/tree-ssa/isolate-5.c: Verify the load survives through
|
||||
the SSA optimizers.
|
||||
|
||||
2013-11-12 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||||
|
||||
PR target/59054
|
||||
|
|
|
@ -50,7 +50,7 @@ d_type (struct d_info *di)
|
|||
and finally that we set the RHS of the store to zero. */
|
||||
/* { dg-final { scan-tree-dump-times "__builtin_trap" 1 "isolate-paths"} } */
|
||||
/* { dg-final { scan-tree-dump-times "->type = 42" 1 "isolate-paths"} } */
|
||||
/* { dg-final { scan-tree-dump-times "->type = 0" 1 "isolate-paths"} } */
|
||||
/* { dg-final { scan-tree-dump-times "->type ={v} 0" 1 "isolate-paths"} } */
|
||||
/* { dg-final { scan-tree-dump-times "->zzz" 1 "isolate-paths"} } */
|
||||
/* { dg-final { cleanup-tree-dump "isolate-paths" } } */
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fdump-tree-isolate-paths" } */
|
||||
/* { dg-options "-O2 -fdump-tree-isolate-paths -fdump-tree-optimized" } */
|
||||
|
||||
|
||||
struct demangle_component
|
||||
|
@ -51,9 +51,11 @@ d_type (struct d_info *di)
|
|||
We leave the 0->type in the IL, so expect to see ->type twice. */
|
||||
/* { dg-final { scan-tree-dump-times "__builtin_trap" 1 "isolate-paths"} } */
|
||||
/* { dg-final { scan-tree-dump-times "->type" 2 "isolate-paths"} } */
|
||||
/* { dg-final { scan-tree-dump-times "->type" 1 "optimized"} } */
|
||||
/* { dg-final { scan-tree-dump-times "\\.type" 1 "optimized"} } */
|
||||
/* { dg-final { scan-tree-dump-times "->zzz" 1 "isolate-paths"} } */
|
||||
/* { dg-final { cleanup-tree-dump "isolate-paths" } } */
|
||||
|
||||
/* { dg-final { cleanup-tree-dump "optimized-paths" } } */
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue