From e73e23eff76feb0040f80bca98c87b4e0f1dfec2 Mon Sep 17 00:00:00 2001 From: vmakarov Date: Tue, 25 Nov 2014 21:27:17 +0000 Subject: [PATCH] 2014-11-25 Vladimir Makarov * ira-lives.c (process_bb_node_lives): Make code with conditional REAL_PIC_OFFSET_TABLE_REGNUM. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218063 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/ira-lives.c | 11 +++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 849b70e2ce9d..adc31461af16 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-11-25 Vladimir Makarov + + * ira-lives.c (process_bb_node_lives): Make code with conditional + REAL_PIC_OFFSET_TABLE_REGNUM. + 2014-11-25 Vladimir Makarov PR target/63527 diff --git a/gcc/ira-lives.c b/gcc/ira-lives.c index 368b1189db32..e91c35fcdce8 100644 --- a/gcc/ira-lives.c +++ b/gcc/ira-lives.c @@ -1123,10 +1123,9 @@ process_bb_node_lives (ira_loop_tree_node_t loop_tree_node) pessimistic, but it probably doesn't matter much in practice. */ FOR_BB_INSNS_REVERSE (bb, insn) { - int regno; ira_allocno_t a; df_ref def, use; - bool call_p, clear_pic_use_conflict_p; + bool call_p; if (!NONDEBUG_INSN_P (insn)) continue; @@ -1137,7 +1136,9 @@ process_bb_node_lives (ira_loop_tree_node_t loop_tree_node) curr_point); call_p = CALL_P (insn); - clear_pic_use_conflict_p = false; +#ifdef REAL_PIC_OFFSET_TABLE_REGNUM + int regno; + bool clear_pic_use_conflict_p = false; /* Processing insn usage in call insn can create conflict with pic pseudo and pic hard reg and that is wrong. Check this situation and fix it at the end of the insn @@ -1150,6 +1151,7 @@ process_bb_node_lives (ira_loop_tree_node_t loop_tree_node) && ! TEST_HARD_REG_BIT (OBJECT_CONFLICT_HARD_REGS (ALLOCNO_OBJECT (a, 0)), REAL_PIC_OFFSET_TABLE_REGNUM)); +#endif /* Mark each defined value as live. We need to do this for unused values because they still conflict with quantities @@ -1302,6 +1304,7 @@ process_bb_node_lives (ira_loop_tree_node_t loop_tree_node) } } +#ifdef REAL_PIC_OFFSET_TABLE_REGNUM if (clear_pic_use_conflict_p) { regno = REGNO (pic_offset_table_rtx); @@ -1312,7 +1315,7 @@ process_bb_node_lives (ira_loop_tree_node_t loop_tree_node) (ALLOCNO_OBJECT (a, 0)), REAL_PIC_OFFSET_TABLE_REGNUM); } - +#endif curr_point++; } -- 2.47.2