diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2010-10-14 13:39:18 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2010-10-14 13:39:18 +0000 |
commit | a61c3633ecd0b8392496674a28e8efcd0cec8ab9 (patch) | |
tree | 73e843d67156115387cd0f5f57159c563c46f468 /gcc/tree-inline.c | |
parent | 8de2e8c95714a780903496db710adb4f2d6df310 (diff) | |
download | gcc-a61c3633ecd0b8392496674a28e8efcd0cec8ab9.zip gcc-a61c3633ecd0b8392496674a28e8efcd0cec8ab9.tar.gz gcc-a61c3633ecd0b8392496674a28e8efcd0cec8ab9.tar.bz2 |
sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke may_trap_or_fault_p instead of may_trap_p predicate.
* sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
may_trap_or_fault_p instead of may_trap_p predicate.
* tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
(substitute_placeholder_in_expr): Likewise.
* tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
flag on MEM_REF nodes.
(copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
flags on INDIRECT_REF nodes.
ada/
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Set
TREE_THIS_NOTRAP on the INDIRECT_REF node built for the template.
* gcc-interface/trans.c (Identifier_to_gnu): Set TREE_THIS_NOTRAP on
the INDIRECT_REF node built for objects used by reference.
* gcc-interface/utils2.c (build_binary_op): Add short-circuit for
constant result. Set TREE_THIS_NOTRAP on ARRAY_REF and ARRAY_RANGE_REF.
(gnat_stabilize_reference_1): Propagate the TREE_THIS_NOTRAP flag.
From-SVN: r165468
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r-- | gcc/tree-inline.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index b0627be..5aa7bb0 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -858,6 +858,7 @@ remap_gimple_op_r (tree *tp, int *walk_subtrees, void *data) *tp = fold_build2 (MEM_REF, TREE_TYPE (*tp), ptr, TREE_OPERAND (*tp, 1)); TREE_THIS_VOLATILE (*tp) = TREE_THIS_VOLATILE (old); + TREE_THIS_NOTRAP (*tp) = TREE_THIS_NOTRAP (old); } TREE_NO_WARNING (*tp) = TREE_NO_WARNING (old); *walk_subtrees = 0; @@ -1087,6 +1088,8 @@ copy_tree_body_r (tree *tp, int *walk_subtrees, void *data) *tp = build1 (INDIRECT_REF, type, new_tree); TREE_THIS_VOLATILE (*tp) = TREE_THIS_VOLATILE (old); TREE_SIDE_EFFECTS (*tp) = TREE_SIDE_EFFECTS (old); + TREE_READONLY (*tp) = TREE_READONLY (old); + TREE_THIS_NOTRAP (*tp) = TREE_THIS_NOTRAP (old); } } *walk_subtrees = 0; |