Files
mercury/compiler
Fergus Henderson 5fe0f4f82c A bunch of changes required to fix problems in code generation for
Estimated hours taken: 24

A bunch of changes required to fix problems in code generation for
model_det and model_semi disjunctions.

simplify.m:
	Don't convert all model_det and model_semi disjunctions into
	if-then-elses, because that doesn't work if the disjuncts
	have output variables, which can happen (e.g. with cc_nondet
	disjunctions)

disj_gen.m:
	Fix a bug in the code generation for semidet disjunctions:
	don't forget to jump to the end of the disjunction after
	each disjunct!

liveness.m, live_vars.m, store_alloc.m, disj_gen.m:
	Treat backtracking in model_det and model_semi disjunctions
	as shallow backtracking rather than deep backtracking.
	This means that rather than pushing all live variables
	onto the stack at the start of a model_det/semi disjunction,
	and using the nondet_lives to keep track of them, we instead
	treat these disjunctions a bit more like an if-then-else and
	use the ordinary liveness/deadness to keep track of them.

code_aux.m:
	Change code_aux__pre_goal_update so that it only applies
	the post-deaths if the goal is atomic.  Applying the
	*post*-deaths to the set of live variables in the *pre*-goal
	update only makes sense for atomic goals.
	(I think previously we only ever generated post-deaths
	for atomic goals, but now we generate them also for
	goals inside model_det or model_semi disjunctions.)

code_gen.pp, middle_rec.m:
	Pass an is-atomic flag to code_aux__pre_goal_update.

hlds_goal.m:
	Add some comments.

goal_util.m:
	Fix bugs in goal_util__name_apart_goalinfo.
	It wasn't applying the substitution to all the
	appropriate fields.

code_exprn.m:
	Improve the error message for one of the internal errors.

hlds_out.m:
	Print the stack slot allocations in the HLDS dump again.
1996-10-29 20:10:17 +00:00
..
1996-09-11 08:56:25 +00:00
1996-09-11 08:56:25 +00:00
1996-10-17 05:28:01 +00:00
1996-10-17 05:28:01 +00:00
1996-10-17 05:28:01 +00:00
1996-10-17 05:28:01 +00:00
1996-10-17 05:36:41 +00:00
1996-09-11 08:56:25 +00:00
1996-09-11 08:56:25 +00:00
1996-10-17 05:28:01 +00:00
1996-09-11 08:56:25 +00:00
1996-10-17 05:28:01 +00:00
1996-10-17 05:28:01 +00:00
1996-10-17 05:28:01 +00:00
1996-09-11 08:56:25 +00:00
1996-10-17 05:28:01 +00:00
1996-10-17 05:28:01 +00:00
1996-10-17 05:28:01 +00:00
1996-10-17 05:28:01 +00:00
1996-10-17 05:28:01 +00:00
1996-10-17 05:28:01 +00:00
1996-09-11 08:56:25 +00:00
1996-09-11 08:56:25 +00:00
1996-09-11 08:56:25 +00:00
1996-09-11 08:56:25 +00:00
1996-09-11 08:56:25 +00:00
1996-10-17 05:28:01 +00:00
1996-09-11 08:56:25 +00:00
1996-10-17 05:28:01 +00:00
1996-10-17 05:28:01 +00:00