PIPS

second level fields More...

+ Collaboration diagram for Direct statement accessors to:

Functions

sequence statement_sequence (statement s)
 Get the sequence of a statement sequence. More...
 
list statement_block (statement s)
 Get the list of block statements of a statement sequence. More...
 
test statement_test (statement s)
 Get the test of a statement. More...
 
statement effective_test_true (test t)
 returns the effective true branch of a test by skipping a possible sequence of one element. More...
 
loop statement_loop (statement s)
 Get the loop of a statement. More...
 
whileloop statement_whileloop (statement s)
 Get the whileloop of a statement. More...
 
statement statement_goto (statement s)
 Get the goto of a statement. More...
 
call statement_call (statement s)
 Get the call of a statement. More...
 
unstructured statement_unstructured (statement s)
 Get the unstructured of a statement. More...
 
forloop statement_forloop (statement s)
 Get the forloop of a statement. More...
 
multitest statement_multitest (statement s)
 Get the multitest of a statement. More...
 
expression statement_expression (statement s)
 Get the expression of a statement. More...
 

Detailed Description

second level fields

With these methods you can access directly to the inside of the instructions

Function Documentation

◆ effective_test_true()

statement effective_test_true ( test  t)

returns the effective true branch of a test by skipping a possible sequence of one element.

OK, this should be performed recursively...

Definition at line 1358 of file statement.c.

1359 {
1360  statement ets = test_true(t);
1361 
1362  if(statement_block_p(ets)) {
1363  list sl = statement_block(ets);
1364  if(gen_length(sl)==1) {
1365  ets = STATEMENT(CAR(sl));
1366  }
1367  }
1368 
1369  return ets;
1370 }
size_t gen_length(const list l)
Definition: list.c:150
#define CAR(pcons)
Get the value of the first element of a list.
Definition: newgen_list.h:92
list statement_block(statement s)
Get the list of block statements of a statement sequence.
Definition: statement.c:1338
#define statement_block_p(stat)
#define test_true(x)
Definition: ri.h:2835
#define STATEMENT(x)
STATEMENT.
Definition: ri.h:2413
The structure used to build lists in NewGen.
Definition: newgen_list.h:41

References CAR, gen_length(), STATEMENT, statement_block(), statement_block_p, and test_true.

Referenced by gcc_if_block_braces_required_p(), and test_with_dangling_else_p().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ statement_block()

list statement_block ( statement  s)

Get the list of block statements of a statement sequence.

Definition at line 1338 of file statement.c.

1339 {
1340  pips_assert("statement_sequence", statement_sequence_p(s));
1341 
1343 }
sequence statement_sequence(statement s)
Get the sequence of a statement sequence.
Definition: statement.c:1328
bool statement_sequence_p(statement s)
Statement classes induced from instruction type.
Definition: statement.c:335
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
Definition: misc-local.h:172
#define sequence_statements(x)
Definition: ri.h:2360

References pips_assert, sequence_statements, statement_sequence(), and statement_sequence_p().

Referenced by add_declaration_statement_here(), add_workchunk_loop(), append_statement_to_block_statement(), compile_body(), compile_omp(), compile_regions(), controlize_sequence(), depth_of_parallel_perfect_loop_nest(), depth_of_perfect_loop_nest(), do_expression_reduction(), do_isolate_statement(), do_remove_redundant_communications_in_anyloop(), do_split_block_statements(), do_split_decl_block_statements(), do_terapix_warmup(), do_transform_if_statements(), effective_test_true(), end_omp_construct(), find_first_comment(), find_first_statement_comment(), find_forloop_in_statement(), fix_block_statement_declarations(), fs_filter(), generate_call_flush(), generic_add_declaration_statement(), guard_expanded_statement_if_needed(), if_conversion_compact_stats(), if_conversion_init(), inline_statement_crawler(), insert_optional_pragma(), insert_statements_after_declarations(), loop_basic_workchunk_to_workchunk(), make_seqStat(), MakeForloopWithIndexDeclaration(), normalize_microcode_anotate(), perfectly_nested_loop_index_at_depth(), perfectly_nested_loop_to_body_at_depth(), process_true_stat(), remove_declaration_statement(), RemoveLocalEntityFromDeclarations(), rice_loop(), run_inlining(), simdize_simple_statements(), split_initializations_in_statement(), statement_replace_with_statement_list(), statement_to_direct_declarations(), statement_to_loop_statement_list(), step_directive_basic_workchunk(), step_directive_basic_workchunk_index(), terapix_loop_optimizer(), terapix_optimize_accumulator(), and terapixify_loops().

+ Here is the call graph for this function:

◆ statement_call()

call statement_call ( statement  s)

