diff options
author | johnvg | 2011-02-25 12:02:02 +0000 |
---|---|---|
committer | johnvg | 2011-02-25 12:02:02 +0000 |
commit | 69ecfc82a8562cae279a1879f2bf720b384394bc (patch) | |
tree | aad2e46adc4eb76376cad08b579bb0d1dc157f7a /backendC/CleanCompilerSources/optimisations.c | |
parent | check_completeness of type of generic function definition (diff) |
remove some unused fields and variables
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1865 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'backendC/CleanCompilerSources/optimisations.c')
-rw-r--r-- | backendC/CleanCompilerSources/optimisations.c | 57 |
1 files changed, 27 insertions, 30 deletions
diff --git a/backendC/CleanCompilerSources/optimisations.c b/backendC/CleanCompilerSources/optimisations.c index 5f97925..1181cd6 100644 --- a/backendC/CleanCompilerSources/optimisations.c +++ b/backendC/CleanCompilerSources/optimisations.c @@ -872,7 +872,7 @@ int optimise_tuple_result_function (Node node,StateS demanded_state) symbol=node->node_symbol; sdef=symbol->symb_def; - if (sdef->sdef_kind!=IMPRULE || sdef->sdef_over_arity!=0 || node->node_arity!=sdef->sdef_arity) + if (sdef->sdef_kind!=IMPRULE || node->node_arity!=sdef->sdef_arity) return 0; result_type=sdef->sdef_rule->rule_type->type_alt_rhs; @@ -4023,51 +4023,48 @@ static void mark_shared_strict_tuple_and_record_elements (Args args,int ref_coun static ImpRuleS **OptimiseRule (ImpRuleS *rule) { SymbDef rule_sdef; + RuleAlts alt; CurrentSymbol = rule->rule_root->node_symbol; rule_sdef= CurrentSymbol->symb_def; - - if (rule_sdef->sdef_over_arity==0){ - RuleAlts alt; #ifndef TRANSFORM_PATTERNS_BEFORE_STRICTNESS_ANALYSIS - transform_patterns_to_case_and_guard_nodes (rule->rule_alts); + transform_patterns_to_case_and_guard_nodes (rule->rule_alts); #endif - alt=rule->rule_alts; - CurrentLine = alt->alt_line; + alt=rule->rule_alts; + CurrentLine = alt->alt_line; - if (alt->alt_kind==Contractum){ + if (alt->alt_kind==Contractum){ #ifdef REUSE_UNIQUE_NODES - if (DoReuseUniqueNodes) - mark_shared_strict_tuple_and_record_elements (alt->alt_lhs_root->node_arguments,1); + if (DoReuseUniqueNodes) + mark_shared_strict_tuple_and_record_elements (alt->alt_lhs_root->node_arguments,1); #endif #if OPTIMIZE_LAZY_TUPLE_RECURSION - current_rule_mark=rule->rule_mark; + current_rule_mark=rule->rule_mark; #endif - optimise_root_node (alt->alt_rhs_root,alt->alt_rhs_defs,NULL); + optimise_root_node (alt->alt_rhs_root,alt->alt_rhs_defs,NULL); - ReorderNodeDefinitionsAndDetermineUsedEntries (&alt->alt_rhs_defs,alt->alt_rhs_root); + ReorderNodeDefinitionsAndDetermineUsedEntries (&alt->alt_rhs_defs,alt->alt_rhs_root); - determine_then_else_ref_counts (alt->alt_rhs_root); - } + determine_then_else_ref_counts (alt->alt_rhs_root); + } + + while (new_rules){ + ImpRuleP new_rule; + RuleAltP alt; - while (new_rules){ - ImpRuleP new_rule; - RuleAltP alt; - - new_rule=new_rules; - new_rules=new_rule->rule_next; - - alt=new_rule->rule_alts; - DetermineStatesOfRootNodeAndDefs (alt->alt_rhs_root,&alt->alt_rhs_defs,alt->alt_lhs_root->node_state,0); - ReorderNodeDefinitionsAndDetermineUsedEntries (&alt->alt_rhs_defs,alt->alt_rhs_root); - - new_rule->rule_next=rule->rule_next; - rule->rule_next=new_rule; - rule=new_rule; - } + new_rule=new_rules; + new_rules=new_rule->rule_next; + + alt=new_rule->rule_alts; + DetermineStatesOfRootNodeAndDefs (alt->alt_rhs_root,&alt->alt_rhs_defs,alt->alt_lhs_root->node_state,0); + ReorderNodeDefinitionsAndDetermineUsedEntries (&alt->alt_rhs_defs,alt->alt_rhs_root); + + new_rule->rule_next=rule->rule_next; + rule->rule_next=new_rule; + rule=new_rule; } return &rule->rule_next; |