summaryrefslogtreecommitdiff
path: root/compiler/profiling
Commit message (Collapse)AuthorAgeFilesLines
* More modules that need LANGUAGE BangPatternssimonpj@microsoft.com2010-11-121-1/+1
|
* Add Data and Typeable instances to HsSynDavid Waern2010-03-301-0/+6
| | | | | The instances (and deriving declarations) have been taken from the ghc-syb package.
* Improve optimisation of cost centressimonpj@microsoft.com2009-09-111-1/+8
| | | | | | | | | | | | | | | | | | | | | | This patch fixes test failures for the profiling way for drv001. The problem was that the arity of a function was decreasing during "optimisation" because of interaction with SCC annotations. In particular f = /\a. scc "f" (h x) -- where h had arity 2 and h gets inlined, led to f = /\a. scc "f" let v = scc "f" x in \y. <blah> Two main changes: 1. exprIsTrivial now says True for (scc "f" x) See Note [SCCs are trivial] in CoreUtils 2. The simplifier eliminates nested pushing of the same cost centre: scc "f" (...(scc "f" e)...) ==> scc "f" (...e...)
* Require a bang pattern when unlifted types are where/let bound; #3182Ian Lynagh2009-04-241-2/+2
| | | | | For now we only get a warning, rather than an error, because the alex and happy templates don't follow the new rules yet.
* Make some profiling flags dynamicIan Lynagh2008-12-091-5/+6
| | | | | | | In particular: -fauto-sccs-on-all-toplevs -auto-all -no-auto-all -fauto-sccs-on-exported-toplevs -auto -no-auto -fauto-sccs-on-individual-cafs -caf-all -no-caf-all
* Fix #2410: carefully generate unique names for CAF CCsSimon Marlow2008-09-301-6/+9
|
* Fix Haddock errors.Thomas Schilling2008-07-201-11/+10
|
* Change the last few (F)SLIT's into (f)sLit'sIan Lynagh2008-04-221-1/+1
|
* (F)SLIT -> (f)sLit in CostCentreIan Lynagh2008-04-121-10/+8
|
* Don't import FastString in HsVersions.hIan Lynagh2008-03-291-2/+0
| | | | Modules that need it import it themselves instead.
* Fix warning in SCCfinalIan Lynagh2008-02-191-26/+21
|
* Whitespace onlyIan Lynagh2008-02-191-64/+64
|
* Fixed warnings in profiling/CostCentre, except for incomplete pattern matchesTwan van Laarhoven2008-01-261-4/+23
|
* Monadify profiling/SCCfinalTwan van Laarhoven2008-01-171-160/+142
| | | | | - change monad type synonym into a newtype - use do, return and standard monad functions
* lots of portability changes (#1405)Isaac Dupree2008-01-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | re-recording to avoid new conflicts was too hard, so I just put it all in one big patch :-( (besides, some of the changes depended on each other.) Here are what the component patches were: Fri Dec 28 11:02:55 EST 2007 Isaac Dupree <id@isaac.cedarswampstudios.org> * document BreakArray better Fri Dec 28 11:39:22 EST 2007 Isaac Dupree <id@isaac.cedarswampstudios.org> * properly ifdef BreakArray for GHCI Fri Jan 4 13:50:41 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * change ifs on __GLASGOW_HASKELL__ to account for... (#1405) for it not being defined. I assume it being undefined implies a compiler with relatively modern libraries but without most unportable glasgow extensions. Fri Jan 4 14:21:21 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * MyEither-->EitherString to allow Haskell98 instance Fri Jan 4 16:13:29 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * re-portabilize Pretty, and corresponding changes Fri Jan 4 17:19:55 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * Augment FastTypes to be much more complete Fri Jan 4 20:14:19 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * use FastFunctions, cleanup FastString slightly Fri Jan 4 21:00:22 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * Massive de-"#", mostly Int# --> FastInt (#1405) Fri Jan 4 21:02:49 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * miscellaneous unnecessary-extension-removal Sat Jan 5 19:30:13 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * add FastFunctions
* refactoring only: use the parameterised InstalledPackageInfoSimon Marlow2007-10-031-2/+1
| | | | This required moving PackageId from PackageConfig to Module
* Fix CodingStyle#Warnings URLsIan Lynagh2007-09-042-2/+2
|
* Use OPTIONS rather than OPTIONS_GHC for pragmasIan Lynagh2007-09-032-4/+4
| | | | | | | Older GHCs can't parse OPTIONS_GHC. This also changes the URL referenced for the -w options from WorkingConventions#Warnings to CodingStyle#Warnings for the compiler modules.
* Add {-# OPTIONS_GHC -w #-} and some blurb to all compiler modulesIan Lynagh2007-09-012-0/+14
|
* FIX #1472 (also #249, which was not completely fixed previously): -caf-all bugsSimon Marlow2007-07-071-1/+9
|
* Warning fix for unused and redundant importsMichael D. Adams2007-05-101-1/+0
|
* Fix #249 (-caf-all bugs)Simon Marlow2007-02-282-5/+18
| | | | | | | | | There were two bugs: * we were generating the symbol name for the CAF cost centre from the OccName, which isn't unique enough in the case of system-generated non-external names * :Main.main caused problems, because we were assuming that every top-level CAF was from the current module.
* Haskell Program Coverageandy@galois.com2006-10-241-0/+4
| | | | | | | | | | | | | | | | | | | | This large checkin is the new ghc version of Haskell Program Coverage, an expression-level coverage tool for Haskell. Parts: - Hpc.[ch] - small runtime support for Hpc; reading/writing *.tix files. - Coverage.lhs - Annotates the HsSyn with coverage tickboxes. - New Note's in Core, - TickBox -- ticked on entry to sub-expression - BinaryTickBox -- ticked on exit to sub-expression, depending -- on the boolean result. - New Stg level TickBox (no BinaryTickBoxes, though) You can run the coverage tool with -fhpc at compile time. Main must be compiled with -fhpc.
* Generalise Package SupportSimon Marlow2006-07-252-11/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch pushes through one fundamental change: a module is now identified by the pair of its package and module name, whereas previously it was identified by its module name alone. This means that now a program can contain multiple modules with the same name, as long as they belong to different packages. This is a language change - the Haskell report says nothing about packages, but it is now necessary to understand packages in order to understand GHC's module system. For example, a type T from module M in package P is different from a type T from module M in package Q. Previously this wasn't an issue because there could only be a single module M in the program. The "module restriction" on combining packages has therefore been lifted, and a program can contain multiple versions of the same package. Note that none of the proposed syntax changes have yet been implemented, but the architecture is geared towards supporting import declarations qualified by package name, and that is probably the next step. It is now necessary to specify the package name when compiling a package, using the -package-name flag (which has been un-deprecated). Fortunately Cabal still uses -package-name. Certain packages are "wired in". Currently the wired-in packages are: base, haskell98, template-haskell and rts, and are always referred to by these versionless names. Other packages are referred to with full package IDs (eg. "network-1.0"). This is because the compiler needs to refer to entities in the wired-in packages, and we didn't want to bake the version of these packages into the comiler. It's conceivable that someone might want to upgrade the base package independently of GHC. Internal changes: - There are two module-related types: ModuleName just a FastString, the name of a module Module a pair of a PackageId and ModuleName A mapping from ModuleName can be a UniqFM, but a mapping from Module must be a FiniteMap (we provide it as ModuleEnv). - The "HomeModules" type that was passed around the compiler is now gone, replaced in most cases by the current package name which is contained in DynFlags. We can tell whether a Module comes from the current package by comparing its package name against the current package. - While I was here, I changed PrintUnqual to be a little more useful: it now returns the ModuleName that the identifier should be qualified with according to the current scope, rather than its original module. Also, PrintUnqual tells whether to qualify module names with package names (currently unused). Docs to follow.
* Reorganisation of the source treeSimon Marlow2006-04-073-0/+1085
Most of the other users of the fptools build system have migrated to Cabal, and with the move to darcs we can now flatten the source tree without losing history, so here goes. The main change is that the ghc/ subdir is gone, and most of what it contained is now at the top level. The build system now makes no pretense at being multi-project, it is just the GHC build system. No doubt this will break many things, and there will be a period of instability while we fix the dependencies. A straightforward build should work, but I haven't yet fixed binary/source distributions. Changes to the Building Guide will follow, too.