From 1a037b968516f1ae38cb0e2c271a3cc9dd6a2499 Mon Sep 17 00:00:00 2001 From: dtrg Date: Sat, 22 Jul 2006 00:52:01 +0000 Subject: [PATCH] Added support for the ego global optimisation suite. --- mach/i386/pmfile | 10 +- mach/i86/pmfile | 6 +- mach/m68020/pmfile | 10 +- mach/m68k2/pmfile | 10 +- mach/m68k4/pmfile | 10 +- mach/pdp/pmfile | 10 +- mach/vax4/pmfile | 10 +- pmfile | 10 +- util/ego/pmfile | 240 +++++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 300 insertions(+), 16 deletions(-) create mode 100644 util/ego/pmfile diff --git a/mach/i386/pmfile b/mach/i386/pmfile index a31ad2985..365a419e2 100644 --- a/mach/i386/pmfile +++ b/mach/i386/pmfile @@ -10,13 +10,17 @@ mach_i386 = group { proto_as, proto_ncg { ARCHDIR = "i386" }, - tool_i386_cv, + ego_descr, + tool_i386_cv, - install = pm.install("%ROOTDIR%lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr") + install = pm.install("%ROOTDIR%lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr"), } -- Revision history -- $Log$ --- Revision 1.1 2006-07-20 23:18:18 dtrg +-- Revision 1.2 2006-07-22 00:52:01 dtrg +-- Added support for the ego global optimisation suite. +-- +-- Revision 1.1 2006/07/20 23:18:18 dtrg -- First version in CVS. -- diff --git a/mach/i86/pmfile b/mach/i86/pmfile index f3f769ce9..c089fd934 100644 --- a/mach/i86/pmfile +++ b/mach/i86/pmfile @@ -8,12 +8,16 @@ mach_i86 = group { proto_as, proto_ncg { ARCHDIR = "i86" }, + ego_descr, install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr") } -- Revision history -- $Log$ --- Revision 1.1 2006-07-20 23:18:18 dtrg +-- Revision 1.2 2006-07-22 00:52:01 dtrg +-- Added support for the ego global optimisation suite. +-- +-- Revision 1.1 2006/07/20 23:18:18 dtrg -- First version in CVS. -- diff --git a/mach/m68020/pmfile b/mach/m68020/pmfile index e4f20213d..d4c7d099c 100644 --- a/mach/m68020/pmfile +++ b/mach/m68020/pmfile @@ -8,12 +8,18 @@ mach_m68020 = group { proto_as, proto_ncg { ARCHDIR = "m68020" }, + ego_descr, - install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr") + install = { + pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr"), + } } -- Revision history -- $Log$ --- Revision 1.1 2006-07-20 23:18:18 dtrg +-- Revision 1.2 2006-07-22 00:52:01 dtrg +-- Added support for the ego global optimisation suite. +-- +-- Revision 1.1 2006/07/20 23:18:18 dtrg -- First version in CVS. -- diff --git a/mach/m68k2/pmfile b/mach/m68k2/pmfile index eb2a88ebe..9d3183571 100644 --- a/mach/m68k2/pmfile +++ b/mach/m68k2/pmfile @@ -8,13 +8,19 @@ mach_m68k2 = group { proto_as, proto_ncg { ARCHDIR = "m68020" }, + ego_descr, - install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr") + install = { + pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr"), + } } -- Revision history -- $Log$ --- Revision 1.1 2006-07-20 23:18:18 dtrg +-- Revision 1.2 2006-07-22 00:52:01 dtrg +-- Added support for the ego global optimisation suite. +-- +-- Revision 1.1 2006/07/20 23:18:18 dtrg -- First version in CVS. -- diff --git a/mach/m68k4/pmfile b/mach/m68k4/pmfile index faf78e266..161b6ba2c 100644 --- a/mach/m68k4/pmfile +++ b/mach/m68k4/pmfile @@ -7,13 +7,19 @@ mach_m68k4 = group { ARCH = "m68k4", proto_ncg { ARCHDIR = "m68020" }, + ego_descr, - install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr") + install = { + pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr"), + } } -- Revision history -- $Log$ --- Revision 1.1 2006-07-20 23:18:18 dtrg +-- Revision 1.2 2006-07-22 00:52:01 dtrg +-- Added support for the ego global optimisation suite. +-- +-- Revision 1.1 2006/07/20 23:18:18 dtrg -- First version in CVS. -- diff --git a/mach/pdp/pmfile b/mach/pdp/pmfile index 741085903..55adba72e 100644 --- a/mach/pdp/pmfile +++ b/mach/pdp/pmfile @@ -9,12 +9,18 @@ mach_pdp = group { proto_as, proto_cg, proto_ncg { ARCHDIR = "pdp" }, + ego_descr, - install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr") + install = { + pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr"), + } } -- Revision history -- $Log$ --- Revision 1.1 2006-07-20 23:18:19 dtrg +-- Revision 1.2 2006-07-22 00:52:01 dtrg +-- Added support for the ego global optimisation suite. +-- +-- Revision 1.1 2006/07/20 23:18:19 dtrg -- First version in CVS. -- diff --git a/mach/vax4/pmfile b/mach/vax4/pmfile index 78227c75a..24ff9824c 100644 --- a/mach/vax4/pmfile +++ b/mach/vax4/pmfile @@ -8,12 +8,18 @@ mach_vax4 = group { proto_as, proto_cg, + ego_descr, - install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr") + install = { + pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr"), + } } -- Revision history -- $Log$ --- Revision 1.1 2006-07-20 23:18:18 dtrg +-- Revision 1.2 2006-07-22 00:52:01 dtrg +-- Added support for the ego global optimisation suite. +-- +-- Revision 1.1 2006/07/20 23:18:18 dtrg -- First version in CVS. -- diff --git a/pmfile b/pmfile index d5df00de9..88c7bdce1 100644 --- a/pmfile +++ b/pmfile @@ -4,6 +4,7 @@ include "first/c.pm" include "first/yacc.pm" include "first/llgen.pm" +include "first/ack-custom.pm" include "config.pm" CINCLUDES = { @@ -41,6 +42,7 @@ include "util/ncgg/pmfile" include "util/ceg/pmfile" include "util/misc/pmfile" include "util/opt/pmfile" +include "util/ego/pmfile" include "lang/cem/cemcom/pmfile" include "lang/cem/cemcom.ansi/pmfile" @@ -92,10 +94,11 @@ default = group { tool_cpp, tool_cgg, tool_ncgg, - tool_ceg, +-- tool_ceg, tool_em_decode, tool_em_encode, tool_opt, + tool_ego, lang_cem_cemcom, lang_cem_cemcom_ansi, @@ -151,6 +154,9 @@ configure = simple { -- Revision history -- $Log$ --- Revision 1.2 2006-07-20 23:24:42 dtrg +-- Revision 1.3 2006-07-22 00:52:01 dtrg +-- Added support for the ego global optimisation suite. +-- +-- Revision 1.2 2006/07/20 23:24:42 dtrg -- Fixed revision history. -- diff --git a/util/ego/pmfile b/util/ego/pmfile new file mode 100644 index 000000000..74ee13bac --- /dev/null +++ b/util/ego/pmfile @@ -0,0 +1,240 @@ +-- $Source$ +-- $State$ + +local d = ROOTDIR.."util/ego/" + +local makecldef = cprogram { + cfile (d.."share/makecldef.c") +} + +local classdefs_h = simple { + outputs = {"%U%/classdefs.h"}, + command = { + "%in[1]% %in[2]% %in[3]% > %out[1]%" + }, + + makecldef, + file ("%HEADERDIR%em_mnem.h"), + file (d.."share/cldefs.src") +} + +local pop_push_h = simple { + outputs = {"%U%/pop_push.h"}, + command = { + "awk -f %in[1]% < %in[2]% > %out%" + }, + + file (d.."share/pop_push.awk"), + file (ROOTDIR.."etc/em_table") +} + +local cfile_with_headers = cfile { + class = "cfile_with_headers", + dynamicheaders = { + classdefs_h, + pop_push_h + } +} + +local ego_core = cprogram { + CINCLUDES = {PARENT, ("-I"..d.."share")}, + + cfile_with_headers (d.."share/debug.c"), + cfile_with_headers (d.."share/global.c"), + cfile_with_headers (d.."share/files.c"), + cfile_with_headers (d.."share/go.c"), + cfile_with_headers (d.."share/map.c"), + cfile_with_headers (d.."share/aux.c"), + cfile_with_headers (d.."share/get.c"), + cfile_with_headers (d.."share/put.c"), + cfile_with_headers (d.."share/alloc.c"), + cfile_with_headers (d.."share/lset.c"), + cfile_with_headers (d.."share/cset.c"), + cfile_with_headers (d.."share/parser.c"), + cfile_with_headers (d.."share/stack_chg.c"), + cfile_with_headers (d.."share/locals.c"), + cfile_with_headers (d.."share/init_glob.c"), +} + +tool_ego = group { + CDEFINES = {PARENT, "-DVERBOSE", "-DNOTCOMPACT"}, + + ego_core { + cfile_with_headers (d.."bo/bo.c"), + lib_em_data, + + install = pm.install("%BINDIR%%PLATDEP%/ego/bo") + }, + + ego_core { + cfile_with_headers (d.."ca/ca.c"), + cfile_with_headers (d.."ca/ca_put.c"), + lib_em_data, + + install = pm.install("%BINDIR%%PLATDEP%/ego/ca") + }, + + ego_core { + cfile_with_headers (d.."cf/cf.c"), + cfile_with_headers (d.."cf/cf_idom.c"), + cfile_with_headers (d.."cf/cf_loop.c"), + cfile_with_headers (d.."cf/cf_succ.c"), + lib_em_data, + + install = pm.install("%BINDIR%%PLATDEP%/ego/cf") + }, + + ego_core { + cfile_with_headers (d.."cj/cj.c"), + lib_em_data, + + install = pm.install("%BINDIR%%PLATDEP%/ego/cj") + }, + + ego_core { + cfile_with_headers (d.."cs/cs.c"), + cfile_with_headers (d.."cs/cs_alloc.c"), + cfile_with_headers (d.."cs/cs_aux.c"), + cfile_with_headers (d.."cs/cs_avail.c"), + cfile_with_headers (d.."cs/cs_debug.c"), + cfile_with_headers (d.."cs/cs_elim.c"), + cfile_with_headers (d.."cs/cs_entity.c"), + cfile_with_headers (d.."cs/cs_getent.c"), + cfile_with_headers (d.."cs/cs_kill.c"), + cfile_with_headers (d.."cs/cs_partit.c"), + cfile_with_headers (d.."cs/cs_profit.c"), + cfile_with_headers (d.."cs/cs_stack.c"), + cfile_with_headers (d.."cs/cs_vnm.c"), + lib_em_data, + + install = pm.install("%BINDIR%%PLATDEP%/ego/cs") + }, + + ego_core { + cfile_with_headers (d.."ic/ic.c"), + cfile_with_headers (d.."ic/ic_aux.c"), + cfile_with_headers (d.."ic/ic_io.c"), + cfile_with_headers (d.."ic/ic_lib.c"), + cfile_with_headers (d.."ic/ic_lookup.c"), + lib_em_data, + + install = pm.install("%BINDIR%%PLATDEP%/ego/ic") + }, + + ego_core { + cfile_with_headers (d.."il/il.c"), + cfile_with_headers (d.."il/il1_anal.c"), + cfile_with_headers (d.."il/il1_aux.c"), + cfile_with_headers (d.."il/il1_cal.c"), + cfile_with_headers (d.."il/il1_formal.c"), + cfile_with_headers (d.."il/il2_aux.c"), + cfile_with_headers (d.."il/il3_aux.c"), + cfile_with_headers (d.."il/il3_change.c"), + cfile_with_headers (d.."il/il3_subst.c"), + cfile_with_headers (d.."il/il_aux.c"), + lib_em_data, + + install = pm.install("%BINDIR%%PLATDEP%/ego/il") + }, + + ego_core { + cfile_with_headers (d.."lv/lv.c"), + lib_em_data, + + install = pm.install("%BINDIR%%PLATDEP%/ego/lv") + }, + + ego_core { + cfile_with_headers (d.."ra/ra.c"), + cfile_with_headers (d.."ra/ra_allocl.c"), + cfile_with_headers (d.."ra/ra_aux.c"), + cfile_with_headers (d.."ra/ra_interv.c"), + cfile_with_headers (d.."ra/ra_lifet.c"), + cfile_with_headers (d.."ra/ra_pack.c"), + cfile_with_headers (d.."ra/ra_profits.c"), + cfile_with_headers (d.."ra/ra_xform.c"), + cfile { + file (d.."ra/ra_items.c"), + dynamicheaders = { + simple { + outputs = {"%U%/itemtab.h"}, + command = { + "%in[1]% %in[2]% %in[3]% > %out[1]%" + }, + + cprogram { + cfile (d.."ra/makeitems.c"), + }, + file (HEADERDIR.."em_mnem.h"), + file (d.."ra/itemtab.src") + } + } + }, + + lib_em_data, + + install = pm.install("%BINDIR%%PLATDEP%/ego/ra") + }, + + ego_core { + cfile_with_headers (d.."sp/sp.c"), + lib_em_data, + + install = pm.install("%BINDIR%%PLATDEP%/ego/sp") + }, + + ego_core { + cfile_with_headers (d.."sr/sr.c"), + cfile_with_headers (d.."sr/sr_aux.c"), + cfile_with_headers (d.."sr/sr_cand.c"), + cfile_with_headers (d.."sr/sr_expr.c"), + cfile_with_headers (d.."sr/sr_iv.c"), + cfile_with_headers (d.."sr/sr_reduce.c"), + cfile_with_headers (d.."sr/sr_xform.c"), + lib_em_data, + + install = pm.install("%BINDIR%%PLATDEP%/ego/sr") + }, + + ego_core { + cfile_with_headers (d.."ud/ud.c"), + cfile_with_headers (d.."ud/ud_aux.c"), + cfile_with_headers (d.."ud/ud_const.c"), + cfile_with_headers (d.."ud/ud_copy.c"), + cfile_with_headers (d.."ud/ud_defs.c"), + lib_em_data, + + install = pm.install("%BINDIR%%PLATDEP%/ego/ud") + }, + + cprogram { + cfile (d.."em_ego/em_ego.c"), + + lib_print, + lib_string, + lib_system, + + install = pm.install("%BINDIR%%PLATDEP%/em_ego") + } +} + +-- This rule is used by the machine description pmfiles to massage and install +-- the ego descr files. + +ego_descr = simple { + outputs = {"%U%-%I%"}, + command = { + "%BINDIR%bin/cpp -P -I%HEADERDIR% %in[1]% | sed -f %in[2]% > %out[1]%" + }, + + file (d.."descr/%ARCH%.descr"), + file (d.."descr/descr.sed"), + + install = pm.install("%BINDIR%%PLATDEP%/ego/%ARCH%descr") +} + +-- Revision history +-- $Log$ +-- Revision 1.1 2006-07-22 00:52:01 dtrg +-- Added support for the ego global optimisation suite. +--