diff options
-rw-r--r-- | devel/libfirm/DESCR | 24 | ||||
-rw-r--r-- | devel/libfirm/Makefile | 31 | ||||
-rw-r--r-- | devel/libfirm/PLIST | 101 | ||||
-rw-r--r-- | devel/libfirm/buildlink3.mk | 19 | ||||
-rw-r--r-- | devel/libfirm/distinfo | 9 | ||||
-rw-r--r-- | devel/libfirm/patches/patch-aa | 21 | ||||
-rw-r--r-- | devel/libfirm/patches/patch-ab | 19 | ||||
-rw-r--r-- | devel/libfirm/patches/patch-ac | 19 | ||||
-rw-r--r-- | devel/libfirm/patches/patch-ad | 19 |
9 files changed, 262 insertions, 0 deletions
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 <stdlib.h> +-#elif defined(_WIN32) ++#if defined(_WIN32) + #include <malloc.h> +-#else ++#elif defined(HAVE_ALLOCA_H) + #include <alloca.h> + #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 <string.h> + #include <ctype.h> + +-#if defined(__FreeBSD__) ++#if defined(HAVE_STDLIB_H) + #include <stdlib.h> + #elif defined(_WIN32) + #include <malloc.h> +-#else ++#endif ++#if defined(HAVE_ALLOCA_H) + #include <alloca.h> + #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 <stdio.h> + #include <string.h> + +-#if defined(__FreeBSD__) ++#if defined(HAVE_STDLIB_H) + #include <stdlib.h> + #elif defined(_WIN32) + #include <malloc.h> +-#else ++#endif ++#if defined(HAVE_ALLOCA_H) + #include <alloca.h> + #endif + |