| class PROG |
|---|
| attr all_reached:BOOL; |
|---|
| **** | True when all reachable code emitted |
| attr arch:STR; |
|---|
| **** | Architecture to compile for (pSather only) |
| attr arith_checks:BOOL; |
|---|
| **** | true if at least one class makes arith. checks |
| attr as_tbl:PROG_AS_TBL; |
|---|
| **** | The table of code trees. |
| attr assert_checks:BOOL; |
|---|
| **** | true if at least one class makes assert checks |
| attr back_end:$BACK_END; |
|---|
| attr boot:BOOL; |
|---|
| **** | true if a boot compiler is beeing generated |
| attr build_type_graph:$BUILD_TYPE_GRAPH; |
|---|
| attr check_am:$CHECK_AM; |
|---|
| attr check_ifc_conformance:$CHECK_IFC_CONFORMANCE; |
|---|
| attr config:CONFIG_TBL; |
|---|
| **** | the configuration table been examined to get other types. |
| attr distributed:BOOL; |
|---|
| **** | Accept pSather code and generate code for more than one cluster |
| attr eloc:SFILE_ID; |
|---|
| **** | Current error location. |
| attr err_list:FLIST{SFILE_ID}; |
|---|
| attr err_seen:BOOL; |
|---|
| **** | True if an error has been seen. |
| attr find_types:$FIND_TYPES; |
|---|
| attr generate_am:$GENERATE_AM; |
|---|
| attr generate_checked_code:BOOL; |
|---|
| **** | Generate all code if true. |
| attr genuine_platforms:INT; |
|---|
| **** | counter, incremented each time a "real" platform (as opposed to bogus platforms like -gui) is used. At most one real platfomr can be specified. |
| attr get_main_sig:$GET_MAIN_SIG; |
|---|
| attr get_options:$GET_OPTIONS; |
|---|
| attr hoist_const:BOOL; |
|---|
| **** | true if loop constants should be hoisted |
| attr hoist_iter_init:BOOL; |
|---|
| **** | true if the initialization of iters has to be hoisted |
| attr home:STR; |
|---|
| **** | home opposed to bogus platforms like -gui) is used. At most one real platfomr can be specified. |
| attr hotcounts:ARRAY{INT}; |
|---|
| attr inline_iters:BOOL; |
|---|
| **** | true if iters are to be inlined |
| attr inline_routs:BOOL; |
|---|
| **** | true if routines are to be inlined |
| attr inliner:$INLINE; |
|---|
| attr itercounts:ARRAY{INT}; |
|---|
| attr locks_on_stack:BOOL; |
|---|
| **** | true if locks that don't have to be on the exc. stack should not be put there |
| attr loops_seen:FSET{SFILE_ID}; |
|---|
| attr main_class:STR; |
|---|
| **** | The class with main opposed to bogus platforms like -gui) is used. At most one real platfomr can be specified. |
| attr move_while:BOOL; |
|---|
| **** | true if while!/until! have to be moved to the end of loops |
| attr no_new_types: BOOL; |
|---|
| **** | True, when find_types has finished. for debugging |
| attr opt_debug:BOOL; |
|---|
| **** | print out optimizer debug info |
| attr opt_debug_func:FLIST{STR}; |
|---|
| **** | if not void only functions with a signature that contains one of these strings are "opt_debuggged" |
| attr opt_verbose:BOOL; |
|---|
| **** | print out opt. info |
| attr optimizer:$OPTIMIZE; |
|---|
| attr parse:$PARSE; |
|---|
| attr parse_nonlib_classes:BOOL; |
|---|
| **** | true if non library classes should be parsed, and not only classes reachable from the main class. |
| attr platforms:FLIST{STR}; |
|---|
| **** | list of platforms to be used opposed to bogus platforms like -gui) is used. At most one real platfomr can be specified. |
| attr |
|---|
| **** | true if at least one class makes post checks |
| attr |
|---|
| **** | e checks |
| attr print_version:BOOL; |
|---|
| **** | Prints info about compiler version. etc opposed to bogus platforms like -gui) is used. At most one real platfomr can be specified. |
| attr prolix:BOOL; |
|---|
| **** | Be really noisy opposed to bogus platforms like -gui) is used. At most one real platfomr can be specified. |
| attr replace_iters:BOOL; |
|---|
| **** | true if array and some int iters should be replaced |
| attr sather_files:FSET{STR}; |
|---|
| **** | Sather source files opposed to bogus platforms like -gui) is used. At most one real platfomr can be specified. |
| attr show_am:BOOL; |
|---|
| **** | Show the am code generated. |
| attr show_am_check:BOOL; |
|---|
| **** | Show am for for checked sigs. |
| attr show_as_insert:BOOL; |
|---|
| **** | Show trees inserted. |
| attr show_calls: STR; |
|---|
| **** | If non-void, print out all function calls |
| attr show_checked_sig:BOOL; |
|---|
| **** | Show the sigs as they are checked. |
| attr show_generated_sig:BOOL; |
|---|
| **** | Show the sigs with code generated. |
| attr show_graphs:BOOL; |
|---|
| **** | Show the type graphs. |
| attr show_ifc:BOOL; |
|---|
| **** | Show all interfaces. |
| attr show_ifc_abs_create:BOOL; |
|---|
| **** | Show when abstract ifc's are created. |
| attr show_impl_create:BOOL; |
|---|
| **** | Show when an impl is created. |
| attr show_include:BOOL; |
|---|
| **** | Show when an include is processed. |
| attr show_main:BOOL; |
|---|
| **** | Show the main sig. |
| attr show_parse_file:BOOL; |
|---|
| **** | Show files parsed. |
| attr show_tr:BOOL; |
|---|
| **** | Show TR. |
| attr show_types:BOOL; |
|---|
| **** | Show all types found. |
| attr stat:$STAT; |
|---|
| **** | used to gather statistics; |
| attr threads:BOOL; |
|---|
| **** | Accept pSather code and generate code for one cluster |
| attr tp_done:FSET{$TP}; |
|---|
| **** | Table of types which have already been examined to get other types. |
| attr tp_graph:TP_GRAPH; |
|---|
| **** | The type graph. been examined to get other types. |
| attr tp_graph_abs_des:TP_GRAPH_ABS_DES; |
|---|
| **** | Abstract descendants. been examined to get other types. |
| attr tp_tbl:TP_TBL; |
|---|
| **** | The type table. been examined to get other types. |
| attr trace:BOOL; |
|---|
| **** |
| attr verbose:BOOL; |
|---|
| **** | Be noisy opposed to bogus platforms like -gui) is used. At most one real platfomr can be specified. |
| attr void_checks:BOOL; |
|---|
| **** | true if at least one class makes void access checks |
| attr yields_in_locks:BOOL; |
|---|
| **** | true if yields in locks should be optimized |
| attr zones:BOOL; |
|---|
| **** | use zones |
| attr all_reached:BOOL; |
|---|
| **** | True when all reachable code emitted |
| attr arch:STR; |
|---|
| **** | Architecture to compile for (pSather only) |
| attr arith_checks:BOOL; |
|---|
| **** | true if at least one class makes arith. checks |
| attr as_tbl:PROG_AS_TBL; |
|---|
| **** | The table of code trees. |
| attr assert_checks:BOOL; |
|---|
| **** | true if at least one class makes assert checks |
| attr back_end:$BACK_END; |
|---|
| attr boot:BOOL; |
|---|
| **** | true if a boot compiler is beeing generated |
| attr build_type_graph:$BUILD_TYPE_GRAPH; |
|---|
| attr check_am:$CHECK_AM; |
|---|
| attr check_ifc_conformance:$CHECK_IFC_CONFORMANCE; |
|---|
| attr config:CONFIG_TBL; |
|---|
| **** | the configuration table been examined to get other types. |
| attr distributed:BOOL; |
|---|
| **** | Accept pSather code and generate code for more than one cluster |
| attr eloc:SFILE_ID; |
|---|
| **** | Current error location. |
| attr err_list:FLIST{SFILE_ID}; |
|---|
| attr err_seen:BOOL; |
|---|
| **** | True if an error has been seen. |
| attr find_types:$FIND_TYPES; |
|---|
| attr generate_am:$GENERATE_AM; |
|---|
| attr generate_checked_code:BOOL; |
|---|
| **** | Generate all code if true. |
| attr genuine_platforms:INT; |
|---|
| **** | counter, incremented each time a "real" platform (as opposed to bogus platforms like -gui) is used. At most one real platfomr can be specified. |
| attr get_main_sig:$GET_MAIN_SIG; |
|---|
| attr get_options:$GET_OPTIONS; |
|---|
| attr hoist_const:BOOL; |
|---|
| **** | true if loop constants should be hoisted |
| attr hoist_iter_init:BOOL; |
|---|
| **** | true if the initialization of iters has to be hoisted |
| attr home:STR; |
|---|
| **** | home opposed to bogus platforms like -gui) is used. At most one real platfomr can be specified. |
| attr hotcounts:ARRAY{INT}; |
|---|
| attr inline_iters:BOOL; |
|---|
| **** | true if iters are to be inlined |
| attr inline_routs:BOOL; |
|---|
| **** | true if routines are to be inlined |
| attr inliner:$INLINE; |
|---|
| attr itercounts:ARRAY{INT}; |
|---|
| attr locks_on_stack:BOOL; |
|---|
| **** | true if locks that don't have to be on the exc. stack should not be put there |
| attr loops_seen:FSET{SFILE_ID}; |
|---|
| attr main_class:STR; |
|---|
| **** | The class with main opposed to bogus platforms like -gui) is used. At most one real platfomr can be specified. |
| attr move_while:BOOL; |
|---|
| **** | true if while!/until! have to be moved to the end of loops |
| attr no_new_types: BOOL; |
|---|
| **** | True, when find_types has finished. for debugging |
| attr opt_debug:BOOL; |
|---|
| **** | print out optimizer debug info |
| attr opt_debug_func:FLIST{STR}; |
|---|
| **** | if not void only functions with a signature that contains one of these strings are "opt_debuggged" |
| attr opt_verbose:BOOL; |
|---|
| **** | print out opt. info |
| attr optimizer:$OPTIMIZE; |
|---|
| attr parse:$PARSE; |
|---|
| attr parse_nonlib_classes:BOOL; |
|---|
| **** | true if non library classes should be parsed, and not only classes reachable from the main class. |
| attr platforms:FLIST{STR}; |
|---|
| **** | list of platforms to be used opposed to bogus platforms like -gui) is used. At most one real platfomr can be specified. |
| attr |
|---|
| **** | true if at least one class makes post checks |
| attr |
|---|
| **** | e checks |
| attr print_version:BOOL; |
|---|
| **** | Prints info about compiler version. etc opposed to bogus platforms like -gui) is used. At most one real platfomr can be specified. |
| attr prolix:BOOL; |
|---|
| **** | Be really noisy opposed to bogus platforms like -gui) is used. At most one real platfomr can be specified. |
| attr replace_iters:BOOL; |
|---|
| **** | true if array and some int iters should be replaced |
| attr sather_files:FSET{STR}; |
|---|
| **** | Sather source files opposed to bogus platforms like -gui) is used. At most one real platfomr can be specified. |
| attr show_am:BOOL; |
|---|
| **** | Show the am code generated. |
| attr show_am_check:BOOL; |
|---|
| **** | Show am for for checked sigs. |
| attr show_as_insert:BOOL; |
|---|
| **** | Show trees inserted. |
| attr show_calls: STR; |
|---|
| **** | If non-void, print out all function calls |
| attr show_checked_sig:BOOL; |
|---|
| **** | Show the sigs as they are checked. |
| attr show_generated_sig:BOOL; |
|---|
| **** | Show the sigs with code generated. |
| attr show_graphs:BOOL; |
|---|
| **** | Show the type graphs. |
| attr show_ifc:BOOL; |
|---|
| **** | Show all interfaces. |
| attr show_ifc_abs_create:BOOL; |
|---|
| **** | Show when abstract ifc's are created. |
| attr show_impl_create:BOOL; |
|---|
| **** | Show when an impl is created. |
| attr show_include:BOOL; |
|---|
| **** | Show when an include is processed. |
| attr show_main:BOOL; |
|---|
| **** | Show the main sig. |
| attr show_parse_file:BOOL; |
|---|
| **** | Show files parsed. |
| attr show_tr:BOOL; |
|---|
| **** | Show TR. |
| attr show_types:BOOL; |
|---|
| **** | Show all types found. |
| attr stat:$STAT; |
|---|
| **** | used to gather statistics; |
| attr threads:BOOL; |
|---|
| **** | Accept pSather code and generate code for one cluster |
| attr tp_done:FSET{$TP}; |
|---|
| **** | Table of types which have already been examined to get other types. |
| attr tp_graph:TP_GRAPH; |
|---|
| **** | The type graph. been examined to get other types. |
| attr tp_graph_abs_des:TP_GRAPH_ABS_DES; |
|---|
| **** | Abstract descendants. been examined to get other types. |
| attr tp_tbl:TP_TBL; |
|---|
| **** | The type table. been examined to get other types. |
| attr trace:BOOL; |
|---|
| **** |
| attr verbose:BOOL; |
|---|
| **** | Be noisy opposed to bogus platforms like -gui) is used. At most one real platfomr can be specified. |
| attr void_checks:BOOL; |
|---|
| **** | true if at least one class makes void access checks |
| attr yields_in_locks:BOOL; |
|---|
| **** | true if yields in locks should be optimized |
| attr zones:BOOL; |
|---|
| **** | use zones |
| barf(msg:STR) |
|---|
| **** | Something wrong within the compiler, but we can't say where. |
| barf_at(msg:STR,at:$PROG_ERR) |
|---|
| **** | Something wrong, and we know where. |
| create:SAME |
|---|
| **** | A new program object. All the components have to be filled in from outside, after creation. |
| err(s:STR) |
|---|
| **** | Report an error with `s' as the error string and the last tree node given to `err_loc' as the location. This string shouldn't have information like "Error" and should be an unformatted line of text. It should be a complete sentence beginning with a capital letter and ending with a period. If this is called during a compile, source code will not be generated, but the compile will proceed as far as possible. |
| err_loc(t:$PROG_ERR) |
|---|
| **** | Make the node held by `t' be the culprit for the next error, if any. If `t' is void, then don't print a location with the next message. |
| err_loc_old(l:SFILE_ID):BOOL |
|---|
| **** | Return true if `l' has been seen before, otherwise add it to the list. |
| psather:BOOL |
|---|
| **** |
| set_eloc(l:SFILE_ID) |
|---|
| **** | Set `eloc' to `l'. |
| warning(s:STR) |
|---|
| **** | Report a warning. Like an error, but doesn't stop compile. In general, our philosophy is that warnings are poor compiler interface and their use should be avoided. if ~void(eloc) then if err_loc_old(eloc) then return end end; |