A particular form of promise which claims to the compiler
that the specified goal will always hold. If useful, the
compiler may use this information to perform optimisations.
- class context
The typeclass constraints on a predicate or function.
a structure used by codegen.m
The "High Level Data Structure". See hlds.m.
instantiatedness. An inst holds three different sorts of
information. It indicates whether a variable is free, partially
bound, or ground. If a variable is bound, it may indicate
which functor(s) the variable can be bound to. Also,
an inst records whether a value is unique, or whether
it may be aliased.
this term is used to mean two quite different things!
- There's a notion of liveness used in mode analysis:
a variable is live if either it or an alias might be
used later on in the computation.
- There's a different notion of liveness used for code generation:
a variable becomes live (is "born") when the register or stack
slot holding the variable first acquires a value, and dies when
that value will definitely not be needed again within this procedure.
This notion is low-level because it could depend on the low-level
representation details (in particular, `no_tag' representations
ought to affect liveness).
The "Low Level Data Structure". See llds.m.
this has two meanings:
- a mapping from one instantiatedness to another
(the mode of a single variable)
- a mapping from an initial instantiatedness of a predicate's
arguments to their final instantiatedness
(the mode of a predicate)
Another name for the HLDS.
Not Yet Implemented.
the structure in HLDS which contains information about
- proc (procedure)
a particular mode of a predicate.
the structure in HLDS which contains
information about a procedure.
A declaration that specifies a law that holds for the
predicates/functions in the declaration. Thus, examples of promises
are assertions and promise ex declarations. More generally, the term
promise is often used for a declaration where extra information is
given to the compiler which it cannot check itself, for example in
- promise ex
A shorthand for promise_exclusive, promise_exhaustive, and
promise_exclusive_exhaustive declarations. These declarations
are used to tell the compiler determinism properties of a
The "RunTime Type Information". See rtti.m. A copy of a paper given
on this topic is available
here in zipped Postscript format.
- super-homogenous form (SHF)
a simplified, flattened form of goals, where
each unification is split into its component pieces; in particular,
the arguments of each predicate call and functor must be distinct
a disjunction which does a case analysis on the toplevel
functor of some variable.