r241620 - Wrap clang modules and pch files in an object file container.
Benjamin Kramer
benny.kra at gmail.com
Tue Jul 7 14:01:21 PDT 2015
> On 07.07.2015, at 22:11, Adrian Prantl <aprantl at apple.com> wrote:
>
> Author: adrian
> Date: Tue Jul 7 15:11:29 2015
> New Revision: 241620
>
> URL: http://llvm.org/viewvc/llvm-project?rev=241620&view=rev
> Log:
> Wrap clang modules and pch files in an object file container.
> This patch adds ObjectFilePCHContainerOperations uses the LLVM backend
> to put the contents of a PCH into a __clangast section inside a COFF, ELF,
> or Mach-O object file container.
>
> This is done to facilitate module debugging by makeing it possible to
> store the debug info for the types defined by a module alongside the AST.
>
> rdar://problem/20091852
Going through the entire compiler stack (IR, selectiondag, ...) just to dump some bytes in an object files seems excessive. Can't you just drive MC directly? This would also avoid making everything depend on libclangCodeGen which is just bad.
By the way: announcing changes of this magnitude on the mailing list before just dumping them on us is also a good idea.
- Ben
>
> Added:
> cfe/trunk/include/clang/CodeGen/ObjectFilePCHContainerOperations.h
> cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp
> cfe/trunk/test/Modules/pch_container.m
> Modified:
> cfe/trunk/lib/Basic/FileManager.cpp
> cfe/trunk/lib/CodeGen/CMakeLists.txt
> cfe/trunk/lib/Frontend/PCHContainerOperations.cpp
> cfe/trunk/lib/Serialization/ASTReader.cpp
> cfe/trunk/test/ARCMT/check-with-pch.m
> cfe/trunk/test/ARCMT/migrate-on-pch-and-module.m
> cfe/trunk/test/ARCMT/objcmt-with-pch.m
> cfe/trunk/test/ARCMT/objcmt-with-pch.m.result
> cfe/trunk/test/CMakeLists.txt
> cfe/trunk/test/CXX/expr/expr.unary/expr.unary.noexcept/cg.cpp
> cfe/trunk/test/CodeGen/atomic-ops.c
> cfe/trunk/test/CodeGen/big-atomic-ops.c
> cfe/trunk/test/Frontend/ast-codegen.c
> cfe/trunk/test/Index/TestClassForwardDecl.m
> cfe/trunk/test/Index/c-index-api-loadTU-test.m
> cfe/trunk/test/Index/c-index-getCursor-test.m
> cfe/trunk/test/Index/pch-with-module.m
> cfe/trunk/test/Index/print-mangled-name.cpp
> cfe/trunk/test/Modules/compiler_builtins_arm.m
> cfe/trunk/test/Modules/dependency-gen-inferred-map.m
> cfe/trunk/test/Modules/dependency-gen-pch.m
> cfe/trunk/test/Modules/irgen.c
> cfe/trunk/test/Modules/self-import-header.m
> cfe/trunk/test/Modules/templates-2.mm
> cfe/trunk/test/Modules/templates.mm
> cfe/trunk/test/Modules/va_list.m
> cfe/trunk/test/OpenMP/atomic_read_codegen.c
> cfe/trunk/test/OpenMP/barrier_codegen.cpp
> cfe/trunk/test/OpenMP/critical_codegen.cpp
> cfe/trunk/test/OpenMP/flush_codegen.cpp
> cfe/trunk/test/OpenMP/for_codegen.cpp
> cfe/trunk/test/OpenMP/master_codegen.cpp
> cfe/trunk/test/OpenMP/parallel_codegen.cpp
> cfe/trunk/test/OpenMP/parallel_private_codegen.cpp
> cfe/trunk/test/OpenMP/simd_codegen.cpp
> cfe/trunk/test/OpenMP/single_codegen.cpp
> cfe/trunk/test/OpenMP/taskyield_codegen.cpp
> cfe/trunk/test/OpenMP/threadprivate_codegen.cpp
> cfe/trunk/test/PCH/__va_list_tag.c
> cfe/trunk/test/PCH/arc.m
> cfe/trunk/test/PCH/asm.c
> cfe/trunk/test/PCH/chain-external-defs.c
> cfe/trunk/test/PCH/chain-trivial.c
> cfe/trunk/test/PCH/cxx-ms-function-specialization-class-scope.cpp
> cfe/trunk/test/PCH/external-defs.c
> cfe/trunk/test/PCH/floating-literal.c
> cfe/trunk/test/PCH/local_static.cpp
> cfe/trunk/test/PCH/pchpch.c
> cfe/trunk/test/PCH/reloc.c
> cfe/trunk/test/PCH/subscripting-literals.m
> cfe/trunk/test/PCH/target-options.c
> cfe/trunk/test/PCH/tentative-defs.c
> cfe/trunk/test/PCH/thread-local.cpp
> cfe/trunk/test/PCH/va_arg.c
> cfe/trunk/test/PCH/va_arg.cpp
> cfe/trunk/tools/clang-check/CMakeLists.txt
> cfe/trunk/tools/clang-check/ClangCheck.cpp
> cfe/trunk/tools/clang-check/Makefile
> cfe/trunk/tools/driver/cc1_main.cpp
> cfe/trunk/tools/libclang/CIndex.cpp
> cfe/trunk/tools/libclang/CMakeLists.txt
> cfe/trunk/tools/libclang/Makefile
>
> Added: cfe/trunk/include/clang/CodeGen/ObjectFilePCHContainerOperations.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/CodeGen/ObjectFilePCHContainerOperations.h?rev=241620&view=auto
> ==============================================================================
> --- cfe/trunk/include/clang/CodeGen/ObjectFilePCHContainerOperations.h (added)
> +++ cfe/trunk/include/clang/CodeGen/ObjectFilePCHContainerOperations.h Tue Jul 7 15:11:29 2015
> @@ -0,0 +1,43 @@
> +//===-- CodeGen/ObjectFilePCHContainerOperations.h - ------------*- C++ -*-===//
> +//
> +// The LLVM Compiler Infrastructure
> +//
> +// This file is distributed under the University of Illinois Open Source
> +// License. See LICENSE.TXT for details.
> +//
> +//===----------------------------------------------------------------------===//
> +
> +#ifndef LLVM_CLANG_CODEGEN_OBJECT_FILE_PCH_CONTAINER_OPERATIONS_H
> +#define LLVM_CLANG_CODEGEN_OBJECT_FILE_PCH_CONTAINER_OPERATIONS_H
> +
> +#include "clang/Frontend/PCHContainerOperations.h"
> +
> +namespace clang {
> +
> +/// \brief A PCHContainerOperations implementation that uses LLVM to
> +/// wraps Clang modules inside a COFF, ELF, or Mach-O container.
> +class ObjectFilePCHContainerOperations
> + : public PCHContainerOperations {
> + /// \brief Return an ASTConsumer that can be chained with a
> + /// PCHGenerator that produces a wrapper file format
> + /// that also contains full debug info for the module.
> + std::unique_ptr<ASTConsumer>
> + CreatePCHContainerGenerator(
> + DiagnosticsEngine &Diags, const HeaderSearchOptions &HSO,
> + const PreprocessorOptions &PPO, const TargetOptions &TO,
> + const LangOptions &LO, const std::string &MainFileName,
> + const std::string &OutputFileName, llvm::raw_pwrite_stream *OS,
> + std::shared_ptr<PCHBuffer> Buffer) const override;
> +
> + /// \brief Initialize an llvm::BitstreamReader with the serialized
> + /// AST inside the PCH container Buffer.
> + void ExtractPCH(llvm::MemoryBufferRef Buffer,
> + llvm::BitstreamReader &StreamFile) const override;
> +
> +
> +};
> +
> +}
> +
> +
> +#endif
>
> Modified: cfe/trunk/lib/Basic/FileManager.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/FileManager.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Basic/FileManager.cpp (original)
> +++ cfe/trunk/lib/Basic/FileManager.cpp Tue Jul 7 15:11:29 2015
> @@ -19,6 +19,7 @@
>
> #include "clang/Basic/FileManager.h"
> #include "clang/Basic/FileSystemStatCache.h"
> +#include "clang/Frontend/PCHContainerOperations.h"
> #include "llvm/ADT/SmallString.h"
> #include "llvm/Config/llvm-config.h"
> #include "llvm/Support/FileSystem.h"
> @@ -585,3 +586,5 @@ void FileManager::PrintStats() const {
>
> //llvm::errs() << PagesMapped << BytesOfPagesMapped << FSLookups;
> }
> +
> +PCHContainerOperations::~PCHContainerOperations() {}
>
> Modified: cfe/trunk/lib/CodeGen/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CMakeLists.txt?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CMakeLists.txt (original)
> +++ cfe/trunk/lib/CodeGen/CMakeLists.txt Tue Jul 7 15:11:29 2015
> @@ -71,6 +71,7 @@ add_clang_library(clangCodeGen
> ItaniumCXXABI.cpp
> MicrosoftCXXABI.cpp
> ModuleBuilder.cpp
> + ObjectFilePCHContainerOperations.cpp
> SanitizerMetadata.cpp
> TargetInfo.cpp
>
>
> Added: cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp?rev=241620&view=auto
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp (added)
> +++ cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp Tue Jul 7 15:11:29 2015
> @@ -0,0 +1,198 @@
> +//===--- ObjectFilePCHContainerOperations.cpp -----------------------------===//
> +//
> +// The LLVM Compiler Infrastructure
> +//
> +// This file is distributed under the University of Illinois Open Source
> +// License. See LICENSE.TXT for details.
> +//
> +//===----------------------------------------------------------------------===//
> +
> +#include "clang/CodeGen/ObjectFilePCHContainerOperations.h"
> +#include "CGDebugInfo.h"
> +#include "CodeGenModule.h"
> +#include "clang/AST/ASTContext.h"
> +#include "clang/AST/DeclObjC.h"
> +#include "clang/AST/Expr.h"
> +#include "clang/AST/RecursiveASTVisitor.h"
> +#include "clang/Basic/Diagnostic.h"
> +#include "clang/Basic/TargetInfo.h"
> +#include "clang/CodeGen/BackendUtil.h"
> +#include "clang/Frontend/CodeGenOptions.h"
> +#include "clang/Serialization/ASTWriter.h"
> +#include "llvm/ADT/StringRef.h"
> +#include "llvm/Bitcode/BitstreamReader.h"
> +#include "llvm/DebugInfo/DWARF/DWARFContext.h"
> +#include "llvm/IR/Constants.h"
> +#include "llvm/IR/DataLayout.h"
> +#include "llvm/IR/LLVMContext.h"
> +#include "llvm/IR/Module.h"
> +#include "llvm/Object/COFF.h"
> +#include "llvm/Object/ObjectFile.h"
> +#include "llvm/Support/TargetRegistry.h"
> +#include <memory>
> +using namespace clang;
> +
> +#define DEBUG_TYPE "pchcontainer"
> +
> +namespace {
> +class ModuleContainerGenerator : public ASTConsumer {
> + DiagnosticsEngine &Diags;
> + const std::string MainFileName;
> + ASTContext *Ctx;
> + const HeaderSearchOptions &HeaderSearchOpts;
> + const PreprocessorOptions &PreprocessorOpts;
> + CodeGenOptions CodeGenOpts;
> + const TargetOptions TargetOpts;
> + const LangOptions LangOpts;
> + std::unique_ptr<llvm::LLVMContext> VMContext;
> + std::unique_ptr<llvm::Module> M;
> + std::unique_ptr<CodeGen::CodeGenModule> Builder;
> + raw_pwrite_stream *OS;
> + std::shared_ptr<PCHBuffer> Buffer;
> +
> +public:
> + ModuleContainerGenerator(
> + DiagnosticsEngine &diags,
> + const HeaderSearchOptions &HSO, const PreprocessorOptions &PPO,
> + const TargetOptions &TO, const LangOptions &LO,
> + const std::string &MainFileName, const std::string &OutputFileName,
> + raw_pwrite_stream *OS, std::shared_ptr<PCHBuffer> Buffer)
> + : Diags(diags), HeaderSearchOpts(HSO), PreprocessorOpts(PPO),
> + TargetOpts(TO), LangOpts(LO), OS(OS),
> + Buffer(Buffer) {
> + // The debug info output isn't affected by CodeModel and
> + // ThreadModel, but the backend expects them to be nonempty.
> + CodeGenOpts.CodeModel = "default";
> + CodeGenOpts.ThreadModel = "single";
> + CodeGenOpts.setDebugInfo(CodeGenOptions::FullDebugInfo);
> + CodeGenOpts.SplitDwarfFile = OutputFileName;
> + }
> +
> + virtual ~ModuleContainerGenerator() {}
> +
> + void Initialize(ASTContext &Context) override {
> + Ctx = &Context;
> + VMContext.reset(new llvm::LLVMContext());
> + M.reset(new llvm::Module(MainFileName, *VMContext));
> + M->setDataLayout(Ctx->getTargetInfo().getTargetDescription());
> + Builder.reset(new CodeGen::CodeGenModule(*Ctx, HeaderSearchOpts,
> + PreprocessorOpts, CodeGenOpts,
> + *M, M->getDataLayout(), Diags));
> + }
> +
> + /// Emit a container holding the serialized AST.
> + void HandleTranslationUnit(ASTContext &Ctx) override {
> + assert(M && VMContext && Builder);
> + // Delete these on function exit.
> + std::unique_ptr<llvm::LLVMContext> VMContext = std::move(this->VMContext);
> + std::unique_ptr<llvm::Module> M = std::move(this->M);
> + std::unique_ptr<CodeGen::CodeGenModule> Builder = std::move(this->Builder);
> +
> + if (Diags.hasErrorOccurred())
> + return;
> +
> + M->setTargetTriple(Ctx.getTargetInfo().getTriple().getTriple());
> + M->setDataLayout(Ctx.getTargetInfo().getTargetDescription());
> +
> + // Finalize the Builder.
> + if (Builder)
> + Builder->Release();
> +
> + // Initialize the backend if we haven't done so already.
> + LLVMInitializeAllTargetInfos();
> + LLVMInitializeAllTargets();
> + LLVMInitializeAllAsmPrinters();
> + LLVMInitializeAllTargetMCs();
> +
> + // Ensure the target exists.
> + std::string Error;
> + auto Triple = Ctx.getTargetInfo().getTriple();
> + if (!llvm::TargetRegistry::lookupTarget(Triple.getTriple(), Error))
> + llvm::report_fatal_error(Error);
> +
> + // Emit the serialized Clang AST into its own section.
> + assert(Buffer->IsComplete && "serialization did not complete");
> + auto &SerializedAST = Buffer->Data;
> + auto Size = SerializedAST.size();
> + auto Int8Ty = llvm::Type::getInt8Ty(*VMContext);
> + auto *Ty = llvm::ArrayType::get(Int8Ty, Size);
> + auto *Data = llvm::ConstantDataArray::
> + getString(*VMContext, StringRef(SerializedAST.data(), Size),
> + /*AddNull=*/false);
> + auto *ASTSym = new llvm::GlobalVariable(
> + *M, Ty, /*constant*/ true, llvm::GlobalVariable::InternalLinkage, Data,
> + "__clang_ast");
> + // The on-disk hashtable needs to be aligned.
> + ASTSym->setAlignment(8);
> +
> + // Mach-O also needs a segment name.
> + if (Triple.isOSBinFormatMachO())
> + ASTSym->setSection("__CLANG,__clangast");
> + // COFF has an eight character length limit.
> + else if (Triple.isOSBinFormatCOFF())
> + ASTSym->setSection("clangast");
> + else
> + ASTSym->setSection("__clangast");
> +
> + DEBUG({
> + // Print the IR for the PCH container to the debug output.
> + llvm::SmallString<0> Buffer;
> + llvm::raw_svector_ostream OS(Buffer);
> + clang::EmitBackendOutput(Diags, CodeGenOpts, TargetOpts, LangOpts,
> + Ctx.getTargetInfo().getTargetDescription(),
> + M.get(), BackendAction::Backend_EmitLL, &OS);
> + OS.flush();
> + llvm::dbgs()<<Buffer;
> + });
> +
> + // Use the LLVM backend to emit the pch container.
> + clang::EmitBackendOutput(Diags, CodeGenOpts, TargetOpts, LangOpts,
> + Ctx.getTargetInfo().getTargetDescription(),
> + M.get(), BackendAction::Backend_EmitObj, OS);
> +
> + // Make sure the pch container hits disk.
> + OS->flush();
> +
> + // Free the memory for the temporary buffer.
> + llvm::SmallVector<char, 0> Empty;
> + SerializedAST = std::move(Empty);
> + }
> +};
> +}
> +
> +std::unique_ptr<ASTConsumer>
> +ObjectFilePCHContainerOperations::CreatePCHContainerGenerator(
> + DiagnosticsEngine &Diags, const HeaderSearchOptions &HSO,
> + const PreprocessorOptions &PPO, const TargetOptions &TO,
> + const LangOptions &LO, const std::string &MainFileName,
> + const std::string &OutputFileName, llvm::raw_pwrite_stream *OS,
> + std::shared_ptr<PCHBuffer> Buffer) const {
> + return llvm::make_unique<ModuleContainerGenerator>
> + (Diags, HSO, PPO, TO, LO, MainFileName, OutputFileName, OS, Buffer);
> +}
> +
> +void ObjectFilePCHContainerOperations::ExtractPCH(
> + llvm::MemoryBufferRef Buffer, llvm::BitstreamReader &StreamFile) const {
> + if (auto OF = llvm::object::ObjectFile::createObjectFile(Buffer)) {
> + auto *Obj = OF.get().get();
> + bool IsCOFF = isa<llvm::object::COFFObjectFile>(Obj);
> + // Find the clang AST section in the container.
> + for (auto &Section : OF->get()->sections()) {
> + StringRef Name;
> + Section.getName(Name);
> + if ((!IsCOFF && Name == "__clangast") ||
> + ( IsCOFF && Name == "clangast")) {
> + StringRef Buf;
> + Section.getContents(Buf);
> + StreamFile.init((const unsigned char *)Buf.begin(),
> + (const unsigned char *)Buf.end());
> + return;
> + }
> + }
> + }
> +
> + // As a fallback, treat the buffer as a raw AST.
> + StreamFile.init((const unsigned char *)Buffer.getBufferStart(),
> + (const unsigned char *)Buffer.getBufferEnd());
> + return;
> +}
>
> Modified: cfe/trunk/lib/Frontend/PCHContainerOperations.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/PCHContainerOperations.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Frontend/PCHContainerOperations.cpp (original)
> +++ cfe/trunk/lib/Frontend/PCHContainerOperations.cpp Tue Jul 7 15:11:29 2015
> @@ -18,8 +18,6 @@
> #include "clang/Lex/ModuleLoader.h"
> using namespace clang;
>
> -PCHContainerOperations::~PCHContainerOperations() {}
> -
> namespace {
>
> /// \brief A PCHContainerGenerator that writes out the PCH to a flat file.
>
> Modified: cfe/trunk/lib/Serialization/ASTReader.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReader.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Serialization/ASTReader.cpp (original)
> +++ cfe/trunk/lib/Serialization/ASTReader.cpp Tue Jul 7 15:11:29 2015
> @@ -3976,8 +3976,7 @@ bool ASTReader::readASTFileControlBlock(
>
> // Initialize the stream
> llvm::BitstreamReader StreamFile;
> - StreamFile.init((const unsigned char *)(*Buffer)->getBufferStart(),
> - (const unsigned char *)(*Buffer)->getBufferEnd());
> + PCHContainerOps.ExtractPCH((*Buffer)->getMemBufferRef(), StreamFile);
> BitstreamCursor Stream(StreamFile);
>
> // Sniff for the signature.
>
> Modified: cfe/trunk/test/ARCMT/check-with-pch.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/check-with-pch.m?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/ARCMT/check-with-pch.m (original)
> +++ cfe/trunk/test/ARCMT/check-with-pch.m Tue Jul 7 15:11:29 2015
> @@ -1,5 +1,6 @@
> // RUN: %clang_cc1 -x objective-c -triple x86_64-apple-darwin10 %S/Common.h -emit-pch -o %t.pch
> // RUN: %clang_cc1 -include-pch %t.pch -arcmt-check -verify -triple x86_64-apple-darwin10 -fblocks -Werror %s
> +// REQUIRES: x86-registered-target
>
> // rdar://9601437
> @interface I9601437 {
>
> Modified: cfe/trunk/test/ARCMT/migrate-on-pch-and-module.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/migrate-on-pch-and-module.m?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/ARCMT/migrate-on-pch-and-module.m (original)
> +++ cfe/trunk/test/ARCMT/migrate-on-pch-and-module.m Tue Jul 7 15:11:29 2015
> @@ -1,7 +1,7 @@
> // RUN: rm -rf %t-mcp
> // RUN: %clang_cc1 -objcmt-migrate-subscripting -emit-pch -o %t.pch %s -isysroot %S/Inputs/System -triple x86_64-apple-darwin10 -F %S/Inputs -fmodules -fimplicit-module-maps -fmodules-cache-path=%t-mcp -w
> // RUN: %clang_cc1 -objcmt-migrate-subscripting -include-pch %t.pch %s -migrate -o %t.remap -isysroot %S/Inputs/System -triple x86_64-apple-darwin10 -F %S/Inputs -fmodules -fimplicit-module-maps -fmodules-cache-path=%t-mcp
> -
> +// REQUIRES: x86-registered-target
> #ifndef HEADER
> #define HEADER
>
>
> Modified: cfe/trunk/test/ARCMT/objcmt-with-pch.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/objcmt-with-pch.m?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/ARCMT/objcmt-with-pch.m (original)
> +++ cfe/trunk/test/ARCMT/objcmt-with-pch.m Tue Jul 7 15:11:29 2015
> @@ -1,3 +1,4 @@
> +// REQUIRES: x86-registered-target
> // RUN: rm -rf %t
> // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -x objective-c %S/Common.h -emit-pch -o %t.pch
> // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -objcmt-migrate-literals -objcmt-migrate-subscripting -mt-migrate-directory %t %s -x objective-c -include-pch %t.pch
>
> Modified: cfe/trunk/test/ARCMT/objcmt-with-pch.m.result
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/objcmt-with-pch.m.result?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/ARCMT/objcmt-with-pch.m.result (original)
> +++ cfe/trunk/test/ARCMT/objcmt-with-pch.m.result Tue Jul 7 15:11:29 2015
> @@ -1,3 +1,4 @@
> +// REQUIRES: x86-registered-target
> // RUN: rm -rf %t
> // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -x objective-c %S/Common.h -emit-pch -o %t.pch
> // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -objcmt-migrate-literals -objcmt-migrate-subscripting -mt-migrate-directory %t %s -x objective-c -include-pch %t.pch
>
> Modified: cfe/trunk/test/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CMakeLists.txt?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/CMakeLists.txt (original)
> +++ cfe/trunk/test/CMakeLists.txt Tue Jul 7 15:11:29 2015
> @@ -58,7 +58,7 @@ set(CLANG_TEST_PARAMS
> if( NOT CLANG_BUILT_STANDALONE )
> list(APPEND CLANG_TEST_DEPS
> llvm-config
> - llc opt FileCheck count not llvm-symbolizer llvm-profdata
> + llc opt FileCheck count not llvm-symbolizer llvm-profdata llvm-objdump
> )
> endif()
>
>
> Modified: cfe/trunk/test/CXX/expr/expr.unary/expr.unary.noexcept/cg.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/expr/expr.unary/expr.unary.noexcept/cg.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/CXX/expr/expr.unary/expr.unary.noexcept/cg.cpp (original)
> +++ cfe/trunk/test/CXX/expr/expr.unary/expr.unary.noexcept/cg.cpp Tue Jul 7 15:11:29 2015
> @@ -1,3 +1,4 @@
> +// REQUIRES: x86-registered-target
> // RUN: %clang_cc1 -fcxx-exceptions -fexceptions -triple x86_64-apple-darwin10 -S -emit-llvm -std=c++11 -include %S/ser.h %s -o - | FileCheck %s
> // RUN: %clang_cc1 -fcxx-exceptions -fexceptions -triple x86_64-apple-darwin10 -emit-pch -o %t-ser.pch -std=c++11 -x c++ %S/ser.h
> // RUN: %clang_cc1 -fcxx-exceptions -fexceptions -triple x86_64-apple-darwin10 -S -emit-llvm -std=c++11 -include-pch %t-ser.pch %s -o - | FileCheck %s
>
> Modified: cfe/trunk/test/CodeGen/atomic-ops.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/atomic-ops.c?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/CodeGen/atomic-ops.c (original)
> +++ cfe/trunk/test/CodeGen/atomic-ops.c Tue Jul 7 15:11:29 2015
> @@ -1,4 +1,5 @@
> // RUN: %clang_cc1 %s -emit-llvm -o - -ffreestanding -triple=i686-apple-darwin9 | FileCheck %s
> +// REQUIRES: x86-registered-target
>
> // Also test serialization of atomic operations here, to avoid duplicating the
> // test.
>
> Modified: cfe/trunk/test/CodeGen/big-atomic-ops.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/big-atomic-ops.c?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/CodeGen/big-atomic-ops.c (original)
> +++ cfe/trunk/test/CodeGen/big-atomic-ops.c Tue Jul 7 15:11:29 2015
> @@ -1,5 +1,5 @@
> // RUN: %clang_cc1 %s -emit-llvm -o - -triple=x86_64-apple-macosx10.9.0 | FileCheck %s
> -
> +// REQUIRES: x86-registered-target
> // Also test serialization of atomic operations here, to avoid duplicating the
> // test.
> // RUN: %clang_cc1 %s -emit-pch -o %t -triple=x86_64-apple-macosx10.9.0
>
> Modified: cfe/trunk/test/Frontend/ast-codegen.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Frontend/ast-codegen.c?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/Frontend/ast-codegen.c (original)
> +++ cfe/trunk/test/Frontend/ast-codegen.c Tue Jul 7 15:11:29 2015
> @@ -1,3 +1,4 @@
> +// REQUIRES: x86-registered-target
> // RUN: %clang -target i386-unknown-unknown -emit-ast -o %t.ast %s
> // RUN: %clang -target i386-unknown-unknown -emit-llvm -S -o - %t.ast | FileCheck %s
>
>
> Modified: cfe/trunk/test/Index/TestClassForwardDecl.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/TestClassForwardDecl.m?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/Index/TestClassForwardDecl.m (original)
> +++ cfe/trunk/test/Index/TestClassForwardDecl.m Tue Jul 7 15:11:29 2015
> @@ -1,7 +1,7 @@
> // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fblocks -emit-pch -x objective-c %s -o %t.ast
> // RUN: c-index-test -test-file-scan %t.ast %s | FileCheck -check-prefix=CHECK-scan %s
> // RUN: c-index-test -test-load-tu %t.ast local | FileCheck -check-prefix=CHECK-load %s
> -
> +// REQUIRES: x86-registered-target
> // This test checks how the @class resolves as a cursor when the @interface is implicitly defined.
> // See TestClassDecl.m for the corresponding test case. (<rdar://problem/7383421>)
>
>
> Modified: cfe/trunk/test/Index/c-index-api-loadTU-test.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/c-index-api-loadTU-test.m?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/Index/c-index-api-loadTU-test.m (original)
> +++ cfe/trunk/test/Index/c-index-api-loadTU-test.m Tue Jul 7 15:11:29 2015
> @@ -1,6 +1,6 @@
> // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fblocks -emit-pch -x objective-c %s -o %t.ast
> // RUN: c-index-test -test-load-tu %t.ast all > %t 2>&1 && FileCheck --input-file=%t %s
> -
> +// REQUIRES: x86-registered-target
> @interface Foo
> {
> __attribute__((iboutlet)) id myoutlet;
>
> Modified: cfe/trunk/test/Index/c-index-getCursor-test.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/c-index-getCursor-test.m?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/Index/c-index-getCursor-test.m (original)
> +++ cfe/trunk/test/Index/c-index-getCursor-test.m Tue Jul 7 15:11:29 2015
> @@ -166,3 +166,4 @@ void f() {
> // CHECK: [57:1 - 57:10] FunctionDecl=f:57:6 (Definition)
> // CHECK: [58:4 - 58:8] VarDecl=my_var:58:8 (Definition)
> // CHECK: [58:8 - 58:15] macro expansion=CONCAT:55:9
> +// REQUIRES: x86-registered-target
>
> Modified: cfe/trunk/test/Index/pch-with-module.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/pch-with-module.m?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/Index/pch-with-module.m (original)
> +++ cfe/trunk/test/Index/pch-with-module.m Tue Jul 7 15:11:29 2015
> @@ -1,3 +1,4 @@
> +// REQUIRES: x86-registered-target
> // RUN: rm -rf %t.cache
> // RUN: c-index-test -write-pch %t.h.pch %s -target x86_64-apple-macosx10.7 -fobjc-arc -fmodules-cache-path=%t.cache -fmodules -F %S/../Modules/Inputs -Xclang -fdisable-module-hash
> // RUN: %clang -fsyntax-only %s -target x86_64-apple-macosx10.7 -include %t.h -fobjc-arc -fmodules-cache-path=%t.cache -fmodules -F %S/../Modules/Inputs \
>
> Modified: cfe/trunk/test/Index/print-mangled-name.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/print-mangled-name.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/Index/print-mangled-name.cpp (original)
> +++ cfe/trunk/test/Index/print-mangled-name.cpp Tue Jul 7 15:11:29 2015
> @@ -1,3 +1,4 @@
> +// REQUIRES: x86-registered-target
> // RUN: %clang_cc1 -triple i686-pc-linux-gnu -emit-pch %s -o %t_linux.ast
> // RUN: c-index-test -test-print-mangle %t_linux.ast | FileCheck %s --check-prefix=ITANIUM
>
>
> Modified: cfe/trunk/test/Modules/compiler_builtins_arm.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/compiler_builtins_arm.m?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/Modules/compiler_builtins_arm.m (original)
> +++ cfe/trunk/test/Modules/compiler_builtins_arm.m Tue Jul 7 15:11:29 2015
> @@ -1,5 +1,5 @@
> // RUN: rm -rf %t
> // RUN: %clang_cc1 -fsyntax-only -triple thumbv7-none-linux-gnueabihf -target-abi aapcs -target-cpu cortex-a8 -mfloat-abi hard -std=c99 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -D__need_wint_t %s -verify
> // expected-no-diagnostics
> -
> +// REQUIRES: arm-registered-target
> @import _Builtin_intrinsics.arm.neon;
>
> Modified: cfe/trunk/test/Modules/dependency-gen-inferred-map.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/dependency-gen-inferred-map.m?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/Modules/dependency-gen-inferred-map.m (original)
> +++ cfe/trunk/test/Modules/dependency-gen-inferred-map.m Tue Jul 7 15:11:29 2015
> @@ -1,5 +1,6 @@
> // Test that the virtual file "__inferred_module.map" doesn't show up as dependency.
>
> +// REQUIRES: x86-registered-target
> // RUN: rm -rf %t-mcp
> // RUN: %clang_cc1 -isysroot %S/Inputs/System -triple x86_64-apple-darwin10 -dependency-file %t.d -MT %s.o -F %S/Inputs -fsyntax-only -fmodules -fimplicit-module-maps -fmodules-cache-path=%t-mcp %s
> // RUN: FileCheck %s < %t.d
>
> Modified: cfe/trunk/test/Modules/dependency-gen-pch.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/dependency-gen-pch.m?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/Modules/dependency-gen-pch.m (original)
> +++ cfe/trunk/test/Modules/dependency-gen-pch.m Tue Jul 7 15:11:29 2015
> @@ -1,5 +1,6 @@
> // RUN: rm -rf %t-mcp
> // RUN: mkdir -p %t-mcp
> +// REQUIRES: x86-registered-target
>
> // RUN: %clang_cc1 -isysroot %S/Inputs/System -triple x86_64-apple-darwin10 -module-file-deps -dependency-file %t.d -MT %s.o -I %S/Inputs -fmodules -fimplicit-module-maps -fdisable-module-hash -fmodules-cache-path=%t-mcp -emit-pch -o %t.pch %s
> // RUN: FileCheck %s < %t.d
>
> Modified: cfe/trunk/test/Modules/irgen.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/irgen.c?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/Modules/irgen.c (original)
> +++ cfe/trunk/test/Modules/irgen.c Tue Jul 7 15:11:29 2015
> @@ -1,3 +1,4 @@
> +// REQUIRES: x86-registered-target
> // RUN: rm -rf %t
> // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -x objective-c -fmodules-cache-path=%t -emit-module -fmodule-name=irgen -triple x86_64-apple-darwin10 %S/Inputs/module.map
> // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -x objective-c -fmodules-cache-path=%t -I %S/Inputs -triple x86_64-apple-darwin10 -emit-llvm -o - %s | FileCheck %s
>
> Added: cfe/trunk/test/Modules/pch_container.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/pch_container.m?rev=241620&view=auto
> ==============================================================================
> --- cfe/trunk/test/Modules/pch_container.m (added)
> +++ cfe/trunk/test/Modules/pch_container.m Tue Jul 7 15:11:29 2015
> @@ -0,0 +1,17 @@
> + at import DependsOnModule;
> +// REQUIRES: x86-registered-target
> +// RUN: rm -rf %t-MachO %t-ELF %t-ELF_SPLIT %t-COFF
> +// RUN: %clang_cc1 -triple=x86_64-apple-darwin -fmodules -fimplicit-module-maps -fdisable-module-hash -fmodules-cache-path=%t-MachO -F %S/Inputs %s
> +// RUN: %clang_cc1 -triple=x86_64-linux-elf -fmodules -fimplicit-module-maps -fdisable-module-hash -fmodules-cache-path=%t-ELF -F %S/Inputs %s
> +// RUN: %clang_cc1 -triple=x86_64-windows-coff -fmodules -fimplicit-module-maps -fdisable-module-hash -fmodules-cache-path=%t-COFF -F %S/Inputs %s
> +
> +// RUN: llvm-objdump -section-headers %t-MachO/DependsOnModule.pcm %t-ELF/DependsOnModule.pcm %t-COFF/DependsOnModule.pcm | FileCheck %s
> +// CHECK: file format Mach-O 64-bit x86-64
> +// CHECK: __clangast {{[0-9a-f]+}} {{[0-9a-f]+}} DATA
> +// CHECK: file format ELF64-x86-64
> +// CHECK: __clangast {{[0-9a-f]+}} {{[0-9a-f]+}} DATA
> +// CHECK: file format COFF-x86-64
> +// CHECK: clangast {{[0-9a-f]+}} {{[0-9a-f]+}}
> +
> +
> +// RUN: %clang_cc1 -split-dwarf-file t-split.dwo -triple=x86_64-linux-elf -fmodules -fimplicit-module-maps -fdisable-module-hash -fmodules-cache-path=%t-ELF_SPLIT -F %S/Inputs %s -o %t-split.o
>
> Modified: cfe/trunk/test/Modules/self-import-header.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/self-import-header.m?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/Modules/self-import-header.m (original)
> +++ cfe/trunk/test/Modules/self-import-header.m Tue Jul 7 15:11:29 2015
> @@ -1,5 +1,5 @@
> // rdar://13840148
> -
> +// REQUIRES: x86-registered-target
> // RUN: rm -rf %t
> // RUN: %clang -fsyntax-only -isysroot %S/Inputs/System/usr/include -fmodules -fmodules-cache-path=%t \
> // RUN: -target x86_64-darwin \
>
> Modified: cfe/trunk/test/Modules/templates-2.mm
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/templates-2.mm?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/Modules/templates-2.mm (original)
> +++ cfe/trunk/test/Modules/templates-2.mm Tue Jul 7 15:11:29 2015
> @@ -2,7 +2,7 @@
> // RUN: %clang_cc1 -triple x86_64-linux-gnu -std=c++11 -x objective-c++ -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs -verify %s -Wno-objc-root-class
> // RUN: %clang_cc1 -triple x86_64-linux-gnu -std=c++11 -x objective-c++ -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs -emit-llvm %s -o - -Wno-objc-root-class | FileCheck %s
> // expected-no-diagnostics
> -
> +// REQUIRES: x86-registered-target
> @import templates_top;
>
> struct TestEmitDefaultedSpecialMembers {
>
> Modified: cfe/trunk/test/Modules/templates.mm
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/templates.mm?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/Modules/templates.mm (original)
> +++ cfe/trunk/test/Modules/templates.mm Tue Jul 7 15:11:29 2015
> @@ -2,7 +2,7 @@
> // RUN: %clang_cc1 -triple x86_64-linux-gnu -std=c++11 -x objective-c++ -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs -verify %s -Wno-objc-root-class
> // RUN: %clang_cc1 -triple x86_64-linux-gnu -std=c++11 -x objective-c++ -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs -emit-llvm %s -o - -Wno-objc-root-class | FileCheck %s
> // expected-no-diagnostics
> -
> +// REQUIRES: x86-registered-target
> @import templates_left;
>
> void testInlineRedeclEarly() {
>
> Modified: cfe/trunk/test/Modules/va_list.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/va_list.m?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/Modules/va_list.m (original)
> +++ cfe/trunk/test/Modules/va_list.m Tue Jul 7 15:11:29 2015
> @@ -1,3 +1,4 @@
> +// REQUIRES: x86-registered-target
> // RUN: rm -rf %t
> // RUN: %clang_cc1 -triple x86_64-apple-macosx10 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t \
> // RUN: -fmodules-ignore-macro=PREFIX -DPREFIX -I %S/Inputs/va_list \
>
> Modified: cfe/trunk/test/OpenMP/atomic_read_codegen.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/atomic_read_codegen.c?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/OpenMP/atomic_read_codegen.c (original)
> +++ cfe/trunk/test/OpenMP/atomic_read_codegen.c Tue Jul 7 15:11:29 2015
> @@ -2,7 +2,7 @@
> // RUN: %clang_cc1 -fopenmp -x c -triple x86_64-apple-darwin10 -emit-pch -o %t %s
> // RUN: %clang_cc1 -fopenmp -x c -triple x86_64-apple-darwin10 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s
> // expected-no-diagnostics
> -
> +// REQUIRES: x86-registered-target
> #ifndef HEADER
> #define HEADER
>
>
> Modified: cfe/trunk/test/OpenMP/barrier_codegen.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/barrier_codegen.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/OpenMP/barrier_codegen.cpp (original)
> +++ cfe/trunk/test/OpenMP/barrier_codegen.cpp Tue Jul 7 15:11:29 2015
> @@ -2,7 +2,7 @@
> // RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -triple x86_64-unknown-unknown -emit-pch -o %t %s
> // RUN: %clang_cc1 -fopenmp -x c++ -triple x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s
> // expected-no-diagnostics
> -
> +// REQUIRES: x86-registered-target
> #ifndef HEADER
> #define HEADER
>
>
> Modified: cfe/trunk/test/OpenMP/critical_codegen.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/critical_codegen.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/OpenMP/critical_codegen.cpp (original)
> +++ cfe/trunk/test/OpenMP/critical_codegen.cpp Tue Jul 7 15:11:29 2015
> @@ -3,7 +3,7 @@
> // RUN: %clang_cc1 -fopenmp -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s
> // RUN: %clang_cc1 -verify -triple x86_64-apple-darwin10 -fopenmp -fexceptions -fcxx-exceptions -gline-tables-only -x c++ -emit-llvm %s -o - | FileCheck %s --check-prefix=TERM_DEBUG
> // expected-no-diagnostics
> -
> +// REQUIRES: x86-registered-target
> #ifndef HEADER
> #define HEADER
>
>
> Modified: cfe/trunk/test/OpenMP/flush_codegen.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/flush_codegen.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/OpenMP/flush_codegen.cpp (original)
> +++ cfe/trunk/test/OpenMP/flush_codegen.cpp Tue Jul 7 15:11:29 2015
> @@ -2,7 +2,7 @@
> // RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s
> // RUN: %clang_cc1 -fopenmp -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -g -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s
> // expected-no-diagnostics
> -
> +// REQUIRES: x86-registered-target
> #ifndef HEADER
> #define HEADER
>
>
> Modified: cfe/trunk/test/OpenMP/for_codegen.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/for_codegen.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/OpenMP/for_codegen.cpp (original)
> +++ cfe/trunk/test/OpenMP/for_codegen.cpp Tue Jul 7 15:11:29 2015
> @@ -4,9 +4,9 @@
> // RUN: %clang_cc1 -verify -triple x86_64-apple-darwin10 -fopenmp -fexceptions -fcxx-exceptions -gline-tables-only -x c++ -emit-llvm %s -o - | FileCheck %s --check-prefix=TERM_DEBUG
> //
> // expected-no-diagnostics
> +// REQUIRES: x86-registered-target
> #ifndef HEADER
> #define HEADER
> -
> // CHECK: [[IDENT_T_TY:%.+]] = type { i32, i32, i32, i32, i8* }
> // CHECK-DAG: [[IMPLICIT_BARRIER_LOC:@.+]] = private unnamed_addr constant %{{.+}} { i32 0, i32 66, i32 0, i32 0, i8*
> // CHECK-DAG: [[I:@.+]] = global i8 1,
>
> Modified: cfe/trunk/test/OpenMP/master_codegen.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/master_codegen.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/OpenMP/master_codegen.cpp (original)
> +++ cfe/trunk/test/OpenMP/master_codegen.cpp Tue Jul 7 15:11:29 2015
> @@ -3,7 +3,7 @@
> // RUN: %clang_cc1 -fopenmp -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s
> // RUN: %clang_cc1 -verify -triple x86_64-apple-darwin10 -fopenmp -fexceptions -fcxx-exceptions -gline-tables-only -x c++ -emit-llvm %s -o - | FileCheck %s --check-prefix=TERM_DEBUG
> // expected-no-diagnostics
> -
> +// REQUIRES: x86-registered-target
> #ifndef HEADER
> #define HEADER
>
>
> Modified: cfe/trunk/test/OpenMP/parallel_codegen.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/parallel_codegen.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/OpenMP/parallel_codegen.cpp (original)
> +++ cfe/trunk/test/OpenMP/parallel_codegen.cpp Tue Jul 7 15:11:29 2015
> @@ -2,9 +2,9 @@
> // RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s
> // RUN: %clang_cc1 -fopenmp -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -g -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck --check-prefix=CHECK-DEBUG %s
> // expected-no-diagnostics
> +// REQUIRES: x86-registered-target
> #ifndef HEADER
> #define HEADER
> -
> // CHECK-DAG: %ident_t = type { i32, i32, i32, i32, i8* }
> // CHECK-DAG: %struct.anon = type { i32* }
> // CHECK-DAG: %struct.anon.0 = type { i8*** }
>
> Modified: cfe/trunk/test/OpenMP/parallel_private_codegen.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/parallel_private_codegen.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/OpenMP/parallel_private_codegen.cpp (original)
> +++ cfe/trunk/test/OpenMP/parallel_private_codegen.cpp Tue Jul 7 15:11:29 2015
> @@ -4,9 +4,9 @@
> // RUN: %clang_cc1 -verify -fopenmp -x c++ -std=c++11 -DLAMBDA -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck -check-prefix=LAMBDA %s
> // RUN: %clang_cc1 -verify -fopenmp -x c++ -fblocks -DBLOCKS -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck -check-prefix=BLOCKS %s
> // expected-no-diagnostics
> +// REQUIRES: x86-registered-target
> #ifndef HEADER
> #define HEADER
> -
> template <class T>
> struct S {
> T f;
>
> Modified: cfe/trunk/test/OpenMP/simd_codegen.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/simd_codegen.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/OpenMP/simd_codegen.cpp (original)
> +++ cfe/trunk/test/OpenMP/simd_codegen.cpp Tue Jul 7 15:11:29 2015
> @@ -2,7 +2,7 @@
> // RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s
> // RUN: %clang_cc1 -fopenmp -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -g -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s
> // RUN: %clang_cc1 -verify -triple x86_64-apple-darwin10 -fopenmp -fexceptions -fcxx-exceptions -gline-tables-only -x c++ -emit-llvm %s -o - | FileCheck %s --check-prefix=TERM_DEBUG
> -//
> +// REQUIRES: x86-registered-target
> // expected-no-diagnostics
> #ifndef HEADER
> #define HEADER
>
> Modified: cfe/trunk/test/OpenMP/single_codegen.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/single_codegen.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/OpenMP/single_codegen.cpp (original)
> +++ cfe/trunk/test/OpenMP/single_codegen.cpp Tue Jul 7 15:11:29 2015
> @@ -4,7 +4,7 @@
> // RUN: %clang_cc1 -verify -triple x86_64-apple-darwin10 -fopenmp -fexceptions -fcxx-exceptions -gline-tables-only -x c++ -emit-llvm %s -o - | FileCheck %s --check-prefix=TERM_DEBUG
> // RUN: %clang_cc1 -verify -fopenmp -x c++ -std=c++11 -DARRAY -triple x86_64-apple-darwin10 -emit-llvm %s -o - | FileCheck -check-prefix=ARRAY %s
> // expected-no-diagnostics
> -
> +// REQUIRES: x86-registered-target
> #ifndef ARRAY
> #ifndef HEADER
> #define HEADER
>
> Modified: cfe/trunk/test/OpenMP/taskyield_codegen.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/taskyield_codegen.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/OpenMP/taskyield_codegen.cpp (original)
> +++ cfe/trunk/test/OpenMP/taskyield_codegen.cpp Tue Jul 7 15:11:29 2015
> @@ -2,7 +2,7 @@
> // RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -triple x86_64-unknown-unknown -emit-pch -o %t %s
> // RUN: %clang_cc1 -fopenmp -x c++ -triple x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s
> // expected-no-diagnostics
> -
> +// REQUIRES: x86-registered-target
> #ifndef HEADER
> #define HEADER
>
>
> Modified: cfe/trunk/test/OpenMP/threadprivate_codegen.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/threadprivate_codegen.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/OpenMP/threadprivate_codegen.cpp (original)
> +++ cfe/trunk/test/OpenMP/threadprivate_codegen.cpp Tue Jul 7 15:11:29 2015
> @@ -18,7 +18,7 @@
> // CHECK-DEBUG-DAG: [[S4:%.+]] = type { [[INT]], [[INT]] }
> // CHECK-DEBUG-DAG: [[S5:%.+]] = type { [[INT]], [[INT]], [[INT]] }
> // CHECK-DEBUG-DAG: [[SMAIN:%.+]] = type { [[INT]], double, double }
> -
> +// REQUIRES: x86-registered-target
> struct S1 {
> int a;
> S1()
>
> Modified: cfe/trunk/test/PCH/__va_list_tag.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/__va_list_tag.c?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/PCH/__va_list_tag.c (original)
> +++ cfe/trunk/test/PCH/__va_list_tag.c Tue Jul 7 15:11:29 2015
> @@ -1,3 +1,4 @@
> +// REQUIRES: x86-registered-target
> // PR13189
> // rdar://problem/11741429
> // Test this without pch.
>
> Modified: cfe/trunk/test/PCH/arc.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/arc.m?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/PCH/arc.m (original)
> +++ cfe/trunk/test/PCH/arc.m Tue Jul 7 15:11:29 2015
> @@ -1,3 +1,4 @@
> +// REQUIRES: x86-registered-target
> // Test this without pch.
> // RUN: %clang_cc1 -fblocks -triple x86_64-apple-darwin11 -fobjc-arc -include %S/Inputs/arc.h -fsyntax-only -emit-llvm-only %s
>
>
> Modified: cfe/trunk/test/PCH/asm.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/asm.c?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/PCH/asm.c (original)
> +++ cfe/trunk/test/PCH/asm.c Tue Jul 7 15:11:29 2015
> @@ -1,3 +1,4 @@
> +// REQUIRES: x86-registered-target
> // Test this without pch.
> // RUN: %clang_cc1 -triple i386-unknown-unknown -include %S/asm.h -fsyntax-only -verify %s
>
>
> Modified: cfe/trunk/test/PCH/chain-external-defs.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/chain-external-defs.c?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/PCH/chain-external-defs.c (original)
> +++ cfe/trunk/test/PCH/chain-external-defs.c Tue Jul 7 15:11:29 2015
> @@ -1,3 +1,4 @@
> +// REQUIRES: x86-registered-target
> // Test with pch.
> // RUN: %clang_cc1 -triple x86_64-apple-darwin9 -emit-pch -o %t1.pch %S/Inputs/chain-external-defs1.h
> // RUN: %clang_cc1 -triple x86_64-apple-darwin9 -emit-pch -o %t2.pch %S/Inputs/chain-external-defs2.h -include-pch %t1.pch
>
> Modified: cfe/trunk/test/PCH/chain-trivial.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/chain-trivial.c?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/PCH/chain-trivial.c (original)
> +++ cfe/trunk/test/PCH/chain-trivial.c Tue Jul 7 15:11:29 2015
> @@ -1,2 +1,3 @@
> +// REQUIRES: x86-registered-target
> // RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-pch -o %t1 %S/Inputs/chain-trivial1.h
> // RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-pch -o %t2 -include-pch %t1 %S/Inputs/chain-trivial2.h
>
> Modified: cfe/trunk/test/PCH/cxx-ms-function-specialization-class-scope.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/cxx-ms-function-specialization-class-scope.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/PCH/cxx-ms-function-specialization-class-scope.cpp (original)
> +++ cfe/trunk/test/PCH/cxx-ms-function-specialization-class-scope.cpp Tue Jul 7 15:11:29 2015
> @@ -1,3 +1,4 @@
> +// REQUIRES: x86-registered-target
> // RUN: %clang_cc1 -fms-extensions -triple i386-unknown-unknown -x c++-header -emit-pch -o %t %S/cxx-ms-function-specialization-class-scope.h
> // RUN: %clang_cc1 -fms-extensions -triple i386-unknown-unknown -include-pch %t -fsyntax-only -verify %s
> // expected-no-diagnostics
>
> Modified: cfe/trunk/test/PCH/external-defs.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/external-defs.c?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/PCH/external-defs.c (original)
> +++ cfe/trunk/test/PCH/external-defs.c Tue Jul 7 15:11:29 2015
> @@ -1,3 +1,4 @@
> +// REQUIRES: x86-registered-target
> // Test with pch.
> // RUN: %clang_cc1 -triple x86_64-apple-darwin9 -emit-pch -o %t.pch %S/external-defs.h
> // RUN: %clang_cc1 -triple x86_64-apple-darwin9 -include-pch %t.pch -emit-llvm -o %t %s
>
> Modified: cfe/trunk/test/PCH/floating-literal.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/floating-literal.c?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/PCH/floating-literal.c (original)
> +++ cfe/trunk/test/PCH/floating-literal.c Tue Jul 7 15:11:29 2015
> @@ -1,4 +1,5 @@
> // RUN: %clang_cc1 -triple mips64-none-linux-gnu -emit-pch -o %t %s
> +// REQUIRES: mips-registered-target
> // RUN: %clang_cc1 -x ast -ast-print %t | FileCheck %s
>
> // Make sure the semantics of FloatingLiterals are stored correctly in
>
> Modified: cfe/trunk/test/PCH/local_static.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/local_static.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/PCH/local_static.cpp (original)
> +++ cfe/trunk/test/PCH/local_static.cpp Tue Jul 7 15:11:29 2015
> @@ -1,3 +1,4 @@
> +// REQUIRES: x86-registered-target
> // Test this without PCH.
> // RUN: %clang_cc1 -triple x86_64-apple-macosx10.9.0 -include %S/local_static.h -fsyntax-only %s -emit-llvm -o %t.no_pch.ll %s
> // RUN: FileCheck --input-file %t.no_pch.ll %s
>
> Modified: cfe/trunk/test/PCH/pchpch.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/pchpch.c?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/PCH/pchpch.c (original)
> +++ cfe/trunk/test/PCH/pchpch.c Tue Jul 7 15:11:29 2015
> @@ -1,6 +1,7 @@
> // RUN: %clang_cc1 -triple i386-unknown-unknown -emit-pch -o %t1 %S/pchpch1.h
> // RUN: %clang_cc1 -triple i386-unknown-unknown -emit-pch -o %t2 %S/pchpch2.h -include-pch %t1
> // RUN: %clang_cc1 -triple i386-unknown-unknown -fsyntax-only %s -include-pch %t2
> +// REQUIRES: x86-registered-target
>
> // The purpose of this test is to make sure that a PCH created while including
> // an existing PCH can be loaded.
>
> Modified: cfe/trunk/test/PCH/reloc.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/reloc.c?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/PCH/reloc.c (original)
> +++ cfe/trunk/test/PCH/reloc.c Tue Jul 7 15:11:29 2015
> @@ -3,6 +3,7 @@
> // RUN: %clang -target x86_64-apple-darwin10 -fsyntax-only \
> // RUN: -include-pch %t -isysroot %S/libroot %s -Xclang -verify
> // RUN: not %clang -target x86_64-apple-darwin10 -include-pch %t %s
> +// REQUIRES: x86-registered-target
>
> #include <reloc.h>
>
>
> Modified: cfe/trunk/test/PCH/subscripting-literals.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/subscripting-literals.m?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/PCH/subscripting-literals.m (original)
> +++ cfe/trunk/test/PCH/subscripting-literals.m Tue Jul 7 15:11:29 2015
> @@ -1,6 +1,7 @@
> // RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-llvm -o %t.nopch.ll %s
> // RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-pch -o %t.pch %s
> // RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-llvm -o %t.pch.ll %s -include-pch %t.pch
> +// REQUIRES: x86-registered-target
> // RUN: diff %t.nopch.ll %t.pch.ll
>
> #ifndef HEADER
>
> Modified: cfe/trunk/test/PCH/target-options.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/target-options.c?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/PCH/target-options.c (original)
> +++ cfe/trunk/test/PCH/target-options.c Tue Jul 7 15:11:29 2015
> @@ -1,5 +1,6 @@
> // RUN: %clang_cc1 -triple=x86_64-apple-darwin9 -emit-pch -o %t.pch %S/target-options.h
> // RUN: not %clang_cc1 -triple=x86_64-unknown-freebsd7.0 -include-pch %t.pch %s -emit-llvm -o - > %t.err 2>&1
> // RUN: FileCheck %s < %t.err
> +// REQUIRES: x86-registered-target
>
> // CHECK: for the target
>
> Modified: cfe/trunk/test/PCH/tentative-defs.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/tentative-defs.c?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/PCH/tentative-defs.c (original)
> +++ cfe/trunk/test/PCH/tentative-defs.c Tue Jul 7 15:11:29 2015
> @@ -1,6 +1,7 @@
> // Test with pch.
> // RUN: %clang_cc1 -triple x86_64-apple-darwin9 -emit-pch -o %t.pch %S/tentative-defs.h
> // RUN: %clang_cc1 -triple x86_64-apple-darwin9 -include-pch %t.pch -verify -emit-llvm -o %t %s
> +// REQUIRES: x86-registered-target
>
> // RUN: grep "@variable = common global i32 0" %t | count 1
> // RUN: grep "@incomplete_array = common global .*1 x i32" %t | count 1
>
> Modified: cfe/trunk/test/PCH/thread-local.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/thread-local.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/PCH/thread-local.cpp (original)
> +++ cfe/trunk/test/PCH/thread-local.cpp Tue Jul 7 15:11:29 2015
> @@ -1,6 +1,6 @@
> // RUN: %clang_cc1 -pedantic-errors -std=c++11 -triple x86_64-linux-gnu -emit-pch %s -o %t
> // RUN: %clang_cc1 -pedantic-errors -std=c++11 -triple x86_64-linux-gnu -include-pch %t -verify %s
> -
> +// REQUIRES: x86-registered-target
> #ifndef HEADER_INCLUDED
>
> #define HEADER_INCLUDED
>
> Modified: cfe/trunk/test/PCH/va_arg.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/va_arg.c?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/PCH/va_arg.c (original)
> +++ cfe/trunk/test/PCH/va_arg.c Tue Jul 7 15:11:29 2015
> @@ -1,5 +1,6 @@
> // Test this without pch.
> // RUN: %clang_cc1 -triple=x86_64-unknown-freebsd7.0 -include %S/va_arg.h %s -emit-llvm -o -
> +// REQUIRES: x86-registered-target
>
> // Test with pch.
> // RUN: %clang_cc1 -triple=x86_64-unknown-freebsd7.0 -emit-pch -o %t %S/va_arg.h
>
> Modified: cfe/trunk/test/PCH/va_arg.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/va_arg.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/test/PCH/va_arg.cpp (original)
> +++ cfe/trunk/test/PCH/va_arg.cpp Tue Jul 7 15:11:29 2015
> @@ -1,5 +1,6 @@
> // Test this without pch.
> // RUN: %clang_cc1 -triple=x86_64-unknown-freebsd7.0 -include %S/Inputs/va_arg.h %s -emit-llvm -o -
> +// REQUIRES: x86-registered-target
>
> // Test with pch.
> // RUN: %clang_cc1 -triple=x86_64-unknown-freebsd7.0 -emit-pch -x c++-header -o %t %S/Inputs/va_arg.h
>
> Modified: cfe/trunk/tools/clang-check/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-check/CMakeLists.txt?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/tools/clang-check/CMakeLists.txt (original)
> +++ cfe/trunk/tools/clang-check/CMakeLists.txt Tue Jul 7 15:11:29 2015
> @@ -1,4 +1,5 @@
> set(LLVM_LINK_COMPONENTS
> + ${LLVM_TARGETS_TO_BUILD}
> Option
> Support
> )
> @@ -11,6 +12,7 @@ target_link_libraries(clang-check
> clangAST
> clangBasic
> clangDriver
> + clangCodeGen
> clangFrontend
> clangRewriteFrontend
> clangStaticAnalyzerFrontend
>
> Modified: cfe/trunk/tools/clang-check/ClangCheck.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-check/ClangCheck.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/tools/clang-check/ClangCheck.cpp (original)
> +++ cfe/trunk/tools/clang-check/ClangCheck.cpp Tue Jul 7 15:11:29 2015
> @@ -17,6 +17,7 @@
> //===----------------------------------------------------------------------===//
>
> #include "clang/AST/ASTConsumer.h"
> +#include "clang/CodeGen/ObjectFilePCHContainerOperations.h"
> #include "clang/Driver/Options.h"
> #include "clang/Frontend/ASTConsumers.h"
> #include "clang/Frontend/CompilerInstance.h"
> @@ -151,7 +152,8 @@ int main(int argc, const char **argv) {
> llvm::sys::PrintStackTraceOnErrorSignal();
> CommonOptionsParser OptionsParser(argc, argv, ClangCheckCategory);
> ClangTool Tool(OptionsParser.getCompilations(),
> - OptionsParser.getSourcePathList());
> + OptionsParser.getSourcePathList(),
> + std::make_shared<clang::ObjectFilePCHContainerOperations>());
>
> // Clear adjusters because -fsyntax-only is inserted by the default chain.
> Tool.clearArgumentsAdjusters();
>
> Modified: cfe/trunk/tools/clang-check/Makefile
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-check/Makefile?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/tools/clang-check/Makefile (original)
> +++ cfe/trunk/tools/clang-check/Makefile Tue Jul 7 15:11:29 2015
> @@ -15,11 +15,14 @@ TOOLNAME = clang-check
> TOOL_NO_EXPORTS = 1
>
> include $(CLANG_LEVEL)/../../Makefile.config
> -LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader support mc option
> -USEDLIBS = clangFrontend.a clangSerialization.a clangDriver.a \
> +LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader ipo objcarcopts \
> + instrumentation bitwriter support mc option
> +USEDLIBS = clangFrontend.a clangCodeGen.a clangIndex.a \
> + clangSerialization.a clangDriver.a \
> clangTooling.a clangParse.a clangSema.a \
> clangStaticAnalyzerFrontend.a clangStaticAnalyzerCheckers.a \
> clangStaticAnalyzerCore.a clangAnalysis.a clangRewriteFrontend.a \
> - clangRewrite.a clangEdit.a clangAST.a clangLex.a clangBasic.a
> + clangRewrite.a clangEdit.a clangAST.a clangLex.a \
> + clangBasic.a
>
> include $(CLANG_LEVEL)/Makefile
>
> Modified: cfe/trunk/tools/driver/cc1_main.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/driver/cc1_main.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/tools/driver/cc1_main.cpp (original)
> +++ cfe/trunk/tools/driver/cc1_main.cpp Tue Jul 7 15:11:29 2015
> @@ -14,7 +14,7 @@
> //===----------------------------------------------------------------------===//
>
> #include "llvm/Option/Arg.h"
> -#include "clang/Frontend/PCHContainerOperations.h"
> +#include "clang/CodeGen/ObjectFilePCHContainerOperations.h"
> #include "clang/Driver/DriverDiagnostic.h"
> #include "clang/Driver/Options.h"
> #include "clang/Frontend/CompilerInstance.h"
> @@ -65,8 +65,8 @@ void initializePollyPasses(llvm::PassReg
> #endif
>
> int cc1_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) {
> - std::unique_ptr<CompilerInstance> Clang(
> - new CompilerInstance(std::make_shared<RawPCHContainerOperations>()));
> + std::unique_ptr<CompilerInstance> Clang(new CompilerInstance(
> + std::make_shared<ObjectFilePCHContainerOperations>()));
> IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs());
>
> // Initialize targets first, so that --version shows registered targets.
>
> Modified: cfe/trunk/tools/libclang/CIndex.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CIndex.cpp?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/tools/libclang/CIndex.cpp (original)
> +++ cfe/trunk/tools/libclang/CIndex.cpp Tue Jul 7 15:11:29 2015
> @@ -29,6 +29,7 @@
> #include "clang/Basic/DiagnosticIDs.h"
> #include "clang/Basic/TargetInfo.h"
> #include "clang/Basic/Version.h"
> +#include "clang/CodeGen/ObjectFilePCHContainerOperations.h"
> #include "clang/Frontend/ASTUnit.h"
> #include "clang/Frontend/CompilerInstance.h"
> #include "clang/Frontend/FrontendDiagnostic.h"
> @@ -2876,7 +2877,8 @@ CXIndex clang_createIndex(int excludeDec
> // registered once.
> (void)*RegisterFatalErrorHandlerOnce;
>
> - CIndexer *CIdxr = new CIndexer();
> + CIndexer *CIdxr =
> + new CIndexer(std::make_shared<ObjectFilePCHContainerOperations>());
> if (excludeDeclarationsFromPCH)
> CIdxr->setOnlyLocalDecls();
> if (displayDiagnostics)
>
> Modified: cfe/trunk/tools/libclang/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CMakeLists.txt?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/tools/libclang/CMakeLists.txt (original)
> +++ cfe/trunk/tools/libclang/CMakeLists.txt Tue Jul 7 15:11:29 2015
> @@ -37,9 +37,14 @@ set(SOURCES
> ../../include/clang-c/Index.h
> )
>
> +set( LLVM_LINK_COMPONENTS
> + ${LLVM_TARGETS_TO_BUILD}
> + )
> +
> set(LIBS
> clangAST
> clangBasic
> + clangCodeGen
> clangFrontend
> clangIndex
> clangLex
>
> Modified: cfe/trunk/tools/libclang/Makefile
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/Makefile?rev=241620&r1=241619&r2=241620&view=diff
> ==============================================================================
> --- cfe/trunk/tools/libclang/Makefile (original)
> +++ cfe/trunk/tools/libclang/Makefile Tue Jul 7 15:11:29 2015
> @@ -16,19 +16,21 @@ LINK_LIBS_IN_SHARED = 1
> SHARED_LIBRARY = 1
>
> include $(CLANG_LEVEL)/../../Makefile.config
> -LINK_COMPONENTS := AsmParser BitReader Core MC MCParser Option Support
> +LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter core \
> + instrumentation ipo mc mcparser objcarcopts option support \
> + object
> USEDLIBS = clangIndex.a clangARCMigrate.a \
> clangRewriteFrontend.a \
> clangFormat.a \
> clangTooling.a clangToolingCore.a \
> - clangFrontend.a clangDriver.a \
> + clangFrontend.a clangCodeGen.a clangDriver.a \
> clangSerialization.a \
> clangParse.a clangSema.a \
> clangStaticAnalyzerCheckers.a clangStaticAnalyzerCore.a \
> clangRewrite.a \
> clangAnalysis.a clangEdit.a \
> clangASTMatchers.a \
> - clangAST.a clangLex.a clangBasic.a \
> + clangAST.a clangLex.a clangBasic.a
>
> include $(CLANG_LEVEL)/Makefile
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list