diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2015-06-10 00:37:39 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2015-06-10 00:37:39 +0000 |
commit | 0f9f9784ad1bb59e89f03e5cb00ebc22f500c059 (patch) | |
tree | 44bd2d64a442165a5d4162e8caf3157b8f5557a6 /gcc/tree-outof-ssa.c | |
parent | a79b6a3044aa97f8ba6b491ee1796f318c68285a (diff) | |
download | gcc-0f9f9784ad1bb59e89f03e5cb00ebc22f500c059.zip gcc-0f9f9784ad1bb59e89f03e5cb00ebc22f500c059.tar.gz gcc-0f9f9784ad1bb59e89f03e5cb00ebc22f500c059.tar.bz2 |
Revert "[PR64164] Drop copyrename, use coalescible partition as base when optimizing."
This reverts commit c66acc7cedd89bfd22124caec44b8427c9082dac.
Conflicts:
gcc/ChangeLog
gcc/testsuite/ChangeLog
From-SVN: r224310
Diffstat (limited to 'gcc/tree-outof-ssa.c')
-rw-r--r-- | gcc/tree-outof-ssa.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/gcc/tree-outof-ssa.c b/gcc/tree-outof-ssa.c index e6ab932..93ac258 100644 --- a/gcc/tree-outof-ssa.c +++ b/gcc/tree-outof-ssa.c @@ -295,6 +295,7 @@ insert_value_copy_on_edge (edge e, int dest, tree src, source_location locus) rtx dest_rtx, seq, x; machine_mode dest_mode, src_mode; int unsignedp; + tree var; if (dump_file && (dump_flags & TDF_DETAILS)) { @@ -316,12 +317,12 @@ insert_value_copy_on_edge (edge e, int dest, tree src, source_location locus) start_sequence (); - tree name = partition_to_var (SA.map, dest); + var = SSA_NAME_VAR (partition_to_var (SA.map, dest)); src_mode = TYPE_MODE (TREE_TYPE (src)); dest_mode = GET_MODE (dest_rtx); - gcc_assert (src_mode == TYPE_MODE (TREE_TYPE (name))); + gcc_assert (src_mode == TYPE_MODE (TREE_TYPE (var))); gcc_assert (!REG_P (dest_rtx) - || dest_mode == promote_ssa_mode (name, &unsignedp)); + || dest_mode == promote_decl_mode (var, &unsignedp)); if (src_mode != dest_mode) { @@ -697,12 +698,13 @@ elim_backward (elim_graph g, int T) static rtx get_temp_reg (tree name) { - tree type = TREE_TYPE (name); + tree var = TREE_CODE (name) == SSA_NAME ? SSA_NAME_VAR (name) : name; + tree type = TREE_TYPE (var); int unsignedp; - machine_mode reg_mode = promote_ssa_mode (name, &unsignedp); + machine_mode reg_mode = promote_decl_mode (var, &unsignedp); rtx x = gen_reg_rtx (reg_mode); if (POINTER_TYPE_P (type)) - mark_reg_pointer (x, TYPE_ALIGN (TREE_TYPE (type))); + mark_reg_pointer (x, TYPE_ALIGN (TREE_TYPE (TREE_TYPE (var)))); return x; } @@ -1002,7 +1004,7 @@ remove_ssa_form (bool perform_ter, struct ssaexpand *sa) /* Return to viewing the variable list as just all reference variables after coalescing has been performed. */ - partition_view_normal (map); + partition_view_normal (map, false); if (dump_file && (dump_flags & TDF_DETAILS)) { |