X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbe.h;h=a0877a12947825c96a21c30ce45ffc7f892ad695;hb=8cb8fe7d9d69a9bd06365823d5d5f68d051f6db0;hp=5d04946c4a8551c248810da139d123c4ba282fc0;hpb=7c0b52be1885bfb12c5cc2acfd000cfd26482e87;p=libfirm diff --git a/ir/be/be.h b/ir/be/be.h index 5d04946c4..a0877a129 100644 --- a/ir/be/be.h +++ b/ir/be/be.h @@ -1,12 +1,41 @@ +/* + * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * + * This file is part of libFirm. + * + * This file may be distributed and/or modified under the terms of the + * GNU General Public License version 2 as published by the Free Software + * Foundation and appearing in the file LICENSE.GPL included in the + * packaging of this file. + * + * Licensees holding valid libFirm Professional Edition licenses may use + * this file in accordance with the libFirm Commercial License. + * Agreement provided with the Software. + * + * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE + * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE. + */ -#ifndef _BE_MAIN_H -#define _BE_MAIN_H +/** + * @file + * @brief Generic backend types and interfaces. + * @author Sebastian Hack + * @version $Id$ + */ +#ifndef FIRM_BE_MAIN_H +#define FIRM_BE_MAIN_H #include #include "irarch.h" #include "archop.h" #include "lower_dw.h" #include "dbginfo.h" +#include "ifconv.h" + +#include + +#define LC_STOP_AND_RESET_TIMER(timer) do { lc_timer_stop(timer); lc_timer_reset(timer); } while(0) /** * This structure contains parameters that should be @@ -24,6 +53,12 @@ typedef struct backend_params { /** the architecture specific intrinsic function creator */ create_intrinsic_fkt *arch_create_intrinsic_fkt; + + /** the context parameter for the create intrinsic function */ + void *create_intrinsic_ctx; + + /** backend settings for if-conversion */ + const opt_if_conv_info_t *if_conv_info; } backend_params; /** @@ -47,7 +82,7 @@ const backend_params *be_init(void); /** * Main interface to the frontend. */ -void be_main(FILE *file_handle); +void be_main(FILE *file_handle, const char *cup_name); /** The type of the debug info retriever function. */ typedef const char *(*retrieve_dbg_func)(const dbg_info *dbg, unsigned *line); @@ -64,8 +99,7 @@ void be_set_debug_retrieve(retrieve_dbg_func func); */ const char *be_retrieve_dbg_info(const dbg_info *dbg, unsigned *line); -typedef struct _be_main_env_t be_main_env_t; -typedef struct _be_irg_t be_irg_t; -typedef struct _be_options_t be_options_t; +typedef struct be_main_env_t be_main_env_t; +typedef struct be_options_t be_options_t; -#endif /* _BE_MAIN_H */ +#endif /* FIRM_BE_MAIN_H */