From criswell at cs.uiuc.edu Mon May 23 08:43:50 2005 From: criswell at cs.uiuc.edu (John Criswell) Date: Mon, 23 May 2005 08:43:50 -0500 Subject: [llvm-commits] CVS: llvm-www/releases/1.5/cfrontend-1.5.powerpc-apple-darwin7.8.0.tar.gz Message-ID: <200505231343.IAA03632@choi.cs.uiuc.edu> Changes in directory llvm-www/releases/1.5: cfrontend-1.5.powerpc-apple-darwin7.8.0.tar.gz updated: 1.1 -> 1.2 --- Log message: Remove Apple Header Files. --- Diffs of the changes: (+0 -0) cfrontend-1.5.powerpc-apple-darwin7.8.0.tar.gz | 0 1 files changed Index: llvm-www/releases/1.5/cfrontend-1.5.powerpc-apple-darwin7.8.0.tar.gz From reid at x10sys.com Mon May 23 21:33:46 2005 From: reid at x10sys.com (Reid Spencer) Date: Mon, 23 May 2005 21:33:46 -0500 Subject: [llvm-commits] CVS: llvm/Makefile Makefile.rules Message-ID: <200505240233.VAA09897@zion.cs.uiuc.edu> Changes in directory llvm: Makefile updated: 1.47 -> 1.48 Makefile.rules updated: 1.313 -> 1.314 --- Log message: Two dist-check related changes: 1. Allow DIST_CHECK_CONFIG_OPTION to specify a set of options to be passed to the configure script during the dist-check target. This allows things to be passed down on a project basis so the configure doesn't fail. 2. Use the tar | (cd ; tar ) idiom to copy files which is more flexible than using the cp command. THis allows us to exclude CVS .svn directories at source rather than stripping them out of the tar ball. --- Diffs of the changes: (+16 -5) Makefile | 4 ++++ Makefile.rules | 17 ++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) Index: llvm/Makefile diff -u llvm/Makefile:1.47 llvm/Makefile:1.48 --- llvm/Makefile:1.47 Sun Dec 5 23:35:00 2004 +++ llvm/Makefile Mon May 23 21:33:20 2005 @@ -18,6 +18,10 @@ include $(LEVEL)/Makefile.common +# Specify options to pass to configure script when we're +# running the dist-check target +DIST_CHECK_CONFIG_OPTIONS = --with-llvmgccdir=$(LLVMGCCDIR) + .PHONY: debug-opt-prof debug-opt-prof: $(Echo) Building Debug Version Index: llvm/Makefile.rules diff -u llvm/Makefile.rules:1.313 llvm/Makefile.rules:1.314 --- llvm/Makefile.rules:1.313 Thu May 19 15:59:12 2005 +++ llvm/Makefile.rules Mon May 23 21:33:20 2005 @@ -1366,7 +1366,7 @@ gunzip -c $(DistTarGZip) | $(TAR) xf - && \ cd build && \ ../$(DistName)/configure --prefix="$(DistCheckDir)/install" \ - --srcdir=../$(DistName) && \ + --srcdir=../$(DistName) $(DIST_CHECK_CONFIG_OPTIONS) && \ $(MAKE) all && \ $(MAKE) check && \ $(MAKE) install && \ @@ -1432,9 +1432,16 @@ if test -d "$$from_dir/$$file"; then \ if test -d "$(PROJ_SRC_DIR)/$$file" && \ test "$$from_dir" != "$(PROJ_SRC_DIR)" ; then \ - $(CP) -pR "$(PROJ_SRC_DIR)/$$file" "$$to_dir" || exit 1; \ + cd $(PROJ_SRC_DIR) ; \ + $(TAR) cf - $$file --exclude .svn --exclude CVS | \ + ( cd $$to_dir ; $(TAR) xf - ) ; \ + cd $(PROJ_OBJ_DIR) ; \ + else \ + cd $$from_dir ; \ + $(TAR) cf - $$file --exclude .svn --exclude CVS | \ + ( cd $$to_dir ; $(TAR) xf - ) ; \ + cd $(PROJ_OBJ_DIR) ; \ fi; \ - $(CP) -pR $$from_dir/$$file $$to_dir || exit 1; \ elif test -f "$$from_dir/$$file" ; then \ $(CP) -p "$$from_dir/$$file" "$(DistDir)/$$file" || exit 1; \ elif test -L "$$from_dir/$$file" ; then \ @@ -1455,8 +1462,8 @@ fi; \ done $(Verb) if test "$(DistDir)" = "$(TopDistDir)" ; then \ - $(EchoCmd) Eliminating CVS directories from distribution ; \ - $(RM) -rf `find $(TopDistDir) -type d -name CVS -print` ;\ + $(EchoCmd) Eliminating CVS/.svn directories from distribution ; \ + $(RM) -rf `find $(TopDistDir) -type d \( -name CVS -o -name .svn \) -print` ;\ $(MAKE) dist-hook ; \ $(FIND) $(TopDistDir) -type d ! -perm -777 -exec chmod a+rwx {} \; \ -o ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; \ From criswell at cs.uiuc.edu Tue May 24 15:35:59 2005 From: criswell at cs.uiuc.edu (John Criswell) Date: Tue, 24 May 2005 15:35:59 -0500 Subject: [llvm-commits] CVS: llvm-poolalloc/runtime/PoolAllocator/Makefile Message-ID: <200505242035.PAA19305@choi.cs.uiuc.edu> Changes in directory llvm-poolalloc/runtime/PoolAllocator: Makefile updated: 1.7 -> 1.8 --- Log message: Don't build a bytecode version of the library. The Makefile rules are somehow broken, and we don't use it anyway. --- Diffs of the changes: (+0 -1) Makefile | 1 - 1 files changed, 1 deletion(-) Index: llvm-poolalloc/runtime/PoolAllocator/Makefile diff -u llvm-poolalloc/runtime/PoolAllocator/Makefile:1.7 llvm-poolalloc/runtime/PoolAllocator/Makefile:1.8 --- llvm-poolalloc/runtime/PoolAllocator/Makefile:1.7 Wed May 18 14:56:35 2005 +++ llvm-poolalloc/runtime/PoolAllocator/Makefile Tue May 24 15:35:30 2005 @@ -1,5 +1,4 @@ LEVEL = ../.. -BYTECODE_LIBRARY=1 SHARED_LIBRARY=1 LIBRARYNAME=poolalloc_rt_old From criswell at cs.uiuc.edu Tue May 24 15:50:44 2005 From: criswell at cs.uiuc.edu (John Criswell) Date: Tue, 24 May 2005 15:50:44 -0500 Subject: [llvm-commits] CVS: llvm-poolalloc/test/TEST.ptrcomp.Makefile Message-ID: <200505242050.PAA23887@choi.cs.uiuc.edu> Changes in directory llvm-poolalloc/test: TEST.ptrcomp.Makefile updated: 1.3 -> 1.4 --- Log message: Corrected the name of the poolalloc pass library. Apparently, it doesn't start with "lib." --- Diffs of the changes: (+1 -1) TEST.ptrcomp.Makefile | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm-poolalloc/test/TEST.ptrcomp.Makefile diff -u llvm-poolalloc/test/TEST.ptrcomp.Makefile:1.3 llvm-poolalloc/test/TEST.ptrcomp.Makefile:1.4 --- llvm-poolalloc/test/TEST.ptrcomp.Makefile:1.3 Wed May 18 14:56:36 2005 +++ llvm-poolalloc/test/TEST.ptrcomp.Makefile Tue May 24 15:50:20 2005 @@ -14,7 +14,7 @@ RELDIR := $(subst $(PROGDIR),,$(CURDIR)) # Pool allocator pass shared object -PA_SO := $(PROJECT_DIR)/Debug/lib/libpoolalloc$(SHLIBEXT) +PA_SO := $(PROJECT_DIR)/Debug/lib/poolalloc$(SHLIBEXT) # Pool allocator runtime library #PA_RT := $(PROJECT_DIR)/lib/Bytecode/libpoolalloc_fl_rt.bc From reid at x10sys.com Wed May 25 16:03:29 2005 From: reid at x10sys.com (Reid Spencer) Date: Wed, 25 May 2005 16:03:29 -0500 Subject: [llvm-commits] CVS: llvm/Makefile Message-ID: <200505252103.QAA24410@zion.cs.uiuc.edu> Changes in directory llvm: Makefile updated: 1.48 -> 1.49 --- Log message: Add a "libs-only" target for avoiding construction of the tools and runtime libraries. --- Diffs of the changes: (+9 -4) Makefile | 13 +++++++++---- 1 files changed, 9 insertions(+), 4 deletions(-) Index: llvm/Makefile diff -u llvm/Makefile:1.48 llvm/Makefile:1.49 --- llvm/Makefile:1.48 Mon May 23 21:33:20 2005 +++ llvm/Makefile Wed May 25 16:03:17 2005 @@ -7,11 +7,15 @@ # #===------------------------------------------------------------------------===# LEVEL = . -DIRS = lib/System lib/Support utils lib tools +DIRS = lib/System lib/Support utils lib -ifneq ($(MAKECMDGOALS),tools-only) -DIRS += runtime docs -OPTIONAL_DIRS = examples projects +ifeq ($(MAKECMDGOALS),tools-only) +DIRS += tools +else + ifneq ($(MAKECMDGOALS),libs-only) + DIRS += runtime docs + OPTIONAL_DIRS = examples projects + endif endif EXTRA_DIST := test llvm.spec include @@ -46,3 +50,4 @@ $(TopDistDir)/include/llvm/Support/ThreadSupport.h tools-only: all +libs-only: all From criswell at cs.uiuc.edu Wed May 25 18:46:17 2005 From: criswell at cs.uiuc.edu (John Criswell) Date: Wed, 25 May 2005 18:46:17 -0500 Subject: [llvm-commits] CVS: llvm-poolalloc/lib/PoolAllocate/PointerCompress.cpp Message-ID: <200505252346.SAA23744@choi.cs.uiuc.edu> Changes in directory llvm-poolalloc/lib/PoolAllocate: PointerCompress.cpp updated: 1.62 -> 1.63 --- Log message: Make sure to run pointer compression on functions that are called from an already pointer compressed function, even if no arguments to the function had to be changed. Hopefully, this fixes lots of stuff. --- Diffs of the changes: (+7 -1) PointerCompress.cpp | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletion(-) Index: llvm-poolalloc/lib/PoolAllocate/PointerCompress.cpp diff -u llvm-poolalloc/lib/PoolAllocate/PointerCompress.cpp:1.62 llvm-poolalloc/lib/PoolAllocate/PointerCompress.cpp:1.63 --- llvm-poolalloc/lib/PoolAllocate/PointerCompress.cpp:1.62 Wed May 18 14:56:28 2005 +++ llvm-poolalloc/lib/PoolAllocate/PointerCompress.cpp Wed May 25 18:45:20 2005 @@ -993,7 +993,13 @@ } // If this function doesn't require compression, there is nothing to do! - if (PoolsToCompress.empty()) return; + // However, this function still needs to be transformed; it may just be + // using a global pool descriptor. + if (PoolsToCompress.empty()) { + PtrComp.NoArgFunctionsCalled.push_back(Callee); + return; + } + // Get the clone of this function that uses compressed pointers instead of // normal pointers. From criswell at cs.uiuc.edu Wed May 25 20:19:48 2005 From: criswell at cs.uiuc.edu (John Criswell) Date: Wed, 25 May 2005 20:19:48 -0500 Subject: [llvm-commits] CVS: llvm-poolalloc/runtime/FreeListAllocator/Makefile Message-ID: <200505260119.UAA02813@choi.cs.uiuc.edu> Changes in directory llvm-poolalloc/runtime/FreeListAllocator: Makefile updated: 1.5 -> 1.6 --- Log message: Do not create bytecode versions of the library. --- Diffs of the changes: (+0 -1) Makefile | 1 - 1 files changed, 1 deletion(-) Index: llvm-poolalloc/runtime/FreeListAllocator/Makefile diff -u llvm-poolalloc/runtime/FreeListAllocator/Makefile:1.5 llvm-poolalloc/runtime/FreeListAllocator/Makefile:1.6 --- llvm-poolalloc/runtime/FreeListAllocator/Makefile:1.5 Wed May 18 14:56:31 2005 +++ llvm-poolalloc/runtime/FreeListAllocator/Makefile Wed May 25 20:19:26 2005 @@ -1,5 +1,4 @@ LEVEL = ../.. -BYTECODE_LIBRARY=1 SHARED_LIBRARY=1 LIBRARYNAME=poolalloc_fl_rt From criswell at cs.uiuc.edu Wed May 25 21:11:59 2005 From: criswell at cs.uiuc.edu (John Criswell) Date: Wed, 25 May 2005 21:11:59 -0500 Subject: [llvm-commits] CVS: llvm-poolalloc/test/Makefile Message-ID: <200505260211.VAA02958@choi.cs.uiuc.edu> Changes in directory llvm-poolalloc/test: Makefile updated: 1.33 -> 1.34 --- Log message: Add the progpc target, which will hopefully be useful in collecting a large amount of information on pointer compression. However, I haven't tried the target yet, but I have used this Makefile for other targets, so I know nothing is broken. --- Diffs of the changes: (+27 -1) Makefile | 28 +++++++++++++++++++++++++++- 1 files changed, 27 insertions(+), 1 deletion(-) Index: llvm-poolalloc/test/Makefile diff -u llvm-poolalloc/test/Makefile:1.33 llvm-poolalloc/test/Makefile:1.34 --- llvm-poolalloc/test/Makefile:1.33 Wed May 18 14:56:36 2005 +++ llvm-poolalloc/test/Makefile Wed May 25 21:11:37 2005 @@ -48,6 +48,8 @@ ############################################################################## # Targets for gathering statistics for programs for papers ############################################################################## + +# Program tests for Pool Allocation progtest:: for dir in $(LARGE_PROBLEM_SIZE_DIRS); do \ (cd $$dir; \ @@ -71,6 +73,30 @@ done @printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a" +# Program tests for Pointer Compression +progpc:: + for dir in $(LARGE_PROBLEM_SIZE_DIRS); do \ + (cd $$dir; \ + PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=ptrcomp \ + LARGE_PROBLEM_SIZE=1 report.html) \ + done + for dir in $(NORMAL_PROBLEM_SIZE_DIRS); do \ + (cd $$dir; \ + PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=ptrcomp \ + report.html) \ + done + @for dir in $(LARGE_PROBLEM_SIZE_DIRS); do \ + (cd $$dir; \ + PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -s -j1 TEST=ptrcomp \ + LARGE_PROBLEM_SIZE=1 report) \ + done + @for dir in $(NORMAL_PROBLEM_SIZE_DIRS); do \ + (cd $$dir; \ + PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -s -j1 TEST=ptrcomp \ + report) \ + done + @printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a" + progperf:: for dir in $(LARGE_PROBLEM_SIZE_DIRS); do \ (cd $$dir; \ @@ -162,7 +188,7 @@ ptrcomp:: (cd $(LLVM_OBJ_ROOT)/projects/llvm-test/$(SUBDIR); \ PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=ptrcomp \ - $(STABLERUN) report report.html) + report) @printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a" vtl:: From criswell at cs.uiuc.edu Wed May 25 21:35:59 2005 From: criswell at cs.uiuc.edu (John Criswell) Date: Wed, 25 May 2005 21:35:59 -0500 Subject: [llvm-commits] CVS: llvm-poolalloc/include/poolalloc/MMAPSupport.h Message-ID: <200505260235.VAA03016@choi.cs.uiuc.edu> Changes in directory llvm-poolalloc/include/poolalloc: MMAPSupport.h updated: 1.4 -> 1.5 --- Log message: The macro is MAP_NORESERVE, not MMAP_NORESERVE. This will prevent us from reserving tons of swap space on Sparc. --- Diffs of the changes: (+2 -2) MMAPSupport.h | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm-poolalloc/include/poolalloc/MMAPSupport.h diff -u llvm-poolalloc/include/poolalloc/MMAPSupport.h:1.4 llvm-poolalloc/include/poolalloc/MMAPSupport.h:1.5 --- llvm-poolalloc/include/poolalloc/MMAPSupport.h:1.4 Wed May 18 14:56:22 2005 +++ llvm-poolalloc/include/poolalloc/MMAPSupport.h Wed May 25 21:35:40 2005 @@ -45,9 +45,9 @@ #endif int Flags = MAP_PRIVATE | MAP_ANONYMOUS; -#ifdef MMAP_NORESERVE +#ifdef MAP_NORESERVE if (UseNoReserve) - Flags |= MMAP_NORESERVE; + Flags |= MAP_NORESERVE; #endif void *Mem = ::mmap(0, Size, PROT_READ|PROT_WRITE, Flags, FD, 0); From criswell at cs.uiuc.edu Wed May 25 21:43:23 2005 From: criswell at cs.uiuc.edu (John Criswell) Date: Wed, 25 May 2005 21:43:23 -0500 Subject: [llvm-commits] CVS: llvm-poolalloc/test/Makefile Message-ID: <200505260243.VAA03054@choi.cs.uiuc.edu> Changes in directory llvm-poolalloc/test: Makefile updated: 1.34 -> 1.35 --- Log message: Re-enable getting stable numbers for the ptrcomp target. --- Diffs of the changes: (+1 -1) Makefile | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm-poolalloc/test/Makefile diff -u llvm-poolalloc/test/Makefile:1.34 llvm-poolalloc/test/Makefile:1.35 --- llvm-poolalloc/test/Makefile:1.34 Wed May 25 21:11:37 2005 +++ llvm-poolalloc/test/Makefile Wed May 25 21:43:05 2005 @@ -188,7 +188,7 @@ ptrcomp:: (cd $(LLVM_OBJ_ROOT)/projects/llvm-test/$(SUBDIR); \ PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=ptrcomp \ - report) + $(STABLERUN) report report.html) @printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a" vtl:: From vadve at cs.uiuc.edu Wed May 25 22:55:08 2005 From: vadve at cs.uiuc.edu (Vikram Adve) Date: Wed, 25 May 2005 22:55:08 -0500 Subject: [llvm-commits] CVS: llvm-poolalloc/test/Makefile Message-ID: <200505260355.WAA12483@psmith.cs.uiuc.edu> Changes in directory llvm-poolalloc/test: Makefile updated: 1.35 -> 1.36 --- Log message: Add flag to use large problem size for ptrcomp target. --- Diffs of the changes: (+9 -3) Makefile | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) Index: llvm-poolalloc/test/Makefile diff -u llvm-poolalloc/test/Makefile:1.35 llvm-poolalloc/test/Makefile:1.36 --- llvm-poolalloc/test/Makefile:1.35 Wed May 25 21:43:05 2005 +++ llvm-poolalloc/test/Makefile Wed May 25 22:54:01 2005 @@ -17,6 +17,12 @@ STABLERUN := endif +ifndef NO_LARGE_SIZE +LARGESIZE := LARGE_PROBLEM_SIZE=1 +else +LARGESIZE := +endif + LARGE_PROBLEM_SIZE_DIRS := \ MultiSource/Benchmarks/llubenchmark \ @@ -176,7 +182,7 @@ test:: (cd $(LLVM_OBJ_ROOT)/projects/llvm-test/$(SUBDIR); \ PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=poolalloc \ - $(STABLERUN) report report.html) + $(LARGESIZE) $(STABLERUN) report report.html) @printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a" pacompiletime:: @@ -188,7 +194,7 @@ ptrcomp:: (cd $(LLVM_OBJ_ROOT)/projects/llvm-test/$(SUBDIR); \ PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=ptrcomp \ - $(STABLERUN) report report.html) + $(LARGESIZE) $(STABLERUN) report report.html) @printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a" vtl:: @@ -206,7 +212,7 @@ optzn:: (cd $(LLVM_OBJ_ROOT)/projects/llvm-test/$(SUBDIR); \ PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=optzn \ - $(STABLERUN) test report report.csv) + $(LARGESIZE) $(STABLERUN) test report report.csv) @printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a" p4perf:: From brukman at cs.uiuc.edu Thu May 26 11:29:56 2005 From: brukman at cs.uiuc.edu (Misha Brukman) Date: Thu, 26 May 2005 11:29:56 -0500 Subject: [llvm-commits] CVS: llvm/utils/NightlyTest.pl Message-ID: <200505261629.LAA22691@zion.cs.uiuc.edu> Changes in directory llvm/utils: NightlyTest.pl updated: 1.95 -> 1.96 --- Log message: Add a -cvstag option for testing specific branches, such as release candidates --- Diffs of the changes: (+10 -4) NightlyTest.pl | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-) Index: llvm/utils/NightlyTest.pl diff -u llvm/utils/NightlyTest.pl:1.95 llvm/utils/NightlyTest.pl:1.96 --- llvm/utils/NightlyTest.pl:1.95 Thu Mar 17 10:07:45 2005 +++ llvm/utils/NightlyTest.pl Thu May 26 11:28:55 2005 @@ -34,6 +34,8 @@ # -gnuplotscript Next argument specifies gnuplot script to use # -templatefile Next argument specifies template file to use # -gccpath Path to gcc/g++ used to build LLVM +# -cvstag Check out a specific CVS tag to build LLVM (useful for +# testing release branches) # # CVSROOT is the CVS repository from which the tree will be checked out, # specified either in the full :method:user at host:/dir syntax, or @@ -79,6 +81,7 @@ my $VERBOSE = 0; my $DEBUG = 0; my $CONFIGUREARGS = ""; +my $CVSCOOPT = "-APR"; my $NICE = ""; my $NODEJAGNU = 0; @@ -288,6 +291,7 @@ if (/^-gccpath/) { $CONFIGUREARGS .= " CC=$ARGV[0]/gcc CXX=$ARGV[0]/g++"; shift; next; } + if (/^-cvstag/) { $CVSCOOPT .= " -r $ARGV[0]"; shift; next; } if (/^-noexternals$/) { $NOEXTERNALS = 1; next; } if(/^-nodejagnu$/) { $NODEJAGNU = 1; next; } @@ -357,12 +361,14 @@ # # Check out the llvm tree, saving CVS messages to the cvs log... # -$CVSOPT = ""; -$CVSOPT = "-z3" if $CVSRootDir =~ /^:ext:/; # Use compression if going over ssh. +my $CVSOPT = ""; +# Use compression if going over ssh. +$CVSOPT = "-z3" if $CVSRootDir =~ /^:ext:/; +my $CVSCMD = "$NICE cvs $CVSOPT -d $CVSRootDir co $CVSCOOPT"; if (!$NOCHECKOUT) { if ( $VERBOSE ) { print "CHECKOUT STAGE\n"; } - system "( time -p $NICE cvs $CVSOPT -d $CVSRootDir co -APR llvm; cd llvm/projects ; " . - "$NICE cvs $CVSOPT -d $CVSRootDir co -APR llvm-test ) > $CVSLog 2>&1"; + system "( time -p $CVSCMD llvm; cd llvm/projects ; " . + "$CVSCMD llvm-test ) > $CVSLog 2>&1"; ChangeDir( $BuildDir , "CVS Checkout directory") ; } From alenhar2 at cs.uiuc.edu Thu May 26 13:19:27 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Thu, 26 May 2005 13:19:27 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaISelPattern.cpp Message-ID: <200505261819.NAA23344@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/Alpha: AlphaISelPattern.cpp updated: 1.113 -> 1.114 --- Log message: Fix 2005-05-12-Int64ToFP The issue is there is no unsigned -> double conversion, only signed. So I need to test the sign and do a different thing depending on it. Ideally this should be in a different BB, but in the mean time, I use a branch free method. --- Diffs of the changes: (+26 -0) AlphaISelPattern.cpp | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+) Index: llvm/lib/Target/Alpha/AlphaISelPattern.cpp diff -u llvm/lib/Target/Alpha/AlphaISelPattern.cpp:1.113 llvm/lib/Target/Alpha/AlphaISelPattern.cpp:1.114 --- llvm/lib/Target/Alpha/AlphaISelPattern.cpp:1.113 Fri May 13 15:29:25 2005 +++ llvm/lib/Target/Alpha/AlphaISelPattern.cpp Thu May 26 13:18:34 2005 @@ -1165,6 +1165,32 @@ } case ISD::UINT_TO_FP: + { + //FIXME: First test if we will have problems with the sign bit before doing the slow thing + assert (N.getOperand(0).getValueType() == MVT::i64 + && "only quads can be loaded from"); + Tmp1 = SelectExpr(N.getOperand(0)); // Get the operand register + Tmp2 = MakeReg(MVT::i64); + BuildMI(BB, Alpha::SRL, 2, Tmp2).addReg(Tmp1).addImm(1); + Tmp3 = MakeReg(MVT::i64); + BuildMI(BB, Alpha::CMPLT, 2, Tmp3).addReg(Tmp1).addReg(Alpha::R31); + unsigned Tmp4 = MakeReg(MVT::f64), Tmp5 = MakeReg(MVT::f64), Tmp6 = MakeReg(MVT::f64); + MoveInt2FP(Tmp1, Tmp4, true); + MoveInt2FP(Tmp2, Tmp5, true); + MoveInt2FP(Tmp3, Tmp6, true); + Tmp1 = MakeReg(MVT::f64); + Tmp2 = MakeReg(MVT::f64); + Opc = DestType == MVT::f64 ? Alpha::CVTQT : Alpha::CVTQS; + BuildMI(BB, Opc, 1, Tmp1).addReg(Tmp4); + BuildMI(BB, Opc, 1, Tmp2).addReg(Tmp5); + Tmp3 = MakeReg(MVT::f64); + BuildMI(BB, Alpha::ADDT, 2, Tmp3).addReg(Tmp2).addReg(Tmp2); + //Ok, now tmp1 had the plain covereted + //tmp3 has the reduced converted and added + //tmp6 has the conditional to use + BuildMI(BB, Alpha::FCMOVNE, 3, Result).addReg(Tmp1).addReg(Tmp3).addReg(Tmp6); + return Result; + } case ISD::SINT_TO_FP: { assert (N.getOperand(0).getValueType() == MVT::i64 From criswell at cs.uiuc.edu Thu May 26 19:12:23 2005 From: criswell at cs.uiuc.edu (John Criswell) Date: Thu, 26 May 2005 19:12:23 -0500 Subject: [llvm-commits] CVS: llvm-poolalloc/test/Makefile Message-ID: <200505270012.TAA22734@choi.cs.uiuc.edu> Changes in directory llvm-poolalloc/test: Makefile updated: 1.36 -> 1.37 --- Log message: Add targets that make it easier to test pointer compression. --- Diffs of the changes: (+33 -4) Makefile | 37 +++++++++++++++++++++++++++++++++---- 1 files changed, 33 insertions(+), 4 deletions(-) Index: llvm-poolalloc/test/Makefile diff -u llvm-poolalloc/test/Makefile:1.36 llvm-poolalloc/test/Makefile:1.37 --- llvm-poolalloc/test/Makefile:1.36 Wed May 25 22:54:01 2005 +++ llvm-poolalloc/test/Makefile Thu May 26 19:11:25 2005 @@ -50,6 +50,29 @@ NORMAL_PROBLEM_SIZE_DIRS := \ $(addprefix $(LLVM_OBJ_ROOT)/projects/llvm-test/,$(NORMAL_PROBLEM_SIZE_DIRS)) +# +# Problems for Pointer Compression +# +PCLARGE_PROBLEM_SIZE_DIRS := \ + MultiSource/Benchmarks/Olden/bh \ + MultiSource/Benchmarks/Olden/bisort \ + MultiSource/Benchmarks/Olden/em3d \ + MultiSource/Benchmarks/Olden/power \ + MultiSource/Benchmarks/llubenchmark \ + MultiSource/Benchmarks/Ptrdist \ + MultiSource/Benchmarks/MallocBench/cfrac + +PCLARGE_PROBLEM_SIZE_DIRS := \ + $(addprefix $(LLVM_OBJ_ROOT)/projects/llvm-test/,$(PCLARGE_PROBLEM_SIZE_DIRS)) + +PCNORMAL_PROBLEM_SIZE_DIRS := \ + MultiSource/Benchmarks/Olden/perimeter \ + MultiSource/Benchmarks/Olden/treeadd \ + MultiSource/Benchmarks/Olden/tsp \ + MultiSource/Benchmarks/Olden/voronoi + +PCNORMAL_PROBLEM_SIZE_DIRS := \ + $(addprefix $(LLVM_OBJ_ROOT)/projects/llvm-test/,$(PCNORMAL_PROBLEM_SIZE_DIRS)) ############################################################################## # Targets for gathering statistics for programs for papers @@ -81,22 +104,22 @@ # Program tests for Pointer Compression progpc:: - for dir in $(LARGE_PROBLEM_SIZE_DIRS); do \ + for dir in $(PCLARGE_PROBLEM_SIZE_DIRS); do \ (cd $$dir; \ PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=ptrcomp \ LARGE_PROBLEM_SIZE=1 report.html) \ done - for dir in $(NORMAL_PROBLEM_SIZE_DIRS); do \ + for dir in $(PCNORMAL_PROBLEM_SIZE_DIRS); do \ (cd $$dir; \ PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=ptrcomp \ report.html) \ done - @for dir in $(LARGE_PROBLEM_SIZE_DIRS); do \ + @for dir in $(PCLARGE_PROBLEM_SIZE_DIRS); do \ (cd $$dir; \ PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -s -j1 TEST=ptrcomp \ LARGE_PROBLEM_SIZE=1 report) \ done - @for dir in $(NORMAL_PROBLEM_SIZE_DIRS); do \ + @for dir in $(PCNORMAL_PROBLEM_SIZE_DIRS); do \ (cd $$dir; \ PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -s -j1 TEST=ptrcomp \ report) \ @@ -197,6 +220,12 @@ $(LARGESIZE) $(STABLERUN) report report.html) @printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a" +ptrcomptest:: + (cd $(LLVM_OBJ_ROOT)/projects/llvm-test/$(SUBDIR); \ + PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=ptrcomp \ + $(LARGESIZE) report) + @printf "\a"; sleep 1; printf "\a"; sleep 1; printf "\a" + vtl:: (cd $(LLVM_OBJ_ROOT)/projects/llvm-test/$(SUBDIR); \ PROJECT_DIR=$(PROJ_OBJ_ROOT) $(MAKE) -j1 TEST=pavtl \ From alenhar2 at cs.uiuc.edu Thu May 26 22:40:19 2005 From: alenhar2 at cs.uiuc.edu (Andrew Lenharth) Date: Thu, 26 May 2005 22:40:19 -0500 Subject: [llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Message-ID: <200505270340.WAA26260@zion.cs.uiuc.edu> Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.14 -> 1.15 --- Log message: match gcc, makes diff easier --- Diffs of the changes: (+2 -2) AlphaAsmPrinter.cpp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.14 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.15 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.14 Wed May 4 14:12:09 2005 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Thu May 26 22:39:30 2005 @@ -184,8 +184,8 @@ // Print out labels for the function. SwitchSection(O, "text"); emitAlignment(4); - O << "\t.globl\t" << CurrentFnName << "\n"; - O << "\t.ent\t" << CurrentFnName << "\n"; + O << "\t.globl " << CurrentFnName << "\n"; + O << "\t.ent " << CurrentFnName << "\n"; O << CurrentFnName << ":\n"; From criswell at cs.uiuc.edu Fri May 27 08:52:17 2005 From: criswell at cs.uiuc.edu (John Criswell) Date: Fri, 27 May 2005 08:52:17 -0500 Subject: [llvm-commits] CVS: llvm-poolalloc/autoconf/configure.ac Message-ID: <200505271352.IAA30639@choi.cs.uiuc.edu> Changes in directory llvm-poolalloc/autoconf: configure.ac updated: 1.9 -> 1.10 --- Log message: Don't copy TEST.*.Makefile files to the object tree; the LLVM build system looks for them within the source tree. --- Diffs of the changes: (+0 -5) configure.ac | 5 ----- 1 files changed, 5 deletions(-) Index: llvm-poolalloc/autoconf/configure.ac diff -u llvm-poolalloc/autoconf/configure.ac:1.9 llvm-poolalloc/autoconf/configure.ac:1.10 --- llvm-poolalloc/autoconf/configure.ac:1.9 Wed May 18 14:56:21 2005 +++ llvm-poolalloc/autoconf/configure.ac Fri May 27 08:52:00 2005 @@ -28,11 +28,6 @@ AC_CONFIG_MAKEFILE(runtime/PoolAllocator/Makefile) AC_CONFIG_MAKEFILE(runtime/FreeListAllocator/Makefile) AC_CONFIG_MAKEFILE(test/Makefile) -AC_CONFIG_MAKEFILE(test/TEST.poolalloc.Makefile) -AC_CONFIG_MAKEFILE(test/TEST.pavtl.Makefile) -AC_CONFIG_MAKEFILE(test/TEST.perf.Makefile) -AC_CONFIG_MAKEFILE(test/TEST.p4perf.Makefile) -AC_CONFIG_MAKEFILE(test/TEST.strace.Makefile) dnl ************************************************************************** dnl * Determine which system we are building on From criswell at cs.uiuc.edu Fri May 27 08:52:16 2005 From: criswell at cs.uiuc.edu (John Criswell) Date: Fri, 27 May 2005 08:52:16 -0500 Subject: [llvm-commits] CVS: llvm-poolalloc/configure Message-ID: <200505271352.IAA30635@choi.cs.uiuc.edu> Changes in directory llvm-poolalloc: configure updated: 1.10 -> 1.11 --- Log message: Don't copy TEST.*.Makefile files to the object tree; the LLVM build system looks for them within the source tree. --- Diffs of the changes: (+0 -30) configure | 30 ------------------------------ 1 files changed, 30 deletions(-) Index: llvm-poolalloc/configure diff -u llvm-poolalloc/configure:1.10 llvm-poolalloc/configure:1.11 --- llvm-poolalloc/configure:1.10 Wed May 18 14:56:19 2005 +++ llvm-poolalloc/configure Fri May 27 08:51:57 2005 @@ -1320,21 +1320,6 @@ ac_config_commands="$ac_config_commands test/Makefile" - ac_config_commands="$ac_config_commands test/TEST.poolalloc.Makefile" - - - ac_config_commands="$ac_config_commands test/TEST.pavtl.Makefile" - - - ac_config_commands="$ac_config_commands test/TEST.perf.Makefile" - - - ac_config_commands="$ac_config_commands test/TEST.p4perf.Makefile" - - - ac_config_commands="$ac_config_commands test/TEST.strace.Makefile" - - @@ -4021,11 +4006,6 @@ ${srcdir}/autoconf/mkinstalldirs `dirname runtime/PoolAllocator/Makefile` ${srcdir}/autoconf/mkinstalldirs `dirname runtime/FreeListAllocator/Makefile` ${srcdir}/autoconf/mkinstalldirs `dirname test/Makefile` -${srcdir}/autoconf/mkinstalldirs `dirname test/TEST.poolalloc.Makefile` -${srcdir}/autoconf/mkinstalldirs `dirname test/TEST.pavtl.Makefile` -${srcdir}/autoconf/mkinstalldirs `dirname test/TEST.perf.Makefile` -${srcdir}/autoconf/mkinstalldirs `dirname test/TEST.p4perf.Makefile` -${srcdir}/autoconf/mkinstalldirs `dirname test/TEST.strace.Makefile` _ACEOF @@ -4044,11 +4024,6 @@ "runtime/PoolAllocator/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS runtime/PoolAllocator/Makefile" ;; "runtime/FreeListAllocator/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS runtime/FreeListAllocator/Makefile" ;; "test/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Makefile" ;; - "test/TEST.poolalloc.Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/TEST.poolalloc.Makefile" ;; - "test/TEST.pavtl.Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/TEST.pavtl.Makefile" ;; - "test/TEST.perf.Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/TEST.perf.Makefile" ;; - "test/TEST.p4perf.Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/TEST.p4perf.Makefile" ;; - "test/TEST.strace.Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/TEST.strace.Makefile" ;; "include/poolalloc/Config/config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/poolalloc/Config/config.h" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} @@ -4634,11 +4609,6 @@ runtime/PoolAllocator/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/runtime/PoolAllocator/Makefile runtime/PoolAllocator/Makefile ;; runtime/FreeListAllocator/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/runtime/FreeListAllocator/Makefile runtime/FreeListAllocator/Makefile ;; test/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/test/Makefile test/Makefile ;; - test/TEST.poolalloc.Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/test/TEST.poolalloc.Makefile test/TEST.poolalloc.Makefile ;; - test/TEST.pavtl.Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/test/TEST.pavtl.Makefile test/TEST.pavtl.Makefile ;; - test/TEST.perf.Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/test/TEST.perf.Makefile test/TEST.perf.Makefile ;; - test/TEST.p4perf.Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/test/TEST.p4perf.Makefile test/TEST.p4perf.Makefile ;; - test/TEST.strace.Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/test/TEST.strace.Makefile test/TEST.strace.Makefile ;; esac done _ACEOF From criswell at cs.uiuc.edu Fri May 27 15:22:23 2005 From: criswell at cs.uiuc.edu (John Criswell) Date: Fri, 27 May 2005 15:22:23 -0500 Subject: [llvm-commits] CVS: llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.cpp Message-ID: <200505272022.PAA28922@choi.cs.uiuc.edu> Changes in directory llvm-poolalloc/runtime/FL2Allocator: PoolAllocator.cpp updated: 1.48 -> 1.49 --- Log message: When creating a new pointer compression pool, stagger the beginning of the pool by an extra node. This has the effect of ensuring that pools can be aligned on different page boundaries, reducing cache conflicts (in theory). --- Diffs of the changes: (+7 -1) PoolAllocator.cpp | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletion(-) Index: llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.cpp diff -u llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.cpp:1.48 llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.cpp:1.49 --- llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.cpp:1.48 Wed May 18 14:56:30 2005 +++ llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.cpp Fri May 27 15:21:35 2005 @@ -883,6 +883,8 @@ unsigned DeclaredSize, unsigned ObjAlignment) { poolinit_internal(Pool, DeclaredSize, ObjAlignment); + static int count=0; + // Create the pool. We have to do this eagerly (instead of on the first // allocation), because code may want to eagerly copy the pool base into a // register. @@ -898,7 +900,11 @@ if (Pool->Slabs == 0) { // Didn't find an existing pool, create one. Pool->Slabs = (PoolSlab*) - AllocateSpaceWithMMAP(POOLSIZE, true); + AllocateSpaceWithMMAP(POOLSIZE + (DeclaredSize * count), true); + Pool->Slabs += (DeclaredSize * count); +#if 1 + count++; +#endif DO_IF_TRACE(fprintf(stderr, "RESERVED ADDR SPACE: %p -> %p\n", Pool->Slabs, (char*)Pool->Slabs+POOLSIZE)); } From criswell at cs.uiuc.edu Fri May 27 15:46:36 2005 From: criswell at cs.uiuc.edu (John Criswell) Date: Fri, 27 May 2005 15:46:36 -0500 Subject: [llvm-commits] CVS: llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.cpp Message-ID: <200505272046.PAA28966@choi.cs.uiuc.edu> Changes in directory llvm-poolalloc/runtime/FL2Allocator: PoolAllocator.cpp updated: 1.49 -> 1.50 --- Log message: Change the stagger value to be unsigned to prevent wrap-around bugs. Wrap the stagger value back to zero if we stagger more than the size of the pool. This should prevent waste of the virtual address space in case that the program has a lot of pools. Added comments and renamed variables to be more meaningful. --- Diffs of the changes: (+23 -6) PoolAllocator.cpp | 29 +++++++++++++++++++++++------ 1 files changed, 23 insertions(+), 6 deletions(-) Index: llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.cpp diff -u llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.cpp:1.49 llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.cpp:1.50 --- llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.cpp:1.49 Fri May 27 15:21:35 2005 +++ llvm-poolalloc/runtime/FL2Allocator/PoolAllocator.cpp Fri May 27 15:46:20 2005 @@ -10,6 +10,8 @@ // This file is one possible implementation of the LLVM pool allocator runtime // library. // +// FIXME: +// The pointer compression functions are not thread safe. //===----------------------------------------------------------------------===// #include "PoolAllocator.h" @@ -883,7 +885,8 @@ unsigned DeclaredSize, unsigned ObjAlignment) { poolinit_internal(Pool, DeclaredSize, ObjAlignment); - static int count=0; + // The number of nodes to stagger in the mmap'ed pool + static unsigned stagger=0; // Create the pool. We have to do this eagerly (instead of on the first // allocation), because code may want to eagerly copy the pool base into a @@ -897,14 +900,28 @@ break; } + // + // Wrap the stagger value back to zero if we're past the size of the pool. + // This way, we always reserve less than 2*POOLSIZE of the virtual address + // space. + // + if ((stagger * DeclaredSize) >= POOLSIZE) + stagger = 0; + if (Pool->Slabs == 0) { + // // Didn't find an existing pool, create one. + // + // To create a pool, we stagger the beginning of the pool so that pools + // do not end up starting on the same page boundary (creating extra cache + // conflicts). + // Pool->Slabs = (PoolSlab*) - AllocateSpaceWithMMAP(POOLSIZE + (DeclaredSize * count), true); - Pool->Slabs += (DeclaredSize * count); -#if 1 - count++; -#endif + AllocateSpaceWithMMAP(POOLSIZE + (DeclaredSize * stagger), true); + Pool->Slabs += (DeclaredSize * stagger); + + // Increase the stagger amount by one node. + stagger++; DO_IF_TRACE(fprintf(stderr, "RESERVED ADDR SPACE: %p -> %p\n", Pool->Slabs, (char*)Pool->Slabs+POOLSIZE)); } From reid at x10sys.com Sat May 28 19:49:37 2005 From: reid at x10sys.com (Reid Spencer) Date: Sat, 28 May 2005 19:49:37 -0500 Subject: [llvm-commits] CVS: llvm/Makefile Message-ID: <200505290049.TAA27868@zion.cs.uiuc.edu> Changes in directory llvm: Makefile updated: 1.49 -> 1.50 --- Log message: Make sure the tools get built if no build target is specified. --- Diffs of the changes: (+1 -1) Makefile | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/Makefile diff -u llvm/Makefile:1.49 llvm/Makefile:1.50 --- llvm/Makefile:1.49 Wed May 25 16:03:17 2005 +++ llvm/Makefile Sat May 28 19:49:24 2005 @@ -13,7 +13,7 @@ DIRS += tools else ifneq ($(MAKECMDGOALS),libs-only) - DIRS += runtime docs + DIRS += tools runtime docs OPTIONAL_DIRS = examples projects endif endif From reid at x10sys.com Sun May 29 21:30:15 2005 From: reid at x10sys.com (Reid Spencer) Date: Sun, 29 May 2005 21:30:15 -0500 Subject: [llvm-commits] CVS: llvm-www/ProjectsWithLLVM/index.html Message-ID: <200505300230.VAA11405@zion.cs.uiuc.edu> Changes in directory llvm-www/ProjectsWithLLVM: index.html updated: 1.23 -> 1.24 --- Log message: Update the blurb on XPS relative to the new 0.2 release. --- Diffs of the changes: (+21 -24) index.html | 45 +++++++++++++++++++++------------------------ 1 files changed, 21 insertions(+), 24 deletions(-) Index: llvm-www/ProjectsWithLLVM/index.html diff -u llvm-www/ProjectsWithLLVM/index.html:1.23 llvm-www/ProjectsWithLLVM/index.html:1.24 --- llvm-www/ProjectsWithLLVM/index.html:1.23 Mon May 16 00:16:54 2005 +++ llvm-www/ProjectsWithLLVM/index.html Sun May 29 21:30:03 2005 @@ -153,21 +153,18 @@
-

