Files
mercury/compiler/ll_backend.m
2018-07-09 20:22:10 +02:00

103 lines
3.6 KiB
Mathematica

%-----------------------------------------------------------------------------%
% vim: ft=mercury ts=4 sw=4 et
%-----------------------------------------------------------------------------%
% Copyright (C) 2002,2003-2008 The University of Melbourne.
% This file may only be copied under the terms of the GNU General
% Public License - see the file COPYING in the Mercury distribution.
%-----------------------------------------------------------------------------%
%
% This package contains the low-level back-end
% (a.k.a. the LLDS back-end).
%
:- module ll_backend.
:- interface.
%-----------------------------------------------------------------------------%
% LLDS-specific pre-passes to transform or annotate the HLDS.
:- include_module deep_profiling. % transform
:- include_module coverage_profiling. % transform
:- include_module saved_vars. % transform
:- include_module stack_opt. % transform
:- include_module follow_code. % transform
:- include_module liveness. % annotate
:- include_module stack_alloc. % annotate
:- include_module live_vars. % annotate
:- include_module follow_vars. % annotate
:- include_module store_alloc. % annotate
% The HLDS->LLDS code generator.
:- include_module proc_gen.
:- include_module code_gen.
:- include_module unify_gen.
:- include_module unify_gen_construct.
:- include_module unify_gen_deconstruct.
:- include_module unify_gen_test.
:- include_module unify_gen_util.
:- include_module closure_gen.
:- include_module call_gen.
:- include_module pragma_c_gen.
:- include_module ite_gen.
:- include_module disj_gen.
:- include_module switch_gen.
:- include_module dense_switch.
:- include_module lookup_switch.
:- include_module string_switch.
:- include_module tag_switch.
:- include_module switch_case.
:- include_module commit_gen.
:- include_module par_conj_gen.
:- include_module middle_rec.
:- include_module code_info.
:- include_module code_loc_dep.
:- include_module var_locn.
:- include_module lookup_util.
:- include_module exprn_aux.
:- include_module continuation_info.
:- include_module trace_gen.
% An alternative HLDS->LLDS code generator for fact tables.
:- include_module fact_table.
% The LLDS data structure itself.
% :- module llds_data.
:- include_module llds.
:- include_module code_util.
:- include_module ll_pseudo_type_info.
:- include_module layout.
:- include_module stack_layout.
:- include_module prog_rep.
:- include_module prog_rep_tables.
:- include_module global_data.
% :- end_module llds_data.
% LLDS->LLDS optimization passes.
:- include_module optimize.
:- include_module jumpopt.
:- include_module dupelim.
:- include_module dupproc.
:- include_module frameopt.
:- include_module delay_slot.
:- include_module labelopt.
:- include_module stdlabel.
:- include_module peephole.
:- include_module use_local_vars.
:- include_module wrap_blocks.
:- include_module livemap.
:- include_module reassign.
:- include_module basic_block.
:- include_module opt_util.
:- include_module opt_debug.
% The LLDS->C output phase.
:- include_module transform_llds.
:- include_module llds_out.
:- include_module layout_out.
:- include_module rtti_out.
%-----------------------------------------------------------------------------%
:- end_module ll_backend.
%-----------------------------------------------------------------------------%