r241620 - Wrap clang modules and pch files in an object file container.

Eric Christopher echristo at gmail.com
Mon Jul 13 14:00:59 PDT 2015


Hi Adrian,

Finally getting around to looking at some of this and I think it's going in
slightly the wrong direction. In general I think begin -able- to put
modules in object files to simplify wrapping, use, etc is a good thing. I
think being required to do so is somewhat problematic.

Imagine, for example, you have a giant distributed build system...

You'd want to create a pile of modules (that may reference/include/etc
other modules) that aren't don't or may not have debug information as part
of them (because you might want to build without it or have the debug info
alongside it as a separate compilation). Waiting on the full build of the
module including debug is going to adversely affect your overall build time
and so shouldn't be necessary - especially if you want to be able to have
information separate ultimately.

Make sense?

-eric

On Tue, Jul 7, 2015 at 1:16 PM 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
>
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150713/65018395/attachment.html>


More information about the cfe-commits mailing list