Date: Wed, 27 Jan 2016 22:48:52 +0000 (UTC) From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r294960 - in projects/clang380-import: contrib/llvm/include/llvm/Analysis contrib/llvm/lib/Analysis contrib/llvm/lib/Target/AMDGPU contrib/llvm/lib/Target/X86 contrib/llvm/lib/Transform... Message-ID: <201601272248.u0RMmqPF025275@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dim Date: Wed Jan 27 22:48:52 2016 New Revision: 294960 URL: https://svnweb.freebsd.org/changeset/base/294960 Log: Update llvm, clang and lldb to release_38 branch r258968. Modified: projects/clang380-import/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h projects/clang380-import/contrib/llvm/lib/Analysis/DemandedBits.cpp projects/clang380-import/contrib/llvm/lib/Analysis/ScalarEvolution.cpp projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp projects/clang380-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp projects/clang380-import/contrib/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp projects/clang380-import/contrib/llvm/tools/clang/tools/driver/driver.cpp projects/clang380-import/lib/clang/include/clang/Basic/Version.inc Directory Properties: projects/clang380-import/contrib/llvm/ (props changed) projects/clang380-import/contrib/llvm/tools/clang/ (props changed) projects/clang380-import/contrib/llvm/tools/lldb/ (props changed) Modified: projects/clang380-import/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h ============================================================================== --- projects/clang380-import/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h Wed Jan 27 22:48:04 2016 (r294959) +++ projects/clang380-import/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h Wed Jan 27 22:48:52 2016 (r294960) @@ -412,7 +412,11 @@ namespace llvm { /*implicit*/ ExitLimit(const SCEV *E) : Exact(E), Max(E) {} - ExitLimit(const SCEV *E, const SCEV *M) : Exact(E), Max(M) {} + ExitLimit(const SCEV *E, const SCEV *M) : Exact(E), Max(M) { + assert((isa<SCEVCouldNotCompute>(Exact) || + !isa<SCEVCouldNotCompute>(Max)) && + "Exact is not allowed to be less precise than Max"); + } /// Test whether this ExitLimit contains any computed information, or /// whether it's all SCEVCouldNotCompute values. Modified: projects/clang380-import/contrib/llvm/lib/Analysis/DemandedBits.cpp ============================================================================== --- projects/clang380-import/contrib/llvm/lib/Analysis/DemandedBits.cpp Wed Jan 27 22:48:04 2016 (r294959) +++ projects/clang380-import/contrib/llvm/lib/Analysis/DemandedBits.cpp Wed Jan 27 22:48:52 2016 (r294960) @@ -244,7 +244,7 @@ void DemandedBits::determineLiveOperandB break; case Instruction::ICmp: // Count the number of leading zeroes in each operand. - ComputeKnownBits(BitWidth, I, UserI->getOperand(1)); + ComputeKnownBits(BitWidth, UserI->getOperand(0), UserI->getOperand(1)); auto NumLeadingZeroes = std::min(KnownZero.countLeadingOnes(), KnownZero2.countLeadingOnes()); AB = ~APInt::getHighBitsSet(BitWidth, NumLeadingZeroes); Modified: projects/clang380-import/contrib/llvm/lib/Analysis/ScalarEvolution.cpp ============================================================================== --- projects/clang380-import/contrib/llvm/lib/Analysis/ScalarEvolution.cpp Wed Jan 27 22:48:04 2016 (r294959) +++ projects/clang380-import/contrib/llvm/lib/Analysis/ScalarEvolution.cpp Wed Jan 27 22:48:52 2016 (r294960) @@ -5368,6 +5368,14 @@ ScalarEvolution::computeExitLimitFromCon BECount = EL0.Exact; } + // There are cases (e.g. PR26207) where computeExitLimitFromCond is able + // to be more aggressive when computing BECount than when computing + // MaxBECount. In these cases it is possible for EL0.Exact and EL1.Exact + // to match, but for EL0.Max and EL1.Max to not. + if (isa<SCEVCouldNotCompute>(MaxBECount) && + !isa<SCEVCouldNotCompute>(BECount)) + MaxBECount = BECount; + return ExitLimit(BECount, MaxBECount); } if (BO->getOpcode() == Instruction::Or) { Modified: projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td ============================================================================== --- projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td Wed Jan 27 22:48:04 2016 (r294959) +++ projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td Wed Jan 27 22:48:52 2016 (r294960) @@ -138,6 +138,11 @@ def FeatureEnableHugeScratchBuffer : Sub "true", "Enable scratch buffer sizes greater than 128 GB">; +def FeatureEnableSIScheduler : SubtargetFeature<"si-scheduler", + "EnableSIScheduler", + "true", + "Enable SI Machine Scheduler">; + class SubtargetFeatureFetchLimit <string Value> : SubtargetFeature <"fetch"#Value, "TexVTXClauseSize", Modified: projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp ============================================================================== --- projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp Wed Jan 27 22:48:04 2016 (r294959) +++ projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp Wed Jan 27 22:48:52 2016 (r294960) @@ -78,7 +78,7 @@ AMDGPUSubtarget::AMDGPUSubtarget(const T EnableVGPRSpilling(false), SGPRInitBug(false), IsGCN(false), GCN1Encoding(false), GCN3Encoding(false), CIInsts(false), LDSBankCount(0), IsaVersion(ISAVersion0_0_0), EnableHugeScratchBuffer(false), - FrameLowering(nullptr), + EnableSIScheduler(false), FrameLowering(nullptr), InstrItins(getInstrItineraryForCPU(GPU)), TargetTriple(TT) { initializeSubtargetDependencies(TT, GPU, FS); Modified: projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h ============================================================================== --- projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h Wed Jan 27 22:48:04 2016 (r294959) +++ projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h Wed Jan 27 22:48:52 2016 (r294960) @@ -90,6 +90,7 @@ private: int LDSBankCount; unsigned IsaVersion; bool EnableHugeScratchBuffer; + bool EnableSIScheduler; std::unique_ptr<AMDGPUFrameLowering> FrameLowering; std::unique_ptr<AMDGPUTargetLowering> TLInfo; @@ -280,6 +281,10 @@ public: return EnableHugeScratchBuffer; } + bool enableSIScheduler() const { + return EnableSIScheduler; + } + bool dumpCode() const { return DumpCode; } Modified: projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp ============================================================================== --- projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp Wed Jan 27 22:48:04 2016 (r294959) +++ projects/clang380-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp Wed Jan 27 22:48:52 2016 (r294960) @@ -147,6 +147,8 @@ public: const AMDGPUSubtarget &ST = *getAMDGPUTargetMachine().getSubtargetImpl(); if (ST.getGeneration() <= AMDGPUSubtarget::NORTHERN_ISLANDS) return createR600MachineScheduler(C); + else if (ST.enableSIScheduler()) + return createSIMachineScheduler(C); return nullptr; } Modified: projects/clang380-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp ============================================================================== --- projects/clang380-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp Wed Jan 27 22:48:04 2016 (r294959) +++ projects/clang380-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp Wed Jan 27 22:48:52 2016 (r294960) @@ -21880,7 +21880,8 @@ X86TargetLowering::EmitLoweredSelect(Mac if (LastCMOV == MI && NextMIIt != BB->end() && NextMIIt->getOpcode() == MI->getOpcode() && NextMIIt->getOperand(2).getReg() == MI->getOperand(2).getReg() && - NextMIIt->getOperand(1).getReg() == MI->getOperand(0).getReg()) { + NextMIIt->getOperand(1).getReg() == MI->getOperand(0).getReg() && + NextMIIt->getOperand(1).isKill()) { CascadedCMOV = &*NextMIIt; } Modified: projects/clang380-import/contrib/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp ============================================================================== --- projects/clang380-import/contrib/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp Wed Jan 27 22:48:04 2016 (r294959) +++ projects/clang380-import/contrib/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp Wed Jan 27 22:48:52 2016 (r294960) @@ -494,6 +494,11 @@ void GCOVProfiler::emitProfileNotes() { // LTO, we'll generate the same .gcno files. auto *CU = cast<DICompileUnit>(CU_Nodes->getOperand(i)); + + // Skip module skeleton (and module) CUs. + if (CU->getDWOId()) + continue; + std::error_code EC; raw_fd_ostream out(mangleName(CU, "gcno"), EC, sys::fs::F_None); std::string EdgeDestinations; @@ -853,6 +858,11 @@ Function *GCOVProfiler::insertCounterWri if (CU_Nodes) { for (unsigned i = 0, e = CU_Nodes->getNumOperands(); i != e; ++i) { auto *CU = cast<DICompileUnit>(CU_Nodes->getOperand(i)); + + // Skip module skeleton (and module) CUs. + if (CU->getDWOId()) + continue; + std::string FilenameGcda = mangleName(CU, "gcda"); uint32_t CfgChecksum = FileChecksums.empty() ? 0 : FileChecksums[i]; Builder.CreateCall(StartFile, Modified: projects/clang380-import/contrib/llvm/tools/clang/tools/driver/driver.cpp ============================================================================== --- projects/clang380-import/contrib/llvm/tools/clang/tools/driver/driver.cpp Wed Jan 27 22:48:04 2016 (r294959) +++ projects/clang380-import/contrib/llvm/tools/clang/tools/driver/driver.cpp Wed Jan 27 22:48:52 2016 (r294960) @@ -290,9 +290,9 @@ static void SetInstallDir(SmallVectorImp if (CanonicalPrefixes) llvm::sys::fs::make_absolute(InstalledPath); - InstalledPath = llvm::sys::path::parent_path(InstalledPath); - if (llvm::sys::fs::exists(InstalledPath.c_str())) - TheDriver.setInstalledDir(InstalledPath); + StringRef InstalledPathParent(llvm::sys::path::parent_path(InstalledPath)); + if (llvm::sys::fs::exists(InstalledPathParent)) + TheDriver.setInstalledDir(InstalledPathParent); } static int ExecuteCC1Tool(ArrayRef<const char *> argv, StringRef Tool) { Modified: projects/clang380-import/lib/clang/include/clang/Basic/Version.inc ============================================================================== --- projects/clang380-import/lib/clang/include/clang/Basic/Version.inc Wed Jan 27 22:48:04 2016 (r294959) +++ projects/clang380-import/lib/clang/include/clang/Basic/Version.inc Wed Jan 27 22:48:52 2016 (r294960) @@ -7,4 +7,4 @@ #define CLANG_VENDOR "FreeBSD " -#define SVN_REVISION "258549" +#define SVN_REVISION "258968"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201601272248.u0RMmqPF025275>