diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-15 16:23:28 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-15 16:23:28 +0000 |
commit | 89bc53e2cbd952786f78f49a49a8ffa63fee8f67 (patch) | |
tree | 3b1416171706f88657f5e6d513ae9c2185cbfc7d /gcc/df-problems.c | |
parent | 6e558d0dafdc7b65313d45480522d0b3abe7fdbb (diff) | |
download | gcc-89bc53e2cbd952786f78f49a49a8ffa63fee8f67.tar.gz |
* df-problems.c (df_lr_local_compute): Manually CSE
PIC_OFFSET_TABLE_REGNUM.
* df-scan.c (df_get_regular_block_artificial_uses): Likewise.
(df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@175081 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/df-problems.c')
-rw-r--r-- | gcc/df-problems.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/df-problems.c b/gcc/df-problems.c index e5b88e3d2dc..59bed8bd667 100644 --- a/gcc/df-problems.c +++ b/gcc/df-problems.c @@ -906,6 +906,7 @@ df_lr_local_compute (bitmap all_blocks ATTRIBUTE_UNUSED) blocks within infinite loops. */ if (!reload_completed) { + unsigned int pic_offset_table_regnum = PIC_OFFSET_TABLE_REGNUM; /* Any reference to any pseudo before reload is a potential reference of the frame pointer. */ bitmap_set_bit (&df->hardware_regs_used, FRAME_POINTER_REGNUM); @@ -919,9 +920,9 @@ df_lr_local_compute (bitmap all_blocks ATTRIBUTE_UNUSED) /* Any constant, or pseudo with constant equivalences, may require reloading from memory using the pic register. */ - if ((unsigned) PIC_OFFSET_TABLE_REGNUM != INVALID_REGNUM - && fixed_regs[PIC_OFFSET_TABLE_REGNUM]) - bitmap_set_bit (&df->hardware_regs_used, PIC_OFFSET_TABLE_REGNUM); + if (pic_offset_table_regnum != INVALID_REGNUM + && fixed_regs[pic_offset_table_regnum]) + bitmap_set_bit (&df->hardware_regs_used, pic_offset_table_regnum); } EXECUTE_IF_SET_IN_BITMAP (df_lr->out_of_date_transfer_functions, 0, bb_index, bi) |