Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
clean-compiler-and-rts
compiler
Commits
901005db
Commit
901005db
authored
Dec 09, 2003
by
John van Groningen
Browse files
propagate strictness to strict head and/or tail of a strict
list constructor on a cycle
parent
a257ead9
Changes
1
Hide whitespace changes
Inline
Side-by-side
backendC/CleanCompilerSources/statesgen.c
View file @
901005db
...
...
@@ -2262,7 +2262,29 @@ static Bool NodeInASemiStrictContext (Node node,int local_scope)
}
}
else
DecrRefCountCopiesOfArgs
(
node
->
node_arguments
IF_OPTIMIZE_LAZY_TUPLE_RECURSION
(
local_scope
));
}
else
}
#if STRICT_LISTS
else
if
(
symb
->
symb_kind
==
cons_symb
&&
node
->
node_arity
==
2
){
ArgP
arg_p
;
arg_p
=
node
->
node_arguments
;
if
(
symb
->
symb_head_strictness
>
1
){
if
(
ArgInAStrictContext
(
arg_p
,
StrictState
,
True
,
local_scope
))
parallel
=
True
;
}
else
if
(
ShouldDecrRefCount
)
DecrRefCountCopiesOfArg
(
arg_p
IF_OPTIMIZE_LAZY_TUPLE_RECURSION
(
local_scope
));
arg_p
=
arg_p
->
arg_next
;
if
(
symb
->
symb_tail_strictness
){
if
(
ArgInAStrictContext
(
arg_p
,
StrictState
,
True
,
local_scope
))
parallel
=
True
;
}
else
if
(
ShouldDecrRefCount
)
DecrRefCountCopiesOfArg
(
arg_p
IF_OPTIMIZE_LAZY_TUPLE_RECURSION
(
local_scope
));
}
#endif
else
DecrRefCountCopiesOfArgs
(
node
->
node_arguments
IF_OPTIMIZE_LAZY_TUPLE_RECURSION
(
local_scope
));
if
(
parallel
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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