The issue is to check correctness of the optimization in the issue title and to wire it up in the Stan_math backend (after the backend specific transformations). For now, it should be hidden behind a command line flag.
Check list:
you've gone over all the code in the optimization and you've convinced yourself it is correct, taking particular care with all the possibilities for expressions (including _lp-functions, _rng-functions, compiler internal functions like ReadParam__) to side effect (where the particular kind of side effect determines which optimizations are allowed: e.g. _rng functions cannot be CSE'd but can be dead-code eliminated; _lp functions cannot be touced by either optimization)
you've gone over all the unit tests and added to them to convince yourself that the implementation does on the MIR what it should do
the optimization is wired up in the backend, after the backend specific transformations, and is exposed under a command line flag
you've gone over the stat-comp-benchmarks or other models that are being run on Jenkins and have made sure the optimization is stressed and is passing tests on those (for example, convince yourself that the optimization would actually do non-trivial work on the models being tested).
The issue is to check correctness of the optimization in the issue title and to wire it up in the Stan_math backend (after the backend specific transformations). For now, it should be hidden behind a command line flag.
Check list:
ReadParam__
) to side effect (where the particular kind of side effect determines which optimizations are allowed: e.g. _rng functions cannot be CSE'd but can be dead-code eliminated; _lp functions cannot be touced by either optimization)