@@ -18,6 +18,8 @@ Important Note: In certain cases it is possible that GHC takes too long to
1818compile with `-fspec-constr-recursive=16`, if that happens please reduce the
1919value or remove that option.
2020
21+See [Explanation](#explanation) for details about these flags.
22+
2123## Using Fusion Plugin
2224
2325In many cases `fusion-plugin` can improve performance by better stream
@@ -54,7 +56,9 @@ issue](https://gitlab.haskell.org/ghc/ghc/issues/17745) leading to
5456memory leak in some cases.
5557
5658* `-fspec-constr-recursive` is needed for better stream fusion by enabling
57−the `SpecConstr` optimization in more cases.
59+the `SpecConstr` optimization in more cases. Large values used with this flag
60+may lead to huge compilation times and code bloat, if that happens please avoid
61+it or use a lower value (e.g. 3 or 4).
5862
5963* `-fmax-worker-args` is needed for better stream fusion by enabling the
6064`SpecConstr` optimization in some important cases.
@@ -62,7 +66,7 @@ the `SpecConstr` optimization in more cases.
6266* `-fplugin=Fusion.Plugin` enables predictable stream fusion
6367optimization in certain cases by helping the compiler inline internal
6468bindings and therefore enabling case-of-case optimization. In some
65−cases, especially in some fileio benchmarks, it can make a difference of
69+cases, especially in some file IO benchmarks, it can make a difference of
66705-10x better performance.
6771
6872# Multi-core Parallelism