Added support for the top target peephole optimiser.

This commit is contained in:
dtrg 2006-07-22 12:31:19 +00:00
parent f8e168adcd
commit 304c0e21a0
9 changed files with 133 additions and 7 deletions

View file

@ -10,6 +10,7 @@ mach_arm = group {
proto_as, proto_as,
proto_ncg { ARCHDIR = "arm" }, proto_ncg { ARCHDIR = "arm" },
proto_top,
tool_arm_cv, tool_arm_cv,
install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr") install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr")
@ -17,6 +18,9 @@ mach_arm = group {
-- Revision history -- Revision history
-- $Log$ -- $Log$
-- Revision 1.1 2006-07-20 23:18:18 dtrg -- Revision 1.2 2006-07-22 12:31:19 dtrg
-- Added support for the top target peephole optimiser.
--
-- Revision 1.1 2006/07/20 23:18:18 dtrg
-- First version in CVS. -- First version in CVS.
-- --

View file

@ -8,6 +8,7 @@ mach_m68020 = group {
proto_as, proto_as,
proto_ncg { ARCHDIR = "m68020" }, proto_ncg { ARCHDIR = "m68020" },
proto_top,
ego_descr, ego_descr,
install = { install = {
@ -17,7 +18,10 @@ mach_m68020 = group {
-- Revision history -- Revision history
-- $Log$ -- $Log$
-- Revision 1.2 2006-07-22 00:52:01 dtrg -- Revision 1.3 2006-07-22 12:31:19 dtrg
-- Added support for the top target peephole optimiser.
--
-- Revision 1.2 2006/07/22 00:52:01 dtrg
-- Added support for the ego global optimisation suite. -- Added support for the ego global optimisation suite.
-- --
-- Revision 1.1 2006/07/20 23:18:18 dtrg -- Revision 1.1 2006/07/20 23:18:18 dtrg

View file

@ -8,6 +8,7 @@ mach_m68k2 = group {
proto_as, proto_as,
proto_ncg { ARCHDIR = "m68020" }, proto_ncg { ARCHDIR = "m68020" },
proto_top,
ego_descr, ego_descr,
install = { install = {
@ -18,7 +19,10 @@ mach_m68k2 = group {
-- Revision history -- Revision history
-- $Log$ -- $Log$
-- Revision 1.2 2006-07-22 00:52:01 dtrg -- Revision 1.3 2006-07-22 12:31:19 dtrg
-- Added support for the top target peephole optimiser.
--
-- Revision 1.2 2006/07/22 00:52:01 dtrg
-- Added support for the ego global optimisation suite. -- Added support for the ego global optimisation suite.
-- --
-- Revision 1.1 2006/07/20 23:18:18 dtrg -- Revision 1.1 2006/07/20 23:18:18 dtrg

View file

@ -9,6 +9,7 @@ mach_pdp = group {
proto_as, proto_as,
proto_cg, proto_cg,
proto_ncg { ARCHDIR = "pdp" }, proto_ncg { ARCHDIR = "pdp" },
proto_top,
ego_descr, ego_descr,
install = { install = {
@ -18,7 +19,10 @@ mach_pdp = group {
-- Revision history -- Revision history
-- $Log$ -- $Log$
-- Revision 1.2 2006-07-22 00:52:01 dtrg -- Revision 1.3 2006-07-22 12:31:19 dtrg
-- Added support for the top target peephole optimiser.
--
-- Revision 1.2 2006/07/22 00:52:01 dtrg
-- Added support for the ego global optimisation suite. -- Added support for the ego global optimisation suite.
-- --
-- Revision 1.1 2006/07/20 23:18:19 dtrg -- Revision 1.1 2006/07/20 23:18:19 dtrg

View file

@ -6,9 +6,13 @@ local d = ROOTDIR.."mach/proto/"
include (d.."as/pmfile") include (d.."as/pmfile")
include (d.."cg/pmfile") include (d.."cg/pmfile")
include (d.."ncg/pmfile") include (d.."ncg/pmfile")
include (d.."top/pmfile")
-- Revision history -- Revision history
-- $Log$ -- $Log$
-- Revision 1.1 2006-07-20 23:18:18 dtrg -- Revision 1.2 2006-07-22 12:31:19 dtrg
-- Added support for the top target peephole optimiser.
--
-- Revision 1.1 2006/07/20 23:18:18 dtrg
-- First version in CVS. -- First version in CVS.
-- --

41
mach/proto/top/pmfile Normal file
View file

@ -0,0 +1,41 @@
-- $Source$
-- $State$
local d = ROOTDIR.."mach/proto/top/"
local make_tables = topgen {
file (ROOTDIR.."mach/%ARCH%/top/table")
}
local cfile_with_tables = cfile {
class = "cfile_with_tables",
dynamicheaders = {
make_tables,
}
}
proto_top = cprogram {
CINCLUDES = {
PARENT,
"-Imach/%ARCH%/ncg",
"-Imach",
"-I"..d
},
cfile_with_tables (d.."queue.c"),
cfile_with_tables (d.."top.c"),
lib_string,
outputs = {"%U%/%ARCH%-top"},
install = pm.install("%BINDIR%%PLATDEP%/%ARCH%/top")
}
-- Revision history
-- $Log$
-- Revision 1.1 2006-07-22 12:31:19 dtrg
-- Added support for the top target peephole optimiser.
--
-- Revision 1.1 2006/07/20 23:18:18 dtrg
-- First version in CVS.
--

View file

@ -8,6 +8,7 @@ mach_vax4 = group {
proto_as, proto_as,
proto_cg, proto_cg,
proto_top,
ego_descr, ego_descr,
install = { install = {
@ -17,7 +18,10 @@ mach_vax4 = group {
-- Revision history -- Revision history
-- $Log$ -- $Log$
-- Revision 1.2 2006-07-22 00:52:01 dtrg -- Revision 1.3 2006-07-22 12:31:19 dtrg
-- Added support for the top target peephole optimiser.
--
-- Revision 1.2 2006/07/22 00:52:01 dtrg
-- Added support for the ego global optimisation suite. -- Added support for the ego global optimisation suite.
-- --
-- Revision 1.1 2006/07/20 23:18:18 dtrg -- Revision 1.1 2006/07/20 23:18:18 dtrg

7
pmfile
View file

@ -43,6 +43,7 @@ include "util/ceg/pmfile"
include "util/misc/pmfile" include "util/misc/pmfile"
include "util/opt/pmfile" include "util/opt/pmfile"
include "util/ego/pmfile" include "util/ego/pmfile"
include "util/topgen/pmfile"
include "lang/cem/cemcom/pmfile" include "lang/cem/cemcom/pmfile"
include "lang/cem/cemcom.ansi/pmfile" include "lang/cem/cemcom.ansi/pmfile"
@ -99,6 +100,7 @@ default = group {
tool_em_encode, tool_em_encode,
tool_opt, tool_opt,
tool_ego, tool_ego,
tool_topgen,
lang_cem_cemcom, lang_cem_cemcom,
lang_cem_cemcom_ansi, lang_cem_cemcom_ansi,
@ -154,7 +156,10 @@ configure = simple {
-- Revision history -- Revision history
-- $Log$ -- $Log$
-- Revision 1.3 2006-07-22 00:52:01 dtrg -- Revision 1.4 2006-07-22 12:31:19 dtrg
-- Added support for the top target peephole optimiser.
--
-- Revision 1.3 2006/07/22 00:52:01 dtrg
-- Added support for the ego global optimisation suite. -- Added support for the ego global optimisation suite.
-- --
-- Revision 1.2 2006/07/20 23:24:42 dtrg -- Revision 1.2 2006/07/20 23:24:42 dtrg

56
util/topgen/pmfile Normal file
View file

@ -0,0 +1,56 @@
-- $Source$
-- $State$
local d = ROOTDIR.."util/topgen/"
local lpars = LLgen {
file (d.."topgen.g")
}
local cfile_with_headers = cfile {
class = "cfile_with_headers",
dynamicheaders = {
file (d),
lpars
}
}
tool_topgen = cprogram {
cfile_with_headers (d.."LLlex.c"),
cfile_with_headers (d.."hash.c"),
cfile_with_headers (d.."main.c"),
cfile_with_headers (d.."pattern.c"),
cfile_with_headers (d.."symtab.c"),
foreach {
rule = cfile_with_headers,
ith { lpars, from=2 }
},
lib_assert,
lib_print,
lib_alloc,
lib_system,
lib_string,
outputs = {"%U%/topgen"},
install = pm.install("%TOOLDIR%topgen")
}
topgen = simple {
class = "topgen",
outputs = {"%U%/gen.c"},
command = {
"mkdir -p %out[1]:dirname%",
"cd %out[1]:dirname% && %TOOLDIR%topgen %in[1]%"
},
}
-- Revision history
-- $Log$
-- Revision 1.1 2006-07-22 12:31:19 dtrg
-- Added support for the top target peephole optimiser.
--
-- Revision 1.1 2006/07/20 23:24:28 dtrg
-- First version in CVS.