Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
* Replaced the GC with version 7.0. This saves a couple of seconds. P…
…lease remove

$EHC_HOME/build/bgc-non-threaded/ before building a new version of EHC
* Fixed a LLVM optimizer bug (Rerun configure)
  • Loading branch information
JohnVanSchie authored and JohnVanSchie committed Mar 28, 2008
1 parent 133d678 commit 30d9831
Show file tree
Hide file tree
Showing 9 changed files with 14 additions and 95 deletions.
12 changes: 3 additions & 9 deletions EHC/bin/llvm-compilerdriver.in
Expand Up @@ -13,11 +13,7 @@ LLVM_AS="@LLVM_AS_CMD@"

# Program to optimize .bc files
#
LLVM_OPT="@LLVM_OPT_CMD@ -std-compile-opts"

# Program to link time optimize .bc files
#
LLVM_LD="@LLVM_LD_CMD@ -O5"
LLVM_OPT="@LLVM_OPT_CMD@ -std-compile-opts -dce -globalsmodref-aa -internalize -ipsccp"

# Binary to compile .bc files to .s files
#
Expand Down Expand Up @@ -52,10 +48,8 @@ TMP_FILE1=`mktemp -t $TMP_TEMPLATE` && \
TMP_FILE2=`mktemp -t $TMP_TEMPLATE` && \
$LLVM_AS -f -o $TMP_FILE1 $INPUT_LL && \
$LLVM_OPT -f -o $TMP_FILE2 $TMP_FILE1 && \
$LLVM_LD -o $TMP_FILE1 $TMP_FILE2 && \
mv $TMP_FILE1.bc $TMP_FILE1 && \
$LLVM_OPT -f -o $TMP_FILE2 $TMP_FILE1 && \
$LLC -f -o $OUTPUT.s $TMP_FILE2 && \
cp $TMP_FILE2 $OUTPUT.bc
$LLC -f -o $OUTPUT.s $OUTPUT.bc && \
$NATIVE_LD -o $OUTPUT $OUTPUT.s $LIBS && \
rm $TMP_FILE1 && \
rm $TMP_FILE2
70 changes: 3 additions & 67 deletions EHC/configure
Expand Up @@ -703,8 +703,6 @@ llvmAs
LLVM_AS_CMD
llvmOpt
LLVM_OPT_CMD
llvmLd
LLVM_LD_CMD
llvmLlc
LLVM_LLC_CMD
CPP
Expand Down Expand Up @@ -1360,8 +1358,6 @@ Optional Packages:
Path to the LLVM Assembler
--with-llvm-opt=<LLVM bitcode optimizer>
Path to the LLVM bitcode optimizer
--with-llvm-ld=<LLVM Linker>
Path to the LLVM Linker
--with-llc=<LLVM Compiler>
Path to the LLVM Compiler
Expand Down Expand Up @@ -3608,64 +3604,6 @@ fi
LLVM_OPT_CMD=$llvmOpt
# LLVM Linker
# Check whether --with-llvm-ld was given.
if test "${with_llvm_ld+set}" = set; then
withval=$with_llvm_ld; llvmLd="$withval"
else
if test "$LLVM_LD" = ""; then
# Extract the first word of "llvm-ld", so it can be a program name with args.
set dummy llvm-ld; ac_word=$2
{ echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
if test "${ac_cv_path_llvmLd+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
case $llvmLd in
[\\/]* | ?:[\\/]*)
ac_cv_path_llvmLd="$llvmLd" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_llvmLd="$as_dir/$ac_word$ac_exec_ext"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
llvmLd=$ac_cv_path_llvmLd
if test -n "$llvmLd"; then
{ echo "$as_me:$LINENO: result: $llvmLd" >&5
echo "${ECHO_T}$llvmLd" >&6; }
else
{ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6; }
fi
else
llvmLd=$LLVM_LD
fi
fi
LLVM_LD_CMD=$llvmLd
# LLVM Compiler
# Check whether --with-llc was given.
Expand Down Expand Up @@ -7149,15 +7087,15 @@ llvmAs!$llvmAs$ac_delim
LLVM_AS_CMD!$LLVM_AS_CMD$ac_delim
llvmOpt!$llvmOpt$ac_delim
LLVM_OPT_CMD!$LLVM_OPT_CMD$ac_delim
llvmLd!$llvmLd$ac_delim
LLVM_LD_CMD!$LLVM_LD_CMD$ac_delim
llvmLlc!$llvmLlc$ac_delim
LLVM_LLC_CMD!$LLVM_LLC_CMD$ac_delim
CPP!$CPP$ac_delim
GREP!$GREP$ac_delim
EGREP!$EGREP$ac_delim
MACH_DEP_C_FOR_TAILCALL_ENTER!$MACH_DEP_C_FOR_TAILCALL_ENTER$ac_delim
MACH_DEP_C_FOR_TAILCALL_LEAVE1!$MACH_DEP_C_FOR_TAILCALL_LEAVE1$ac_delim
MACH_DEP_C_FOR_TAILCALL_LEAVE2!$MACH_DEP_C_FOR_TAILCALL_LEAVE2$ac_delim
GCC_EHC_EXTRA_EXTERN_LIBS!$GCC_EHC_EXTRA_EXTERN_LIBS$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
Expand Down Expand Up @@ -7199,8 +7137,6 @@ _ACEOF
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF
MACH_DEP_C_FOR_TAILCALL_LEAVE2!$MACH_DEP_C_FOR_TAILCALL_LEAVE2$ac_delim
GCC_EHC_EXTRA_EXTERN_LIBS!$GCC_EHC_EXTRA_EXTERN_LIBS$ac_delim
SUFFIX_SHELL!$SUFFIX_SHELL$ac_delim
SUFFIX_EXEC!$SUFFIX_EXEC$ac_delim
SUFFIX_LIB!$SUFFIX_LIB$ac_delim
Expand All @@ -7226,7 +7162,7 @@ LIBOBJS!$LIBOBJS$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 25; then
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 23; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
Expand Down
15 changes: 0 additions & 15 deletions EHC/configure.ac
Expand Up @@ -316,21 +316,6 @@ AC_ARG_WITH(opt,
)
AC_SUBST(LLVM_OPT_CMD,$llvmOpt)

