Commit Graph

8 Commits

Author SHA1 Message Date
Thomas Conway
8755f26838 changed call/2 to call/3 to include gc information about
llds.nl:
	changed call/2 to call/3 to include gc information about
	what registers and stack locations are live, and what their
	`shape numbers' are. Currently all the shape numbers are -1
	because the shape table stuff hasn't been implemented.

*	The changes made are only cosmetic as far as everything else
*	is concerned.

*.nl, etc:
	changes related to the above.
1995-01-10 15:04:41 +00:00
Fergus Henderson
c074b02970 In term__create_var, use bit reversals rather than random numbers
term.nl:
	In term__create_var, use bit reversals rather than random numbers
	to ensure that the binary trees remain balanced.

call_gen.nl:
	For polymorphic unifications, generate a call to fatal_error().

code_gen.nl, hlds.nl, make_hlds.nl, modes.nl, unify_proc.nl:
	Move the unify_request data structure from code_info to the HLDS,
	and move the unify_request handling from code_gen.nl to modes.nl.
	This is because we now generate HLDS code rather than LLDS code
	for complicated unifications.

code_util.nl, hlds_out.nl:
	Do some special name mangling for =/2.

float.nl, typecheck.nl, undef_types.nl, term.nl, hlds.nl:
	Until we implement `float' properly, define it as an abstract type
	in float.nl.

hlds.nl, make_hlds.nl:
	Rename `local_pred, imported_pred, exported_pred' to just
	`local, imported, exported' since they also apply to types, etc.,
	not just to preds.

mercury_compile.pp, mercury_to_goedel.nl, prog_util.nl:
	Replace to goedel__ prefixes in prog_util.nl with prog_util__.

std_util.nl:
	Change the code for semidet_succeed to avoid determinism warning.
1994-12-29 01:12:12 +00:00
Thomas Conway
fa26defe30 don't generate code for non-exported inlined procs.
code_gen.*:
	don't generate code for non-exported inlined procs.

mercury_compile.*:
	be a bit smarter about when we do inlining.
1994-12-10 05:01:29 +00:00
Zoltan Somogyi
0fc3a66c85 prepared then for middle_rec.
code_gen, opt_util:
	prepared then for middle_rec.

peephole, opt_debug:
	old changes.

printlist.int:
	shouldn't have been here in the first place.

source_stats.awk:
	turned comments into awk syntax.
1994-12-01 04:50:13 +00:00
Thomas Conway
e348822bb0 unify procs were creating problems.
llds.nl :	primitive name mangling for '='
misc:		patches so that the benchmarks compile:
		unify procs were creating problems.
1994-11-08 04:36:04 +00:00
Thomas Conway
989d341554 Now I know that if you are editing code_gen or mercury_compile,
code_gen.pp:
	Now I know that if you are editing code_gen or mercury_compile,
	you have to edit the .pp file: how intuitive :-)
1994-11-02 06:52:05 +00:00
Zoltan Somogyi
6df9d73fa9 a lot less functionality is missing now :-)
value_number.nl:
	a lot less functionality is missing now :-)

atsort.nl:
	approximate topological sort for value numbering

opt_*.nl:
	changes to supprt value numbering

llds.nl, *_gen.nl:
	changed livevals/1 into livevals/2 to support value numbering

list.nl:
	added a predicate to delete a list (set) of items from a list

peephole.nl:
	implement shortcircuiting inside computed goto label lists. Not tested
	since the only place we use computed gotos has no opportunities for
	short circuiting.

options.nl:
	added option to control the maximum number of repetitions of
	the peephole optimizations; default value is 2.

dir.nl:
	fixed spelling error
1994-10-13 08:39:01 +00:00
Fergus Henderson
fd2470dd0a Add some more stuff for compiling to .o
Makefile*:
	Add some more stuff for compiling to .o

Makefile*, mercury_compile*, code_gen*:
	Add some stuff for handling `.pp' files.
	`.pp' files are Mercury source code containing
	NU-Prolog hacks inside

		#if NU_PROLOG
		...
		#endif

	These hacks are preprocessed out (using sed, not cpp)
	except when compiling with `mnc'.

term_io.nl, term_io.nu.nl, interpreter.nl, prog_out.nl:
	Make sure all the predicates in term_io.nl are
	prefixed with `term_io__', not `io__'.

term_io.nl, require.nl:
	Add some `external' declarations.

call_gen.nl, unify_gen.nl:
	A temporary hack - generate incorrect code for complicated/polymorphic
	unifications, rather than aborting.

random.nl:
	Make the code more efficient.

hlds.nl, term.nl:
	Allocate pred_ids and variable numbers randomly rather than
	sequentially, so that the binary trees remain reasonably balanced.

code_info.nl, unify_gen.nl, hlds_out.nl:
	Generate informative comments for tag tests: say the name of
	the variable being tested, and which constructor we are testing for.

llds.nl:
	Cast field() expressions to (int) when used as rvals, so
	that comparisons work as expected.

make_hlds.nl:
	Improve error reporting.
1994-10-09 18:26:41 +00:00