PIPS
|
#include <stdio.h>
#include "genC.h"
#include "linear.h"
#include "ri.h"
#include "ri-util.h"
#include "conversion.h"
#include "hyperplane.h"
Go to the source code of this file.
Functions | |
statement | code_generation (list lls, Pvecteur pvg[], Pbase base_oldindex, Pbase base_newindex, Psysteme sc_newbase, bool preserve_entry_label_p) |
package hyperplane More... | |
statement code_generation | ( | list | lls, |
Pvecteur | pvg[], | ||
Pbase | base_oldindex, | ||
Pbase | base_newindex, | ||
Psysteme | sc_newbase, | ||
bool | preserve_entry_label_p | ||
) |
package hyperplane
include <sys/stdtypes.h> for debug with dbmalloc include "stdlib.h" statement code_generation(cons *lls,Pvecteur pvg[], Pbase base_oldindex, Pbase base_newindex) generation of hyperplane code for the nested loops (cons *lls). the new nested loops will be ; DOSEQ Ip = ... DOALL Jp = ... DOALL Kp = ... ... ENDDO
modification : Keep the code in the sequential version. Let the parallelisation to generate the parallel code. suggested by BB, modified by Yi-Qing. 17/05/92
make the parallel loops from inner loop to outermost loop
handling of current loop
new bounds for new index related to the old index of the old loop
FI: I do not understand how you could keep a go to target (!) or a list of local variables
lls | ls |
pvg | vg |
base_oldindex | ase_oldindex |
base_newindex | ase_newindex |
sc_newbase | c_newbase |
preserve_entry_label_p | reserve_entry_label_p |
Definition at line 58 of file code_generation.c.
References base_reversal(), BASE_UNDEFINED, CAR, CDR, clear_label(), copy_statement(), entity_empty_label(), expression_undefined, free_instruction(), instruction_loop, instruction_undefined, int_to_expression(), is_execution_sequential, is_instruction_loop, loop_body, loop_undefined, make_bound_expression(), make_execution(), make_instruction(), make_loop(), make_range(), makeloopbody(), NIL, range_undefined, sc_newbase, STATEMENT, statement_instruction, statement_newbase(), statement_undefined, Svecteur::succ, UU, and Svecteur::var.
Referenced by hyperplane(), parallel_tiling(), tiling_transformation(), and unimodular().