summaryrefslogtreecommitdiff
path: root/devel/libfirm
diff options
context:
space:
mode:
authorbjs <bjs>2008-11-28 01:14:45 +0000
committerbjs <bjs>2008-11-28 01:14:45 +0000
commitfd8428023ffdd59224d569d0b1b095631f2d44b0 (patch)
treebae68177b167834085a8212d32f0dd00b3e90109 /devel/libfirm
parent8e164590cad5061fcd7618bdb93036a3ea4c2f5c (diff)
downloadpkgsrc-fd8428023ffdd59224d569d0b1b095631f2d44b0.tar.gz
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)
Diffstat (limited to 'devel/libfirm')
-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
+