diff options
author | bjs <bjs@pkgsrc.org> | 2008-11-28 01:14:45 +0000 |
---|---|---|
committer | bjs <bjs@pkgsrc.org> | 2008-11-28 01:14:45 +0000 |
commit | 012cf8ceaea544ea8befa997c5b1be662e510300 (patch) | |
tree | bae68177b167834085a8212d32f0dd00b3e90109 /devel | |
parent | 3b7123d1d6ec81e5dacbaf2aa74f1f11a1fa3bf4 (diff) | |
download | pkgsrc-012cf8ceaea544ea8befa997c5b1be662e510300.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')
-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 + |