| class SE_CONTEXT |
|---|
| **** |
| attr has_arith_error:BOOL; |
|---|
| **** | true if the function could break if arith checks are on and it is called with the wrong arguments |
| attr has_export:BOOL; |
|---|
| **** | true if the function (or any function it calls) makes an import |
| attr has_fatal_error:BOOL; |
|---|
| **** | true if the function (or any function it calls) may encounter a fatal error |
| attr has_import:BOOL; |
|---|
| **** | true if the function (or any function it calls) makes an import |
| attr has_raise:BOOL; |
|---|
| **** | true if the function (or any function it calls) may raise an exception |
| attr has_yield_in_lock:BOOL; |
|---|
| **** | true if an iter has a yield inside a lock |
| attr may_block:BOOL; |
|---|
| **** | true if the function could block (lock) |
| attr rsig:SIG; |
|---|
| **** | signature of the routine this is for |
| attr unsafe:BOOL; |
|---|
| **** | is it unsafe to optimize this function out? |
| attr weight:INT; |
|---|
| **** | number that defines the weight of the function |
| attr has_arith_error:BOOL; |
|---|
| **** | true if the function could break if arith checks are on and it is called with the wrong arguments |
| attr has_export:BOOL; |
|---|
| **** | true if the function (or any function it calls) makes an import |
| attr has_fatal_error:BOOL; |
|---|
| **** | true if the function (or any function it calls) may encounter a fatal error |
| attr has_import:BOOL; |
|---|
| **** | true if the function (or any function it calls) makes an import |
| attr has_raise:BOOL; |
|---|
| **** | true if the function (or any function it calls) may raise an exception |
| attr has_yield_in_lock:BOOL; |
|---|
| **** | true if an iter has a yield inside a lock |
| attr may_block:BOOL; |
|---|
| **** | true if the function could block (lock) |
| attr rsig:SIG; |
|---|
| **** | signature of the routine this is for |
| attr unsafe:BOOL; |
|---|
| **** | is it unsafe to optimize this function out? |
| attr weight:INT; |
|---|
| **** | number that defines the weight of the function |
| shared cs_options:CS_OPTIONS; |
|---|
| **** | options for the compiler |
| shared prog:PROG; |
|---|
| **** |
| shared cs_options:CS_OPTIONS; |
|---|
| **** | options for the compiler |
| shared prog:PROG; |
|---|
| **** |
| create(prog:PROG,sig:SIG):SAME |
|---|
| do_side_debug:BOOL |
|---|
| do_side_effects:BOOL |
|---|
| expand_macro(r:STR,sig:SIG):STR |
|---|
| full(b:BOOL) is is_full:=b; end; |
|---|
| full:BOOL is return is_full or has_import or has_export; end; |
|---|
| get_abstract_union(for_prog:PROG,for_sig:SIG):SE_CONTEXT |
|---|
| get_options |
|---|
| get_se_context(sig:SIG):SE_CONTEXT |
|---|
| **** | make sure we don't try to do this for checking code a check in do_side_effects should prevent this |
| is_recursive(sig:SIG):BOOL |
|---|
| mark_clean |
|---|
| mark_context(amattr:$AM) |
|---|
| mark_full |
|---|
| mark_se(nsec:SE_CONTEXT) |
|---|
| mark_se(nse:SIDE_EFFECT) |
|---|
| **** | if we don't care about side effects, then return now |
| mark_se(amattr:$AM,doeswrite:BOOL) |
|---|
| mark_unsafe |
|---|
| maxsize:INT |
|---|
| register |
|---|
| se_array(tp:$TP):SIDE_EFFECT |
|---|
| se_attr(tp:$TP,name:IDENT):SIDE_EFFECT |
|---|
| se_local(name:IDENT):SIDE_EFFECT |
|---|
| size:INT |
|---|
| str:STR |
|---|
| elt!:SIDE_EFFECT |
|---|
| get_builtin_context |
|---|
| get_touched_attr(a:ARRAY{STR},doeswrite:BOOL) |
|---|
| attr is_full:BOOL; |
|---|
| **** | do we assume everything is modified |
| attr is_full:BOOL; |
|---|
| **** | do we assume everything is modified |
| attr set:FSET{SIDE_EFFECT}; |
|---|
| **** | the set of attributes modified |
| attr set:FSET{SIDE_EFFECT}; |
|---|
| **** | the set of attributes modified |