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