From b183b62555617e10005bf522555f3749dedbe1f7 Mon Sep 17 00:00:00 2001 From: bjs Date: Fri, 28 Nov 2008 01:14:45 +0000 Subject: Import libfirm-1.13.0, used by lang/cparser. libFIRM provides a graph-based intermediate representation (IR), which operates exclusively in SSA-form, starting at IR construction until assembler code emission. It offers many analyses and optimizations, provides extensive debug support and includes a backend framework. * analyses: dominance, loop tree, execution frequency, control dependencies, call graph, rapid type, def-use, alias analysis, class hierarchy analysis * optimizations: dead code elimination (happens implicitly), constant folding, local common subexpression elimination, arithmetic identities (happens on the fly), unreachable code elimination, global common subexpression elimination, code placement, strength reduction, scalar replacement, if-conversion, load/store optimization, control flow optimizations, reassociation, partial condition evaluation, tail recursion elimination, inlining, procedure cloning * enhanced debugging support: extensive checkers, breakpoints on node creation, entity creation, graph dumping * lowering of intrinsics, double word arithmetics, bitfields * generic backend features: * novel SSA based register allocator * several SSA copy coalescing and spilling algorithms * algorithms for instruction and basic block scheduling * working ia32 backend, unfinished backends for MIPS, ARM, PPC32 * handwritten recursive descent C89/C99 frontend available (lang/cparser) --- devel/libfirm/DESCR | 24 ++++++++++ devel/libfirm/Makefile | 31 +++++++++++++ devel/libfirm/PLIST | 101 +++++++++++++++++++++++++++++++++++++++++ devel/libfirm/buildlink3.mk | 19 ++++++++ devel/libfirm/distinfo | 9 ++++ devel/libfirm/patches/patch-aa | 21 +++++++++ devel/libfirm/patches/patch-ab | 19 ++++++++ devel/libfirm/patches/patch-ac | 19 ++++++++ devel/libfirm/patches/patch-ad | 19 ++++++++ 9 files changed, 262 insertions(+) create mode 100644 devel/libfirm/DESCR create mode 100644 devel/libfirm/Makefile create mode 100644 devel/libfirm/PLIST create mode 100644 devel/libfirm/buildlink3.mk create mode 100644 devel/libfirm/distinfo create mode 100644 devel/libfirm/patches/patch-aa create mode 100644 devel/libfirm/patches/patch-ab create mode 100644 devel/libfirm/patches/patch-ac create mode 100644 devel/libfirm/patches/patch-ad (limited to 'devel') diff --git a/devel/libfirm/DESCR b/devel/libfirm/DESCR new file mode 100644 index 00000000000..63dc2d2414c --- /dev/null +++ b/devel/libfirm/DESCR @@ -0,0 +1,24 @@ +libFIRM provides a graph-based intermediate representation (IR), which +operates exclusively in SSA-form, starting at IR construction until +assembler code emission. It offers many analyses and optimizations, +provides extensive debug support and includes a backend framework. + +* analyses: dominance, loop tree, execution frequency, control + dependencies, call graph, rapid type, def-use, alias analysis, + class hierarchy analysis +* optimizations: dead code elimination (happens implicitly), constant + folding, local common subexpression elimination, arithmetic identities + (happens on the fly), unreachable code elimination, global common + subexpression elimination, code placement, strength reduction, + scalar replacement, if-conversion, load/store optimization, control + flow optimizations, reassociation, partial condition evaluation, + tail recursion elimination, inlining, procedure cloning +* enhanced debugging support: extensive checkers, breakpoints on node + creation, entity creation, graph dumping +* lowering of intrinsics, double word arithmetics, bitfields +* generic backend features: + * novel SSA based register allocator + * several SSA copy coalescing and spilling algorithms + * algorithms for instruction and basic block scheduling +* working ia32 backend, unfinished backends for MIPS, ARM, PPC32 +* handwritten recursive descent C89/C99 frontend available (lang/cparser) diff --git a/devel/libfirm/Makefile b/devel/libfirm/Makefile new file mode 100644 index 00000000000..97f535d2677 --- /dev/null +++ b/devel/libfirm/Makefile @@ -0,0 +1,31 @@ +# $NetBSD: Makefile,v 1.1.1.1 2008/11/28 01:14:45 bjs Exp $ +# + +DISTNAME= libfirm-1.13.0 +CATEGORIES= devel +MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=libfirm/} +EXTRACT_SUFX= .tar.bz2 + +MAINTAINER= pkgsrc-users@NetBSD.org +HOMEPAGE= http://libfirm.sourceforge.net/ +COMMENT= Provides a graph-based SSA representation of programs + +PKG_DESTDIR_SUPPORT= user-destdir + +GNU_CONFIGURE= yes +USE_LIBTOOL= yes +USE_TOOLS+= autoconf automake autoreconf pkg-config + +PKGCONFIG_OVERRIDE+= libfirm.pc.in + +.if exists(/usr/include/wchar.h) +CONFIGURE_ARGS+= --enable-wchar-support +.endif + +pre-configure: + cd ${WRKSRC} && autoreconf -v -i -f +# +# NOTE: jvm support requires dlopen/dlsym +#.include "../../mk/dlopen.buildlink3.mk" +# +.include "../../mk/bsd.pkg.mk" diff --git a/devel/libfirm/PLIST b/devel/libfirm/PLIST new file mode 100644 index 00000000000..ec60eeeb6a0 --- /dev/null +++ b/devel/libfirm/PLIST @@ -0,0 +1,101 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 2008/11/28 01:14:45 bjs Exp $ +include/libfirm/absgraph.h +include/libfirm/adt/align.h +include/libfirm/adt/array.h +include/libfirm/adt/bipartite.h +include/libfirm/adt/bitfiddle.h +include/libfirm/adt/bitset.h +include/libfirm/adt/bitset_ia32.h +include/libfirm/adt/bitset_std.h +include/libfirm/adt/compiler.h +include/libfirm/adt/cpset.h +include/libfirm/adt/eset.h +include/libfirm/adt/fourcc.h +include/libfirm/adt/gaussjordan.h +include/libfirm/adt/gaussseidel.h +include/libfirm/adt/hashptr.h +include/libfirm/adt/hashset.h +include/libfirm/adt/hungarian.h +include/libfirm/adt/impl.h +include/libfirm/adt/iterator.h +include/libfirm/adt/list.h +include/libfirm/adt/obst.h +include/libfirm/adt/obstack.h +include/libfirm/adt/offset.h +include/libfirm/adt/pdeq.h +include/libfirm/adt/plist.h +include/libfirm/adt/pmap.h +include/libfirm/adt/pqueue.h +include/libfirm/adt/pset.h +include/libfirm/adt/pset_new.h +include/libfirm/adt/raw_bitset.h +include/libfirm/adt/set.h +include/libfirm/adt/unionfind.h +include/libfirm/adt/util.h +include/libfirm/adt/xmalloc.h +include/libfirm/analyze_irg_args.h +include/libfirm/archop.h +include/libfirm/be.h +include/libfirm/callgraph.h +include/libfirm/cdep.h +include/libfirm/cgana.h +include/libfirm/dbginfo.h +include/libfirm/dfs.h +include/libfirm/execfreq.h +include/libfirm/execution_frequency.h +include/libfirm/field_temperature.h +include/libfirm/firm.h +include/libfirm/firm_common.h +include/libfirm/firm_config.h +include/libfirm/firm_types.h +include/libfirm/firm_ycomp.h +include/libfirm/firmstat.h +include/libfirm/height.h +include/libfirm/ident.h +include/libfirm/interval_analysis.h +include/libfirm/irarch.h +include/libfirm/ircgcons.h +include/libfirm/ircgopt.h +include/libfirm/ircons.h +include/libfirm/irconsconfirm.h +include/libfirm/irdom.h +include/libfirm/irdump.h +include/libfirm/iredgekinds.h +include/libfirm/iredges.h +include/libfirm/irextbb.h +include/libfirm/irflag.h +include/libfirm/irgmod.h +include/libfirm/irgopt.h +include/libfirm/irgraph.h +include/libfirm/irgwalk.h +include/libfirm/irhooks.h +include/libfirm/irlivechk.h +include/libfirm/irloop.h +include/libfirm/irmemory.h +include/libfirm/irmode.h +include/libfirm/irnode.h +include/libfirm/irop.h +include/libfirm/iropt.h +include/libfirm/iropt_dbg.h +include/libfirm/iroptimize.h +include/libfirm/irouts.h +include/libfirm/irprintf.h +include/libfirm/irprog.h +include/libfirm/irsimpletype.h +include/libfirm/irtypeinfo.h +include/libfirm/irvrfy.h +include/libfirm/lowering.h +include/libfirm/old_fctnames.h +include/libfirm/phiclass.h +include/libfirm/pseudo_irg.h +include/libfirm/rta.h +include/libfirm/seqnumbers.h +include/libfirm/structure.h +include/libfirm/timing.h +include/libfirm/trouts.h +include/libfirm/tv.h +include/libfirm/typerep.h +lib/libfirm.la +lib/pkgconfig/libfirm.pc +@dirrm include/libfirm/adt +@dirrm include/libfirm diff --git a/devel/libfirm/buildlink3.mk b/devel/libfirm/buildlink3.mk new file mode 100644 index 00000000000..64f22205ceb --- /dev/null +++ b/devel/libfirm/buildlink3.mk @@ -0,0 +1,19 @@ +# $NetBSD: buildlink3.mk,v 1.1.1.1 2008/11/28 01:14:45 bjs Exp $ + +BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH}+ +LIBFIRM_BUILDLINK3_MK:= ${LIBFIRM_BUILDLINK3_MK}+ + +.if ${BUILDLINK_DEPTH} == "+" +BUILDLINK_DEPENDS+= libfirm +.endif + +BUILDLINK_PACKAGES:= ${BUILDLINK_PACKAGES:Nlibfirm} +BUILDLINK_PACKAGES+= libfirm +BUILDLINK_ORDER:= ${BUILDLINK_ORDER} ${BUILDLINK_DEPTH}libfirm + +.if ${LIBFIRM_BUILDLINK3_MK} == "+" +BUILDLINK_API_DEPENDS.libfirm+= libfirm>=1.13.0 +BUILDLINK_PKGSRCDIR.libfirm?= ../../devel/libfirm +.endif # LIBFIRM_BUILDLINK3_MK + +BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH:S/+$//} diff --git a/devel/libfirm/distinfo b/devel/libfirm/distinfo new file mode 100644 index 00000000000..24316103cdc --- /dev/null +++ b/devel/libfirm/distinfo @@ -0,0 +1,9 @@ +$NetBSD: distinfo,v 1.1.1.1 2008/11/28 01:14:45 bjs Exp $ + +SHA1 (libfirm-1.13.0.tar.bz2) = 4e0fc008f20fe7d92328db9991d0f12d2ec4aa76 +RMD160 (libfirm-1.13.0.tar.bz2) = 0c3ce0285482b7fe0196d7e2a2bc3f3e8fa7351a +Size (libfirm-1.13.0.tar.bz2) = 1548777 bytes +SHA1 (patch-aa) = a19f5a65cf9ad07a1fdc2e9946d1c0ef63f7e0a5 +SHA1 (patch-ab) = 524535d4ac025bff2d8f37f9494ee5da307613fc +SHA1 (patch-ac) = 6c64452d96654adb1bed5ed8f31e5b72e782a063 +SHA1 (patch-ad) = 60672bed0323094b7f857d94bab19d83ac99f6ae diff --git a/devel/libfirm/patches/patch-aa b/devel/libfirm/patches/patch-aa new file mode 100644 index 00000000000..b5f8ad23bee --- /dev/null +++ b/devel/libfirm/patches/patch-aa @@ -0,0 +1,21 @@ +$NetBSD: patch-aa,v 1.1.1.1 2008/11/28 01:14:45 bjs Exp $ + +--- configure.ac.orig 2008-07-24 03:24:54.000000000 -0400 ++++ configure.ac +@@ -181,6 +181,7 @@ dnl ======================== + + AC_HEADER_STDC + AC_CHECK_HEADERS([math.h], , AC_MSG_ERROR("math header file not found")) ++AC_CHECK_HEADERS([alloca.h stdlib.h]) + + dnl Checks for libraries. + dnl ===================== +@@ -228,7 +229,7 @@ AC_CONFIG_FILES([ + ]) + + BACKENDS="" +-if test "$enable_backend" == yes; then ++if test "$enable_backend" = yes; then + BACKENDS="arm ia32 mips ppc32" + fi + AC_SUBST([BACKENDS]) diff --git a/devel/libfirm/patches/patch-ab b/devel/libfirm/patches/patch-ab new file mode 100644 index 00000000000..18f53a7f2a5 --- /dev/null +++ b/devel/libfirm/patches/patch-ab @@ -0,0 +1,19 @@ +$NetBSD: patch-ab,v 1.1.1.1 2008/11/28 01:14:45 bjs Exp $ + +--- include/libfirm/adt/xmalloc.h.orig 2008-02-18 09:19:20.000000000 -0500 ++++ include/libfirm/adt/xmalloc.h +@@ -41,12 +41,9 @@ char *xstrdup(const char *str); + #define xfree(ptr) free(ptr) + + +-/* Includes for alloca() */ +-#if defined(__FreeBSD__) +-#include +-#elif defined(_WIN32) ++#if defined(_WIN32) + #include +-#else ++#elif defined(HAVE_ALLOCA_H) + #include + #endif + diff --git a/devel/libfirm/patches/patch-ac b/devel/libfirm/patches/patch-ac new file mode 100644 index 00000000000..ec7b0f5797f --- /dev/null +++ b/devel/libfirm/patches/patch-ac @@ -0,0 +1,19 @@ +$NetBSD: patch-ac,v 1.1.1.1 2008/11/28 01:14:45 bjs Exp $ + +--- ir/libcore/lc_opts.c.orig 2008-05-14 03:12:54.000000000 -0400 ++++ ir/libcore/lc_opts.c +@@ -22,11 +22,12 @@ + #include + #include + +-#if defined(__FreeBSD__) ++#if defined(HAVE_STDLIB_H) + #include + #elif defined(_WIN32) + #include +-#else ++#endif ++#if defined(HAVE_ALLOCA_H) + #include + #endif + diff --git a/devel/libfirm/patches/patch-ad b/devel/libfirm/patches/patch-ad new file mode 100644 index 00000000000..b7febc2e1da --- /dev/null +++ b/devel/libfirm/patches/patch-ad @@ -0,0 +1,19 @@ +$NetBSD: patch-ad,v 1.1.1.1 2008/11/28 01:14:45 bjs Exp $ + +--- ir/libcore/lc_opts_enum.c.orig 2008-02-13 10:28:59.000000000 -0500 ++++ ir/libcore/lc_opts_enum.c +@@ -14,11 +14,12 @@ + #include + #include + +-#if defined(__FreeBSD__) ++#if defined(HAVE_STDLIB_H) + #include + #elif defined(_WIN32) + #include +-#else ++#endif ++#if defined(HAVE_ALLOCA_H) + #include + #endif + -- cgit v1.2.3