From 085aea6305a07a83754678f396ca2e61c8e8241e Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Thu, 19 Jun 2014 13:37:07 -0400 Subject: [PATCH 08/77] Convert DF_REF_INSN to a function for now DF_REF_INSN looks up the "insn" field of the referenced df_insn_info. This will eventually be an rtx_insn *, but for now is just an rtx. As further scaffolding: for now, convert DF_REF_INSN to a function, adding a checked downcast to rtx_insn *. This can eventually be converted back to macro when the field is an rtx_insn *. gcc/ * df-core.c (DF_REF_INSN): New, using a checked cast for now. * df.h (DF_REF_INSN): Convert from a macro to a function, so that we can return an rtx_insn *. --- gcc/df-core.c | 6 ++++++ gcc/df.h | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/df-core.c b/gcc/df-core.c index 9fdf6010..522522e 100644 --- a/gcc/df-core.c +++ b/gcc/df-core.c @@ -2532,3 +2532,9 @@ debug_df_chain (struct df_link *link) df_chain_dump (link, stderr); fputc ('\n', stderr); } + +rtx_insn *DF_REF_INSN (df_ref ref) +{ + rtx insn = ref->base.insn_info->insn; + return insn ? as_a (insn) : NULL; +} diff --git a/gcc/df.h b/gcc/df.h index 878f507..aabde63 100644 --- a/gcc/df.h +++ b/gcc/df.h @@ -647,7 +647,7 @@ struct df_d : BLOCK_FOR_INSN (DF_REF_INSN (REF))) #define DF_REF_BBNO(REF) (DF_REF_BB (REF)->index) #define DF_REF_INSN_INFO(REF) ((REF)->base.insn_info) -#define DF_REF_INSN(REF) ((REF)->base.insn_info->insn) +extern rtx_insn *DF_REF_INSN (df_ref ref); #define DF_REF_INSN_UID(REF) (INSN_UID (DF_REF_INSN(REF))) #define DF_REF_CLASS(REF) ((REF)->base.cl) #define DF_REF_TYPE(REF) ((REF)->base.type) -- 1.8.5.3