/* Functions to analyze and validate GIMPLE trees.
- Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2005, 2007 Free Software Foundation, Inc.
Contributed by Diego Novillo <dnovillo@redhat.com>
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 2, or (at your option)
+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,
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 COPYING. If not, write to
-the Free Software Foundation, 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA. */
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
#ifndef _TREE_SIMPLE_H
#define _TREE_SIMPLE_H 1
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 declare_vars (tree, tree, bool);
extern void annotate_all_with_locus (tree *, location_t);
extern bool is_gimple_lvalue (tree);
/* Returns true iff T is a GIMPLE restricted function invariant. */
-extern bool is_gimple_min_invariant (tree);
+extern bool is_gimple_min_invariant (const_tree);
/* Returns true iff T is a GIMPLE rvalue. */
extern bool is_gimple_val (tree);
/* Returns true iff T is a GIMPLE asm statement input. */
GS_ALL_DONE = 1 /* The expression is fully gimplified. */
};
-/* Type of parallel constructs. Used to decide what runtime function
- to use for launching children threads and the gimplification
- strategy. */
-
-enum omp_parallel_type {
- IS_NOT_PARALLEL = 0,
-
- /* Regular omp parallel */
- IS_PARALLEL,
-
- /* Combined parallel + workshare (parallel loop and parallel
- sections). */
- IS_COMBINED_PARALLEL
-};
-
extern enum gimplify_status gimplify_expr (tree *, tree *, tree *,
bool (*) (tree), fallback_t);
extern void gimplify_type_sizes (tree, tree *);
extern enum gimplify_status gimplify_va_arg_expr (tree *, tree *, tree *);
struct gimplify_omp_ctx;
extern void omp_firstprivatize_variable (struct gimplify_omp_ctx *, tree);
+extern tree gimple_boolify (tree);
+extern tree canonicalize_cond_expr_cond (tree);
/* In omp-low.c. */
-extern tree find_omp_clause (tree, enum tree_code);
extern void diagnose_omp_structured_block_errors (tree);
extern tree omp_reduction_init (tree, tree);
-enum omp_parallel_type determine_parallel_type (tree stmt);
/* In tree-nested.c. */
extern void lower_nested_functions (tree);