summaryrefslogtreecommitdiff
path: root/compiler/main/DynFlags.hs
Commit message (Collapse)AuthorAgeFilesLines
...
| * | Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghcIan Lynagh2013-01-011-27/+25
| |\ \
| * | | Remove some redundant parenthesesIan Lynagh2012-12-161-1/+1
| | | |
* | | | Add traceSmpl for simplifier tracing, now that the simplifier has the IO monadSimon Peyton Jones2012-12-241-0/+3
| |/ / |/| |
* | | Rename all of the 'cmmz' flags and make them more consistent.Austin Seipp2012-12-191-25/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There's only a single compiler backend now, so the 'z' suffix means nothing. Also, the flags were confusingly named ('cmm-foo' vs 'foo-cmm',) and counter-intuitively, '-ddump-cmm' did not do at all what you expected since the new backend went live. Basically, all of the -ddump-cmmz-* flags are now -ddump-cmm-*. Some were renamed to be more consistent. This doesn't update the manual; it already mentions '-ddump-cmm' and that flag implies all the others anyway, which is probably what you want. Signed-off-by: Austin Seipp <mad.one@gmail.com>
* | | Merge branch 'master' of darcs.haskell.org:/home/darcs/ghcSimon Peyton Jones2012-12-191-4/+18
|\ \ \ | |/ /
| * | Implement the slow mode of -dynamic-tooIan Lynagh2012-12-141-4/+18
| | | | | | | | | | | | | | | I'm not sure if making an entirely new HscEnv is too large a hammer, but it works for now.
* | | Wibbles to faa8ff40 (UNPACK pragmas)Simon Peyton Jones2012-12-191-1/+1
| | | | | | | | | | | | Nothing big here, just tidying up deetails
* | | Merge branch 'master' of darcs.haskell.org:/home/darcs/ghcSimon Peyton Jones2012-12-141-35/+75
|\ \ \ | |/ / | | | | | | | | | Conflicts: compiler/typecheck/TcTyClsDecls.lhs
| * | Implement the -dynamic-too optimised path for the NCGIan Lynagh2012-12-111-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | We don't yet have the slow path, for when we have to fall back to separate compilation. We also only currently handle the case qhere we're compiling Haskell code with the NCG.
| * | Fix loading dynamic interfaces when using -dynamic-tooIan Lynagh2012-12-081-10/+14
| | | | | | | | | | | | | | | | | | | | | | | | We need to have WayDyn in the ways in the DynFlags, or the interface loader will fail. -dynamic-too now correctly evaluates whether or not it is possible to build for the dynamic way too, but doesn't actually do so yet.
| * | Add a function to change DynFlags to be suitable for compiling for way=dynamicIan Lynagh2012-12-081-24/+48
| | | | | | | | | | | | | | | Will be used when we are compiling with -dynamic-too. This needed a little refactoring of the "addWay" code to allow the code to be shared.
| * | Add replaceDynFlags to the ContainsDynFlags classIan Lynagh2012-12-081-0/+1
| | |
| * | Tweaks to dynamic-too codeIan Lynagh2012-12-071-1/+1
| | |
| * | Don't set "-O0 -g" C flags when -debug is givenIan Lynagh2012-12-071-1/+1
| | | | | | | | | | | | | | | | | | -debug now only determines whether or not a debug RTS is linked in. To get main() with debugging symbols you need to explicitly say -optc-O0 -optc-g
* | | Major refactoring of the way that UNPACK pragmas are handledSimon Peyton Jones2012-12-141-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The situation was pretty dire. The way in which data constructors were handled, notably the mapping between their *source* argument types and their *representation* argument types (after seq'ing and unpacking) was scattered in three different places, and hard to keep in sync. Now it is all in one place: * The dcRep field of a DataCon gives its representation, specified by a DataConRep * As well as having the wrapper, the DataConRep has a "boxer" of type DataConBoxer (defined in MkId for loopy reasons). The boxer used at a pattern match to reconstruct the source-level arguments from the rep-level bindings in the pattern match. * The unboxing in the wrapper and the boxing in the boxer are dual, and are now constructed together, by MkId.mkDataConRep. This is the key function of this change. * All the computeBoxingStrategy code in TcTyClsDcls disappears. Much nicer. There is a little bit of refactoring left to do; the strange deepSplitProductType functions are now called only in WwLib, so I moved them there, and I think they could be tidied up further.
* | Add -funbox-strict-primitive-fieldsJohan Tibell2012-12-061-0/+2
| | | | | | | | | | When enabled, this flag causes all strict fields which representation is smaller or equal to the size of a pointer to be unboxed.
* | Add the beginnings of support for building vanilla and dynamic at the same timeIan Lynagh2012-12-051-3/+22
| |
* | Don't define DYNAMIC when compiling the dyn wayIan Lynagh2012-12-051-2/+2
| | | | | | | | | | | | | | | | | | We want to compile the sources only once, and to produce both vanilla and dyn object files. This means that the sources can't differ for the two ways. This needed a bit of a kludge to get keepCAFsForGHCi included only in the dynamic library.
* | Replace all uses of ghcError with throwGhcException and purge ghcError.Erik de Castro Lopo2012-11-301-4/+4
| |
* | Replace mkDerivedConstants.c with DeriveConstants.hsIan Lynagh2012-11-121-2/+2
| | | | | | | | | | | | | | | | | | DeriveConstants.hs works in a cross-compilation-friendly way. Rather than running a C program that prints out the constants, we just compile a C file which has the constants are encoded in symbol sizes. We then parse the output of 'nm' to find out what the constants are. Based on work by Gabor Greif <ggreif@gmail.com>.
* | Don't put uniqs in ghc wrapper function names; part of #4012Ian Lynagh2012-11-021-3/+8
| | | | | | | | | | | | The wrapper functions can end up in interface files, and thus are part of the ABI hash. But uniqs easily change for no good reason when recompiling, which can lead to an ABI hash needlessly changing.
* | Add -fghci-hist-size=N to set the number of previous steps stored by :traceSimon Marlow2012-11-011-0/+6
| |
* | Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2012-10-311-3/+0
|\ \
| * | Get ride of the -fregs-liveness flag.Geoffrey Mainland2012-10-301-3/+0
| | | | | | | | | | | | | | | With the new register allocation scheme, the LLVM back end must always use liveness information.
* | | Fix bug with reporting deprecated use of flag (Trac #7349)Simon Peyton Jones2012-10-291-3/+4
|/ /
* | Make Rank2Types and PolymorphicComponents into a synonym for RankNTypes (no ↵Simon Peyton Jones2012-10-261-4/+4
| | | | | | | | | | | | | | | | | | | | | | deprecation) There was a long thread on cvs-ghc which concluded that although it's the Right Thing to deprecate Rank2Types and PolymorphicComponents, in favour of RankNTypes, it would cause lots of busy-work for library authors and the pain isn't worth the gain. So this patch removes the deprecation, and documents the synonym-ity.
* | Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2012-10-261-3/+9
|\ \
| * | Set the default way correctly when dynamic-by-defaultIan Lynagh2012-10-251-3/+9
| | |
* | | Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2012-10-241-8/+19
|\ \ \ | |/ /
| * | removeWay should also unset the wayGeneralFlagsSimon Marlow2012-10-231-8/+19
| | | | | | | | | | | | | | | This means that -static now disables the -fPIC that we're currently getting by default.
* | | Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2012-10-191-169/+187
|\ \ \ | |/ /
| * | Refactor the way dump flags are handledIan Lynagh2012-10-181-32/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We were being inconsistent about how we tested whether dump flags were enabled; in particular, sometimes we also checked the verbosity, and sometimes we didn't. This lead to oddities such as "ghc -v4" printing an "Asm code" section which didn't contain any code, and "-v4" enabled some parts of "-ddump-deriv" but not others. Now all the tests use dopt, which also takes the verbosity into account as appropriate.
| * | Remove unused -ddump flagsIan Lynagh2012-10-171-21/+0
| | |
| * | Some alpha renamingIan Lynagh2012-10-161-25/+25
| | | | | | | | | | | | | | | Mostly d -> g (matching DynFlag -> GeneralFlag). Also renamed if* to when*, matching the Haskell if/when names
| * | Rename setDynFlag, unSetDynFlag following the DynFlag->GeneralFlag renameIan Lynagh2012-10-161-58/+58
| | |
| * | Rename DynFlag to GeneralFlagIan Lynagh2012-10-161-29/+29
| | | | | | | | | | | | | | | This avoids confusion due to [DynFlag] and DynFlags being completely different types.
| * | Make -ddump-cmmz-cfg turn on the right flagIan Lynagh2012-10-151-1/+1
| | | | | | | | | | | | It was turning on Opt_D_dump_cmmz_cbe rather than Opt_D_dump_cmmz_cfg
| * | Use -O0 -g C flags when compiling a debug wayIan Lynagh2012-10-151-1/+1
| | |
| * | When dynamic-by-default, don't use the GHCi linkerIan Lynagh2012-10-131-33/+38
| | | | | | | | | | | | We instead link objects into a temporary DLL and dlopen that
* | | Deprecate Rank2Types and PolymorphicComponents, in favour of RankNTypesSimon Peyton Jones2012-10-191-7/+4
|/ / | | | | | | | | We agreed that it's not worth the bother of trying to maintain all these distinct flags; RankNTypes will do the job fine. Trac #6032.
* | Make -f(no-)pre-inlining a dynamic flagIan Lynagh2012-10-091-0/+6
| |
* | Make -fsimple-list-literals a dynamic flagIan Lynagh2012-10-091-0/+2
| |
* | Make -fmax-worker-args a dynamic flagIan Lynagh2012-10-091-0/+6
| |
* | Make the -dsuppress-* flags dynamicIan Lynagh2012-10-091-2/+35
| |
* | Make the opt_UF_* static flags dynamicIan Lynagh2012-10-091-0/+33
| | | | | | | | | | | | | | | | I also removed the default values from the "Discounts and thresholds" note: most of them were no longer up-to-date. Along the way I added FloatSuffix to the argument parser, analogous to IntSuffix.
* | Remove unnecessary warning suppressionIan Lynagh2012-10-091-3/+0
| |
* | Make the -ferror-spans flag dynamicIan Lynagh2012-10-091-0/+3
| |
* | Put the DynFlags in a global variable for tracing; fixes #7304Ian Lynagh2012-10-081-23/+7
| | | | | | | | | | | | | | | | | | This is an ugly kludge to make a DynFlags value available for the 'trace' functions. It may not be the value we really ought to use, but it'll be good enough for the pretty-printer to use. Ideally we'd pass the real DynFlags down to all the trace calls, but this will do for now at least.
* | Add a "Dynamic by default" field to the ghc --info outputIan Lynagh2012-10-031-0/+2
| |
* | Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghcIan Lynagh2012-10-031-1/+3
|\ \