From 649ce9dd7fc1945bf6588a5b8ae32c45b70114bb Mon Sep 17 00:00:00 2001 From: theraven Date: Fri, 22 Apr 2011 11:38:16 +0000 Subject: [PATCH] Updated release announcement. Made the LLVM optimisations build by default (if LLVM is installed). --- ANNOUNCE | 9 +++++++++ GNUmakefile | 9 +++++++++ build_opts.sh | 18 ++++++++++++++++++ 3 files changed, 36 insertions(+) create mode 100644 build_opts.sh diff --git a/ANNOUNCE b/ANNOUNCE index 1fb14c2..13a8b3e 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -26,6 +26,15 @@ release include: profile trades some CPU time for memory usage, so don't use it for CPU-bound tasks. +- The class lookup cache optimisation (LLVM) now caches lookups irrespective of + the ABI. It will insert direct references to the class structures if + possible (i.e. if the symbol is visible). If not, then it will cache the + result of objc_class_lookup(). The cache is shared across the module (the + library, if run as a link-time optimisation), so the lookup only needs to be + run once. This eliminates the need for explicit class lookup caching in the + source code (when using LLVM-based compilers, such as Clang, LanguageKit, or + DragonEgg). + You may obtain the code for this release from subversion at the following subversion branch: diff --git a/GNUmakefile b/GNUmakefile index 6cd525c..77680b5 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -118,3 +118,12 @@ endif include $(GNUSTEP_MAKEFILES)/aggregate.make include $(GNUSTEP_MAKEFILES)/library.make + +all:: + sh build_opts.sh $(MAKE) all + +install:: + sh build_opts.sh $(MAKE) install + +clean:: + sh build_opts.sh $(MAKE) clean diff --git a/build_opts.sh b/build_opts.sh new file mode 100644 index 0000000..274285e --- /dev/null +++ b/build_opts.sh @@ -0,0 +1,18 @@ +#!/bin/sh +LLVM_PATH=`llvm-config --src-root` +LIBOBJC_PATH=`pwd` +if [ x$LLVM_PATH != x ] ; then + cd $LLVM_PATH + cd lib/Transforms + if [ ! -d GNURuntime ] ; then + mkdir GNURuntime + fi + cd GNURuntime + for I in `ls $LIBOBJC_PATH/opts/` ; do + if [ ! $I -nt $LIBOBJC_PATH/opts/$I ] ; then + cp $LIBOBJC_PATH/opts/$I . + fi + done + $1 $2 + cd .. +fi