[m-rev.] for review: improve debugging support for il grade.
Fergus Henderson
fjh at cs.mu.OZ.AU
Sat Nov 1 21:05:49 AEDT 2003
On 31-Oct-2003, Peter Ross <pro at missioncriticalit.com> wrote:
> On Wed, Oct 29, 2003 at 10:01:17AM +1100, Fergus Henderson wrote:
> > On 28-Oct-2003, Peter Ross <pro at missioncriticalit.com> wrote:
> > > Improve the support for debugging in the il grade, by not optimizing
> > > the generated il code, unless needed for verifiability.
> > >
> > > Using
> > > mmc --make --grade il --target-debug -O0 diff
> > > now generates code which is relatively easier to debug in an IL
> > > debugger.
> >
> > This is a good idea, but whether or not the generated IL code is
> > peephole optimized should depend on the "-O" setting, not on whether
> > or not --target-debug is specified. Otherwise there's too much danger
> > of Heisenbugs (bugs which go away when you enabled debugging).
> >
> > Currently peephole optimization is enabled at "-O0".
> > I'd be happy to change that so that it was instead enabled at "-O1"
> > for the IL back-end if and only if this speeds up compilation at "-O0".
> >
> > Otherwise, I'd say use "--target-debug -O-1" or
> > "--target-debug -O0 --no-optimize-peep" if you want
> > the IL code to be maximally easy to debug.
> > If that is too complicated, we could consider introducing
> > a new option (perhaps "--opt-debug", by analogy with to "--opt-space"?),
> > which disabled optimizations that inhibit debugging.
>
> IMHO when compiling Mercury with debugging turned on at the default
> optimization level, one should have a reasonable debugging experience.
For Mercury debugging, I agree. That's why we default to --no-trace-optimized,
and why --trace deep turns off all optimizations that would inhibit debugging
unless --trace-optimized is specified.
But for --target-debug, the argument is much less strong. If you're
debugging things at the level of the target code, you're already
looking under the hood. That's why we default to --c-optimize, even if
--target-debug is specified.
I guess for IL it may be a bit different, since we don't support mdb for the
IL back-end yet.
> Note that we already have the ability for Heisenbugs in the current
> compilation schema because --trace-optimize is automatically enabled.
I think you meant "... because --no-trace-optimized ...".
--
Fergus Henderson <fjh at cs.mu.oz.au> | "I have always known that the pursuit
The University of Melbourne | of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh> | -- the last words of T. S. Garp.
--------------------------------------------------------------------------
mercury-reviews mailing list
post: mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------
More information about the reviews
mailing list