Coverage Report

Created: 2017-10-03 07:32

/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/llvm/lib/Analysis/Analysis.cpp
Line
Count
Source (jump to first uncovered line)
1
//===-- Analysis.cpp ------------------------------------------------------===//
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
#include "llvm-c/Analysis.h"
11
#include "llvm-c/Initialization.h"
12
#include "llvm/IR/Module.h"
13
#include "llvm/IR/Verifier.h"
14
#include "llvm/InitializePasses.h"
15
#include "llvm/PassRegistry.h"
16
#include "llvm/Support/raw_ostream.h"
17
#include <cstring>
18
19
using namespace llvm;
20
21
/// initializeAnalysis - Initialize all passes linked into the Analysis library.
22
7.91k
void llvm::initializeAnalysis(PassRegistry &Registry) {
23
7.91k
  initializeAAEvalLegacyPassPass(Registry);
24
7.91k
  initializeAliasSetPrinterPass(Registry);
25
7.91k
  initializeBasicAAWrapperPassPass(Registry);
26
7.91k
  initializeBlockFrequencyInfoWrapperPassPass(Registry);
27
7.91k
  initializeBranchProbabilityInfoWrapperPassPass(Registry);
28
7.91k
  initializeCallGraphWrapperPassPass(Registry);
29
7.91k
  initializeCallGraphDOTPrinterPass(Registry);
30
7.91k
  initializeCallGraphPrinterLegacyPassPass(Registry);
31
7.91k
  initializeCallGraphViewerPass(Registry);
32
7.91k
  initializeCostModelAnalysisPass(Registry);
33
7.91k
  initializeCFGViewerLegacyPassPass(Registry);
34
7.91k
  initializeCFGPrinterLegacyPassPass(Registry);
35
7.91k
  initializeCFGOnlyViewerLegacyPassPass(Registry);
36
7.91k
  initializeCFGOnlyPrinterLegacyPassPass(Registry);
37
7.91k
  initializeCFLAndersAAWrapperPassPass(Registry);
38
7.91k
  initializeCFLSteensAAWrapperPassPass(Registry);
39
7.91k
  initializeDependenceAnalysisWrapperPassPass(Registry);
40
7.91k
  initializeDelinearizationPass(Registry);
41
7.91k
  initializeDemandedBitsWrapperPassPass(Registry);
42
7.91k
  initializeDivergenceAnalysisPass(Registry);
43
7.91k
  initializeDominanceFrontierWrapperPassPass(Registry);
44
7.91k
  initializeDomViewerPass(Registry);
45
7.91k
  initializeDomPrinterPass(Registry);
46
7.91k
  initializeDomOnlyViewerPass(Registry);
47
7.91k
  initializePostDomViewerPass(Registry);
48
7.91k
  initializeDomOnlyPrinterPass(Registry);
49
7.91k
  initializePostDomPrinterPass(Registry);
50
7.91k
  initializePostDomOnlyViewerPass(Registry);
51
7.91k
  initializePostDomOnlyPrinterPass(Registry);
52
7.91k
  initializeAAResultsWrapperPassPass(Registry);
53
7.91k
  initializeGlobalsAAWrapperPassPass(Registry);
54
7.91k
  initializeIVUsersWrapperPassPass(Registry);
55
7.91k
  initializeInstCountPass(Registry);
56
7.91k
  initializeIntervalPartitionPass(Registry);
57
7.91k
  initializeLazyBranchProbabilityInfoPassPass(Registry);
58
7.91k
  initializeLazyBlockFrequencyInfoPassPass(Registry);
59
7.91k
  initializeLazyValueInfoWrapperPassPass(Registry);
60
7.91k
  initializeLazyValueInfoPrinterPass(Registry);
61
7.91k
  initializeLintPass(Registry);
62
7.91k
  initializeLoopInfoWrapperPassPass(Registry);
63
7.91k
  initializeMemDepPrinterPass(Registry);
64
7.91k
  initializeMemDerefPrinterPass(Registry);
65
7.91k
  initializeMemoryDependenceWrapperPassPass(Registry);
66
7.91k
  initializeModuleDebugInfoPrinterPass(Registry);
67
7.91k
  initializeModuleSummaryIndexWrapperPassPass(Registry);
68
7.91k
  initializeObjCARCAAWrapperPassPass(Registry);
69
7.91k
  initializeOptimizationRemarkEmitterWrapperPassPass(Registry);
70
7.91k
  initializePostDominatorTreeWrapperPassPass(Registry);
71
7.91k
  initializeRegionInfoPassPass(Registry);
72
7.91k
  initializeRegionViewerPass(Registry);
73
7.91k
  initializeRegionPrinterPass(Registry);
74
7.91k
  initializeRegionOnlyViewerPass(Registry);
75
7.91k
  initializeRegionOnlyPrinterPass(Registry);
76
7.91k
  initializeSCEVAAWrapperPassPass(Registry);
77
7.91k
  initializeScalarEvolutionWrapperPassPass(Registry);
78
7.91k
  initializeTargetTransformInfoWrapperPassPass(Registry);
79
7.91k
  initializeTypeBasedAAWrapperPassPass(Registry);
80
7.91k
  initializeScopedNoAliasAAWrapperPassPass(Registry);
81
7.91k
  initializeLCSSAVerificationPassPass(Registry);
82
7.91k
  initializeMemorySSAWrapperPassPass(Registry);
83
7.91k
  initializeMemorySSAPrinterLegacyPassPass(Registry);
84
7.91k
}
85
86
0
void LLVMInitializeAnalysis(LLVMPassRegistryRef R) {
87
0
  initializeAnalysis(*unwrap(R));
88
0
}
89
90
0
void LLVMInitializeIPA(LLVMPassRegistryRef R) {
91
0
  initializeAnalysis(*unwrap(R));
92
0
}
93
94
LLVMBool LLVMVerifyModule(LLVMModuleRef M, LLVMVerifierFailureAction Action,
95
8
                          char **OutMessages) {
96
8
  raw_ostream *DebugOS = Action != LLVMReturnStatusAction ? 
&errs()8
:
nullptr0
;
97
8
  std::string Messages;
98
8
  raw_string_ostream MsgsOS(Messages);
99
8
100
8
  LLVMBool Result = verifyModule(*unwrap(M), OutMessages ? 
&MsgsOS8
:
DebugOS0
);
101
8
102
8
  // Duplicate the output to stderr.
103
8
  if (
DebugOS && 8
OutMessages8
)
104
8
    *DebugOS << MsgsOS.str();
105
8
106
8
  if (
Action == LLVMAbortProcessAction && 8
Result8
)
107
0
    report_fatal_error("Broken module found, compilation aborted!");
108
8
109
8
  
if (8
OutMessages8
)
110
8
    *OutMessages = strdup(MsgsOS.str().c_str());
111
8
112
8
  return Result;
113
8
}
114
115
0
LLVMBool LLVMVerifyFunction(LLVMValueRef Fn, LLVMVerifierFailureAction Action) {
116
0
  LLVMBool Result = verifyFunction(
117
0
      *unwrap<Function>(Fn), Action != LLVMReturnStatusAction ? &errs()
118
0
                                                              : nullptr);
119
0
120
0
  if (
Action == LLVMAbortProcessAction && 0
Result0
)
121
0
    report_fatal_error("Broken function found, compilation aborted!");
122
0
123
0
  return Result;
124
0
}
125
126
0
void LLVMViewFunctionCFG(LLVMValueRef Fn) {
127
0
  Function *F = unwrap<Function>(Fn);
128
0
  F->viewCFG();
129
0
}
130
131
0
void LLVMViewFunctionCFGOnly(LLVMValueRef Fn) {
132
0
  Function *F = unwrap<Function>(Fn);
133
0
  F->viewCFGOnly();
134
0
}