diff options
Diffstat (limited to 'gcc/tree-ssa-operands.c')
| -rw-r--r-- | gcc/tree-ssa-operands.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/gcc/tree-ssa-operands.c b/gcc/tree-ssa-operands.c index 90b9d022b55..b9c5a6cf670 100644 --- a/gcc/tree-ssa-operands.c +++ b/gcc/tree-ssa-operands.c @@ -1231,16 +1231,6 @@ get_asm_expr_operands (tree stmt, voperands_t prev_vops) { size_t i; - /* If we still have not computed aliasing information, we - won't know what variables are call-clobbered and/or - addressable. Just mark the statement as having volatile - operands for now. */ - if (!aliases_computed_p) - { - stmt_ann (stmt)->has_volatile_ops = true; - break; - } - /* Clobber all call-clobbered variables (or .GLOBAL_VAR if we decided to group them). */ if (global_var) @@ -1259,6 +1249,13 @@ get_asm_expr_operands (tree stmt, voperands_t prev_vops) add_stmt_operand (&var, stmt, opf_is_def, prev_vops); }); + /* If we don't have call-clobbered nor addressable vars and we + still have not computed aliasing information, just mark the + statement as having volatile operands. If the alias pass + finds some, we will add them at that point. */ + if (!aliases_computed_p) + stmt_ann (stmt)->has_volatile_ops = true; + break; } } |

