cfglayout.h revision 132718
153541Sshin/* Basic block reordering routines for the GNU compiler. 253541Sshin Copyright (C) 2000, 2003 Free Software Foundation, Inc. 353541Sshin 453541Sshin This file is part of GCC. 553541Sshin 653541Sshin GCC is free software; you can redistribute it and/or modify it 753541Sshin under the terms of the GNU General Public License as published by 853541Sshin the Free Software Foundation; either version 2, or (at your option) 953541Sshin any later version. 1053541Sshin 1153541Sshin GCC is distributed in the hope that it will be useful, but WITHOUT 1253541Sshin ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 1353541Sshin or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 1453541Sshin License for more details. 1553541Sshin 1653541Sshin You should have received a copy of the GNU General Public License 1753541Sshin along with GCC; see the file COPYING. If not, write to the Free 1853541Sshin Software Foundation, 59 Temple Place - Suite 330, Boston, MA 1953541Sshin 02111-1307, USA. */ 2053541Sshin 2153541Sshin/* Structure to hold information about the blocks during reordering. */ 2253541Sshintypedef struct reorder_block_def 2353541Sshin{ 2453541Sshin rtx header; 2553541Sshin rtx footer; 2653541Sshin basic_block next; 2753541Sshin basic_block original; 2853541Sshin /* Used by loop copying. */ 2953541Sshin basic_block copy; 3053541Sshin int duplicated; 3153541Sshin 3253541Sshin /* These fields are used by bb-reorder pass. */ 3353541Sshin int visited; 3453541Sshin} *reorder_block_def; 3553541Sshin 3653541Sshinextern rtx cfg_layout_function_footer; 3753541Sshin 3853541Sshinextern void cfg_layout_initialize (unsigned int); 3953541Sshinextern void cfg_layout_finalize (void); 4053541Sshinextern bool cfg_layout_can_duplicate_bb_p (basic_block); 4153541Sshinextern basic_block cfg_layout_duplicate_bb (basic_block, edge); 4253541Sshinextern void insn_locators_initialize (void); 4353541Sshinextern void reemit_insn_block_notes (void); 4453541Sshinextern bool can_copy_bbs_p (basic_block *, unsigned); 4553541Sshinextern void copy_bbs (basic_block *, unsigned, basic_block *, 4653541Sshin edge *, unsigned, edge *, struct loop *); 4753541Sshinextern void cfg_layout_initialize_rbi (basic_block); 4853541Sshin