/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 | } |