Update rs6000.c's pass_analyze_swaps to use rtx_insn
gcc/ * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field "insn" from rtx to rtx_insn *. (permute_load): Likewise for param "insn". (permute_store): Likewise. (handle_special_swappables): Likewise for local "insn". (replace_swap_with_copy): Likewise for locals "insn" and "new_insn". (rs6000_analyze_swaps): Likewise for local "insn". From-SVN: r214489
This commit is contained in:
parent
347990b7cb
commit
94d64bbd61
|
@ -1,3 +1,14 @@
|
||||||
|
2014-08-26 David Malcolm <dmalcolm@redhat.com>
|
||||||
|
|
||||||
|
* config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
|
||||||
|
"insn" from rtx to rtx_insn *.
|
||||||
|
(permute_load): Likewise for param "insn".
|
||||||
|
(permute_store): Likewise.
|
||||||
|
(handle_special_swappables): Likewise for local "insn".
|
||||||
|
(replace_swap_with_copy): Likewise for locals "insn" and
|
||||||
|
"new_insn".
|
||||||
|
(rs6000_analyze_swaps): Likewise for local "insn".
|
||||||
|
|
||||||
2014-08-25 David Malcolm <dmalcolm@redhat.com>
|
2014-08-25 David Malcolm <dmalcolm@redhat.com>
|
||||||
|
|
||||||
* regrename.h (struct du_chain): Strengthen field "insn" from rtx
|
* regrename.h (struct du_chain): Strengthen field "insn" from rtx
|
||||||
|
|
|
@ -33496,7 +33496,7 @@ class swap_web_entry : public web_entry_base
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/* Pointer to the insn. */
|
/* Pointer to the insn. */
|
||||||
rtx insn;
|
rtx_insn *insn;
|
||||||
/* Set if insn contains a mention of a vector register. All other
|
/* Set if insn contains a mention of a vector register. All other
|
||||||
fields are undefined if this field is unset. */
|
fields are undefined if this field is unset. */
|
||||||
unsigned int is_relevant : 1;
|
unsigned int is_relevant : 1;
|
||||||
|
@ -34040,7 +34040,7 @@ adjust_subreg_index (rtx op)
|
||||||
|
|
||||||
/* Convert the non-permuting load INSN to a permuting one. */
|
/* Convert the non-permuting load INSN to a permuting one. */
|
||||||
static void
|
static void
|
||||||
permute_load (rtx insn)
|
permute_load (rtx_insn *insn)
|
||||||
{
|
{
|
||||||
rtx body = PATTERN (insn);
|
rtx body = PATTERN (insn);
|
||||||
rtx mem_op = SET_SRC (body);
|
rtx mem_op = SET_SRC (body);
|
||||||
|
@ -34066,7 +34066,7 @@ permute_load (rtx insn)
|
||||||
|
|
||||||
/* Convert the non-permuting store INSN to a permuting one. */
|
/* Convert the non-permuting store INSN to a permuting one. */
|
||||||
static void
|
static void
|
||||||
permute_store (rtx insn)
|
permute_store (rtx_insn *insn)
|
||||||
{
|
{
|
||||||
rtx body = PATTERN (insn);
|
rtx body = PATTERN (insn);
|
||||||
rtx src_reg = SET_SRC (body);
|
rtx src_reg = SET_SRC (body);
|
||||||
|
@ -34094,7 +34094,7 @@ permute_store (rtx insn)
|
||||||
static void
|
static void
|
||||||
handle_special_swappables (swap_web_entry *insn_entry, unsigned i)
|
handle_special_swappables (swap_web_entry *insn_entry, unsigned i)
|
||||||
{
|
{
|
||||||
rtx insn = insn_entry[i].insn;
|
rtx_insn *insn = insn_entry[i].insn;
|
||||||
rtx body = PATTERN (insn);
|
rtx body = PATTERN (insn);
|
||||||
|
|
||||||
switch (insn_entry[i].special_handling)
|
switch (insn_entry[i].special_handling)
|
||||||
|
@ -34133,11 +34133,11 @@ handle_special_swappables (swap_web_entry *insn_entry, unsigned i)
|
||||||
static void
|
static void
|
||||||
replace_swap_with_copy (swap_web_entry *insn_entry, unsigned i)
|
replace_swap_with_copy (swap_web_entry *insn_entry, unsigned i)
|
||||||
{
|
{
|
||||||
rtx insn = insn_entry[i].insn;
|
rtx_insn *insn = insn_entry[i].insn;
|
||||||
rtx body = PATTERN (insn);
|
rtx body = PATTERN (insn);
|
||||||
rtx src_reg = XEXP (SET_SRC (body), 0);
|
rtx src_reg = XEXP (SET_SRC (body), 0);
|
||||||
rtx copy = gen_rtx_SET (VOIDmode, SET_DEST (body), src_reg);
|
rtx copy = gen_rtx_SET (VOIDmode, SET_DEST (body), src_reg);
|
||||||
rtx new_insn = emit_insn_before (copy, insn);
|
rtx_insn *new_insn = emit_insn_before (copy, insn);
|
||||||
set_block_for_insn (new_insn, BLOCK_FOR_INSN (insn));
|
set_block_for_insn (new_insn, BLOCK_FOR_INSN (insn));
|
||||||
df_insn_rescan (new_insn);
|
df_insn_rescan (new_insn);
|
||||||
|
|
||||||
|
@ -34209,7 +34209,7 @@ rs6000_analyze_swaps (function *fun)
|
||||||
{
|
{
|
||||||
swap_web_entry *insn_entry;
|
swap_web_entry *insn_entry;
|
||||||
basic_block bb;
|
basic_block bb;
|
||||||
rtx insn;
|
rtx_insn *insn;
|
||||||
|
|
||||||
/* Dataflow analysis for use-def chains. */
|
/* Dataflow analysis for use-def chains. */
|
||||||
df_set_flags (DF_RD_PRUNE_DEAD_DEFS);
|
df_set_flags (DF_RD_PRUNE_DEAD_DEFS);
|
||||||
|
|
Loading…
Reference in New Issue