Get the call of a statement.

Definition at line 1406 of file statement.c.

1407 {
1408  pips_assert("statement_call", statement_call_p(s));
1409 
1411 }
bool statement_call_p(statement s)
Definition: statement.c:364
#define statement_instruction(x)
Definition: ri.h:2458
#define instruction_call(x)
Definition: ri.h:1529

References instruction_call, pips_assert, statement_call_p(), and statement_instruction.

Referenced by abc_bound_violation_stop_statement_p(), alias_check_two_variables(), BDSC(), change_basic_if_needed(), compact_phi_functions(), compute_SENDRECV_regions(), costly_task(), do_reduction_atomization(), do_reduction_detection(), do_reduction_propagation(), find_receiver_cluster(), freia_is_transpose_call(), freia_memory_management_statement(), freia_shuffle_move_forward(), fsi_seq_flt(), generate_receive_from_statement(), generate_send_from_statement(), get_complement_expression(), impact_check_two_variables(), inline_return_crawler(), kernel_load_store_generator(), make_send_receive_conversion(), MakeForloopWithIndexDeclaration(), match_statement(), maybe_unroll_while_rwt(), perform_substitution_in_assign(), prepare_context(), process_static_initializations(), remove_unread_variable(), seq_rwt(), simd_fill_curArgType(), simd_fill_finalArgType(), simd_load_stat_p(), simd_store_stat_p(), simd_trace_call(), simd_work_stat_p(), statement_phi_function_p(), step_translate_and_map(), step_translate_and_map_step_regions(), switch_vertex_to_assign(), terapix_loop_optimizer(), terapix_optimize_accumulator(), terapixify_loops(), text_test(), two_addresses_code_generator(), variable_is_written_by_statement_flt(), and verify_used_before_set_statement_flt().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ statement_expression()

expression statement_expression ( statement  s)

Get the expression of a statement.

Definition at line 1446 of file statement.c.

1447 {
1448  pips_assert("statement_expression", statement_expression_p(s));
1449 
1451 }
bool statement_expression_p(statement s)
Definition: statement.c:384
#define instruction_expression(x)
Definition: ri.h:1541

References instruction_expression, pips_assert, statement_expression_p(), and statement_instruction.

+ Here is the call graph for this function:

◆ statement_forloop()

forloop statement_forloop ( statement  s)

Get the forloop of a statement.

Definition at line 1426 of file statement.c.

1427 {
1428  pips_assert("statement s is a forloop", statement_forloop_p(s));
1429 
1431 }
bool statement_forloop_p(statement s)
Definition: statement.c:374
#define instruction_forloop(x)
Definition: ri.h:1538

References instruction_forloop, pips_assert, statement_forloop_p(), and statement_instruction.

Referenced by belong_to_statement(), controlize_forloop(), delay_communications_anyloop(), enclosed_statements_ast(), find_forloop_in_statement(), hierarchical_schedule(), make_send_receive_conversion(), print_SDGs(), same_level_p(), statement_in_sequence_p(), step_directive_basic_workchunk(), step_directive_basic_workchunk_index(), unsugared_forloop_header(), unsugared_forloop_inc(), and unsugared_forloop_test().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ statement_goto()

statement statement_goto ( statement  s)

Get the goto of a statement.

Returns
the statement pointed to by the "goto"

Definition at line 1396 of file statement.c.

1397 {
1398  pips_assert("statement_goto", statement_goto_p(s));
1399 
1401 }
bool statement_goto_p(statement s)
Definition: statement.c:359
#define instruction_goto(x)
Definition: ri.h:1526

References instruction_goto, pips_assert, statement_goto_p(), and statement_instruction.

Referenced by controlize_goto().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ statement_loop()

loop statement_loop ( statement  s)

Get the loop of a statement.

Definition at line 1374 of file statement.c.

1375 {
1376  pips_assert("statement_loop", statement_loop_p(s));
1377 
1379 }
bool statement_loop_p(statement s)
Definition: statement.c:349
#define instruction_loop(x)
Definition: ri.h:1520

References instruction_loop, pips_assert, statement_instruction, and statement_loop_p().

