diff options
author | johnvg | 2001-06-20 11:54:05 +0000 |
---|---|---|
committer | johnvg | 2001-06-20 11:54:05 +0000 |
commit | eb12985d08cd6c9a29394dfa879f2b3166c1cddb (patch) | |
tree | 0f835254d8d6298f4ba69ef2b4ebc986d89ba21e /backend | |
parent | optimise && and || (diff) |
optimise && and ||
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@491 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'backend')
-rw-r--r-- | backend/backendpreprocess.icl | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/backend/backendpreprocess.icl b/backend/backendpreprocess.icl index 6000de6..4c389e0 100644 --- a/backend/backendpreprocess.icl +++ b/backend/backendpreprocess.icl @@ -98,8 +98,9 @@ instance sequence Expression where = sequence let_strict_binds o` sequence let_lazy_binds o` sequence let_expr - sequence (Conditional {if_then, if_else}) - = sequence if_then + sequence (Conditional {if_cond, if_then, if_else}) + = sequence if_cond + o` sequence if_then o` sequence if_else sequence (App {app_args}) = sequence app_args @@ -152,9 +153,10 @@ instance sequence LetBind where // MW0 = sequence` app bind_dst = sequence` app lb_dst where -// MW0 sequence` {app_symb, app_args} bind_dst sequenceState=:{ss_aliasDummyId} +// MW0 sequence` {app_symb, app_args} bind_dst sequenceState=:{ss_aliasDummyId} sequence` {app_symb, app_args} lb_dst sequenceState=:{ss_aliasDummyId} - | app_symb.symb_name==ss_aliasDummyId + | not (isNilPtr app_symb.symb_name.id_info) // nilPtr's are generated for Case's with case_ident=No in convertcases + && app_symb.symb_name==ss_aliasDummyId // the compiled source was a strict alias like "#! x = y" = case hd app_args of Var bound_var=:{var_info_ptr} |