Changes in directory llvm-test:
Makefile.programs updated: 1.264 -> 1.265 RunSafely.sh updated: 1.27 -> 1.28 TimedExec.sh updated: 1.5 -> 1.6 --- Log message: Added support to do remote execution using rsh. e.g. make TARGET_LLCFLAGS="-mcpu=armcpuname" TARGET_ARCH=arm REMOTE_HOST=board REMOTE_USER=id TARGET_ARCH=<> specifies the arch. of the target (i.e. remote host), e.g. arm, x86 TARGET_LLCFLAGS=<> specifies additional flags passed to llc, e.g. --enable-tail-merge REMOTE_HOST=<> specifies the remote host name where the programs are being run REMOTE_USER=<> specifies the account user id on the remote host (passed along by rsh -l). --- Diffs of the changes: (+72 -13) Makefile.programs | 31 ++++++++++++++++++++++++++++--- RunSafely.sh | 44 ++++++++++++++++++++++++++++++++++++++------ TimedExec.sh | 10 ++++++---- 3 files changed, 72 insertions(+), 13 deletions(-) Index: llvm-test/Makefile.programs diff -u llvm-test/Makefile.programs:1.264 llvm-test/Makefile.programs:1.265 --- llvm-test/Makefile.programs:1.264 Wed Mar 28 03:31:17 2007 +++ llvm-test/Makefile.programs Thu May 3 16:32:39 2007 @@ -88,10 +88,18 @@ else EXIT_OK := 0 endif -ifndef GET_STABLE_NUMBERS -RUNSAFELY := $(PROGDIR)/RunSafely.sh $(RUNTIMELIMIT) $(EXIT_OK) -else +ifdef GET_STABLE_NUMBERS RUNSAFELY := $(PROGDIR)/RunSafelyAndStable.sh $(RUNTIMELIMIT) $(EXIT_OK) +else +ifdef REMOTE_HOST +ifdef REMOTE_USER +RUNSAFELY := $(PROGDIR)/RunSafely.sh -r $(REMOTE_HOST) -l $(REMOTE_USER) $(RUNTIMELIMIT) $(EXIT_OK) +else +RUNSAFELY := $(PROGDIR)/RunSafely.sh -r $(REMOTE_HOST) $(RUNTIMELIMIT) $(EXIT_OK) +endif +else +RUNSAFELY := $(PROGDIR)/RunSafely.sh $(RUNTIMELIMIT) $(EXIT_OK) +endif endif # LLVMGCCLD - This sets up the command to use for linking test programs @@ -229,6 +237,9 @@ ifeq ($(ARCH),Sparc) LLCBETAOPTION := -enable-sparc-v9-insts endif +ifeq ($(TARGET_ARCH),ARM) +LLCBETAOPTION := -march=thumb +endif print-llcbeta-option: @echo $(LLCBETAOPTION) @@ -302,6 +313,11 @@ LLCFLAGS += -enable-correct-eh-support endif +# Pass target specific llc flags +ifdef TARGET_LLCFLAGS +LLCFLAGS += $(TARGET_LLCFLAGS) +endif + # # Rules to compile the program for the C Back End # @@ -408,6 +424,15 @@ # output with the program's output. BUGPOINT_OPTIONS += -append-exit-code +# Support remote execution +ifdef REMOTE_HOST +ifdef REMOTE_USER +BUGPOINT_OPTIONS += -rsh-host=$(REMOTE_HOST) -rsh-user=$(REMOTE_USER) +else +BUGPOINT_OPTIONS += -rsh-host=$(REMOTE_HOST) +endif +endif + # If a tolerance is set, pass it off to bugpoint ifdef FP_TOLERANCE BUGPOINT_OPTIONS += -rel-tolerance $(FP_TOLERANCE) Index: llvm-test/RunSafely.sh diff -u llvm-test/RunSafely.sh:1.27 llvm-test/RunSafely.sh:1.28 --- llvm-test/RunSafely.sh:1.27 Thu Jan 11 15:01:31 2007 +++ llvm-test/RunSafely.sh Thu May 3 16:32:39 2007 @@ -11,17 +11,23 @@ # fourth argument specified, and outputs a <outfile>.time file which # contains a timing of the program and the program's exit code. # -# If the <exitok> (2nd) parameter is 0 then this script always -# returns 0, regardless of the actual exit of the <program>. +# If the <exitok> parameter is 0 then this script always returns 0, +# regardless of the actual exit of the <program>. # If the <exitok> parameter is non-zero then this script returns # the exit code of the <program>. If there is an error in getting # the <program>'s exit code, this script returns 99. # +# If optional parameters -r <remote host> -l <remote user> are +# specified, it execute the program remotely using rsh. +# # Syntax: # -# RunSafely.sh <timeout> <exitok> <infile> <outfile> <program> <args...> +# RunSafely.sh [-r <rhost>] [-l <ruser>] +# <timeout> <exitok> <infile> <outfile> <program> <args...> # # where: +# <rhost> is the remote host to execute the program +# <ruser> is the username on the remote host # <timeout> is the maximum number of seconds to let the <program> run # <exitok> is 1 if the program must exit with 0 return code # <infile> is a file from which standard input is directed @@ -35,6 +41,19 @@ fi DIR=${0%%`basename $0`} + +RHOST= +RUSER=`id -un` +FLAG=$1 +if [ $1 = "-r" ]; then + RHOST=$2 + shift 2 +fi +if [ $1 = "-l" ]; then + RUSER=$2 + shift 2 +fi + ULIMIT=$1 EXITOK=$2 INFILE=$3 @@ -75,18 +94,31 @@ # we tell time to launch a shell which in turn executes $PROGRAM with the # necessary I/O redirection. # +PWD=`pwd` COMMAND="$PROGRAM $*" if [ "$SYSTEM" = "Darwin" ]; then - COMMAND="${DIR}TimedExec.sh $ULIMIT $COMMAND" + COMMAND="${DIR}TimedExec.sh $ULIMIT $PWD $COMMAND" fi -( time -p sh -c "$COMMAND >$OUTFILE 2>&1 < $INFILE" ; echo exit $? ) 2>&1 \ - | awk -- '\ +if [ "x$RHOST" = x ] ; then + ( time -p sh -c "$COMMAND >$OUTFILE 2>&1 < $INFILE" ; echo exit $? ) 2>&1 \ + | awk -- '\ +BEGIN { cpu = 0.0; } +/^user/ { cpu += $2; print; } +/^sys/ { cpu += $2; print; } +!/^user/ && !/^sys/ { print; } +END { printf("program %f\n", cpu); }' > $OUTFILE.time +else + ( rsh -l $RUSER $RHOST "cd $PWD; time -p $COMMAND >$OUTFILE.remote 2>&1 < $INFILE" ; echo exit $? ) 2>&1 \ + | awk -- '\ BEGIN { cpu = 0.0; } /^user/ { cpu += $2; print; } /^sys/ { cpu += $2; print; } !/^user/ && !/^sys/ { print; } END { printf("program %f\n", cpu); }' > $OUTFILE.time +cp $OUTFILE.remote $OUTFILE +rm -f $OUTFILE.remote +fi exitval=`grep '^exit ' $OUTFILE.time | sed -e 's/^exit //'` if [ -z "$exitval" ] ; then Index: llvm-test/TimedExec.sh diff -u llvm-test/TimedExec.sh:1.5 llvm-test/TimedExec.sh:1.6 --- llvm-test/TimedExec.sh:1.5 Wed Jan 10 11:51:45 2007 +++ llvm-test/TimedExec.sh Thu May 3 16:32:39 2007 @@ -4,11 +4,11 @@ # # Synopsis: This script is a watchdog wrapper. It runs the specified program # but times out if it does not complete in the allocated time frame. -# Syntax: ./TimedExec.sh <timeout> <program> <args...> +# Syntax: ./TimedExec.sh <timeout> <dir> <program> <args...> # -if [ $# -lt 2 ]; then - echo "./TimedExec.sh <timeout> <program> <args...>" +if [ $# -lt 3 ]; then + echo "./TimedExec.sh <timeout> <dir> <program> <args...>" exit 1 fi @@ -18,11 +18,13 @@ fi TIMEOUT=$1 -shift +DIR=$2 +shift 2 if [ -z "$PARENT" ]; then # Start a watchdog process $0 -p $$ $TIMEOUT $* & + cd $DIR exec "$@" else # Sleep for a specified time then wake up to kill the parent process. _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits