Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Tobias Decking
GHC
Commits
7e704c1d
Commit
7e704c1d
authored
Oct 30, 2001
by
simonpj
Browse files
[project @ 2001-10-30 10:57:50 by simonpj]
Specialise-constructor rules active only in phase 0 (for Manuel & Gaby)
parent
a7bad503
Changes
1
Hide whitespace changes
Inline
Side-by-side
ghc/compiler/specialise/SpecConstr.lhs
View file @
7e704c1d
...
...
@@ -506,9 +506,21 @@ spec_one env fn rhs (pats, n)
rule_name = _PK_ ("SC:" ++ showSDoc (ppr fn <> int n))
spec_rhs = mkLams bndrs (mkApps rhs pats)
spec_id = mkUserLocal spec_occ spec_uniq (exprType spec_rhs) fn_loc
rule = Rule rule_name AlwaysActive bndrs pats (mkVarApps (Var spec_id) bndrs)
rule = Rule rule_name specConstrActivation
bndrs pats (mkVarApps (Var spec_id) bndrs)
in
returnUs (rule, (spec_id, spec_rhs))
-- In which phase should the specialise-constructor rules be active?
-- Originally I made them always-active, but Manuel found that
-- this defeated some clever user-written rules. So Plan B
-- is to make them active only in Phase 0; after all, currently,
-- the specConstr transformation is only run after the simplifier
-- has reached Phase 0. In general one would want it to be
-- flag-controllable, but for now I'm leaving it baked in
-- [SLPJ Oct 01]
specConstrActivation :: Activation
specConstrActivation = ActiveAfter 0 -- Baked in; see comments above
\end{code}
%************************************************************************
...
...
Write
Preview
Supports
Markdown
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