Date: Sat, 16 Jan 2016 17:17:13 +0000 (UTC) From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r294160 - in vendor/llvm/dist: . autoconf docs include/llvm include/llvm/CodeGen include/llvm/Target lib/CodeGen/SelectionDAG lib/Target/AMDGPU lib/Target/X86 test/CodeGen/X86 utils/rel... Message-ID: <201601161717.u0GHHDNY039261@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dim Date: Sat Jan 16 17:17:12 2016 New Revision: 294160 URL: https://svnweb.freebsd.org/changeset/base/294160 Log: Vendor import of llvm release_38 branch r257836: https://llvm.org/svn/llvm-project/llvm/branches/release_38@257836 Added: vendor/llvm/dist/test/CodeGen/X86/x86-repmov-copy-eflags.ll Modified: vendor/llvm/dist/CMakeLists.txt vendor/llvm/dist/autoconf/configure.ac vendor/llvm/dist/configure vendor/llvm/dist/docs/ReleaseNotes.rst vendor/llvm/dist/include/llvm/CodeGen/MachineFrameInfo.h vendor/llvm/dist/include/llvm/LinkAllPasses.h vendor/llvm/dist/include/llvm/Target/TargetLowering.h vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.h vendor/llvm/dist/lib/Target/X86/X86FrameLowering.cpp vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp vendor/llvm/dist/utils/release/test-release.sh Modified: vendor/llvm/dist/CMakeLists.txt ============================================================================== --- vendor/llvm/dist/CMakeLists.txt Sat Jan 16 16:52:50 2016 (r294159) +++ vendor/llvm/dist/CMakeLists.txt Sat Jan 16 17:17:12 2016 (r294160) @@ -36,7 +36,7 @@ if(NOT DEFINED LLVM_VERSION_PATCH) set(LLVM_VERSION_PATCH 0) endif() if(NOT DEFINED LLVM_VERSION_SUFFIX) - set(LLVM_VERSION_SUFFIX svn) + set(LLVM_VERSION_SUFFIX "") endif() if (POLICY CMP0048) Modified: vendor/llvm/dist/autoconf/configure.ac ============================================================================== --- vendor/llvm/dist/autoconf/configure.ac Sat Jan 16 16:52:50 2016 (r294159) +++ vendor/llvm/dist/autoconf/configure.ac Sat Jan 16 17:17:12 2016 (r294160) @@ -32,12 +32,12 @@ dnl===---------------------------------- dnl Initialize autoconf and define the package name, version number and dnl address for reporting bugs. -AC_INIT([LLVM],[3.8.0svn],[http://llvm.org/bugs/]) +AC_INIT([LLVM],[3.8.0],[http://llvm.org/bugs/]) LLVM_VERSION_MAJOR=3 LLVM_VERSION_MINOR=8 LLVM_VERSION_PATCH=0 -LLVM_VERSION_SUFFIX=svn +LLVM_VERSION_SUFFIX= AC_DEFINE_UNQUOTED([LLVM_VERSION_MAJOR], $LLVM_VERSION_MAJOR, [Major version of the LLVM API]) AC_DEFINE_UNQUOTED([LLVM_VERSION_MINOR], $LLVM_VERSION_MINOR, [Minor version of the LLVM API]) Modified: vendor/llvm/dist/configure ============================================================================== --- vendor/llvm/dist/configure Sat Jan 16 16:52:50 2016 (r294159) +++ vendor/llvm/dist/configure Sat Jan 16 17:17:12 2016 (r294160) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.60 for LLVM 3.8.0svn. +# Generated by GNU Autoconf 2.60 for LLVM 3.8.0. # # Report bugs to <http://llvm.org/bugs/>. # @@ -561,8 +561,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='LLVM' PACKAGE_TARNAME='llvm' -PACKAGE_VERSION='3.8.0svn' -PACKAGE_STRING='LLVM 3.8.0svn' +PACKAGE_VERSION='3.8.0' +PACKAGE_STRING='LLVM 3.8.0' PACKAGE_BUGREPORT='http://llvm.org/bugs/' ac_unique_file="lib/IR/Module.cpp" @@ -1334,7 +1334,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures LLVM 3.8.0svn to adapt to many kinds of systems. +\`configure' configures LLVM 3.8.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1400,7 +1400,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of LLVM 3.8.0svn:";; + short | recursive ) echo "Configuration of LLVM 3.8.0:";; esac cat <<\_ACEOF @@ -1584,7 +1584,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -LLVM configure 3.8.0svn +LLVM configure 3.8.0 generated by GNU Autoconf 2.60 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1600,7 +1600,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by LLVM $as_me 3.8.0svn, which was +It was created by LLVM $as_me 3.8.0, which was generated by GNU Autoconf 2.60. Invocation command line was $ $0 $@ @@ -1957,7 +1957,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu LLVM_VERSION_MAJOR=3 LLVM_VERSION_MINOR=8 LLVM_VERSION_PATCH=0 -LLVM_VERSION_SUFFIX=svn +LLVM_VERSION_SUFFIX= cat >>confdefs.h <<_ACEOF @@ -18279,7 +18279,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by LLVM $as_me 3.8.0svn, which was +This file was extended by LLVM $as_me 3.8.0, which was generated by GNU Autoconf 2.60. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -18332,7 +18332,7 @@ Report bugs to <bug-autoconf@gnu.org>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -LLVM config.status 3.8.0svn +LLVM config.status 3.8.0 configured by $0, generated by GNU Autoconf 2.60, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Modified: vendor/llvm/dist/docs/ReleaseNotes.rst ============================================================================== --- vendor/llvm/dist/docs/ReleaseNotes.rst Sat Jan 16 16:52:50 2016 (r294159) +++ vendor/llvm/dist/docs/ReleaseNotes.rst Sat Jan 16 17:17:12 2016 (r294160) @@ -68,6 +68,17 @@ Non-comprehensive list of changes in thi Core.h so nothing should change for projects directly including the headers, but transitive dependencies may be affected. +* llvm-ar now suports thin archives. + +* llvm doesn't produce .data.rel.ro.local or .data.rel sections anymore. + +* aliases to available_externally globals are now rejected by the verifier. + +* the IR Linker has been split into IRMover that moves bits from one module to + another and Linker proper that decides what to link. + +* Support for dematerializing has been dropped. + .. NOTE For small 1-3 sentence descriptions, just add an entry at the end of this list. If your description won't fit comfortably in one bullet Modified: vendor/llvm/dist/include/llvm/CodeGen/MachineFrameInfo.h ============================================================================== --- vendor/llvm/dist/include/llvm/CodeGen/MachineFrameInfo.h Sat Jan 16 16:52:50 2016 (r294159) +++ vendor/llvm/dist/include/llvm/CodeGen/MachineFrameInfo.h Sat Jan 16 17:17:12 2016 (r294160) @@ -251,6 +251,10 @@ class MachineFrameInfo { /// opaque mechanism like inline assembly or Win32 EH. bool HasOpaqueSPAdjustment; + /// True if the function contains operations which will lower down to + /// instructions which manipulate the stack pointer. + bool HasCopyImplyingStackAdjustment; + /// True if the function contains a call to the llvm.vastart intrinsic. bool HasVAStart; @@ -288,6 +292,7 @@ public: LocalFrameMaxAlign = 0; UseLocalStackAllocationBlock = false; HasOpaqueSPAdjustment = false; + HasCopyImplyingStackAdjustment = false; HasVAStart = false; HasMustTailInVarArgFunc = false; Save = nullptr; @@ -493,6 +498,15 @@ public: bool hasOpaqueSPAdjustment() const { return HasOpaqueSPAdjustment; } void setHasOpaqueSPAdjustment(bool B) { HasOpaqueSPAdjustment = B; } + /// Returns true if the function contains operations which will lower down to + /// instructions which manipulate the stack pointer. + bool hasCopyImplyingStackAdjustment() const { + return HasCopyImplyingStackAdjustment; + } + void setHasCopyImplyingStackAdjustment(bool B) { + HasCopyImplyingStackAdjustment = B; + } + /// Returns true if the function calls the llvm.va_start intrinsic. bool hasVAStart() const { return HasVAStart; } void setHasVAStart(bool B) { HasVAStart = B; } Modified: vendor/llvm/dist/include/llvm/LinkAllPasses.h ============================================================================== --- vendor/llvm/dist/include/llvm/LinkAllPasses.h Sat Jan 16 16:52:50 2016 (r294159) +++ vendor/llvm/dist/include/llvm/LinkAllPasses.h Sat Jan 16 17:17:12 2016 (r294160) @@ -160,9 +160,11 @@ namespace { (void) llvm::createPostOrderFunctionAttrsPass(); (void) llvm::createReversePostOrderFunctionAttrsPass(); (void) llvm::createMergeFunctionsPass(); - (void) llvm::createPrintModulePass(*(llvm::raw_ostream*)nullptr); - (void) llvm::createPrintFunctionPass(*(llvm::raw_ostream*)nullptr); - (void) llvm::createPrintBasicBlockPass(*(llvm::raw_ostream*)nullptr); + std::string buf; + llvm::raw_string_ostream os(buf); + (void) llvm::createPrintModulePass(os); + (void) llvm::createPrintFunctionPass(os); + (void) llvm::createPrintBasicBlockPass(os); (void) llvm::createModuleDebugInfoPrinterPass(); (void) llvm::createPartialInliningPass(); (void) llvm::createLintPass(); @@ -186,10 +188,10 @@ namespace { (void)new llvm::IntervalPartition(); (void)new llvm::ScalarEvolutionWrapperPass(); - ((llvm::Function*)nullptr)->viewCFGOnly(); + llvm::Function::Create(nullptr, llvm::GlobalValue::ExternalLinkage)->viewCFGOnly(); llvm::RGPassManager RGM; - ((llvm::RegionPass*)nullptr)->runOnRegion((llvm::Region*)nullptr, RGM); - llvm::AliasSetTracker X(*(llvm::AliasAnalysis*)nullptr); + llvm::AliasAnalysis AA; + llvm::AliasSetTracker X(AA); X.add(nullptr, 0, llvm::AAMDNodes()); // for -print-alias-sets (void) llvm::AreStatisticsEnabled(); (void) llvm::sys::RunningOnValgrind(); Modified: vendor/llvm/dist/include/llvm/Target/TargetLowering.h ============================================================================== --- vendor/llvm/dist/include/llvm/Target/TargetLowering.h Sat Jan 16 16:52:50 2016 (r294159) +++ vendor/llvm/dist/include/llvm/Target/TargetLowering.h Sat Jan 16 17:17:12 2016 (r294160) @@ -2270,7 +2270,7 @@ public: } /// Return true if the MachineFunction contains a COPY which would imply - /// HasOpaqueSPAdjustment. + /// HasCopyImplyingStackAdjustment. virtual bool hasCopyImplyingStackAdjustment(MachineFunction *MF) const { return false; } Modified: vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp ============================================================================== --- vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Sat Jan 16 16:52:50 2016 (r294159) +++ vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Sat Jan 16 17:17:12 2016 (r294160) @@ -634,7 +634,7 @@ bool SelectionDAGISel::runOnMachineFunct } if (TLI->hasCopyImplyingStackAdjustment(MF)) - MFI->setHasOpaqueSPAdjustment(true); + MFI->setHasCopyImplyingStackAdjustment(true); // Freeze the set of reserved registers now that MachineFrameInfo has been // set up. All the information required by getReservedRegs() should be Modified: vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.h ============================================================================== --- vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.h Sat Jan 16 16:52:50 2016 (r294159) +++ vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.h Sat Jan 16 17:17:12 2016 (r294160) @@ -20,7 +20,7 @@ class AMDGPUInstrPrinter; class AMDGPUSubtarget; class AMDGPUTargetMachine; class FunctionPass; -class MachineSchedContext; +struct MachineSchedContext; class MCAsmInfo; class raw_ostream; class ScheduleDAGInstrs; Modified: vendor/llvm/dist/lib/Target/X86/X86FrameLowering.cpp ============================================================================== --- vendor/llvm/dist/lib/Target/X86/X86FrameLowering.cpp Sat Jan 16 16:52:50 2016 (r294159) +++ vendor/llvm/dist/lib/Target/X86/X86FrameLowering.cpp Sat Jan 16 17:17:12 2016 (r294160) @@ -91,7 +91,8 @@ bool X86FrameLowering::hasFP(const Machi MFI->isFrameAddressTaken() || MFI->hasOpaqueSPAdjustment() || MF.getInfo<X86MachineFunctionInfo>()->getForceFramePointer() || MMI.callsUnwindInit() || MMI.hasEHFunclets() || MMI.callsEHReturn() || - MFI->hasStackMap() || MFI->hasPatchPoint()); + MFI->hasStackMap() || MFI->hasPatchPoint() || + MFI->hasCopyImplyingStackAdjustment()); } static unsigned getSUBriOpcode(unsigned IsLP64, int64_t Imm) { @@ -943,11 +944,11 @@ void X86FrameLowering::emitPrologue(Mach // push and pop from the stack. if (Is64Bit && !Fn->hasFnAttribute(Attribute::NoRedZone) && !TRI->needsStackRealignment(MF) && - !MFI->hasVarSizedObjects() && // No dynamic alloca. - !MFI->adjustsStack() && // No calls. - !IsWin64CC && // Win64 has no Red Zone - !MFI->hasOpaqueSPAdjustment() && // Don't push and pop. - !MF.shouldSplitStack()) { // Regular stack + !MFI->hasVarSizedObjects() && // No dynamic alloca. + !MFI->adjustsStack() && // No calls. + !IsWin64CC && // Win64 has no Red Zone + !MFI->hasCopyImplyingStackAdjustment() && // Don't push and pop. + !MF.shouldSplitStack()) { // Regular stack uint64_t MinSize = X86FI->getCalleeSavedFrameSize(); if (HasFP) MinSize += SlotSize; StackSize = std::max(MinSize, StackSize > 128 ? StackSize - 128 : 0); Modified: vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp ============================================================================== --- vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp Sat Jan 16 16:52:50 2016 (r294159) +++ vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp Sat Jan 16 17:17:12 2016 (r294160) @@ -17458,7 +17458,7 @@ static SDValue LowerINTRINSIC_W_CHAIN(SD // We need a frame pointer because this will get lowered to a PUSH/POP // sequence. MachineFrameInfo *MFI = DAG.getMachineFunction().getFrameInfo(); - MFI->setHasOpaqueSPAdjustment(true); + MFI->setHasCopyImplyingStackAdjustment(true); // Don't do anything here, we will expand these intrinsics out later // during ExpandISelPseudos in EmitInstrWithCustomInserter. return SDValue(); Added: vendor/llvm/dist/test/CodeGen/X86/x86-repmov-copy-eflags.ll ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/llvm/dist/test/CodeGen/X86/x86-repmov-copy-eflags.ll Sat Jan 16 17:17:12 2016 (r294160) @@ -0,0 +1,53 @@ +; RUN: llc < %s | FileCheck %s +target datalayout = "e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32" +target triple = "i686-pc-windows-msvc18.0.0" + +%struct.T = type { i64, [3 x i32] } + +; Function Attrs: nounwind optsize +define void @f(i8* %p, i8* %q, i32* inalloca nocapture %unused) #0 { +entry: + %g = alloca %struct.T, align 8 + %r = alloca i32, align 8 + store i32 0, i32* %r, align 4 + call void @llvm.memcpy.p0i8.p0i8.i32(i8* %p, i8* %q, i32 24, i32 8, i1 false) + br label %while.body + +while.body: ; preds = %while.body, %entry + %load = load i32, i32* %r, align 4 + %dec = add nsw i32 %load, -1 + store i32 %dec, i32* %r, align 4 + call void @g(%struct.T* %g) + %tobool = icmp eq i32 %dec, 0 + br i1 %tobool, label %while.end, label %while.body + +while.end: ; preds = %while.body + ret void +} + +; Function Attrs: argmemonly nounwind +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture readonly, i32, i32, i1) #1 + +declare void @g(%struct.T*) + +; CHECK-LABEL: _f: +; CHECK: pushl %ebp +; CHECK: movl %esp, %ebp +; CHECK: andl $-8, %esp +; CHECK-NOT: movl %esp, %esi +; CHECK: rep;movsl +; CHECK: leal 8(%esp), %esi + +; CHECK: decl (%esp) +; CHECK: seto %al +; CHECK: lahf +; CHECK: movl %eax, %edi +; CHECK: pushl %esi +; CHECK: calll _g +; CHECK: addl $4, %esp +; CHECK: movl %edi, %eax +; CHECK: addb $127, %al +; CHECK: sahf + +attributes #0 = { nounwind optsize } +attributes #1 = { argmemonly nounwind } Modified: vendor/llvm/dist/utils/release/test-release.sh ============================================================================== --- vendor/llvm/dist/utils/release/test-release.sh Sat Jan 16 16:52:50 2016 (r294159) +++ vendor/llvm/dist/utils/release/test-release.sh Sat Jan 16 17:17:12 2016 (r294160) @@ -159,6 +159,12 @@ while [ $# -gt 0 ]; do shift done +if [ "$use_autoconf" = "no" ]; then + # See llvm.org/PR26146. + echo Skipping test-suite when using CMake. + do_test_suite="no" +fi + # Check required arguments. if [ -z "$Release" ]; then echo "error: no release number specified"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201601161717.u0GHHDNY039261>