#ifndef _TREE_SIMPLE_H
#define _TREE_SIMPLE_H 1
#include "tree-iterator.h"
extern tree create_tmp_var_raw (tree, const char *);
extern tree create_tmp_var_name (const char *);
extern tree create_tmp_var (tree, const char *);
extern tree get_initialized_tmp_var (tree, tree *, tree *);
extern tree get_formal_tmp_var (tree, tree *);
extern void declare_tmp_vars (tree, tree);
extern void annotate_all_with_locus (tree *, location_t);
typedef bool (*gimple_predicate)(tree);
extern bool is_gimple_stmt (tree);
extern bool is_gimple_reg_type (tree);
extern bool is_gimple_reg (tree);
extern bool is_gimple_formal_tmp_var (tree);
extern bool is_gimple_formal_tmp_reg (tree);
extern bool is_gimple_variable (tree);
extern bool is_gimple_min_lval (tree);
extern bool is_gimple_addressable (tree);
extern bool is_gimple_lvalue (tree);
extern bool is_gimple_min_invariant (tree);
extern bool is_gimple_val (tree);
extern bool is_gimple_asm_val (tree);
extern bool is_gimple_formal_tmp_rhs (tree);
extern bool is_gimple_reg_rhs (tree);
extern bool is_gimple_mem_rhs (tree);
extern gimple_predicate rhs_predicate_for (tree);
extern bool is_gimple_condexpr (tree);
extern bool is_gimple_cast (tree);
extern bool is_gimple_non_addressable (tree t);
extern bool is_gimple_call_addr (tree);
extern tree get_call_expr_in (tree t);
extern void recalculate_side_effects (tree);
typedef enum fallback_t {
fb_none = 0,
fb_rvalue = 1,
fb_lvalue = 2,
fb_mayfail = 4,
fb_either= fb_rvalue | fb_lvalue
} fallback_t;
enum gimplify_status {
GS_ERROR = -2,
GS_UNHANDLED = -1,
GS_OK = 0,
GS_ALL_DONE = 1
};
extern enum gimplify_status gimplify_expr (tree *, tree *, tree *,
bool (*) (tree), fallback_t);
extern void gimplify_type_sizes (tree, tree *);
extern void gimplify_one_sizepos (tree *, tree *);
extern void gimplify_stmt (tree *);
extern void gimplify_to_stmt_list (tree *);
extern void gimplify_body (tree *, tree, bool);
extern void push_gimplify_context (void);
extern void pop_gimplify_context (tree);
extern void gimplify_and_add (tree, tree *);
extern void gimple_add_tmp_var (tree);
extern tree gimple_current_bind_expr (void);
extern void gimple_push_bind_expr (tree);
extern void gimple_pop_bind_expr (void);
extern void unshare_all_trees (tree);
extern tree voidify_wrapper_expr (tree, tree);
extern tree gimple_build_eh_filter (tree, tree, tree);
extern tree build_and_jump (tree *);
extern tree alloc_stmt_list (void);
extern void free_stmt_list (tree);
extern tree force_labels_r (tree *, int *, void *);
extern enum gimplify_status gimplify_va_arg_expr (tree *, tree *, tree *);
extern void lower_nested_functions (tree);
#endif