From 36c5ade2f4674b544039d78db4c466756cf142b0 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Sun, 6 Sep 2015 18:36:24 +0000 Subject: Import clang 3.7.0 release (r246257). --- lib/Basic/FileManager.cpp | 4 +++- lib/Basic/IdentifierTable.cpp | 3 ++- lib/Basic/Module.cpp | 1 + lib/Basic/Targets.cpp | 16 +++++++++------- lib/Basic/Version.cpp | 2 +- 5 files changed, 16 insertions(+), 10 deletions(-) (limited to 'lib/Basic') diff --git a/lib/Basic/FileManager.cpp b/lib/Basic/FileManager.cpp index 1a636aefa6391..d4927443aa9cf 100644 --- a/lib/Basic/FileManager.cpp +++ b/lib/Basic/FileManager.cpp @@ -587,4 +587,6 @@ void FileManager::PrintStats() const { //llvm::errs() << PagesMapped << BytesOfPagesMapped << FSLookups; } -PCHContainerOperations::~PCHContainerOperations() {} +// Virtual destructors for abstract base classes that need live in Basic. +PCHContainerWriter::~PCHContainerWriter() {} +PCHContainerReader::~PCHContainerReader() {} diff --git a/lib/Basic/IdentifierTable.cpp b/lib/Basic/IdentifierTable.cpp index dcb7603bf5abd..7705834d91a05 100644 --- a/lib/Basic/IdentifierTable.cpp +++ b/lib/Basic/IdentifierTable.cpp @@ -110,7 +110,8 @@ namespace { HALFSUPPORT = 0x08000, KEYCONCEPTS = 0x10000, KEYOBJC2 = 0x20000, - KEYALL = (0x3ffff & ~KEYNOMS18 & + KEYZVECTOR = 0x40000, + KEYALL = (0x7ffff & ~KEYNOMS18 & ~KEYNOOPENCL) // KEYNOMS18 and KEYNOOPENCL are used to exclude. }; diff --git a/lib/Basic/Module.cpp b/lib/Basic/Module.cpp index 3846fecebf5d0..4314b41eb340f 100644 --- a/lib/Basic/Module.cpp +++ b/lib/Basic/Module.cpp @@ -67,6 +67,7 @@ static bool hasFeature(StringRef Feature, const LangOptions &LangOpts, .Case("objc_arc", LangOpts.ObjCAutoRefCount) .Case("opencl", LangOpts.OpenCL) .Case("tls", Target.isTLSSupported()) + .Case("zvector", LangOpts.ZVector) .Default(Target.hasFeature(Feature)); if (!HasFeature) HasFeature = std::find(LangOpts.ModuleFeatures.begin(), diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index 3cf74bc84926c..e4db004b4948a 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -4978,7 +4978,6 @@ public: LongWidth = LongAlign = PointerWidth = PointerAlign = 64; MaxVectorAlign = 128; - RegParmMax = 8; MaxAtomicInlineWidth = 128; MaxAtomicPromoteWidth = 128; @@ -5726,6 +5725,8 @@ public: Builder.defineMacro("__LONG_DOUBLE_128__"); if (HasTransactionalExecution) Builder.defineMacro("__HTM__"); + if (Opts.ZVector) + Builder.defineMacro("__VEC__", "10301"); } void getTargetBuiltins(const Builtin::Info *&Records, unsigned &NumRecords) const override { @@ -6967,6 +6968,10 @@ public: : LinuxTargetInfo(Triple) { LongDoubleFormat = &llvm::APFloat::IEEEquad; } + + bool useFloat128ManglingForLongDouble() const override { + return true; + } }; } // end anonymous namespace @@ -7037,11 +7042,10 @@ static TargetInfo *AllocateTarget(const llvm::Triple &Triple) { return new NaClTargetInfo(Triple); case llvm::Triple::Win32: switch (Triple.getEnvironment()) { - default: - return new ARMleTargetInfo(Triple); case llvm::Triple::Itanium: return new ItaniumWindowsARMleTargetInfo(Triple); case llvm::Triple::MSVC: + default: // Assume MSVC for unknown environments return new MicrosoftARMleTargetInfo(Triple); } default: @@ -7296,14 +7300,13 @@ static TargetInfo *AllocateTarget(const llvm::Triple &Triple) { return new SolarisTargetInfo(Triple); case llvm::Triple::Win32: { switch (Triple.getEnvironment()) { - default: - return new X86_32TargetInfo(Triple); case llvm::Triple::Cygnus: return new CygwinX86_32TargetInfo(Triple); case llvm::Triple::GNU: return new MinGWX86_32TargetInfo(Triple); case llvm::Triple::Itanium: case llvm::Triple::MSVC: + default: // Assume MSVC for unknown environments return new MicrosoftX86_32TargetInfo(Triple); } } @@ -7348,11 +7351,10 @@ static TargetInfo *AllocateTarget(const llvm::Triple &Triple) { return new SolarisTargetInfo(Triple); case llvm::Triple::Win32: { switch (Triple.getEnvironment()) { - default: - return new X86_64TargetInfo(Triple); case llvm::Triple::GNU: return new MinGWX86_64TargetInfo(Triple); case llvm::Triple::MSVC: + default: // Assume MSVC for unknown environments return new MicrosoftX86_64TargetInfo(Triple); } } diff --git a/lib/Basic/Version.cpp b/lib/Basic/Version.cpp index a1a67c2bc144d..725b7fe8c4f52 100644 --- a/lib/Basic/Version.cpp +++ b/lib/Basic/Version.cpp @@ -36,7 +36,7 @@ std::string getClangRepositoryPath() { // If the SVN_REPOSITORY is empty, try to use the SVN keyword. This helps us // pick up a tag in an SVN export, for example. - StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/trunk/lib/Basic/Version.cpp $"); + StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_370/final/lib/Basic/Version.cpp $"); if (URL.empty()) { URL = SVNRepository.slice(SVNRepository.find(':'), SVNRepository.find("/lib/Basic")); -- cgit v1.2.3