summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--devel/libfirm/DESCR24
-rw-r--r--devel/libfirm/Makefile31
-rw-r--r--devel/libfirm/PLIST101
-rw-r--r--devel/libfirm/buildlink3.mk19
-rw-r--r--devel/libfirm/distinfo9
-rw-r--r--devel/libfirm/patches/patch-aa21
-rw-r--r--devel/libfirm/patches/patch-ab19
-rw-r--r--devel/libfirm/patches/patch-ac19
-rw-r--r--devel/libfirm/patches/patch-ad19
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
+