PIPS
|
Functions | |
statement | instruction_to_statement (instruction instr) |
Build a statement from a give instruction. More... | |
statement | make_block_statement (list body) |
Make a block statement from a list of statement. More... | |
statement | make_empty_block_statement () |
Build an empty statement (block/sequence) More... | |
statement | make_empty_statement_with_declarations_and_comments (list d, string dt, string c) |
Build an empty statement with declaration list, declaration text and comment. More... | |
void | move_statement_attributes (statement from, statement to) |
Move all the attributes from one statement to another one. More... | |
void | copy_statement_attributes (statement from, statement to) |
Copy all the attributes from one statement to another one. More... | |
statement | make_statement_from_statement_list_or_empty_block (list l) |
Build a statement sequence from a statement list. More... | |
statement | make_statement_from_statement_list (list l) |
Build a statement sequence from a statement list. More... | |
statement | make_statement_from_statement_varargs_list (statement s,...) |
Build a statement sequence from a statement NULL-terminated varargs list. More... | |
statement | make_block_with_stmt_if_not_already (statement stmt) |
Build a statement block from a statement if not already a statement block. More... | |
Copy all the attributes from one statement to another one.
Do not copy the instruction
from | is the statement we pick the attributes from |
to | is the statement we copy the attributes into |
from | rom |
to | o |
Definition at line 678 of file statement.c.
References comments_dup(), copy_extensions(), decls_text_dup(), gen_copy_seq(), statement_comments, statement_declarations, statement_decls_text, statement_extensions, statement_label, statement_number, and statement_ordering.
statement instruction_to_statement | ( | instruction | instr | ) |
Build a statement from a give instruction.
instr | nstr |
Definition at line 597 of file statement.c.
References empty_comments, empty_extensions(), entity_empty_label(), make_statement(), make_synchronization_none(), NIL, STATEMENT_NUMBER_UNDEFINED, STATEMENT_ORDERING_UNDEFINED, and string_undefined.
Referenced by __attribute__(), abc_instrumentation_insert_before_statement(), begin_omp_construct(), bottom_up_abc_insert_before_statement(), BuildStatementForEntry(), C_MakeReturnStatement(), compile_master(), compute_region(), controlize_sequence(), create_block_if_needed(), do_clone_statement(), do_group_constants_terapix(), do_isolate_statement(), do_loop_expansion_init(), do_loop_nest_unswitching_purge(), do_loop_to_while_loop(), do_loop_unroll_with_epilogue(), do_loop_unroll_with_prologue(), do_split_structure(), do_split_structure_return_hook(), do_split_structure_return_hook_walker(), do_symbolic_tiling(), dowhile_to_while_walker(), effects_to_dma(), ExpressionToStatement(), FindDefinitionsOf_rewrite(), for_to_do_loop_conversion(), forloop_header(), forloop_inc(), free_guards(), freia_insert_added_stats(), fusion(), fusion_buffer(), gather_and_remove_all_format_statements_rewrite(), generate_c1_beta(), Generate_C_ReturnStatement(), generate_compact(), generate_guarded_statement(), generate_loop_workchunk(), generate_prelude(), gfc2pips_code2instruction(), gfc2pips_code2instruction_(), gfc2pips_code2instruction__TOP(), gfc2pips_dumpSELECT(), gfc2pips_namespace(), hcfg(), Hierarchical_tiling(), hierarchize_control_list(), hpfc_make_call_statement(), hpfc_translate_call_with_distributed_args(), inline_expression_call(), inline_return_crawler(), inline_statement_crawler(), insert_rwt(), interprocedural_abc_insert_before_statement(), loop_flt(), loop_nest_to_wp65_code(), loop_strip_mine(), make_assign_statement(), make_block_statement(), make_check_io_statement(), make_dma_transfert(), make_expression_statement(), make_fields_assignment_instruction(), make_get_rc_statement(), make_if_converted_test_statement(), make_loop_nest_for_overlap(), make_new_loop_statement(), make_print_statement(), make_set_rc_statement(), make_shuffle_statement(), MakeArithmIfInst(), MakeAssignedOrComputedGotoInst(), MakeCallInst(), MakeCurrentFunction(), MakeDoInst(), MakeLogicalIfInst(), MakeNewLabelledStatement(), MakeReturn(), MakeSwitchStatement(), MakeWhileDoInst(), parallel_tiling(), pips_code_abc_statement_rwt(), prepend_call(), rename_statement_declarations(), ReuseLabelledStatement(), sesamify(), st_compute_ith_local_index(), st_make_nice_test(), statement_filter(), substitute_and_create(), systeme_to_loop_nest(), take_out_the_entry_node_of_the_unstructured(), take_out_the_exit_node_if_not_a_continue(), Tiling2_buffer(), Tiling_buffer_allocation(), tiling_transformation(), top_down_abc_insert_before_statement(), unsugared_forloop_header(), unsugared_forloop_inc(), unsugared_forloop_test(), unsugared_loop_test(), unsugared_whileloop_test(), and update_statement_instruction().
Make a block statement from a list of statement.
body | ody |
Definition at line 616 of file statement.c.
References instruction_to_statement(), and make_instruction_block().
Referenced by add_exec_mmcd(), add_index_statements(), add_label_to_statement(), add_omp_guard(), add_pvm_init_and_end(), add_toggle_inc_statements(), array_scalar_access_to_bank_communication(), array_scalar_access_to_compute_communication(), atomize_statement(), bound_generation(), broadcast(), build_call_STEP_WaitAll(), BuildStatementForEntry(), CodeGenerate(), com_call(), comEngine_generate_code(), comEngine_generate_procCode(), comEngine_opt_loop_interchange(), compile_loopbounds(), compile_loopslices(), compile_master(), compile_module(), compile_mpi(), controlize_list(), cstr_args_check(), define_node_processor_id(), do_group_constants_terapix(), do_isolate_statement(), do_kernelize(), do_loop_to_while_loop(), do_loop_unroll_with_prologue(), do_split_block_statements(), do_split_decl_block_statements(), do_transform_if_statements(), effects_to_dma(), elements_loop(), ensure_comment_consistency(), free_guards(), fusion(), fusion_buffer(), gen_omp_parallel(), generate_all_liveness_but(), generate_call_init_regionArray(), generate_code(), generate_code_call(), generate_code_loop(), generate_code_seq(), generate_code_test_proc(), generate_deducables(), generate_dynamic_liveness_for_primary(), generate_dynamic_liveness_management(), generate_io_statements_for_shared_arrays(), generate_optimized_code_for_loop_nest(), generate_remapping_code(), generate_remapping_guard(), generate_stat_from_ref_list_HRE(), generate_stat_from_ref_list_proc(), GENERATION(), Hierarchical_tiling(), hpf_compile_parallel_body(), hpf_compiler(), hpfc_broadcast_if_necessary(), hpfc_buffer_initialization(), hpfc_buffer_packing(), hpfc_hcast(), hpfc_hmessage(), hpfc_initsend(), hpfc_lazy_buffer_packing(), hpfc_lazy_message(), hpfc_lazy_packing(), hpfc_message(), hpfc_nrecv(), hpfc_nsend(), HRE_distribute(), inline_statement_crawler(), insert_before_statement(), insert_run_time_communications(), insert_statements_after_declarations(), insert_test_before_caller(), insert_test_before_statement(), io_efficient_compile(), loop_flt(), loop_nest_to_wp65_code(), make_block_with_stmt_if_not_already(), make_bottom_up_abc_tests(), make_c_stop_statement(), make_compute_block(), make_empty_block_statement(), make_empty_statement_with_declarations_and_comments(), make_exit_statement(), make_interprocedural_abc_tests(), make_layout_statement(), make_load_blocks(), make_loadsave_statement(), make_loop_nest_for_overlap(), make_loopStat1(), make_movements_loop_body_wp65(), make_scanning_over_one_tile(), make_scanning_over_tiles(), make_seqStat(), make_sequence_from_statement_list(), make_shared_statement(), make_statement_from_statement_list_or_empty_block(), make_statement_from_statement_varargs_list(), make_store_blocks(), MakeForloopWithIndexDeclaration(), MakeLabeledStatement(), MakeLoopAs(), MakeNestOfStatementList(), MakeNewLabelledStatement(), messages_handling(), module_to_wp65_modules(), mpi_initialize(), outliner(), Overlap_Analysis(), phrase_remove_dependences_rwt(), processor_loop(), promote_statement(), reductions_rewrite(), regenerate_toggles(), remapping_compile(), remapping_stats(), replace_array_ref_with_fifos(), replace_array_ref_with_fifos2(), replace_glCurRep_in_seq(), root_statement_remapping_inits(), sesamify(), st_get_value_locally_and_send(), st_one_message(), step_parser(), systeme_to_loop_nest(), terapix_loop_optimizer(), Tiling2_buffer(), Tiling_buffer_allocation(), top_down_abc_array(), update_runtime_for_remapping(), update_unstructured_declarations(), usual_loop_tiling(), verify_array_element(), verify_array_variable(), and verify_scalar_variable().
Build a statement block from a statement if not already a statement block.
It is already a block statement
stmt | tmt |
Definition at line 768 of file statement.c.
References CONS, make_block_statement(), NIL, STATEMENT, and statement_sequence_p().
Referenced by atomizer_of_loop(), atomizer_of_test(), loop_normalize_of_loop(), loop_normalize_of_statement(), loop_normalize_of_unstructured(), make_send_receive_conversion(), and make_sequence_from_statement_list().
statement make_empty_block_statement | ( | void | ) |
Build an empty statement (block/sequence)
Definition at line 625 of file statement.c.
References make_block_statement(), and NIL.
Referenced by add_omp_guard(), array_scalar_access_to_bank_communication(), begin_omp_construct(), compile_mpi(), compute_region(), copy_write_statement_with_cumulated_regions(), ctx_generate_new_statement_cluster_dependant(), do_loop_unroll_with_epilogue(), do_loop_unroll_with_prologue(), generate_loop_workchunk(), gfc2pips_code2instruction_(), gfc2pips_dumpSELECT(), if_conversion_init(), inline_expression_call(), loop_annotate(), make_check_io_statement(), make_mpi_conversion(), MakeArithmIfInst(), MakeLogicalIfInst(), sequence_working_false(), test_working_false(), and transform_regions_to_statement().
Build an empty statement with declaration list, declaration text and comment.
Shouldn't we also update the extensions field? Can we really make an non empty_comment for block? cf text_statement_enclosed() or clean_up_sequences_rewrite() "block statement should be labelless, numberless and commentless"
dt | t |
Definition at line 638 of file statement.c.
References make_block_statement(), NIL, statement_comments, statement_declarations, and statement_decls_text.
Referenced by controlize_list().
Build a statement sequence from a statement list.
Definition at line 719 of file statement.c.
References make_statement_from_statement_list_or_empty_block(), NIL, and statement_undefined.
Referenced by st_make_nice_test().
Build a statement sequence from a statement list.
[in] | l | is the statement list |
Definition at line 700 of file statement.c.
References CAR, gen_free_list(), gen_length(), make_block_statement(), and STATEMENT.
Referenced by make_statement_from_statement_list().
Build a statement sequence from a statement NULL-terminated varargs list.
It is called with make_statement_from_statement_varargs_list(s1, s2,..., sn, NULL)
The statement list
Analyze in args the variadic arguments that may be after s:
Since a variadic function in C must have at least 1 non variadic argument (here the s), just skew the varargs analysis:
No more statement
Use an O(n2) algorithm that would be enough to concatenate few statements
Get the next argument:
Release the variadic analyzis:
Build a statement block from a normal list:
Definition at line 735 of file statement.c.
References CONS, gen_nconc(), make_block_statement(), NIL, and STATEMENT.
Referenced by for_to_while_loop_conversion().
Move all the attributes from one statement to another one.
Do not copy the instruction
from | is the statement we pick the attributes from |
to | is the statement we copy the attributes into |
from | rom |
to | o |
Definition at line 657 of file statement.c.
References statement_comments, statement_declarations, statement_decls_text, statement_extensions, statement_label, statement_number, and statement_ordering.
Referenced by begin_omp_construct(), and statement_filter().