#include <stdint.h>#include "defs.h"#include "glob.h"#include "config.h"#include "wn.h"#include "wn_util.h"#include "gnu_config.h"#include "gnu/system.h"#include "srcpos.h"#include "gnu/flags.h"#include "gnu/tree.h"#include "insn-config.h"#include "ir_reader.h"#include "tree_symtab.h"#include "wfe_misc.h"#include "wfe_expr.h"#include "wfe_stmt.h"#include "targ_sim.h"#include <ctype.h>

Go to the source code of this file.
| #define __STDC_LIMIT_MACROS |
Definition at line 41 of file wfe_stmt.cxx.
| #define ENLARGE | ( | x | ) | (x + (x >> 1)) |
Definition at line 70 of file wfe_stmt.cxx.
| #define MAX_NON_PLUS_CONSTRAINT_CHARS 7 |
| typedef struct case_info_t CASE_INFO |
| typedef struct label_info_t LABEL_INFO |
| typedef struct loop_info_t LOOP_INFO |
| typedef struct switch_info_t SWITCH_INFO |
| enum LOOP_CONTINUE_INFO |
| CONTINUE_NONE | |
| CONTINUE_ELSEWHERE | |
| CONTINUE_HERE | |
| CONTINUE_ELSEWHERE_HERE | |
| CONTINUE_HERE_ELSEWHERE |
Definition at line 76 of file wfe_stmt.cxx.
| int decode_reg_name | ( | char * | ) |
Definition at line 404 of file wfe_stmt.cxx.
References case_info_i, case_info_max, case_info_t::case_label_idx, case_info_t::case_lower_bound_value, case_info_t::case_upper_bound_value, CURRENT_SYMTAB, DevWarn, ENLARGE, FmtAssert, lineno, New_LABEL(), NULL, realloc, TRUE, WFE_Expand_Expr(), WFE_Stmt_Append(), wn, WN_const_val(), and WN_CreateLabel.
Referenced by add_case_node(), and WFE_Expand_Expr().
Definition at line 443 of file wfe_stmt.cxx.
Definition at line 309 of file wfe_stmt.cxx.
References loop_info_t::continue_label_idx, CURRENT_SYMTAB, FmtAssert, loop_info_i, New_LABEL(), NULL, WFE_Stmt_Append(), wn, and WN_CreateGoto.
Referenced by expand_continue_loop(), and WFE_Expand_Expr().
Definition at line 475 of file wfe_stmt.cxx.
References case_info_i, case_info_t::case_label_idx, case_info_t::case_lower_bound_value, case_info_t::case_upper_bound_value, CLASS_VAR, CURRENT_SYMTAB, EXPORT_LOCAL, i, index(), switch_info_t::index_mtype, INT32, INT64, Is_True, MTYPE_is_signed, MTYPE_To_TY, n, New_LABEL(), New_ST(), NULL, OPR_LDID, Save_Str(), SCLASS_AUTO, sprintf(), ST_Init(), ST_st_idx, switch_info_t::start_case_index, switch_info_i, TYPE_ID, UINT64, WFE_Stmt_Append(), WFE_Stmt_Pop(), wn, WN_CreateBlock, WN_CreateCasegoto, WN_CreateGoto, WN_CreateLabel, WN_CreateLdid, WN_CreateSwitch, WN_Get_Linenum(), WN_INSERT_BlockLast, and WN_Stid().
Definition at line 184 of file wfe_stmt.cxx.
References FALSE, FmtAssert, if_else_info_i, if_else_info_stack, and WFE_Stmt_Pop().
Referenced by expand_end_cond(), and WFE_Expand_Expr().
Definition at line 265 of file wfe_stmt.cxx.
References CONTINUE_ELSEWHERE, CONTINUE_ELSEWHERE_HERE, CONTINUE_NONE, loop_info_t::exit_label_idx, Fail_FmtAssertion(), FALSE, FmtAssert, loop_info_i, MTYPE_I4, NULL, WFE_Stmt_Append(), WFE_Stmt_Pop(), WFE_Stmt_Push(), WN_CreateDoWhile, WN_CreateLabel, WN_CreateWhileDo, and WN_Intconst().
Referenced by expand_end_loop(), and WFE_Expand_Expr().
Definition at line 325 of file wfe_stmt.cxx.
References Fail_FmtAssertion().
Referenced by expand_exit_loop().
Definition at line 331 of file wfe_stmt.cxx.
References Boolean_type, CONTINUE_ELSEWHERE, CONTINUE_ELSEWHERE_HERE, CONTINUE_NONE, loop_info_t::exit_loop_if_false, Fail_FmtAssertion(), FmtAssert, loop_info_i, TRUE, WFE_Expand_Expr_With_Sequence_Point(), WFE_Stmt_Append(), WFE_Stmt_Pop(), WFE_Stmt_Push(), WN_CreateDoWhile, WN_CreateWhileDo, and WN_Intconst().
Referenced by expand_exit_loop_if_false(), and WFE_Expand_Expr().
Definition at line 239 of file wfe_stmt.cxx.
References CONTINUE_ELSEWHERE, CONTINUE_ELSEWHERE_HERE, CONTINUE_HERE, loop_info_t::continue_here, loop_info_t::continue_info, CONTINUE_NONE, Fail_FmtAssertion(), FmtAssert, loop_info_i, NULL, TRUE, WFE_Stmt_Append(), and WN_CreateLabel.
Referenced by expand_loop_continue_here(), and WFE_Expand_Expr().
Definition at line 368 of file wfe_stmt.cxx.
References case_info_i, switch_info_t::default_label_idx, ENLARGE, switch_info_t::exit_label_idx, Gen_Temp_Symbol(), Get_TY(), index(), switch_info_t::index, switch_info_t::index_mtype, Mtype_comparison(), MTYPE_TO_TY_array, realloc, switch_info_t::start_case_index, switch_info_i, switch_info_max, TREE_TYPE, TY_mtype, TYPE_ID, WFE_Expand_Expr_With_Sequence_Point(), WFE_Stmt_Append(), WFE_Stmt_Push(), WN_CreateBlock, WN_Ldid(), and WN_Stid().
Definition at line 150 of file wfe_stmt.cxx.
References BOOL, Boolean_type, ENLARGE, FALSE, if_else_info_i, if_else_info_max, if_else_info_stack, realloc, WFE_Expand_Expr_With_Sequence_Point(), WFE_Stmt_Append(), WFE_Stmt_Push(), WN_CreateBlock, and WN_CreateIf.
Referenced by expand_start_cond(), and WFE_Expand_Expr().
Definition at line 175 of file wfe_stmt.cxx.
References FmtAssert, if_else_info_i, if_else_info_stack, TRUE, and WFE_Stmt_Pop().
Referenced by expand_start_else(), and WFE_Expand_Expr().
Definition at line 195 of file wfe_stmt.cxx.
References loop_info_t::continue_here, loop_info_t::continue_info, loop_info_t::continue_label_idx, CONTINUE_NONE, ENLARGE, loop_info_t::exit_label_idx, loop_info_t::exit_loop_if_false, FALSE, loop_info_i, loop_info_max, realloc, WFE_Stmt_Push(), loop_info_t::whichloop, and WN_CreateBlock.
Referenced by expand_start_loop(), and WFE_Expand_Expr().
Definition at line 218 of file wfe_stmt.cxx.
References CONTINUE_ELSEWHERE, CONTINUE_HERE, CONTINUE_HERE_ELSEWHERE, loop_info_t::continue_info, loop_info_t::continue_label_idx, CONTINUE_NONE, CURRENT_SYMTAB, Fail_FmtAssertion(), FmtAssert, loop_info_i, and New_LABEL().
Referenced by expand_start_loop_continue_elsewhere(), and WFE_Expand_Expr().
Definition at line 130 of file wfe_stmt.cxx.
References BOOL, break_continue_info_i, break_continue_info_max, case_info_i, case_info_max, eh_cleanup_i, eh_cleanup_max, handler_info_i, handler_info_max, if_else_info_i, if_else_info_max, if_else_info_stack, loop_info_i, loop_info_max, malloc, scope_cleanup_i, scope_cleanup_max, scope_i, scope_max, scope_stack, switch_info_i, switch_info_max, temp_cleanup_i, temp_cleanup_max, undefined_labels_i, and undefined_labels_max.
INT32 case_info_i [static] |
Definition at line 112 of file wfe_stmt.cxx.
INT32 case_info_max [static] |
Definition at line 113 of file wfe_stmt.cxx.
CASE_INFO* case_info_stack [static] |
Definition at line 111 of file wfe_stmt.cxx.
INT32 if_else_info_i [static] |
Definition at line 73 of file wfe_stmt.cxx.
INT32 if_else_info_max [static] |
Definition at line 74 of file wfe_stmt.cxx.
BOOL* if_else_info_stack [static] |
Definition at line 72 of file wfe_stmt.cxx.
INT32 loop_info_i [static] |
Definition at line 94 of file wfe_stmt.cxx.
Referenced by WFE_Expand_Continue_Loop(), WFE_Expand_End_Loop(), WFE_Expand_Exit_Loop_If_False(), WFE_Expand_Loop_Continue_Here(), WFE_Expand_Start_Loop(), WFE_Expand_Start_Loop_Continue_Elsewhere(), and WFE_Stmt_Init().
INT32 loop_info_max [static] |
Definition at line 95 of file wfe_stmt.cxx.
Referenced by WFE_Expand_Start_Loop(), and WFE_Stmt_Init().
LOOP_INFO* loop_info_stack [static] |
Definition at line 93 of file wfe_stmt.cxx.
INT32 switch_info_i [static] |
Definition at line 116 of file wfe_stmt.cxx.
INT32 switch_info_max [static] |
Definition at line 117 of file wfe_stmt.cxx.
SWITCH_INFO* switch_info_stack [static] |
Definition at line 115 of file wfe_stmt.cxx.
INT32 undefined_labels_i [static] |
Definition at line 126 of file wfe_stmt.cxx.
INT32 undefined_labels_max [static] |
Definition at line 127 of file wfe_stmt.cxx.
LABEL_INFO* undefined_labels_stack [static] |
Definition at line 125 of file wfe_stmt.cxx.
1.5.6