Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
GHC
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
4,323
Issues
4,323
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
376
Merge Requests
376
Requirements
Requirements
List
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Code Review
Insights
Issue
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Glasgow Haskell Compiler
GHC
Commits
e753cf6c
Commit
e753cf6c
authored
Feb 25, 2004
by
simonpj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[project @ 2004-02-25 14:51:37 by simonpj]
Add a -fno-full-laziness flag
parent
63020bb3
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
25 additions
and
10 deletions
+25
-10
ghc/compiler/main/CmdLineOpts.lhs
ghc/compiler/main/CmdLineOpts.lhs
+17
-10
ghc/compiler/main/DriverFlags.hs
ghc/compiler/main/DriverFlags.hs
+1
-0
ghc/docs/users_guide/flags.sgml
ghc/docs/users_guide/flags.sgml
+7
-0
No files found.
ghc/compiler/main/CmdLineOpts.lhs
View file @
e753cf6c
...
...
@@ -282,6 +282,7 @@ data DynFlag
-- optimisation opts
| Opt_Strictness
| Opt_FullLaziness
| Opt_CSE
| Opt_IgnoreInterfacePragmas
| Opt_OmitInterfacePragmas
...
...
@@ -373,8 +374,9 @@ defaultDynFlags = DynFlags {
Opt_Strictness,
-- strictness is on by default, but this only
-- applies to -O.
Opt_CSE,
-- similarly for CSE.
Opt_CSE, -- similarly for CSE.
Opt_FullLaziness, -- ...and for full laziness
Opt_DoLambdaEtaExpansion,
-- This one is important for a tiresome reason:
-- we want to make sure that the bindings for data
...
...
@@ -478,11 +480,12 @@ opt_1_dopts = [
buildCoreToDo :: DynFlags -> [CoreToDo]
buildCoreToDo dflags = core_todo
where
opt_level = optLevel dflags
max_iter = maxSimplIterations dflags
strictness = dopt Opt_Strictness dflags
cse = dopt Opt_CSE dflags
rule_check = ruleCheck dflags
opt_level = optLevel dflags
max_iter = maxSimplIterations dflags
strictness = dopt Opt_Strictness dflags
full_laziness = dopt Opt_FullLaziness dflags
cse = dopt Opt_CSE dflags
rule_check = ruleCheck dflags
core_todo =
if opt_level == 0 then
...
...
@@ -516,7 +519,9 @@ buildCoreToDo dflags = core_todo
-- so that overloaded functions have all their dictionary lambdas manifest
CoreDoSpecialising,
CoreDoFloatOutwards (FloatOutSw False False),
if full_laziness then CoreDoFloatOutwards (FloatOutSw False False)
else CoreDoNothing,
CoreDoFloatInwards,
CoreDoSimplify (SimplPhase 2) [
...
...
@@ -564,8 +569,10 @@ buildCoreToDo dflags = core_todo
MaxSimplifierIterations max_iter
],
CoreDoFloatOutwards (FloatOutSw False -- Not lambdas
True), -- Float constants
if full_laziness then
CoreDoFloatOutwards (FloatOutSw False -- Not lambdas
True) -- Float constants
else CoreDoNothing,
-- nofib/spectral/hartel/wang doubles in speed if you
-- do full laziness late in the day. It only happens
-- after fusion and other stuff, so the early pass doesn't
...
...
ghc/compiler/main/DriverFlags.hs
View file @
e753cf6c
...
...
@@ -464,6 +464,7 @@ fFlags = [
(
"allow-incoherent-instances"
,
Opt_AllowIncoherentInstances
),
(
"generics"
,
Opt_Generics
),
(
"strictness"
,
Opt_Strictness
),
(
"full-laziness"
,
Opt_FullLaziness
),
(
"cse"
,
Opt_CSE
),
(
"ignore-interface-pragmas"
,
Opt_IgnoreInterfacePragmas
),
(
"omit-interface-pragmas"
,
Opt_OmitInterfacePragmas
),
...
...
ghc/docs/users_guide/flags.sgml
View file @
e753cf6c
...
...
@@ -810,6 +810,13 @@
<entry>-</entry>
</row>
<row>
<entry><option>-fno-full-laziness</option></entry>
<entry>Turn off full laziness (floating bindings outwards)</entry>
<entry>dynamic</entry>
<entry>-</entry>
</row>
<row>
<entry><option>-fno-pre-inlining</option></entry>
<entry>Turn off pre-inlining</entry>
...
...
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