diff --git a/utils/release/test-release.sh b/utils/release/test-release.sh
new file mode 100644
index 0000000..1832dc4
--- /dev/null
+++ b/utils/release/test-release.sh
@@ -0,0 +1,391 @@
+#!/bin/bash
+#===-- test-release.sh - Test the LLVM release candidates ------------------===#
+#
+#                     The LLVM Compiler Infrastructure
+#
+# This file is distributed under the University of Illinois Open Source
+# License.
+#
+#===------------------------------------------------------------------------===#
+#
+# Download, build, and test the release candidate for an LLVM release.
+#
+#===------------------------------------------------------------------------===#
+
+set -e
+
+Release=""
+Release_no_dot=""
+RC=""
+do_checkout="yes"
+do_ada="no"
+do_fortran="yes"
+do_64bit="yes"
+BuildDir="`pwd`"
+
+# Figure out how many make processes to run.
+NumJobs=`sysctl -n hw.activecpu 2> /dev/null || true`
+if [ -z "$NumJobs" ]; then
+    NumJobs=`sysctl -n hw.ncpu 2> /dev/null || true`
+fi
+if [ -z "$NumJobs" ]; then
+    NumJobs=`grep -c processor /proc/cpuinfo 2> /dev/null || true`
+fi
+
+function usage() {
+    echo "usage: `basename $0` -release X.Y -rc NUM [OPTIONS]"
+    echo ""
+    echo " -release X.Y      The release number to test."
+    echo " -rc NUM           The pre-release candidate number."
+    echo " -j NUM            Number of compile jobs to run. [default: 3]"
+    echo " -build-dir DIR    Directory to perform testing in. [default: pwd]"
+    echo " -no-checkout      Don't checkout the sources from SVN."
+    echo " -no-64bit         Don't test the 64-bit version. [default: yes]"
+    echo " -ada              Build Ada. [default: no]"
+    echo " -disable-fortran  Disable Fortran build. [default: build]"
+}
+
+while [ $# -gt 0 ]; do
+    case $1 in
+        -release | --release )
+            shift
+            Release="$1"
+            Release_no_dot="`echo $1 | sed -e 's,\.,,'`"
+            ;;
+        -rc | --rc | -RC | --RC )
+            shift
+            RC=$1
+            ;;
+        -j* )
+            NumJobs="`echo $1 | sed -e 's,-j\([0-9]*\),\1,g'`"
+            if [ -z "$NumJobs" ]; then
+                shift
+                NumJobs="$1"
+            fi
+            ;;
+        -build-dir | --build-dir | -builddir | --builddir )
+            shift
+            BuildDir="$1"
+            ;;
+        -no-checkout | --no-checkout )
+            do_checkout="no"
+            ;;
+        -no-64bit | --no-64bit )
+            do_64bit="no"
+            ;;
+        -ada | --ada )
+            do_ada="yes"
+            ;;
+        -disable-fortran | --disable-fortran )
+            echo "WARNING: Do you *really* need to disable Fortran?"
+            sleep 5
+            do_fortran="no"
+            ;;
+        -help | --help | -h | --h | -\? )
+            usage
+            exit 0
+            ;;
+        * )
+            echo "unknown option: $1"
+            usage
+            exit 1
+            ;;
+    esac
+    shift
+done
+
+# Check required arguments.
+if [ -z "$Release" ]; then
+    echo "No release number specified!"
+    exit 1
+fi
+if [ -z "$RC" ]; then
+    echo "No release candidate number specified!"
+    exit 1
+fi
+
+if [ -z "$NumJobs" ]; then
+    NumJobs=3
+fi
+
+# Location of sources.
+llvmCore_srcdir=$BuildDir/llvmCore-$Release-rc$RC.src
+llvmgcc42_srcdir=$BuildDir/llvmgcc42-$Release-rc$RC.src
+
+# Location of log files.
+LogDirName="$Release-rc$RC.logs"
+LogDir=$BuildDir/$LogDirName
+mkdir -p $LogDir
+
+# SVN URLs for the sources.
+Base_url="http://llvm.org/svn/llvm-project"
+llvmCore_RC_url="$Base_url/llvm/tags/RELEASE_$Release_no_dot/rc$RC"
+llvmgcc42_RC_url="$Base_url/llvm-gcc-4.2/tags/RELEASE_$Release_no_dot/rc$RC"
+clang_RC_url="$Base_url/cfe/tags/RELEASE_$Release_no_dot/rc$RC"
+test_suite_RC_url="$Base_url/test-suite/tags/RELEASE_$Release_no_dot/rc$RC"
+
+# Make sure that the URLs are valid.
+function check_valid_urls() {
+    echo "# Validating SVN URLs"
+    if ! svn ls $llvmCore_RC_url > /dev/null 2>&1 ; then
+        echo "llvm $Release release candidate $RC doesn't exist!"
+        exit 1
+    fi
+    if ! svn ls $llvmgcc42_RC_url > /dev/null 2>&1 ; then
+        echo "llvm-gcc-4.2 $Release release candidate $RC doesn't exist!"
+        exit 1
+    fi
+    if ! svn ls $clang_RC_url > /dev/null 2>&1 ; then
+        echo "clang $Release release candidate $RC doesn't exist!"
+        exit 1
+    fi
+    if ! svn ls $test_suite_RC_url > /dev/null 2>&1 ; then
+        echo "test-suite $Release release candidate $RC doesn't exist!"
+        exit 1
+    fi
+}
+
+# Export sources to the the build directory.
+function export_sources() {
+    check_valid_urls
+
+    echo "# Exporting llvm $Release-RC$RC sources"
+    svn export -q $llvmCore_RC_url $llvmCore_srcdir
+    echo "# Exporting llvm-gcc-4.2 $Release-rc$RC  sources"
+    svn export -q $llvmgcc42_RC_url $llvmgcc42_srcdir
+    echo "# Exporting clang $Release-rc$RC sources"
+    svn export -q $clang_RC_url $llvmCore_srcdir/tools/clang
+    echo "# Exporting llvm test suite $Release-rc$RC sources"
+    svn export -q $test_suite_RC_url $llvmCore_srcdir/projects/llvm-test
+}
+
+function configure_llvmCore() {
+    Phase="$1"
+    Flavor="$2"
+    ObjDir="$3"
+    InstallDir="$4"
+    llvmgccDir="$5"
+
+    case $Flavor in
+        Release | Release-64 )
+            Optimized="yes"
+            Assertions="yes"
+            ;;
+        Release-Asserts )
+            Optimized="yes"
+            Assertions="no"
+            ;;
+        Debug )
+            Optimized="no"
+            Assertions="yes"
+            ;;
+        * )
+            echo "# Invalid flavor $Flavor!"
+            echo ""
+            return
+            ;;
+    esac
+
+    cd $ObjDir
+    echo "# Configuring llvm $Release-rc$RC $Flavor"
+    echo "# $llvmCore_srcdir/configure --prefix=$llvmCore_installdir \
+        --enable-optimized=$Optimized \
+        --enable-assertions=$Assertions \
+        --with-llvmgccdir=$llvmgccDir"
+    $llvmCore_srcdir/configure --prefix=$InstallDir \
+        --enable-optimized=$Optimized \
+        --enable-assertions=$Assertions \
+        --with-llvmgccdir=$llvmgccDir \
+        > $LogDir/llvm.configure.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1
+    cd -
+}
+
+function build_llvmCore() {
+    Phase="$1"
+    Flavor="$2"
+    ObjDir="$3"
+    ExtraOpts=""
+
+    CompilerFlags=""
+    if [ "$Phase" = "2" ]; then
+        CompilerFlags="CC=$llvmgccDir/bin/llvm-gcc CXX=$llvmgccDir/bin/llvm-g++"
+    fi
+    if [ "$Flavor" = "Release-64" ]; then
+        ExtraOpts="EXTRA_OPTIONS=-m64"
+    fi
+
+    cd $ObjDir
+    echo "# Compiling llvm $Release-rc$RC $Flavor"
+    echo "# make -j $NumJobs VERBOSE=1 $ExtraOpts"
+    make -j $NumJobs VERBOSE=1 $ExtraOpts $CompilerFlags \
+        > $LogDir/llvm.make.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1
+
+    echo "# Installing llvm $Release-rc$RC $Flavor"
+    echo "# make install"
+    make install \
+        > $LogDir/llvm.install.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1
+    cd -
+}
+
+function test_llvmCore() {
+    Phase="$1"
+    Flavor="$2"
+    ObjDir="$3"
+
+    cd $ObjDir
+    make check \
+        > $LogDir/llvm.check.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1
+    make -C tools/clang test \
+        > $LogDir/clang.check.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1
+    make unittests \
+        > $LogDir/llvm.unittests.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1
+    cd -
+}
+
+function configure_llvm_gcc() {
+    Phase="$1"
+    Flavor="$2"
+    ObjDir="$3"
+    InstallDir="$4"
+    llvmObjDir="$5"
+
+    languages="c,c++,objc,obj-c++"
+    if [ "$do_fortran" = "yes" ]; then
+        languages="$languages,fortran"
+    fi
+    if [ "$do_ada" = "yes" ]; then
+        languages="$languages,ada"
+    fi
+
+    cd $ObjDir
+    echo "# Configuring llvm-gcc $Release-rc$RC $Flavor"
+    echo "# $llvmgcc42_srcdir/configure --prefix=$InstallDir \
+        --program-prefix=llvm- --enable-llvm=$llvmObjDir \
+        --enable-languages=$languages \
+        --with-gxx-include-dir=/usr/include/c++/4.2.1"
+    $llvmgcc42_srcdir/configure --prefix=$InstallDir \
+        --program-prefix=llvm- --enable-llvm=$llvmObjDir \
+        --enable-languages=$languages \
+        --with-gxx-include-dir=/usr/include/c++/4.2.1 \
+        > $LogDir/llvm-gcc.configure.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1
+    cd -
+}
+
+function build_llvm_gcc() {
+    Phase="$1"
+    Flavor="$2"
+    ObjDir="$3"
+    llvmgccDir="$4"
+
+    CompilerFlags=""
+    if [ "$Phase" = "2" ]; then
+        CompilerFlags="CC=$llvmgccDir/bin/llvm-gcc CXX=$llvmgccDir/bin/llvm-g++"
+    fi
+
+    cd $ObjDir
+    echo "# Compiling llvm-gcc $Release-rc$RC $Flavor"
+    echo "# make -j $NumJobs bootstrap LLVM_VERSION_INFO=$Release"
+    make -j $NumJobs bootstrap LLVM_VERSION_INFO=$Release $CompilerFlags \
+        > $LogDir/llvm-gcc.make.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1
+
+    echo "# Installing llvm-gcc $Release-rc$RC $Flavor"
+    echo "# make install"
+    make install \
+        > $LogDir/llvm-gcc.install.$Release-rc$RC-Phase$Phase-$Flavor.log 2>&1
+    cd -
+}
+
+if [ "$do_checkout" = "yes" ]; then
+    export_sources
+fi
+
+(
+Flavors="Debug Release Release-Asserts"
+if [ "$do_64bit" = "yes" ]; then
+    Flavors="$Flavors Release-64"
+fi
+
+for Flavor in $Flavors ; do
+    echo ""
+    echo ""
+    echo "********************************************************************************"
+    echo "  Release:     $Release-rc$RC"
+    echo "  Build:       $Flavor"
+    echo "  System Info: "
+    echo "    `uname -a`"
+    echo "********************************************************************************"
+    echo ""
+
+    llvmCore_phase1_objdir=$BuildDir/Phase1/$Flavor/llvmCore-$Release-rc$RC.obj
+    llvmCore_phase1_installdir=$BuildDir/Phase1/$Flavor/llvmCore-$Release-rc$RC.install
+
+    llvmCore_phase2_objdir=$BuildDir/Phase2/$Flavor/llvmCore-$Release-rc$RC.obj
+    llvmCore_phase2_installdir=$BuildDir/Phase2/$Flavor/llvmCore-$Release-rc$RC.install
+
+    rm -rf $llvmCore_phase1_objdir
+    rm -rf $llvmCore_phase1_installdir
+    rm -rf $llvmCore_phase2_objdir
+    rm -rf $llvmCore_phase2_installdir
+
+    mkdir -p $llvmCore_phase1_objdir
+    mkdir -p $llvmCore_phase1_installdir
+    mkdir -p $llvmCore_phase2_objdir
+    mkdir -p $llvmCore_phase2_installdir
+
+    llvmgcc42_phase1_objdir=$BuildDir/Phase1/$Flavor/llvmgcc42-$Release-rc$RC.obj
+    llvmgcc42_phase1_installdir=$BuildDir/Phase1/$Flavor/llvmgcc42-$Release-rc$RC.install
+
+    llvmgcc42_phase2_objdir=$BuildDir/Phase2/$Flavor/llvmgcc42-$Release-rc$RC.obj
+    llvmgcc42_phase2_installdir=$BuildDir/Phase2/$Flavor/llvmgcc42-$Release-rc$RC.install
+
+    rm -rf $llvmgcc42_phase1_objdir
+    rm -rf $llvmgcc42_phase1_installdir
+    rm -rf $llvmgcc42_phase2_objdir
+    rm -rf $llvmgcc42_phase2_installdir
+
+    mkdir -p $llvmgcc42_phase1_objdir
+    mkdir -p $llvmgcc42_phase1_installdir
+    mkdir -p $llvmgcc42_phase2_objdir
+    mkdir -p $llvmgcc42_phase2_installdir
+
+    ############################################################################
+    # Phase 1: Build llvmCore and llvmgcc42
+    echo "# Phase 1: Building llvmCore"
+    configure_llvmCore 1 $Flavor \
+        $llvmCore_phase1_objdir $llvmCore_phase1_installdir \
+        $llvmgcc42_phase1_installdir
+    build_llvmCore 1 $Flavor \
+        $llvmCore_phase1_objdir
+
+    echo "# Phase 1: Building llvmgcc42"
+    configure_llvm_gcc 1 $Flavor \
+        $llvmgcc42_phase1_objdir $llvmgcc42_phase1_installdir \
+        $llvmCore_phase1_objdir
+    build_llvm_gcc 1 $Flavor \
+        $llvmgcc42_phase1_objdir $llvmgcc42_phase1_installdir
+
+    ############################################################################
+    # Phase 2: Build llvmCore with newly built llvmgcc42 from phase 1.
+    echo "# Phase 2: Building llvmCore"
+    configure_llvmCore 2 $Flavor \
+        $llvmCore_phase2_objdir $llvmCore_phase2_installdir \
+        $llvmgcc42_phase1_installdir
+    build_llvmCore 2 $Flavor \
+        $llvmCore_phase2_objdir
+
+    echo "# Phase 2: Building llvmgcc42"
+    configure_llvm_gcc 2 $Flavor \
+        $llvmgcc42_phase2_objdir $llvmgcc42_phase2_installdir \
+        $llvmCore_phase2_objdir
+    build_llvm_gcc 2 $Flavor \
+        $llvmgcc42_phase2_objdir $llvmgcc42_phase1_installdir
+
+    echo "# Testing - built with llvmgcc42"
+    test_llvmCore 2 $Flavor $llvmCore_phase2_objdir
+done
+) 2>&1 | tee $LogDir/testing.$Release-rc$RC.log
+
+# Woo hoo!
+echo "### Testing Finished ###"
+echo "### Logs: $LogDir"
+exit 0
