X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Firnode.h;h=a3f20b18f777f4e9ac478db461576453d1080963;hb=0c2e8bedc56cb9dba9b2544927a8093ddb7ee614;hp=17a357055bb7733a9fe757f9badb14f8058a1ccf;hpb=0df5e0ea5d4d6a566339ac4b93a73719858e81e1;p=libfirm diff --git a/include/libfirm/irnode.h b/include/libfirm/irnode.h index 17a357055..a3f20b18f 100644 --- a/include/libfirm/irnode.h +++ b/include/libfirm/irnode.h @@ -298,13 +298,6 @@ FIRM_API void set_Block_matured(ir_node *block, int matured); FIRM_API ir_visited_t get_Block_block_visited(const ir_node *block); FIRM_API void set_Block_block_visited(ir_node *block, ir_visited_t visit); -/** - * Marks a block as dead but do not replace it with a Bad node. - * Dead blocks are removed in the con - */ -FIRM_API ir_node *set_Block_dead(ir_node *block); -FIRM_API int is_Block_dead(const ir_node *block); - /* For this current_ir_graph must be set. */ FIRM_API void mark_Block_block_visited(ir_node *node); FIRM_API int Block_block_visited(const ir_node *node); @@ -485,6 +478,27 @@ FIRM_API void set_binop_left(ir_node *node, ir_node *left); FIRM_API ir_node *get_binop_right(const ir_node *node); FIRM_API void set_binop_right(ir_node *node, ir_node *right); +/** + * Test wether a node is the X_except Proj of a fragile operation + */ +FIRM_API int is_x_except_Proj(const ir_node *node); + +/** + * Test wether a node is the X_regular Proj of a fragile operation + */ +FIRM_API int is_x_regular_Proj(const ir_node *node); + +/** + * Set throws exception attribute of a fragile node + * @p throws_exception must be 0 or 1 + */ +FIRM_API void ir_set_throws_exception(ir_node *node, int throws_exception); + +/** + * Returns throws_exception attribute of a fragile node + */ +FIRM_API int ir_throws_exception(const ir_node *node); + /** returns the name of an ir_relation */ FIRM_API const char *get_relation_string(ir_relation relation); @@ -591,6 +605,9 @@ FIRM_API ir_node *skip_HighLevel_ops(ir_node *node); /** Returns true if the operation manipulates control flow: Start, End, Jmp, Cond, Return, Raise, Bad */ FIRM_API int is_cfop(const ir_node *node); +/** returns true if the operation jumps to an unknown destination. + * See irop_flag_unknown_jump for a detailed explanation */ +FIRM_API int is_unknown_jump(const ir_node *node); /** Returns true if the operation can change the control flow because of an exception: Call, Div, Mod, Load, Store, Alloc,