libFirm 1.20
libfirm/iropt.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
00003  *
00004  * This file is part of libFirm.
00005  *
00006  * This file may be distributed and/or modified under the terms of the
00007  * GNU General Public License version 2 as published by the Free Software
00008  * Foundation and appearing in the file LICENSE.GPL included in the
00009  * packaging of this file.
00010  *
00011  * Licensees holding valid libFirm Professional Edition licenses may use
00012  * this file in accordance with the libFirm Commercial License.
00013  * Agreement provided with the Software.
00014  *
00015  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00016  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00017  * PURPOSE.
00018  */
00019 
00025 #ifndef FIRM_IR_IROPT_H
00026 #define FIRM_IR_IROPT_H
00027 
00028 #include "firm_types.h"
00029 #include "begin.h"
00030 
00061 typedef enum fp_model_t {
00062     fp_explicit_rounding  = (1u << 0),  
00065     fp_strict_algebraic   = (1u << 1),  
00067     fp_contradictions     = (1u << 2),  
00068     fp_strict_eval_order  = (1u << 3),  
00069     fp_exceptions         = (1u << 4),  
00072     fp_environment_access = (1u << 5),  
00076     fp_model_precise = fp_explicit_rounding|fp_strict_algebraic|fp_contradictions,
00078     fp_model_strict  = fp_explicit_rounding|fp_strict_algebraic|fp_strict_eval_order|
00079                        fp_exceptions|fp_environment_access,
00081     fp_model_fast    = fp_contradictions
00082 } fp_model_t;
00083 
00087 FIRM_API ir_tarval *computed_value(const ir_node *n);
00088 
00097 FIRM_API ir_node *optimize_in_place(ir_node *n);
00098 
00102 FIRM_API int ir_is_negated_value(const ir_node *a, const ir_node *b);
00103 
00108 FIRM_API ir_relation ir_get_possible_cmp_relations(const ir_node *left,
00109                                                    const ir_node *right);
00110 
00113 #include "end.h"
00114 
00115 #endif