LLVM
20.0.0git
include
llvm
LinkAllIR.h
Go to the documentation of this file.
1
//===----- LinkAllIR.h - Reference All VMCore Code --------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
// This header file pulls in all the object modules of the VMCore library so
10
// that tools like llc, opt, and lli can ensure they are linked with all symbols
11
// from libVMCore.a It should only be used from a tool's main program.
12
//
13
//===----------------------------------------------------------------------===//
14
15
#ifndef LLVM_LINKALLIR_H
16
#define LLVM_LINKALLIR_H
17
18
#include "
llvm/BinaryFormat/Dwarf.h
"
19
#include "
llvm/IR/InlineAsm.h
"
20
#include "
llvm/IR/Instructions.h
"
21
#include "
llvm/IR/LLVMContext.h
"
22
#include "
llvm/IR/Module.h
"
23
#include "
llvm/IR/Verifier.h
"
24
#include "
llvm/Support/DynamicLibrary.h
"
25
#include "
llvm/Support/MathExtras.h
"
26
#include "
llvm/Support/Memory.h
"
27
#include "
llvm/Support/Mutex.h
"
28
#include "
llvm/Support/Path.h
"
29
#include "
llvm/Support/Process.h
"
30
#include "
llvm/Support/Program.h
"
31
#include "
llvm/Support/Signals.h
"
32
#include <cstdlib>
33
34
namespace
{
35
struct
ForceVMCoreLinking {
36
ForceVMCoreLinking() {
37
// We must reference VMCore in such a way that compilers will not
38
// delete it all as dead code, even with whole program optimization,
39
// yet is effectively a NO-OP. As the compiler isn't smart enough
40
// to know that getenv() never returns -1, this will do the job.
41
// This is so that globals in the translation units where these functions
42
// are defined are forced to be initialized, populating various
43
// registries.
44
if
(std::getenv(
"bar"
) != (
char
*) -1)
45
return
;
46
llvm::LLVMContext
Context;
47
(void)
new
llvm::Module
(
""
, Context);
48
(void)
new
llvm::UnreachableInst
(Context);
49
(void)
llvm::createVerifierPass
();
50
}
51
} ForceVMCoreLinking;
52
}
53
54
#endif
Dwarf.h
This file contains constants used for implementing Dwarf debug support.
DynamicLibrary.h
InlineAsm.h
Instructions.h
LLVMContext.h
MathExtras.h
Memory.h
Module.h
Module.h This file contains the declarations for the Module class.
Mutex.h
Path.h
Process.h
Provides a library for accessing information about this process and other processes on the operating ...
Program.h
Signals.h
Verifier.h
llvm::LLVMContext
This is an important class for using LLVM in a threaded context.
Definition:
LLVMContext.h:67
llvm::Module
A Module instance is used to store all the information related to an LLVM module.
Definition:
Module.h:65
llvm::UnreachableInst
This function has undefined behavior.
Definition:
Instructions.h:4353
llvm::createVerifierPass
FunctionPass * createVerifierPass(bool FatalErrors=true)
Definition:
Verifier.cpp:7577
Generated on Thu Nov 21 2024 19:32:41 for LLVM by
1.9.6