Commit f30e25a3 by Zhenqiang Chen Committed by Zhenqiang Chen

Makefile.in: add shrink-wrap.o.

2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* Makefile.in: add shrink-wrap.o.
	* config/i386/i386.c: include "shrink-wrap.h"
	* function.c: Likewise.
	(requires_stack_frame_p, next_block_for_reg,
	move_insn_for_shrink_wrap, prepare_shrink_wrap,
	dup_block_and_redirect): Move to shrink-wrap.c
	(thread_prologue_and_epilogue_insns): Extract three code segments
	as functions in shrink-wrap.c
	* function.h: Move #ifdef HAVE_simple_return ... #endif block to
	shrink-wrap.h
	* shrink-wrap.c: New file.
	* shrink-wrap.h: New file.

From-SVN: r210351
parent 3f55e16a
2014-05-13 Zhenqiang Chen <zhenqiang.chen@linaro.org>
* Makefile.in: add shrink-wrap.o.
* config/i386/i386.c: include "shrink-wrap.h"
* function.c: Likewise.
(requires_stack_frame_p, next_block_for_reg,
move_insn_for_shrink_wrap, prepare_shrink_wrap,
dup_block_and_redirect): Move to shrink-wrap.c
(thread_prologue_and_epilogue_insns): Extract three code segments
as functions in shrink-wrap.c
* function.h: Move #ifdef HAVE_simple_return ... #endif block to
shrink-wrap.h
* shrink-wrap.c: New file.
* shrink-wrap.h: New file.
2014-05-12 David Wohlferd <dw@LimeGreenSocks.com> 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
* doc/extend.texi: Reflect current numbers of pragmas. Remove * doc/extend.texi: Reflect current numbers of pragmas. Remove
......
...@@ -1353,6 +1353,7 @@ OBJS = \ ...@@ -1353,6 +1353,7 @@ OBJS = \
sel-sched-dump.o \ sel-sched-dump.o \
sel-sched.o \ sel-sched.o \
sese.o \ sese.o \
shrink-wrap.o \
simplify-rtx.o \ simplify-rtx.o \
sparseset.o \ sparseset.o \
sreal.o \ sreal.o \
......
...@@ -83,6 +83,7 @@ along with GCC; see the file COPYING3. If not see ...@@ -83,6 +83,7 @@ along with GCC; see the file COPYING3. If not see
#include "pass_manager.h" #include "pass_manager.h"
#include "target-globals.h" #include "target-globals.h"
#include "tree-vectorizer.h" #include "tree-vectorizer.h"
#include "shrink-wrap.h"
static rtx legitimize_dllimport_symbol (rtx, bool); static rtx legitimize_dllimport_symbol (rtx, bool);
static rtx legitimize_pe_coff_extern_decl (rtx, bool); static rtx legitimize_pe_coff_extern_decl (rtx, bool);
...@@ -809,10 +809,6 @@ extern void used_types_insert (tree); ...@@ -809,10 +809,6 @@ extern void used_types_insert (tree);
extern int get_next_funcdef_no (void); extern int get_next_funcdef_no (void);
extern int get_last_funcdef_no (void); extern int get_last_funcdef_no (void);
#ifdef HAVE_simple_return
extern bool requires_stack_frame_p (rtx, HARD_REG_SET, HARD_REG_SET);
#endif
extern rtx get_hard_reg_initial_val (enum machine_mode, unsigned int); extern rtx get_hard_reg_initial_val (enum machine_mode, unsigned int);
extern rtx has_hard_reg_initial_val (enum machine_mode, unsigned int); extern rtx has_hard_reg_initial_val (enum machine_mode, unsigned int);
extern rtx get_hard_reg_initial_reg (rtx); extern rtx get_hard_reg_initial_reg (rtx);
......
/* Structure for saving state for a nested function.
Copyright (C) 1989-2014 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#ifndef GCC_SHRINK_WRAP_H
#define GCC_SHRINK_WRAP_H
#include "hashtab.h"
#include "vec.h"
#include "machmode.h"
#ifdef HAVE_simple_return
/* In function.c. */
extern void emit_return_into_block (bool simple_p, basic_block bb);
extern bool active_insn_between (rtx head, rtx tail);
extern vec<edge> convert_jumps_to_returns (basic_block last_bb, bool simple_p,
vec<edge> unconverted);
extern basic_block emit_return_for_exit (edge exit_fallthru_edge,
bool simple_p);
/* In shrink-wrap.c. */
extern bool requires_stack_frame_p (rtx, HARD_REG_SET, HARD_REG_SET);
extern void prepare_shrink_wrap (basic_block entry_block);
extern void dup_block_and_redirect (basic_block bb, basic_block copy_bb,
rtx before, bitmap_head *need_prologue);
extern void try_shrink_wrapping (edge *entry_edge, edge orig_entry_edge,
bitmap_head *bb_flags, rtx prologue_seq);
extern edge get_unconverted_simple_return (edge, bitmap_head,
vec<edge> *, rtx *);
extern void convert_to_simple_return (edge entry_edge, edge orig_entry_edge,
bitmap_head bb_flags, rtx returnjump,
vec<edge> unconverted_simple_returns);
#endif
#endif /* GCC_SHRINK_WRAP_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment