Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
clean-compiler-and-rts
compiler
Commits
20048860
Commit
20048860
authored
Nov 21, 2001
by
Sjaak Smetsers
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug fix: reference count analysis for dynamics
parent
0d6374c7
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
5 additions
and
3 deletions
+5
-3
frontend/refmark.icl
frontend/refmark.icl
+5
-3
No files found.
frontend/refmark.icl
View file @
20048860
...
...
@@ -352,9 +352,9 @@ refMarkOfCase free_vars sel def {case_expr, case_guards=OverloadedListPatterns t
=
refMarkOfAlgebraicOrOverloadedListCase
free_vars
sel
def
case_expr
patterns
case_explicit
case_default
var_heap
refMarkOfCase
free_vars
sel
def
{
case_expr
,
case_guards
=
DynamicPatterns
patterns
,
case_default
,
case_explicit
}
var_heap
#
(
used_free_vars
,
var_heap
)
=
collectUsedFreeVariables
free_vars
var_heap
var_heap
=
parCombine
free_vars
var_heap
(
local_lets
,
var_heap
)
=
collectOpenLetVars
free_vars
var_heap
//
(used_free_vars, var_heap) = collectUsedFreeVariables free_vars var_heap
//
var_heap = parCombine free_vars var_heap
#
(
local_lets
,
var_heap
)
=
collectOpenLetVars
free_vars
var_heap
(
def
,
used_lets
,
var_heap
)
=
refMarkOfDefault
case_explicit
free_vars
sel
def
case_default
local_lets
var_heap
(
pattern_depth
,
used_lets
,
var_heap
)
=
foldSt
(
ref_mark_of_dynamic_pattern
free_vars
sel
local_lets
def
)
patterns
(
0
,
used_lets
,
var_heap
)
var_heap
=
addRefMarkOfDefault
pattern_depth
free_vars
def
used_lets
var_heap
...
...
@@ -466,6 +466,7 @@ addRefMarkOfDefault pattern_depth free_vars No used_lets var_heap
=
altCombine
pattern_depth
free_vars
var_heap
/*
parCombine free_vars var_heap
= foldSt (foldSt (par_combine)) free_vars var_heap
where
...
...
@@ -473,6 +474,7 @@ where
# (VI_Occurrence old_occ=:{occ_ref_count,occ_previous=[prev_ref_count:prev_counts]}, var_heap) = readPtr fv_info_ptr var_heap
= var_heap <:= (fv_info_ptr, VI_Occurrence { old_occ &
occ_ref_count = parCombineRefCount occ_ref_count prev_ref_count , occ_previous = prev_counts })
*/
caseCombine
do_par_combine
free_vars
var_heap
=
foldSt
(
foldSt
(
case_combine
do_par_combine
))
free_vars
var_heap
// (var_heap ---> ("caseCombine", free_vars))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment