diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2017-10-24 07:26:52 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2017-10-24 07:26:52 +0000 |
commit | bc2a7cebfda15f53bc8fa4b596e96a87b53193fe (patch) | |
tree | 5835f9cdd7df1edbcc8445fba0d12041daf92a71 /gcc/expr.c | |
parent | d32bc875d2297f2f2240e8aad2082be4d1f851d8 (diff) | |
download | gcc-bc2a7cebfda15f53bc8fa4b596e96a87b53193fe.zip gcc-bc2a7cebfda15f53bc8fa4b596e96a87b53193fe.tar.gz gcc-bc2a7cebfda15f53bc8fa4b596e96a87b53193fe.tar.bz2 |
re PR middle-end/82569 (failure in 177.mesa cpu2000 test case after r253530)
PR middle-end/82569
* tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete.
* expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change.
* loop-iv.c (iv_get_reaching_def): Likewise.
* cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the
variable is promoted and the partition contains undefined values.
From-SVN: r254037
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 33 |
1 files changed, 7 insertions, 26 deletions
@@ -9912,43 +9912,24 @@ expand_expr_real_1 (tree exp, rtx target, machine_mode tmode, && GET_MODE (decl_rtl) != dmode) { machine_mode pmode; - bool always_initialized_rtx; /* Get the signedness to be used for this variable. Ensure we get the same mode we got when the variable was declared. */ if (code != SSA_NAME) - { - pmode = promote_decl_mode (exp, &unsignedp); - always_initialized_rtx = true; - } + pmode = promote_decl_mode (exp, &unsignedp); else if ((g = SSA_NAME_DEF_STMT (ssa_name)) && gimple_code (g) == GIMPLE_CALL && !gimple_call_internal_p (g)) - { - pmode = promote_function_mode (type, mode, &unsignedp, - gimple_call_fntype (g), 2); - always_initialized_rtx - = always_initialized_rtx_for_ssa_name_p (ssa_name); - } + pmode = promote_function_mode (type, mode, &unsignedp, + gimple_call_fntype (g), + 2); else - { - pmode = promote_ssa_mode (ssa_name, &unsignedp); - always_initialized_rtx - = always_initialized_rtx_for_ssa_name_p (ssa_name); - } - + pmode = promote_ssa_mode (ssa_name, &unsignedp); gcc_assert (GET_MODE (decl_rtl) == pmode); temp = gen_lowpart_SUBREG (mode, decl_rtl); - - /* We cannot assume anything about an existing extension if the - register may contain uninitialized bits. */ - if (always_initialized_rtx) - { - SUBREG_PROMOTED_VAR_P (temp) = 1; - SUBREG_PROMOTED_SET (temp, unsignedp); - } - + SUBREG_PROMOTED_VAR_P (temp) = 1; + SUBREG_PROMOTED_SET (temp, unsignedp); return temp; } |