Files
mercury/vim/syntax
Julien Fischer 37a8303efa Further improve trail usage optimization by omitting reset_undo_ticket
Estimated hours taken: 3
Branches: main

Further improve trail usage optimization by omitting reset_undo_ticket
instructions from disjuncts where the previous disjunct did not modify the
trail.  This can be done even in disjunctions where some of the disjuncts do
modify the trail.  At the moment this optimization is only implemented
for the MLDS backend - I'll add it to the lowlevel backend as a separate
change.

compiler/add_trail_ops.m:
	Implement the above optimization for the MLDS backend.

compiler/goal_form.m:
	Add a predicate goal_may_modify_trail.

compiler/mercury_compile.m:
	Add a comment mentioning that after we have added trail ops
	(stage 410) to the HLDS we can no longer reorder disjunctions.
	This should be okay since none of the following passes reorder
	disjunctions anyway.

vim/syntax/mercury.vim:
	Highlight `will_not_modify_trail' and `may_modify_trail'
	appropriately.

NEWS:
	Make the description of what trail usage optimization does more
	precise.  It affects goals other than if-then-elses, notably
	disjunctions and negations as well.
2005-12-07 04:57:10 +00:00
..