From: Bill Schmidt Date: Thu, 21 Mar 2019 17:13:55 +0000 (+0000) Subject: rs6000.c (rs6000_analyze_swaps): Rebuild ud- and du-chains between phases. X-Git-Tag: releases/gcc-7.5.0~527 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=726bf18a0f26af3e9aa80bec5464dcc5340457a2;p=thirdparty%2Fgcc.git rs6000.c (rs6000_analyze_swaps): Rebuild ud- and du-chains between phases. 2019-03-21 Bill Schmidt * config/rs6000/rs6000.c (rs6000_analyze_swaps): Rebuild ud- and du-chains between phases. From-SVN: r269843 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cfcf569785fd..238bdbd25116 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2019-03-21 Bill Schmidt + + * config/rs6000/rs6000.c (rs6000_analyze_swaps): Rebuild + ud- and du-chains between phases. + 2019-03-21 Matthias Klose Backport from mainline diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 7bfeba3ef2e4..62744b1fa903 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -43038,6 +43038,14 @@ rs6000_analyze_swaps (function *fun) /* Pre-pass to recombine lvx and stvx patterns so we don't lose info. */ recombine_lvx_stvx_patterns (fun); + /* Rebuild ud- and du-chains. */ + df_remove_problem (df_chain); + df_process_deferred_rescans (); + df_set_flags (DF_RD_PRUNE_DEAD_DEFS); + df_chain_add_problem (DF_DU_CHAIN | DF_UD_CHAIN); + df_analyze (); + df_set_flags (DF_DEFER_INSN_RESCAN); + /* Allocate structure to represent webs of insns. */ insn_entry = XCNEWVEC (swap_web_entry, get_max_uid ());