libFirm 1.20
|
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