Referenced by add_conflicts(), add_exec_mmcd(), add_toggle_inc_statements(), attach_ref_to_loop(), belong_to_statement(), build_and_test_dependence_context(), cancel_schedule_stmt(), check_loop_distribution_feasability(), cluster_stage_spire_generation(), code_has_write_eff_ref_p(), com_statement_p(), comEngine_opt_loop_interchange(), communications_construction(), compile_body(), ConnectedStatements(), controlize_loop(), delay_communications_anyloop(), dependence_system_add_lci_and_di(), depth_of_parallel_perfect_loop_nest(), depth_of_perfect_loop_nest(), do_HRE_memory_mapping_loop(), do_kernelize(), do_loop_expansion(), do_loop_expansion_init(), do_loop_nest_unswitching(), do_loop_to_for_loop(), do_loop_to_while_loop(), do_simdizer_auto_tile_generate_all_tests(), do_symbolic_tiling(), do_terapix_warmup(), enclosed_statements_ast(), fill_gRefToEncLoop_loop(), find_or_create_newInd(), find_statements_with_label_walker(), gcd_and_constant_dependence_test(), gen_flat_mpi(), gen_openmp(), generate_code(), generate_code_loop(), get_indExp_from_ref(), get_loop_execution_parallel(), get_loop_locals_and_remove_walker(), get_supportedRef_proc(), get_variables_to_remove(), guard_expanded_statement_if_needed(), hierarchical_schedule(), hpf_compile_parallel_loop(), hpf_compile_sequential_loop(), HRE_distribute_loop(), index_of_a_loop_p(), inlining_regenerate_labels(), loop_basic_workchunk_to_workchunk(), loop_executed_approximation(), loop_header(), loop_inc(), loop_test(), loop_variant_list(), make_context_of_loop(), make_init_newInd_stat(), make_loop_step_stat(), make_loopPattern(), make_loopStat1(), make_mmcd_stats_from_ref(), make_send_receive_conversion(), make_seqStat(), make_transStat(), MakeLoopAs(), MakeNestOfParallelLoops(), module_loops(), outline(), outliner(), outliner_extract_loop_bound(), parallelize_annotated_loop_nest(), perfectly_nested_loop_index_at_depth(), perfectly_nested_loop_to_body_at_depth(), phrase_remove_dependences_rwt(), print_SDGs(), process_reductions_in_loop(), process_reductions_in_openmp_loop(), process_ref_list(), process_true_stat(), quick_privatize_graph(), quick_privatize_statement_pair(), range_flt(), range_rwt(), rdg_loop(), reduction_rewrite_filter(), regenerate_toggles(), same_level_p(), selected_loop_p(), set_loop_execution_parallel(), simd_loop_unroll(), simdizer_auto_tile(), spaghettify_loop(), statement_in_sequence_p(), statement_to_loop_statement_list(), statement_to_postcondition(), statements_conflict_p(), step_directive_basic_workchunk(), step_directive_basic_workchunk_index(), symbolic_tiling_valid_p(), terapix_loop_handler(), terapix_loop_optimizer(), terapixify_loops(), test_dependence_using_regions(), TestDependence(), unroll_loops_in_statement(), unsugared_loop_header(), unsugared_loop_inc(), unsugared_loop_test(), and usual_loop_tiling().

+ Here is the call graph for this function:

◆ statement_multitest()

multitest statement_multitest ( statement  s)

Get the multitest of a statement.

Definition at line 1436 of file statement.c.

1437 {
1438  pips_assert("statement_multitest", statement_multitest_p(s));
1439 
1441 }
bool statement_multitest_p(statement s)
Definition: statement.c:379
#define instruction_multitest(x)
Definition: ri.h:1535

References instruction_multitest, pips_assert, statement_instruction, and statement_multitest_p().

+ Here is the call graph for this function:

◆ statement_sequence()

◆ statement_test()

◆ statement_unstructured()

unstructured statement_unstructured ( statement  s)

Get the unstructured of a statement.

Definition at line 1416 of file statement.c.

1417 {
1418  pips_assert("statement_unstructured", statement_unstructured_p(s));
1419 
1421 }
bool statement_unstructured_p(statement s)
Definition: statement.c:369
#define instruction_unstructured(x)
Definition: ri.h:1532

References instruction_unstructured, pips_assert, statement_instruction, and statement_unstructured_p().

Referenced by ensure_comment_consistency(), full_spaghettify(), internal_statement_to_direct_declarations(), and last_statement().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ statement_whileloop()

whileloop statement_whileloop ( statement  s)

Get the whileloop of a statement.

Definition at line 1383 of file statement.c.

1384 {
1385  pips_assert("statement_whileloop", statement_whileloop_p(s));
1386 
1388 }
bool statement_whileloop_p(statement s)
Definition: statement.c:354
#define instruction_whileloop(x)
Definition: ri.h:1523

References instruction_whileloop, pips_assert, statement_instruction, and statement_whileloop_p().

Referenced by belong_to_statement(), controlize_repeatloop(), controlize_whileloop(), delay_communications_anyloop(), enclosed_statements_ast(), get_variables_to_remove(), make_send_receive_conversion(), print_SDGs(), same_level_p(), statement_in_sequence_p(), and unsugared_whileloop_test().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: