Coverage Report

Created: 2019-07-24 05:18

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