From d4cd96eb26d77f1baa638d99ab263d7eb43febfc Mon Sep 17 00:00:00 2001 From: A S E Date: Wed, 4 May 2022 13:28:49 +0100 Subject: Add GHC Core and Cmm views #3571 (#3593) --- lib/compilers/haskell.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'lib/compilers/haskell.js') diff --git a/lib/compilers/haskell.js b/lib/compilers/haskell.js index 413185a2e..a6c1a8f6b 100644 --- a/lib/compilers/haskell.js +++ b/lib/compilers/haskell.js @@ -35,14 +35,30 @@ export class HaskellCompiler extends BaseCompiler { constructor(info, env) { super(info, env); + this.compiler.supportsHaskellCoreView = true; this.compiler.supportsHaskellStgView = true; + this.compiler.supportsHaskellCmmView = true; } optionsForBackend(backendOptions, outputFilename) { const opts = super.optionsForBackend(backendOptions, outputFilename); + const anydump = + backendOptions.produceHaskellCore || backendOptions.produceHaskellStg || backendOptions.produceHaskellCmm; + + if (anydump) { + // -dsupress-all to make tidier output + opts.push('-dsuppress-all', '-ddump-to-file', '-dumpdir', path.dirname(outputFilename)); + } + + if (backendOptions.produceHaskellCore && this.compiler.supportsHaskellCoreView) { + opts.push('-ddump-simpl'); + } if (backendOptions.produceHaskellStg && this.compiler.supportsHaskellStgView) { - opts.push('-ddump-to-file', '-dumpdir', path.dirname(outputFilename), '-ddump-stg-final'); + opts.push('-ddump-stg-final'); + } + if (backendOptions.produceHaskellCmm && this.compiler.supportsHaskellCmmView) { + opts.push('-ddump-cmm'); } return opts; } -- cgit v1.2.3