The XPS project's purpose is to provide a comprehensive application -programming platform that will make development of high-quality Internet-aware -applications easier and accessible to the non-programmer. This project also -seeks to bring programming of quality applications into the mainstream. Today's -programming practices are somewhat haphazard and often lead to poor results, if -not failed projects. XPS aims to change all that. Although somewhat audacious in -scope, XPS will lead both application developers and users to a much richer use -of their computing resources. We envision a time when using a computer and -programming it to do knew things are synonymous because the programming part is -simple.

+

The XPS project's purpose is to making programming computers easier by +raising the level of abstraction in programming languages beyond the current +practice. By using XML as a means for extensibility, XPS will support both +meta-programming and domain engineering. In particular, it will make the +creation of new Domain-Specific Languages very easy. By moving the programming +abstraction into to the problem domain, the "impedance mis-match" between the +problem domain and the solution domain is all but eliminated.

XPS combines an XML-based programming language, XPL, with a robust virtual -machine making it easier to develop Internet-aware applications by hiding all -the "computer science" and increasing the level of abstraction without losing -performance. True to its name, XPL is highly extensible. It permits extension of +machine making it easier to develop applications by hiding all the "computer +science" and increasing the level of abstraction without losing performance. +True to its name, XPL is highly extensible. It permits extension of both the programming language and the virtual machine with relative ease. Somewhat counter-intuitively, XPL is not a particularly programmer friendly language. It is designed to be fast, efficient, and easily compilable. It is @@ -178,17 +175,17 @@ computers without having to learn complicated programming languages or understand the tenets of computer science.

-

Currently, XPS is under development. It is nearing its 0.2 release which will -include a basic XPL compiler and virtual machine. The decision to use LLVM was -made in November, 2003 as it provides a much simpler and more modern compiler -infrastructure than the other open source alternative, GCC. Using LLVM for the -"back end" of XPS will accelerate the development of XPS because many of the -compilation and execution details are taken care of by LLVM.

- -

Further information about XPS can be obtained at http://extprosys.sourceforge.net/. -This information is somewhat dated but may provide an overview. XPS is getting -a new home on the Internet soon. We'll update this link when its available.

+

Currently, XPS is under development. It has just completed its 0.2.0 release +which includes a basic XPL compiler that can reproduce its XPL input. The next +release, 0.3.0 (Summer 2005) will compile XPL to executable code via LLVM's +facilities. The decision to use LLVM was made in November, 2003 as it provides +a much simpler and more modern compiler infrastructure than the other open +source alternatives. Using LLVM for the "back end" of XPS will accelerate the +development of XPS because many of the compilation and execution details are +taken care of by LLVM.

+ +

Further information about XPS can be obtained at +http://x-p-s.org/.