190075Sobrien/* Basic block reordering routines for the GNU compiler.
2169689Skan   Copyright (C) 2000, 2003, 2004 Free Software Foundation, Inc.
390075Sobrien
490075Sobrien   This file is part of GCC.
590075Sobrien
690075Sobrien   GCC is free software; you can redistribute it and/or modify it
790075Sobrien   under the terms of the GNU General Public License as published by
890075Sobrien   the Free Software Foundation; either version 2, or (at your option)
990075Sobrien   any later version.
1090075Sobrien
1190075Sobrien   GCC is distributed in the hope that it will be useful, but WITHOUT
1290075Sobrien   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
1390075Sobrien   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
1490075Sobrien   License for more details.
1590075Sobrien
1690075Sobrien   You should have received a copy of the GNU General Public License
1790075Sobrien   along with GCC; see the file COPYING.  If not, write to the Free
18169689Skan   Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
19169689Skan   02110-1301, USA.  */
2090075Sobrien
21169689Skan#ifndef GCC_CFGLAYOUT_H
22169689Skan#define GCC_CFGLAYOUT_H
23117395Skan
24169689Skan#include "basic-block.h"
2590075Sobrien
26132718Skanextern rtx cfg_layout_function_footer;
2790075Sobrien
28132718Skanextern void cfg_layout_initialize (unsigned int);
29132718Skanextern void cfg_layout_finalize (void);
30169689Skanextern unsigned int insn_locators_initialize (void);
31132718Skanextern void reemit_insn_block_notes (void);
32132718Skanextern bool can_copy_bbs_p (basic_block *, unsigned);
33132718Skanextern void copy_bbs (basic_block *, unsigned, basic_block *,
34169689Skan		      edge *, unsigned, edge *, struct loop *,
35169689Skan		      basic_block);
36169689Skanextern rtx duplicate_insn_chain (rtx, rtx);
37169689Skan
38169689Skan#endif /* GCC_CFGLAYOUT_H */
39