aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2014-11-25 21:27:17 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2014-11-25 21:27:17 +0000
commit61001a358539747f4cf2789a405c9b127aebd552 (patch)
tree5438a3bf2eaa87416dd7e0f19cba176edde9909e /gcc
parenta56e69dae3619ba2ec73ce2fef81f31fc81af575 (diff)
downloadgcc-61001a358539747f4cf2789a405c9b127aebd552.zip
gcc-61001a358539747f4cf2789a405c9b127aebd552.tar.gz
gcc-61001a358539747f4cf2789a405c9b127aebd552.tar.bz2
ira-lives.c (process_bb_node_lives): Make code with conditional REAL_PIC_OFFSET_TABLE_REGNUM.
2014-11-25 Vladimir Makarov <vmakarov@redhat.com> * ira-lives.c (process_bb_node_lives): Make code with conditional REAL_PIC_OFFSET_TABLE_REGNUM. From-SVN: r218063
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ira-lives.c11
2 files changed, 12 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 849b70e..adc3146 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2014-11-25 Vladimir Makarov <vmakarov@redhat.com>
+ * ira-lives.c (process_bb_node_lives): Make code with conditional
+ REAL_PIC_OFFSET_TABLE_REGNUM.
+
+2014-11-25 Vladimir Makarov <vmakarov@redhat.com>
+
PR target/63527
* ira-lives.c (process_bb_node_lives): Check and remove conflict
of pic pseudo with pic hard reg.
diff --git a/gcc/ira-lives.c b/gcc/ira-lives.c
index 368b118..e91c35f 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++;
}