# LLVM Linker
AC_ARG_WITH(llvm-ld,
[AC_HELP_STRING([--with-llvm-ld=<LLVM Linker>],
[Path to the LLVM Linker])],
[ llvmLd="$withval" ],
[
if test "$LLVM_LD" = ""; then
AC_PATH_PROG(llvmLd,llvm-ld)
else
llvmLd=$LLVM_LD
fi
]
)
AC_SUBST(LLVM_LD_CMD,$llvmLd)

# LLVM Compiler
AC_ARG_WITH(llc,
[AC_HELP_STRING([--with-llc=<LLVM Compiler>],
Expand Down
2 changes: 1 addition & 1 deletion EHC/extlibs/bgc/files.mk
Expand Up @@ -6,7 +6,7 @@ SRCABS_EXTLIBS_BGC_PREFIX := $(TOPABS2_PREFIX)extlibs/bgc/
EXTLIBS_BGC_MKF := $(SRC_EXTLIBS_BGC_PREFIX)files.mk

# srcs
EXTLIBS_BGC_NAME := gc6.8
EXTLIBS_BGC_NAME := gc-7.0
EXTLIBS_BGC_ARCHIVE := $(SRCABS_EXTLIBS_BGC_PREFIX)$(EXTLIBS_BGC_NAME).tar.gz

# lib/cabal config
Expand Down
Binary file added EHC/extlibs/bgc/gc-7.0.tar.gz
Binary file not shown.
Binary file removed EHC/extlibs/bgc/gc6.8.tar.gz
Binary file not shown.
4 changes: 2 additions & 2 deletions EHC/src/rts/llvm-gc.cc
Expand Up @@ -2,7 +2,7 @@
#include <inttypes.h>
#include <stdio.h>
#include <locale.h>
//#include <unistd.h>
#include <unistd.h>

#include "config.h"
#include "gc.h"
Expand All @@ -15,7 +15,7 @@ void llvmgc_init()
// The environment pointer passed to main is at the bottom of the stack, so
// we use this as 'cold' stack bottom.
//
//GC_stackbottom = (char*) __environ;
GC_stackbottom = (char*) __environ;

// Format output by local settings of the machine.
//
Expand Down
3 changes: 2 additions & 1 deletion EHC/text/files1-atze.mk
Expand Up @@ -33,7 +33,8 @@ TEXT_SUBS += AGMiniPrimer StoryIntro StoryEH1 StoryEH2 StoryAFP Scratch \
AppxNotation FrontMatter OldText \
Poster PosterLDL PosterTrOrPr \
llvm/LLVM llvm/LLVMPackages llvm/LLVMCoverPage llvm/LLVMFormat \
llvm/LLVMChapterNaive \
llvm/LLVMChapterAbstract llvm/LLVMChapterIntroduction \
llvm/LLVMChapterEHCPipeline llvm/LLVMChapterNaive \
Uniqueness uniqueness/TopicIntroduction uniqueness/TopicEHC \
uniqueness/TopicNoBindings uniqueness/TopicPolyvariant uniqueness/TopicRecursion uniqueness/TopicPolymorphic uniqueness/TopicParallel uniqueness/TopicDataTypes uniqueness/TopicOverloading \
uniqueness/TopicBeyondEHC uniqueness/TopicCodeGeneration uniqueness/TopicInspecting \
Expand Down
3 changes: 3 additions & 0 deletions EHC/text/llvm/LLVM.cltex
Expand Up @@ -3,9 +3,12 @@ Functional LLVM
%%]

%%[main
%%@LLVMChapterAbstract.chapter
\tableofcontents

\part{Preliminaries}
%%@LLVMChapterIntroduction.chapter
%%@LLVMChapterEHCPipeline.chapter

\part{Main part}
%%@LLVMChapterNaive.chapter
Expand Down

0 comments on commit 30d9831

Please sign in to comment.