| Index: tools/clang/scripts/update.sh
|
| diff --git a/tools/clang/scripts/update.sh b/tools/clang/scripts/update.sh
|
| index 3a70e74c1b3ffafa2993bfc6b8c2675489f199ca..fcc552041a7f670d4f04784d95e495afe37b16e2 100755
|
| --- a/tools/clang/scripts/update.sh
|
| +++ b/tools/clang/scripts/update.sh
|
| @@ -8,15 +8,17 @@
|
| # Do NOT CHANGE this if you don't know what you're doing -- see
|
| # https://code.google.com/p/chromium/wiki/UpdatingClang
|
| # Reverting problematic clang rolls is safe, though.
|
| -CLANG_REVISION=198389
|
| +CLANG_REVISION=202554
|
|
|
| THIS_DIR="$(dirname "${0}")"
|
| LLVM_DIR="${THIS_DIR}/../../../third_party/llvm"
|
| LLVM_BUILD_DIR="${LLVM_DIR}/../llvm-build"
|
| LLVM_BOOTSTRAP_DIR="${LLVM_DIR}/../llvm-bootstrap"
|
| +LLVM_BOOTSTRAP_INSTALL_DIR="${LLVM_DIR}/../llvm-bootstrap-install"
|
| CLANG_DIR="${LLVM_DIR}/tools/clang"
|
| CLANG_TOOLS_EXTRA_DIR="${CLANG_DIR}/tools/extra"
|
| COMPILER_RT_DIR="${LLVM_DIR}/projects/compiler-rt"
|
| +LIBCXX_DIR="${LLVM_DIR}/projects/libcxx"
|
| ANDROID_NDK_DIR="${LLVM_DIR}/../android_tools/ndk"
|
| STAMP_FILE="${LLVM_BUILD_DIR}/cr_build_revision"
|
|
|
| @@ -259,6 +261,669 @@ echo Getting compiler-rt r"${CLANG_REVISION}" in "${COMPILER_RT_DIR}"
|
| svn co --force "${LLVM_REPO_URL}/compiler-rt/trunk@${CLANG_REVISION}" \
|
| "${COMPILER_RT_DIR}"
|
|
|
| +# clang needs a libc++ checkout, else -stdlib=libc++ won't find includes
|
| +# (i.e. this is needed for bootstrap builds).
|
| +if [ "${OS}" = "Darwin" ]; then
|
| + echo Getting libc++ r"${CLANG_REVISION}" in "${LIBCXX_DIR}"
|
| + svn co --force "${LLVM_REPO_URL}/libcxx/trunk@${CLANG_REVISION}" \
|
| + "${LIBCXX_DIR}"
|
| +fi
|
| +
|
| +# Apply patch for test failing with --disable-pthreads (llvm.org/PR11974)
|
| +cd "${CLANG_DIR}"
|
| +svn revert test/Index/crash-recovery-modules.m
|
| +cat << 'EOF' |
|
| +--- third_party/llvm/tools/clang/test/Index/crash-recovery-modules.m (revision 202554)
|
| ++++ third_party/llvm/tools/clang/test/Index/crash-recovery-modules.m (working copy)
|
| +@@ -12,6 +12,8 @@
|
| +
|
| + // REQUIRES: crash-recovery
|
| + // REQUIRES: shell
|
| ++// XFAIL: *
|
| ++// (PR11974)
|
| +
|
| + @import Crash;
|
| +EOF
|
| +patch -p4
|
| +cd -
|
| +
|
| +# Temporary patches to make build on android work.
|
| +# Merge LLVM r202793, r203601
|
| +cd "${COMPILER_RT_DIR}"
|
| +svn revert lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc
|
| +svn revert make/platform/clang_linux.mk
|
| +cat << 'EOF' |
|
| +Index: compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc
|
| +===================================================================
|
| +--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc (original)
|
| ++++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc Tue Mar 11 15:23:59 2014
|
| +@@ -32,18 +32,10 @@
|
| + // C++ demangling function, as required by Itanium C++ ABI. This is weak,
|
| + // because we do not require a C++ ABI library to be linked to a program
|
| + // using sanitizers; if it's not present, we'll just use the mangled name.
|
| +-//
|
| +-// On Android, this is not weak, because we are using shared runtime library
|
| +-// AND static libstdc++, and there is no good way to conditionally export
|
| +-// __cxa_demangle. By making this a non-weak symbol, we statically link
|
| +-// __cxa_demangle into ASan runtime library.
|
| + namespace __cxxabiv1 {
|
| +- extern "C"
|
| +-#if !SANITIZER_ANDROID
|
| +- SANITIZER_WEAK_ATTRIBUTE
|
| +-#endif
|
| +- char *__cxa_demangle(const char *mangled, char *buffer, size_t *length,
|
| +- int *status);
|
| ++ extern "C" SANITIZER_WEAK_ATTRIBUTE
|
| ++ char *__cxa_demangle(const char *mangled, char *buffer,
|
| ++ size_t *length, int *status);
|
| + }
|
| +
|
| + namespace __sanitizer {
|
| +@@ -55,7 +47,7 @@ static const char *DemangleCXXABI(const
|
| + // own demangler (libc++abi's implementation could be adapted so that
|
| + // it does not allocate). For now, we just call it anyway, and we leak
|
| + // the returned value.
|
| +- if (SANITIZER_ANDROID || &__cxxabiv1::__cxa_demangle)
|
| ++ if (__cxxabiv1::__cxa_demangle)
|
| + if (const char *demangled_name =
|
| + __cxxabiv1::__cxa_demangle(name, 0, 0, 0))
|
| + return demangled_name;
|
| +
|
| +Index: compiler-rt/trunk/make/platform/clang_linux.mk
|
| +===================================================================
|
| +--- compiler-rt/trunk/make/platform/clang_linux.mk (original)
|
| ++++ compiler-rt/trunk/make/platform/clang_linux.mk Tue Mar 4 01:17:38 2014
|
| +@@ -110,9 +110,10 @@ ANDROID_COMMON_FLAGS := -target arm-linu
|
| + --sysroot=$(LLVM_ANDROID_TOOLCHAIN_DIR)/sysroot \
|
| + -B$(LLVM_ANDROID_TOOLCHAIN_DIR)
|
| + CFLAGS.asan-arm-android := $(CFLAGS) -fPIC -fno-builtin \
|
| +- $(ANDROID_COMMON_FLAGS) -fno-rtti
|
| ++ $(ANDROID_COMMON_FLAGS) -fno-rtti \
|
| ++ -I$(ProjSrcRoot)/third_party/android/include
|
| + LDFLAGS.asan-arm-android := $(LDFLAGS) $(ANDROID_COMMON_FLAGS) -ldl -lm -llog \
|
| +- -Wl,-soname=libclang_rt.asan-arm-android.so -Wl,-z,defs
|
| ++ -lstdc++ -Wl,-soname=libclang_rt.asan-arm-android.so -Wl,-z,defs
|
| +
|
| + # Use our stub SDK as the sysroot to support more portable building. For now we
|
| + # just do this for the core module, because the stub SDK doesn't have
|
| +EOF
|
| +patch -p2
|
| +cd -
|
| +
|
| +cd "${LLVM_DIR}"
|
| +# Merge LLVM r203635
|
| +cat << 'EOF' |
|
| +Index: lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
|
| +===================================================================
|
| +--- lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
|
| ++++ lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
|
| +@@ -54,4 +54,7 @@
|
| + UseParensForSymbolVariant = true;
|
| +
|
| + UseIntegratedAssembler = true;
|
| ++
|
| ++ // gas doesn't handle VFP register names in cfi directives.
|
| ++ DwarfRegNumForCFI = true;
|
| + }
|
| +Index: test/CodeGen/ARM/debug-frame-large-stack.ll
|
| +===================================================================
|
| +--- test/CodeGen/ARM/debug-frame-large-stack.ll
|
| ++++ test/CodeGen/ARM/debug-frame-large-stack.ll
|
| +@@ -42,8 +42,8 @@
|
| + ; CHECK-ARM: .cfi_startproc
|
| + ; CHECK-ARM: push {r4, r5}
|
| + ; CHECK-ARM: .cfi_def_cfa_offset 8
|
| +-; CHECK-ARM: .cfi_offset r5, -4
|
| +-; CHECK-ARM: .cfi_offset r4, -8
|
| ++; CHECK-ARM: .cfi_offset 5, -4
|
| ++; CHECK-ARM: .cfi_offset 4, -8
|
| + ; CHECK-ARM: sub sp, sp, #72
|
| + ; CHECK-ARM: sub sp, sp, #4096
|
| + ; CHECK-ARM: .cfi_def_cfa_offset 4176
|
| +@@ -54,7 +54,7 @@
|
| + ; CHECK-ARM-FP_ELIM: push {r4, r5}
|
| + ; CHECK-ARM-FP_ELIM: .cfi_def_cfa_offset 8
|
| + ; CHECK-ARM-FP_ELIM: .cfi_offset 54, -4
|
| +-; CHECK-ARM-FP_ELIM: .cfi_offset r4, -8
|
| ++; CHECK-ARM-FP_ELIM: .cfi_offset 4, -8
|
| + ; CHECK-ARM-FP_ELIM: sub sp, sp, #72
|
| + ; CHECK-ARM-FP_ELIM: sub sp, sp, #4096
|
| + ; CHECK-ARM-FP_ELIM: .cfi_def_cfa_offset 4176
|
| +@@ -73,11 +73,11 @@
|
| + ; CHECK-ARM: .cfi_startproc
|
| + ; CHECK-ARM: push {r4, r5, r11}
|
| + ; CHECK-ARM: .cfi_def_cfa_offset 12
|
| +-; CHECK-ARM: .cfi_offset r11, -4
|
| +-; CHECK-ARM: .cfi_offset r5, -8
|
| +-; CHECK-ARM: .cfi_offset r4, -12
|
| ++; CHECK-ARM: .cfi_offset 11, -4
|
| ++; CHECK-ARM: .cfi_offset 5, -8
|
| ++; CHECK-ARM: .cfi_offset 4, -12
|
| + ; CHECK-ARM: add r11, sp, #8
|
| +-; CHECK-ARM: .cfi_def_cfa r11, 4
|
| ++; CHECK-ARM: .cfi_def_cfa 11, 4
|
| + ; CHECK-ARM: sub sp, sp, #20
|
| + ; CHECK-ARM: sub sp, sp, #805306368
|
| + ; CHECK-ARM: bic sp, sp, #15
|
| +@@ -87,11 +87,11 @@
|
| + ; CHECK-ARM-FP-ELIM: .cfi_startproc
|
| + ; CHECK-ARM-FP-ELIM: push {r4, r5, r11}
|
| + ; CHECK-ARM-FP-ELIM: .cfi_def_cfa_offset 12
|
| +-; CHECK-ARM-FP-ELIM: .cfi_offset r11, -4
|
| +-; CHECK-ARM-FP-ELIM: .cfi_offset r5, -8
|
| +-; CHECK-ARM-FP-ELIM: .cfi_offset r4, -12
|
| ++; CHECK-ARM-FP-ELIM: .cfi_offset 11, -4
|
| ++; CHECK-ARM-FP-ELIM: .cfi_offset 5, -8
|
| ++; CHECK-ARM-FP-ELIM: .cfi_offset 4, -12
|
| + ; CHECK-ARM-FP-ELIM: add r11, sp, #8
|
| +-; CHECK-ARM-FP-ELIM: .cfi_def_cfa r11, 4
|
| ++; CHECK-ARM-FP-ELIM: .cfi_def_cfa 11, 4
|
| + ; CHECK-ARM-FP-ELIM: sub sp, sp, #20
|
| + ; CHECK-ARM-FP-ELIM: sub sp, sp, #805306368
|
| + ; CHECK-ARM-FP-ELIM: bic sp, sp, #15
|
| +Index: test/CodeGen/ARM/debug-frame-vararg.ll
|
| +===================================================================
|
| +--- test/CodeGen/ARM/debug-frame-vararg.ll
|
| ++++ test/CodeGen/ARM/debug-frame-vararg.ll
|
| +@@ -66,8 +66,8 @@
|
| + ; CHECK-FP: .cfi_def_cfa_offset 16
|
| + ; CHECK-FP: push {r4, lr}
|
| + ; CHECK-FP: .cfi_def_cfa_offset 24
|
| +-; CHECK-FP: .cfi_offset lr, -20
|
| +-; CHECK-FP: .cfi_offset r4, -24
|
| ++; CHECK-FP: .cfi_offset 14, -20
|
| ++; CHECK-FP: .cfi_offset 4, -24
|
| + ; CHECK-FP: sub sp, sp, #8
|
| + ; CHECK-FP: .cfi_def_cfa_offset 32
|
| +
|
| +@@ -77,22 +77,22 @@
|
| + ; CHECK-FP-ELIM: .cfi_def_cfa_offset 16
|
| + ; CHECK-FP-ELIM: push {r4, r11, lr}
|
| + ; CHECK-FP-ELIM: .cfi_def_cfa_offset 28
|
| +-; CHECK-FP-ELIM: .cfi_offset lr, -20
|
| +-; CHECK-FP-ELIM: .cfi_offset r11, -24
|
| +-; CHECK-FP-ELIM: .cfi_offset r4, -28
|
| ++; CHECK-FP-ELIM: .cfi_offset 14, -20
|
| ++; CHECK-FP-ELIM: .cfi_offset 11, -24
|
| ++; CHECK-FP-ELIM: .cfi_offset 4, -28
|
| + ; CHECK-FP-ELIM: add r11, sp, #4
|
| +-; CHECK-FP-ELIM: .cfi_def_cfa r11, 24
|
| ++; CHECK-FP-ELIM: .cfi_def_cfa 11, 24
|
| +
|
| + ; CHECK-THUMB-FP-LABEL: sum
|
| + ; CHECK-THUMB-FP: .cfi_startproc
|
| + ; CHECK-THUMB-FP: sub sp, #16
|
| + ; CHECK-THUMB-FP: .cfi_def_cfa_offset 16
|
| + ; CHECK-THUMB-FP: push {r4, r5, r7, lr}
|
| + ; CHECK-THUMB-FP: .cfi_def_cfa_offset 32
|
| +-; CHECK-THUMB-FP: .cfi_offset lr, -20
|
| +-; CHECK-THUMB-FP: .cfi_offset r7, -24
|
| +-; CHECK-THUMB-FP: .cfi_offset r5, -28
|
| +-; CHECK-THUMB-FP: .cfi_offset r4, -32
|
| ++; CHECK-THUMB-FP: .cfi_offset 14, -20
|
| ++; CHECK-THUMB-FP: .cfi_offset 7, -24
|
| ++; CHECK-THUMB-FP: .cfi_offset 5, -28
|
| ++; CHECK-THUMB-FP: .cfi_offset 4, -32
|
| + ; CHECK-THUMB-FP: sub sp, #8
|
| + ; CHECK-THUMB-FP: .cfi_def_cfa_offset 40
|
| +
|
| +@@ -102,12 +102,12 @@
|
| + ; CHECK-THUMB-FP-ELIM: .cfi_def_cfa_offset 16
|
| + ; CHECK-THUMB-FP-ELIM: push {r4, r5, r7, lr}
|
| + ; CHECK-THUMB-FP-ELIM: .cfi_def_cfa_offset 32
|
| +-; CHECK-THUMB-FP-ELIM: .cfi_offset lr, -20
|
| +-; CHECK-THUMB-FP-ELIM: .cfi_offset r7, -24
|
| +-; CHECK-THUMB-FP-ELIM: .cfi_offset r5, -28
|
| +-; CHECK-THUMB-FP-ELIM: .cfi_offset r4, -32
|
| ++; CHECK-THUMB-FP-ELIM: .cfi_offset 14, -20
|
| ++; CHECK-THUMB-FP-ELIM: .cfi_offset 7, -24
|
| ++; CHECK-THUMB-FP-ELIM: .cfi_offset 5, -28
|
| ++; CHECK-THUMB-FP-ELIM: .cfi_offset 4, -32
|
| + ; CHECK-THUMB-FP-ELIM: add r7, sp, #8
|
| +-; CHECK-THUMB-FP-ELIM: .cfi_def_cfa r7, 24
|
| ++; CHECK-THUMB-FP-ELIM: .cfi_def_cfa 7, 24
|
| +
|
| + define i32 @sum(i32 %count, ...) {
|
| + entry:
|
| +Index: test/CodeGen/ARM/debug-frame.ll
|
| +===================================================================
|
| +--- test/CodeGen/ARM/debug-frame.ll
|
| ++++ test/CodeGen/ARM/debug-frame.ll
|
| +@@ -163,131 +163,131 @@
|
| + ; CHECK-FP: .cfi_startproc
|
| + ; CHECK-FP: push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
|
| + ; CHECK-FP: .cfi_def_cfa_offset 36
|
| +-; CHECK-FP: .cfi_offset lr, -4
|
| +-; CHECK-FP: .cfi_offset r11, -8
|
| +-; CHECK-FP: .cfi_offset r10, -12
|
| +-; CHECK-FP: .cfi_offset r9, -16
|
| +-; CHECK-FP: .cfi_offset r8, -20
|
| +-; CHECK-FP: .cfi_offset r7, -24
|
| +-; CHECK-FP: .cfi_offset r6, -28
|
| +-; CHECK-FP: .cfi_offset r5, -32
|
| +-; CHECK-FP: .cfi_offset r4, -36
|
| ++; CHECK-FP: .cfi_offset 14, -4
|
| ++; CHECK-FP: .cfi_offset 11, -8
|
| ++; CHECK-FP: .cfi_offset 10, -12
|
| ++; CHECK-FP: .cfi_offset 9, -16
|
| ++; CHECK-FP: .cfi_offset 8, -20
|
| ++; CHECK-FP: .cfi_offset 7, -24
|
| ++; CHECK-FP: .cfi_offset 6, -28
|
| ++; CHECK-FP: .cfi_offset 5, -32
|
| ++; CHECK-FP: .cfi_offset 4, -36
|
| + ; CHECK-FP: add r11, sp, #28
|
| +-; CHECK-FP: .cfi_def_cfa r11, 8
|
| ++; CHECK-FP: .cfi_def_cfa 11, 8
|
| + ; CHECK-FP: sub sp, sp, #28
|
| + ; CHECK-FP: .cfi_endproc
|
| +
|
| + ; CHECK-FP-ELIM-LABEL: _Z4testiiiiiddddd:
|
| + ; CHECK-FP-ELIM: .cfi_startproc
|
| + ; CHECK-FP-ELIM: push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
|
| + ; CHECK-FP-ELIM: .cfi_def_cfa_offset 36
|
| +-; CHECK-FP-ELIM: .cfi_offset lr, -4
|
| +-; CHECK-FP-ELIM: .cfi_offset r11, -8
|
| +-; CHECK-FP-ELIM: .cfi_offset r10, -12
|
| +-; CHECK-FP-ELIM: .cfi_offset r9, -16
|
| +-; CHECK-FP-ELIM: .cfi_offset r8, -20
|
| +-; CHECK-FP-ELIM: .cfi_offset r7, -24
|
| +-; CHECK-FP-ELIM: .cfi_offset r6, -28
|
| +-; CHECK-FP-ELIM: .cfi_offset r5, -32
|
| +-; CHECK-FP-ELIM: .cfi_offset r4, -36
|
| ++; CHECK-FP-ELIM: .cfi_offset 14, -4
|
| ++; CHECK-FP-ELIM: .cfi_offset 11, -8
|
| ++; CHECK-FP-ELIM: .cfi_offset 10, -12
|
| ++; CHECK-FP-ELIM: .cfi_offset 9, -16
|
| ++; CHECK-FP-ELIM: .cfi_offset 8, -20
|
| ++; CHECK-FP-ELIM: .cfi_offset 7, -24
|
| ++; CHECK-FP-ELIM: .cfi_offset 6, -28
|
| ++; CHECK-FP-ELIM: .cfi_offset 5, -32
|
| ++; CHECK-FP-ELIM: .cfi_offset 4, -36
|
| + ; CHECK-FP-ELIM: sub sp, sp, #28
|
| + ; CHECK-FP-ELIM: .cfi_def_cfa_offset 64
|
| + ; CHECK-FP-ELIM: .cfi_endproc
|
| +
|
| + ; CHECK-V7-FP-LABEL: _Z4testiiiiiddddd:
|
| + ; CHECK-V7-FP: .cfi_startproc
|
| + ; CHECK-V7-FP: push {r4, r11, lr}
|
| + ; CHECK-V7-FP: .cfi_def_cfa_offset 12
|
| +-; CHECK-V7-FP: .cfi_offset lr, -4
|
| +-; CHECK-V7-FP: .cfi_offset r11, -8
|
| +-; CHECK-V7-FP: .cfi_offset r4, -12
|
| ++; CHECK-V7-FP: .cfi_offset 14, -4
|
| ++; CHECK-V7-FP: .cfi_offset 11, -8
|
| ++; CHECK-V7-FP: .cfi_offset 4, -12
|
| + ; CHECK-V7-FP: add r11, sp, #4
|
| +-; CHECK-V7-FP: .cfi_def_cfa r11, 8
|
| ++; CHECK-V7-FP: .cfi_def_cfa 11, 8
|
| + ; CHECK-V7-FP: vpush {d8, d9, d10, d11, d12}
|
| +-; CHECK-V7-FP: .cfi_offset d12, -24
|
| +-; CHECK-V7-FP: .cfi_offset d11, -32
|
| +-; CHECK-V7-FP: .cfi_offset d10, -40
|
| +-; CHECK-V7-FP: .cfi_offset d9, -48
|
| +-; CHECK-V7-FP: .cfi_offset d8, -56
|
| ++; CHECK-V7-FP: .cfi_offset 268, -24
|
| ++; CHECK-V7-FP: .cfi_offset 267, -32
|
| ++; CHECK-V7-FP: .cfi_offset 266, -40
|
| ++; CHECK-V7-FP: .cfi_offset 265, -48
|
| ++; CHECK-V7-FP: .cfi_offset 264, -56
|
| + ; CHECK-V7-FP: sub sp, sp, #28
|
| + ; CHECK-V7-FP: .cfi_endproc
|
| +
|
| + ; CHECK-V7-FP-ELIM-LABEL: _Z4testiiiiiddddd:
|
| + ; CHECK-V7-FP-ELIM: .cfi_startproc
|
| + ; CHECK-V7-FP-ELIM: push {r4, lr}
|
| + ; CHECK-V7-FP-ELIM: .cfi_def_cfa_offset 8
|
| +-; CHECK-V7-FP-ELIM: .cfi_offset lr, -4
|
| +-; CHECK-V7-FP-ELIM: .cfi_offset r4, -8
|
| ++; CHECK-V7-FP-ELIM: .cfi_offset 14, -4
|
| ++; CHECK-V7-FP-ELIM: .cfi_offset 4, -8
|
| + ; CHECK-V7-FP-ELIM: vpush {d8, d9, d10, d11, d12}
|
| + ; CHECK-V7-FP-ELIM: .cfi_def_cfa_offset 48
|
| +-; CHECK-V7-FP-ELIM: .cfi_offset d12, -16
|
| +-; CHECK-V7-FP-ELIM: .cfi_offset d11, -24
|
| +-; CHECK-V7-FP-ELIM: .cfi_offset d10, -32
|
| +-; CHECK-V7-FP-ELIM: .cfi_offset d9, -40
|
| +-; CHECK-V7-FP-ELIM: .cfi_offset d8, -48
|
| ++; CHECK-V7-FP-ELIM: .cfi_offset 268, -16
|
| ++; CHECK-V7-FP-ELIM: .cfi_offset 267, -24
|
| ++; CHECK-V7-FP-ELIM: .cfi_offset 266, -32
|
| ++; CHECK-V7-FP-ELIM: .cfi_offset 265, -40
|
| ++; CHECK-V7-FP-ELIM: .cfi_offset 264, -48
|
| + ; CHECK-V7-FP-ELIM: sub sp, sp, #24
|
| + ; CHECK-V7-FP-ELIM: .cfi_def_cfa_offset 72
|
| + ; CHECK-V7-FP-ELIM: .cfi_endproc
|
| +
|
| + ; CHECK-THUMB-FP-LABEL: _Z4testiiiiiddddd:
|
| + ; CHECK-THUMB-FP: .cfi_startproc
|
| + ; CHECK-THUMB-FP: push {r4, r5, r6, r7, lr}
|
| + ; CHECK-THUMB-FP: .cfi_def_cfa_offset 20
|
| +-; CHECK-THUMB-FP: .cfi_offset lr, -4
|
| +-; CHECK-THUMB-FP: .cfi_offset r7, -8
|
| +-; CHECK-THUMB-FP: .cfi_offset r6, -12
|
| +-; CHECK-THUMB-FP: .cfi_offset r5, -16
|
| +-; CHECK-THUMB-FP: .cfi_offset r4, -20
|
| ++; CHECK-THUMB-FP: .cfi_offset 14, -4
|
| ++; CHECK-THUMB-FP: .cfi_offset 7, -8
|
| ++; CHECK-THUMB-FP: .cfi_offset 6, -12
|
| ++; CHECK-THUMB-FP: .cfi_offset 5, -16
|
| ++; CHECK-THUMB-FP: .cfi_offset 4, -20
|
| + ; CHECK-THUMB-FP: add r7, sp, #12
|
| +-; CHECK-THUMB-FP: .cfi_def_cfa r7, 8
|
| ++; CHECK-THUMB-FP: .cfi_def_cfa 7, 8
|
| + ; CHECK-THUMB-FP: sub sp, #60
|
| + ; CHECK-THUMB-FP: .cfi_endproc
|
| +
|
| + ; CHECK-THUMB-FP-ELIM-LABEL: _Z4testiiiiiddddd:
|
| + ; CHECK-THUMB-FP-ELIM: .cfi_startproc
|
| + ; CHECK-THUMB-FP-ELIM: push {r4, r5, r6, r7, lr}
|
| + ; CHECK-THUMB-FP-ELIM: .cfi_def_cfa_offset 20
|
| +-; CHECK-THUMB-FP-ELIM: .cfi_offset lr, -4
|
| +-; CHECK-THUMB-FP-ELIM: .cfi_offset r7, -8
|
| +-; CHECK-THUMB-FP-ELIM: .cfi_offset r6, -12
|
| +-; CHECK-THUMB-FP-ELIM: .cfi_offset r5, -16
|
| +-; CHECK-THUMB-FP-ELIM: .cfi_offset r4, -20
|
| ++; CHECK-THUMB-FP-ELIM: .cfi_offset 14, -4
|
| ++; CHECK-THUMB-FP-ELIM: .cfi_offset 7, -8
|
| ++; CHECK-THUMB-FP-ELIM: .cfi_offset 6, -12
|
| ++; CHECK-THUMB-FP-ELIM: .cfi_offset 5, -16
|
| ++; CHECK-THUMB-FP-ELIM: .cfi_offset 4, -20
|
| + ; CHECK-THUMB-FP-ELIM: sub sp, #60
|
| + ; CHECK-THUMB-FP-ELIM: .cfi_def_cfa_offset 80
|
| + ; CHECK-THUMB-FP-ELIM: .cfi_endproc
|
| +
|
| + ; CHECK-THUMB-V7-FP-LABEL: _Z4testiiiiiddddd:
|
| + ; CHECK-THUMB-V7-FP: .cfi_startproc
|
| + ; CHECK-THUMB-V7-FP: push.w {r4, r7, r11, lr}
|
| + ; CHECK-THUMB-V7-FP: .cfi_def_cfa_offset 16
|
| +-; CHECK-THUMB-V7-FP: .cfi_offset lr, -4
|
| +-; CHECK-THUMB-V7-FP: .cfi_offset r11, -8
|
| +-; CHECK-THUMB-V7-FP: .cfi_offset r7, -12
|
| +-; CHECK-THUMB-V7-FP: .cfi_offset r4, -16
|
| ++; CHECK-THUMB-V7-FP: .cfi_offset 14, -4
|
| ++; CHECK-THUMB-V7-FP: .cfi_offset 11, -8
|
| ++; CHECK-THUMB-V7-FP: .cfi_offset 7, -12
|
| ++; CHECK-THUMB-V7-FP: .cfi_offset 4, -16
|
| + ; CHECK-THUMB-V7-FP: add r7, sp, #4
|
| +-; CHECK-THUMB-V7-FP: .cfi_def_cfa r7, 12
|
| ++; CHECK-THUMB-V7-FP: .cfi_def_cfa 7, 12
|
| + ; CHECK-THUMB-V7-FP: vpush {d8, d9, d10, d11, d12}
|
| +-; CHECK-THUMB-V7-FP: .cfi_offset d12, -24
|
| +-; CHECK-THUMB-V7-FP: .cfi_offset d11, -32
|
| +-; CHECK-THUMB-V7-FP: .cfi_offset d10, -40
|
| +-; CHECK-THUMB-V7-FP: .cfi_offset d9, -48
|
| +-; CHECK-THUMB-V7-FP: .cfi_offset d8, -56
|
| ++; CHECK-THUMB-V7-FP: .cfi_offset 268, -24
|
| ++; CHECK-THUMB-V7-FP: .cfi_offset 267, -32
|
| ++; CHECK-THUMB-V7-FP: .cfi_offset 266, -40
|
| ++; CHECK-THUMB-V7-FP: .cfi_offset 265, -48
|
| ++; CHECK-THUMB-V7-FP: .cfi_offset 264, -56
|
| + ; CHECK-THUMB-V7-FP: sub sp, #24
|
| + ; CHECK-THUMB-V7-FP: .cfi_endproc
|
| +
|
| + ; CHECK-THUMB-V7-FP-ELIM-LABEL: _Z4testiiiiiddddd:
|
| + ; CHECK-THUMB-V7-FP-ELIM: .cfi_startproc
|
| + ; CHECK-THUMB-V7-FP-ELIM: push {r4, lr}
|
| + ; CHECK-THUMB-V7-FP-ELIM: .cfi_def_cfa_offset 8
|
| +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset lr, -4
|
| +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset r4, -8
|
| ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 14, -4
|
| ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 4, -8
|
| + ; CHECK-THUMB-V7-FP-ELIM: vpush {d8, d9, d10, d11, d12}
|
| + ; CHECK-THUMB-V7-FP-ELIM: .cfi_def_cfa_offset 48
|
| +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset d12, -16
|
| +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset d11, -24
|
| +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset d10, -32
|
| +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset d9, -40
|
| +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset d8, -48
|
| ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 268, -16
|
| ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 267, -24
|
| ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 266, -32
|
| ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 265, -40
|
| ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 264, -48
|
| + ; CHECK-THUMB-V7-FP-ELIM: sub sp, #24
|
| + ; CHECK-THUMB-V7-FP-ELIM: .cfi_def_cfa_offset 72
|
| + ; CHECK-THUMB-V7-FP-ELIM: .cfi_endproc
|
| +@@ -309,81 +309,81 @@
|
| + ; CHECK-FP: .cfi_startproc
|
| + ; CHECK-FP: push {r11, lr}
|
| + ; CHECK-FP: .cfi_def_cfa_offset 8
|
| +-; CHECK-FP: .cfi_offset lr, -4
|
| +-; CHECK-FP: .cfi_offset r11, -8
|
| ++; CHECK-FP: .cfi_offset 14, -4
|
| ++; CHECK-FP: .cfi_offset 11, -8
|
| + ; CHECK-FP: mov r11, sp
|
| +-; CHECK-FP: .cfi_def_cfa_register r11
|
| ++; CHECK-FP: .cfi_def_cfa_register 11
|
| + ; CHECK-FP: pop {r11, lr}
|
| + ; CHECK-FP: mov pc, lr
|
| + ; CHECK-FP: .cfi_endproc
|
| +
|
| + ; CHECK-FP-ELIM-LABEL: test2:
|
| + ; CHECK-FP-ELIM: .cfi_startproc
|
| + ; CHECK-FP-ELIM: push {r11, lr}
|
| + ; CHECK-FP-ELIM: .cfi_def_cfa_offset 8
|
| +-; CHECK-FP-ELIM: .cfi_offset lr, -4
|
| +-; CHECK-FP-ELIM: .cfi_offset r11, -8
|
| ++; CHECK-FP-ELIM: .cfi_offset 14, -4
|
| ++; CHECK-FP-ELIM: .cfi_offset 11, -8
|
| + ; CHECK-FP-ELIM: pop {r11, lr}
|
| + ; CHECK-FP-ELIM: mov pc, lr
|
| + ; CHECK-FP-ELIM: .cfi_endproc
|
| +
|
| + ; CHECK-V7-FP-LABEL: test2:
|
| + ; CHECK-V7-FP: .cfi_startproc
|
| + ; CHECK-V7-FP: push {r11, lr}
|
| + ; CHECK-V7-FP: .cfi_def_cfa_offset 8
|
| +-; CHECK-V7-FP: .cfi_offset lr, -4
|
| +-; CHECK-V7-FP: .cfi_offset r11, -8
|
| ++; CHECK-V7-FP: .cfi_offset 14, -4
|
| ++; CHECK-V7-FP: .cfi_offset 11, -8
|
| + ; CHECK-V7-FP: mov r11, sp
|
| +-; CHECK-V7-FP: .cfi_def_cfa_register r11
|
| ++; CHECK-V7-FP: .cfi_def_cfa_register 11
|
| + ; CHECK-V7-FP: pop {r11, pc}
|
| + ; CHECK-V7-FP: .cfi_endproc
|
| +
|
| + ; CHECK-V7-FP-ELIM-LABEL: test2:
|
| + ; CHECK-V7-FP-ELIM: .cfi_startproc
|
| + ; CHECK-V7-FP-ELIM: push {r11, lr}
|
| + ; CHECK-V7-FP-ELIM: .cfi_def_cfa_offset 8
|
| +-; CHECK-V7-FP-ELIM: .cfi_offset lr, -4
|
| +-; CHECK-V7-FP-ELIM: .cfi_offset r11, -8
|
| ++; CHECK-V7-FP-ELIM: .cfi_offset 14, -4
|
| ++; CHECK-V7-FP-ELIM: .cfi_offset 11, -8
|
| + ; CHECK-V7-FP-ELIM: pop {r11, pc}
|
| + ; CHECK-V7-FP-ELIM: .cfi_endproc
|
| +
|
| + ; CHECK-THUMB-FP-LABEL: test2:
|
| + ; CHECK-THUMB-FP: .cfi_startproc
|
| + ; CHECK-THUMB-FP: push {r7, lr}
|
| + ; CHECK-THUMB-FP: .cfi_def_cfa_offset 8
|
| +-; CHECK-THUMB-FP: .cfi_offset lr, -4
|
| +-; CHECK-THUMB-FP: .cfi_offset r7, -8
|
| ++; CHECK-THUMB-FP: .cfi_offset 14, -4
|
| ++; CHECK-THUMB-FP: .cfi_offset 7, -8
|
| + ; CHECK-THUMB-FP: add r7, sp, #0
|
| +-; CHECK-THUMB-FP: .cfi_def_cfa_register r7
|
| ++; CHECK-THUMB-FP: .cfi_def_cfa_register 7
|
| + ; CHECK-THUMB-FP: pop {r7, pc}
|
| + ; CHECK-THUMB-FP: .cfi_endproc
|
| +
|
| + ; CHECK-THUMB-FP-ELIM-LABEL: test2:
|
| + ; CHECK-THUMB-FP-ELIM: .cfi_startproc
|
| + ; CHECK-THUMB-FP-ELIM: push {r7, lr}
|
| + ; CHECK-THUMB-FP-ELIM: .cfi_def_cfa_offset 8
|
| +-; CHECK-THUMB-FP-ELIM: .cfi_offset lr, -4
|
| +-; CHECK-THUMB-FP-ELIM: .cfi_offset r7, -8
|
| ++; CHECK-THUMB-FP-ELIM: .cfi_offset 14, -4
|
| ++; CHECK-THUMB-FP-ELIM: .cfi_offset 7, -8
|
| + ; CHECK-THUMB-FP-ELIM: pop {r7, pc}
|
| + ; CHECK-THUMB-FP-ELIM: .cfi_endproc
|
| +
|
| + ; CHECK-THUMB-V7-FP-LABEL: test2:
|
| + ; CHECK-THUMB-V7-FP: .cfi_startproc
|
| + ; CHECK-THUMB-V7-FP: push {r7, lr}
|
| + ; CHECK-THUMB-V7-FP: .cfi_def_cfa_offset 8
|
| +-; CHECK-THUMB-V7-FP: .cfi_offset lr, -4
|
| +-; CHECK-THUMB-V7-FP: .cfi_offset r7, -8
|
| ++; CHECK-THUMB-V7-FP: .cfi_offset 14, -4
|
| ++; CHECK-THUMB-V7-FP: .cfi_offset 7, -8
|
| + ; CHECK-THUMB-V7-FP: mov r7, sp
|
| +-; CHECK-THUMB-V7-FP: .cfi_def_cfa_register r7
|
| ++; CHECK-THUMB-V7-FP: .cfi_def_cfa_register 7
|
| + ; CHECK-THUMB-V7-FP: pop {r7, pc}
|
| + ; CHECK-THUMB-V7-FP: .cfi_endproc
|
| +
|
| + ; CHECK-THUMB-V7-FP-ELIM-LABEL: test2:
|
| + ; CHECK-THUMB-V7-FP-ELIM: .cfi_startproc
|
| + ; CHECK-THUMB-V7-FP-ELIM: push.w {r11, lr}
|
| + ; CHECK-THUMB-V7-FP-ELIM: .cfi_def_cfa_offset 8
|
| +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset lr, -4
|
| +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset r11, -8
|
| ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 14, -4
|
| ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 11, -8
|
| + ; CHECK-THUMB-V7-FP-ELIM: pop.w {r11, pc}
|
| + ; CHECK-THUMB-V7-FP-ELIM: .cfi_endproc
|
| +
|
| +@@ -413,97 +413,97 @@
|
| + ; CHECK-FP: .cfi_startproc
|
| + ; CHECK-FP: push {r4, r5, r11, lr}
|
| + ; CHECK-FP: .cfi_def_cfa_offset 16
|
| +-; CHECK-FP: .cfi_offset lr, -4
|
| +-; CHECK-FP: .cfi_offset r11, -8
|
| +-; CHECK-FP: .cfi_offset r5, -12
|
| +-; CHECK-FP: .cfi_offset r4, -16
|
| ++; CHECK-FP: .cfi_offset 14, -4
|
| ++; CHECK-FP: .cfi_offset 11, -8
|
| ++; CHECK-FP: .cfi_offset 5, -12
|
| ++; CHECK-FP: .cfi_offset 4, -16
|
| + ; CHECK-FP: add r11, sp, #8
|
| +-; CHECK-FP: .cfi_def_cfa r11, 8
|
| ++; CHECK-FP: .cfi_def_cfa 11, 8
|
| + ; CHECK-FP: pop {r4, r5, r11, lr}
|
| + ; CHECK-FP: mov pc, lr
|
| + ; CHECK-FP: .cfi_endproc
|
| +
|
| + ; CHECK-FP-ELIM-LABEL: test3:
|
| + ; CHECK-FP-ELIM: .cfi_startproc
|
| + ; CHECK-FP-ELIM: push {r4, r5, r11, lr}
|
| + ; CHECK-FP-ELIM: .cfi_def_cfa_offset 16
|
| +-; CHECK-FP-ELIM: .cfi_offset lr, -4
|
| +-; CHECK-FP-ELIM: .cfi_offset r11, -8
|
| +-; CHECK-FP-ELIM: .cfi_offset r5, -12
|
| +-; CHECK-FP-ELIM: .cfi_offset r4, -16
|
| ++; CHECK-FP-ELIM: .cfi_offset 14, -4
|
| ++; CHECK-FP-ELIM: .cfi_offset 11, -8
|
| ++; CHECK-FP-ELIM: .cfi_offset 5, -12
|
| ++; CHECK-FP-ELIM: .cfi_offset 4, -16
|
| + ; CHECK-FP-ELIM: pop {r4, r5, r11, lr}
|
| + ; CHECK-FP-ELIM: mov pc, lr
|
| + ; CHECK-FP-ELIM: .cfi_endproc
|
| +
|
| + ; CHECK-V7-FP-LABEL: test3:
|
| + ; CHECK-V7-FP: .cfi_startproc
|
| + ; CHECK-V7-FP: push {r4, r5, r11, lr}
|
| + ; CHECK-V7-FP: .cfi_def_cfa_offset 16
|
| +-; CHECK-V7-FP: .cfi_offset lr, -4
|
| +-; CHECK-V7-FP: .cfi_offset r11, -8
|
| +-; CHECK-V7-FP: .cfi_offset r5, -12
|
| +-; CHECK-V7-FP: .cfi_offset r4, -16
|
| ++; CHECK-V7-FP: .cfi_offset 14, -4
|
| ++; CHECK-V7-FP: .cfi_offset 11, -8
|
| ++; CHECK-V7-FP: .cfi_offset 5, -12
|
| ++; CHECK-V7-FP: .cfi_offset 4, -16
|
| + ; CHECK-V7-FP: add r11, sp, #8
|
| +-; CHECK-V7-FP: .cfi_def_cfa r11, 8
|
| ++; CHECK-V7-FP: .cfi_def_cfa 11, 8
|
| + ; CHECK-V7-FP: pop {r4, r5, r11, pc}
|
| + ; CHECK-V7-FP: .cfi_endproc
|
| +
|
| + ; CHECK-V7-FP-ELIM-LABEL: test3:
|
| + ; CHECK-V7-FP-ELIM: .cfi_startproc
|
| + ; CHECK-V7-FP-ELIM: push {r4, r5, r11, lr}
|
| + ; CHECK-V7-FP-ELIM: .cfi_def_cfa_offset 16
|
| +-; CHECK-V7-FP-ELIM: .cfi_offset lr, -4
|
| +-; CHECK-V7-FP-ELIM: .cfi_offset r11, -8
|
| +-; CHECK-V7-FP-ELIM: .cfi_offset r5, -12
|
| +-; CHECK-V7-FP-ELIM: .cfi_offset r4, -16
|
| ++; CHECK-V7-FP-ELIM: .cfi_offset 14, -4
|
| ++; CHECK-V7-FP-ELIM: .cfi_offset 11, -8
|
| ++; CHECK-V7-FP-ELIM: .cfi_offset 5, -12
|
| ++; CHECK-V7-FP-ELIM: .cfi_offset 4, -16
|
| + ; CHECK-V7-FP-ELIM: pop {r4, r5, r11, pc}
|
| + ; CHECK-V7-FP-ELIM: .cfi_endproc
|
| +
|
| + ; CHECK-THUMB-FP-LABEL: test3:
|
| + ; CHECK-THUMB-FP: .cfi_startproc
|
| + ; CHECK-THUMB-FP: push {r4, r5, r7, lr}
|
| + ; CHECK-THUMB-FP: .cfi_def_cfa_offset 16
|
| +-; CHECK-THUMB-FP: .cfi_offset lr, -4
|
| +-; CHECK-THUMB-FP: .cfi_offset r7, -8
|
| +-; CHECK-THUMB-FP: .cfi_offset r5, -12
|
| +-; CHECK-THUMB-FP: .cfi_offset r4, -16
|
| ++; CHECK-THUMB-FP: .cfi_offset 14, -4
|
| ++; CHECK-THUMB-FP: .cfi_offset 7, -8
|
| ++; CHECK-THUMB-FP: .cfi_offset 5, -12
|
| ++; CHECK-THUMB-FP: .cfi_offset 4, -16
|
| + ; CHECK-THUMB-FP: add r7, sp, #8
|
| +-; CHECK-THUMB-FP: .cfi_def_cfa r7, 8
|
| ++; CHECK-THUMB-FP: .cfi_def_cfa 7, 8
|
| + ; CHECK-THUMB-FP: pop {r4, r5, r7, pc}
|
| + ; CHECK-THUMB-FP: .cfi_endproc
|
| +
|
| + ; CHECK-THUMB-FP-ELIM-LABEL: test3:
|
| + ; CHECK-THUMB-FP-ELIM: .cfi_startproc
|
| + ; CHECK-THUMB-FP-ELIM: push {r4, r5, r7, lr}
|
| + ; CHECK-THUMB-FP-ELIM: .cfi_def_cfa_offset 16
|
| +-; CHECK-THUMB-FP-ELIM: .cfi_offset lr, -4
|
| +-; CHECK-THUMB-FP-ELIM: .cfi_offset r7, -8
|
| +-; CHECK-THUMB-FP-ELIM: .cfi_offset r5, -12
|
| +-; CHECK-THUMB-FP-ELIM: .cfi_offset r4, -16
|
| ++; CHECK-THUMB-FP-ELIM: .cfi_offset 14, -4
|
| ++; CHECK-THUMB-FP-ELIM: .cfi_offset 7, -8
|
| ++; CHECK-THUMB-FP-ELIM: .cfi_offset 5, -12
|
| ++; CHECK-THUMB-FP-ELIM: .cfi_offset 4, -16
|
| + ; CHECK-THUMB-FP-ELIM: pop {r4, r5, r7, pc}
|
| + ; CHECK-THUMB-FP-ELIM: .cfi_endproc
|
| +
|
| + ; CHECK-THUMB-V7-FP-LABEL: test3:
|
| + ; CHECK-THUMB-V7-FP: .cfi_startproc
|
| + ; CHECK-THUMB-V7-FP: push {r4, r5, r7, lr}
|
| + ; CHECK-THUMB-V7-FP: .cfi_def_cfa_offset 16
|
| +-; CHECK-THUMB-V7-FP: .cfi_offset lr, -4
|
| +-; CHECK-THUMB-V7-FP: .cfi_offset r7, -8
|
| +-; CHECK-THUMB-V7-FP: .cfi_offset r5, -12
|
| +-; CHECK-THUMB-V7-FP: .cfi_offset r4, -16
|
| ++; CHECK-THUMB-V7-FP: .cfi_offset 14, -4
|
| ++; CHECK-THUMB-V7-FP: .cfi_offset 7, -8
|
| ++; CHECK-THUMB-V7-FP: .cfi_offset 5, -12
|
| ++; CHECK-THUMB-V7-FP: .cfi_offset 4, -16
|
| + ; CHECK-THUMB-V7-FP: add r7, sp, #8
|
| +-; CHECK-THUMB-V7-FP: .cfi_def_cfa r7, 8
|
| ++; CHECK-THUMB-V7-FP: .cfi_def_cfa 7, 8
|
| + ; CHECK-THUMB-V7-FP: pop {r4, r5, r7, pc}
|
| + ; CHECK-THUMB-V7-FP: .cfi_endproc
|
| +
|
| + ; CHECK-THUMB-V7-FP-ELIM-LABEL: test3:
|
| + ; CHECK-THUMB-V7-FP-ELIM: .cfi_startproc
|
| + ; CHECK-THUMB-V7-FP-ELIM: push.w {r4, r5, r11, lr}
|
| + ; CHECK-THUMB-V7-FP-ELIM: .cfi_def_cfa_offset 16
|
| +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset lr, -4
|
| +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset r11, -8
|
| +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset r5, -12
|
| +-; CHECK-THUMB-V7-FP-ELIM: .cfi_offset r4, -16
|
| ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 14, -4
|
| ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 11, -8
|
| ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 5, -12
|
| ++; CHECK-THUMB-V7-FP-ELIM: .cfi_offset 4, -16
|
| + ; CHECK-THUMB-V7-FP-ELIM: pop.w {r4, r5, r11, pc}
|
| + ; CHECK-THUMB-V7-FP-ELIM: .cfi_endproc
|
| +
|
| +EOF
|
| +patch -p0
|
| +cd -
|
| +
|
| # Echo all commands.
|
| set -x
|
|
|
| @@ -277,9 +942,17 @@ fi
|
|
|
| export CFLAGS=""
|
| export CXXFLAGS=""
|
| +# LLVM uses C++11 starting in llvm 3.5. On Linux, this means libstdc++4.7+ is
|
| +# needed, on OS X it requires libc++. clang only automatically links to libc++
|
| +# when targeting OS X 10.9+, so add stdlib=libc++ explicitly so clang can run on
|
| +# OS X versions as old as 10.7.
|
| +if [ "${OS}" = "Darwin" ]; then
|
| + CXXFLAGS="-stdlib=libc++"
|
| +fi
|
|
|
| # Build bootstrap clang if requested.
|
| if [[ -n "${bootstrap}" ]]; then
|
| + ABS_INSTALL_DIR="${PWD}/${LLVM_BOOTSTRAP_INSTALL_DIR}"
|
| echo "Building bootstrap compiler"
|
| mkdir -p "${LLVM_BOOTSTRAP_DIR}"
|
| cd "${LLVM_BOOTSTRAP_DIR}"
|
| @@ -294,25 +967,26 @@ if [[ -n "${bootstrap}" ]]; then
|
| --disable-threads \
|
| --disable-pthreads \
|
| --without-llvmgcc \
|
| - --without-llvmgxx
|
| + --without-llvmgxx \
|
| + --prefix="${ABS_INSTALL_DIR}"
|
| + fi
|
| +
|
| + MACOSX_DEPLOYMENT_TARGET=10.7 ${MAKE} -j"${NUM_JOBS}"
|
| + if [[ -n "${run_tests}" ]]; then
|
| + ${MAKE} check-all
|
| fi
|
|
|
| + MACOSX_DEPLOYMENT_TARGET=10.7 ${MAKE} install
|
| if [[ -n "${gcc_toolchain}" ]]; then
|
| # Copy that gcc's stdlibc++.so.6 to the build dir, so the bootstrap
|
| # compiler can start.
|
| - mkdir -p Release+Asserts/lib
|
| cp -v "$(${CXX} -print-file-name=libstdc++.so.6)" \
|
| - "Release+Asserts/lib/"
|
| + "${ABS_INSTALL_DIR}/lib/"
|
| fi
|
|
|
| -
|
| - MACOSX_DEPLOYMENT_TARGET=10.5 ${MAKE} -j"${NUM_JOBS}"
|
| - if [[ -n "${run_tests}" ]]; then
|
| - ${MAKE} check-all
|
| - fi
|
| cd -
|
| - export CC="${PWD}/${LLVM_BOOTSTRAP_DIR}/Release+Asserts/bin/clang"
|
| - export CXX="${PWD}/${LLVM_BOOTSTRAP_DIR}/Release+Asserts/bin/clang++"
|
| + export CC="${ABS_INSTALL_DIR}/bin/clang"
|
| + export CXX="${ABS_INSTALL_DIR}/bin/clang++"
|
|
|
| if [[ -n "${gcc_toolchain}" ]]; then
|
| # Tell the bootstrap compiler to use a specific gcc prefix to search
|
| @@ -344,7 +1018,7 @@ if [[ -n "${gcc_toolchain}" ]]; then
|
| cp -v "$(${CXX} ${CXXFLAGS} -print-file-name=libstdc++.so.6)" \
|
| Release+Asserts/lib/
|
| fi
|
| -MACOSX_DEPLOYMENT_TARGET=10.5 ${MAKE} -j"${NUM_JOBS}"
|
| +MACOSX_DEPLOYMENT_TARGET=10.7 ${MAKE} -j"${NUM_JOBS}"
|
| STRIP_FLAGS=
|
| if [ "${OS}" = "Darwin" ]; then
|
| # See http://crbug.com/256342
|
| @@ -383,7 +1057,7 @@ for CHROME_TOOL_DIR in ${chrome_tools}; do
|
| rm -rf "${TOOL_BUILD_DIR}"
|
| mkdir -p "${TOOL_BUILD_DIR}"
|
| cp "${TOOL_SRC_DIR}/Makefile" "${TOOL_BUILD_DIR}"
|
| - MACOSX_DEPLOYMENT_TARGET=10.5 ${MAKE} -j"${NUM_JOBS}" -C "${TOOL_BUILD_DIR}"
|
| + MACOSX_DEPLOYMENT_TARGET=10.7 ${MAKE} -j"${NUM_JOBS}" -C "${TOOL_BUILD_DIR}"
|
| done
|
|
|
| if [[ -n "$run_tests" ]]; then
|
|
|