Hi, As a GHC API user, I would like to run GHC’s strictness and demand analysis pass, but I don’t want any worker/wrappers. My specific use-case is to generate digital circuits from Haskell code, where I’ve yet to encounter any benefit from worker/wrappers: the generated circuits do not get any smaller or faster. They do however induce longer compilation times for my compiler. I still want to have GHC’s strictness and demand analysis, because, if I understand correctly, the demand and strictness annotations are needed by GHC’s dead code analysis (and other optimisations) which is beneficial for my use case.
Looking through DynFlags, I encountered the ‘maxWorkerArgs’ field, which is controlled by ‘-fmax-worker-args’. The user guide says the following: "If a worker has that many arguments, none will be unpacked anymore (default: 10)” I don’t know exactly what this means, but I was hoping that if I would set that number to 0 (zero), no worker/wrapper pairs would be created. Is that correct? The reason that I’m asking is because -fmax-worker-args is basically dead code. The ‘maxWorkerArgs’ field of DynFlags is not used anywhere. If setting ‘-fmax-worker-args’ to zero does indeed prevent any worker/wrappers from being generated, should I reimplement the flag and submit it as a patch? Or, is it preferable to simply remove ‘-fmax-worker-args’ (given that it doesn’t do anything right now), and create a new flag, ‘-fno-worker-wrapper’, that simply disables the creation of worker/wrapper pairs everywhere? Regards, Christiaan _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs