~pali/+junk/llvm-toolchain-3.7

« back to all changes in this revision

Viewing changes to include/llvm/CodeGen/LinkAllAsmWriterComponents.h

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2015-07-15 17:51:08 UTC
  • Revision ID: package-import@ubuntu.com-20150715175108-l8mynwovkx4zx697
Tags: upstream-3.7~+rc2
ImportĀ upstreamĀ versionĀ 3.7~+rc2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//===- llvm/Codegen/LinkAllAsmWriterComponents.h ----------------*- C++ -*-===//
 
2
//
 
3
//                      The LLVM Compiler Infrastructure
 
4
//
 
5
// This file is distributed under the University of Illinois Open Source
 
6
// License. See LICENSE.TXT for details.
 
7
//
 
8
//===----------------------------------------------------------------------===//
 
9
//
 
10
// This header file pulls in all assembler writer related passes for tools like
 
11
// llc that need this functionality.
 
12
//
 
13
//===----------------------------------------------------------------------===//
 
14
 
 
15
#ifndef LLVM_CODEGEN_LINKALLASMWRITERCOMPONENTS_H
 
16
#define LLVM_CODEGEN_LINKALLASMWRITERCOMPONENTS_H
 
17
 
 
18
#include "llvm/CodeGen/GCs.h"
 
19
#include <cstdlib>
 
20
 
 
21
namespace {
 
22
  struct ForceAsmWriterLinking {
 
23
    ForceAsmWriterLinking() {
 
24
      // We must reference the plug-ins in such a way that compilers will not
 
25
      // delete it all as dead code, even with whole program optimization,
 
26
      // yet is effectively a NO-OP. As the compiler isn't smart enough
 
27
      // to know that getenv() never returns -1, this will do the job.
 
28
      if (std::getenv("bar") != (char*) -1)
 
29
        return;
 
30
 
 
31
      llvm::linkOcamlGCPrinter();
 
32
      llvm::linkErlangGCPrinter();
 
33
 
 
34
    }
 
35
  } ForceAsmWriterLinking; // Force link by creating a global definition.
 
36
}
 
37
 
 
38
#endif // LLVM_CODEGEN_LINKALLASMWRITERCOMPONENTS_H