You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
+Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301, USA. */
/* This file contains low level functions to manipulate the CFG and
analyze it. All other modules should not transform the data structure
return bb;
}
-/* Initialize rbi (the structure containing data used by basic block
- duplication and reordering) for the given basic block. */
-
-void
-initialize_bb_rbi (basic_block bb)
-{
- gcc_assert (!bb->rbi);
- bb->rbi = ggc_alloc_cleared (sizeof (struct reorder_block_def));
-}
-
/* Link block B to chain after AFTER. */
void
link_block (basic_block b, basic_block after)
basic_block bb;
FOR_BB_BETWEEN (bb, ENTRY_BLOCK_PTR, NULL, next_bb)
- bb->flags = BB_PARTITION (bb) | (bb->flags & BB_DISABLE_SCHEDULE);
+ bb->flags = (BB_PARTITION (bb) | (bb->flags & BB_DISABLE_SCHEDULE)
+ | (bb->flags & BB_RTL));
}
\f
/* Check the consistency of profile information. We can't do that
FOR_EACH_EDGE (e, ei, bb->succs)
dump_edge_info (file, e, 1);
- if (bb->global_live_at_start)
- {
- fprintf (file, "\nRegisters live at start:");
- dump_regset (bb->global_live_at_start, file);
- }
-
- if (bb->global_live_at_end)
+ if (bb->flags & BB_RTL)
{
- fprintf (file, "\nRegisters live at end:");
- dump_regset (bb->global_live_at_end, file);
+ if (bb->il.rtl->global_live_at_start)
+ {
+ fprintf (file, "\nRegisters live at start:");
+ dump_regset (bb->il.rtl->global_live_at_start, file);
+ }
+
+ if (bb->il.rtl->global_live_at_end)
+ {
+ fprintf (file, "\nRegisters live at end:");
+ dump_regset (bb->il.rtl->global_live_at_end, file);
+ }
}
putc ('\n', file);
int scale = 65536 * REG_BR_PROB_BASE / prob;
FOR_EACH_EDGE (c, ei, bb->succs)
- c->probability *= scale / 65536;
+ c->probability = (c->probability * scale) / 65536;
}
gcc_assert (bb == taken_edge->src);
}
}
-/* Datastructures used to maintain mapping between basic blocks and copies. */
+/* Data structures used to maintain mapping between basic blocks and
+ copies. */
static htab_t bb_original;
static htab_t bb_copy;
static alloc_pool original_copy_bb_pool;
return data->index1 == data2->index1;
}
-/* Initialize the datstructures to maintain mapping between blocks and it's copies. */
+/* Initialize the data structures to maintain mapping between blocks
+ and its copies. */
void
initialize_original_copy_tables (void)
{
bb_copy = htab_create (10, bb_copy_original_hash, bb_copy_original_eq, NULL);
}
-/* Free the datstructures to maintain mapping between blocks and it's copies. */
+/* Free the data structures to maintain mapping between blocks and
+ its copies. */
void
free_original_copy_tables (void)
{
original_copy_bb_pool = NULL;
}
-/* Set original for basic block. Do nothing when datstructures are not
- intialized so passes not needing this don't need to care. */
+/* Set original for basic block. Do nothing when data structures are not
+ initialized so passes not needing this don't need to care. */
void
set_bb_original (basic_block bb, basic_block original)
{
return NULL;
}
-/* Set copy for basic block. Do nothing when datstructures are not
- intialized so passes not needing this don't need to care. */
+/* Set copy for basic block. Do nothing when data structures are not
+ initialized so passes not needing this don't need to care. */
void
set_bb_copy (basic_block bb, basic_block copy)
{