blob: 0851c2f8d265bc00446c049cd13b51c935f489d7 [file] [log] [blame]
Reid Spencer037ce982006-08-21 05:37:03 +00001//===- llvm/LinkAllPasses.h ------------ Reference All Passes ---*- C++ -*-===//
Misha Brukman34695382005-04-21 20:59:05 +00002//
Jeff Cohene89c7c62005-01-07 07:46:40 +00003// The LLVM Compiler Infrastructure
Jeff Cohen4b807e02005-01-06 06:02:53 +00004//
Chris Lattner7ed47a12007-12-29 19:59:42 +00005// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
Misha Brukman34695382005-04-21 20:59:05 +00007//
Jeff Cohen4b807e02005-01-06 06:02:53 +00008//===----------------------------------------------------------------------===//
9//
Andrew Trick04317cc2011-01-29 01:09:53 +000010// This header file pulls in all transformation and analysis passes for tools
Reid Spencer037ce982006-08-21 05:37:03 +000011// like opt and bugpoint that need this functionality.
Jeff Cohen4b807e02005-01-06 06:02:53 +000012//
13//===----------------------------------------------------------------------===//
14
Reid Spencer62c51052006-08-21 05:34:03 +000015#ifndef LLVM_LINKALLPASSES_H
16#define LLVM_LINKALLPASSES_H
Jeff Cohen4b807e02005-01-06 06:02:53 +000017
Dmitri Gribenko32439e72015-04-14 03:49:53 +000018#include "llvm/ADT/Statistic.h"
Chandler Carruth89a08aa2016-02-20 03:46:03 +000019#include "llvm/Analysis/AliasAnalysisEvaluator.h"
Chandler Carruthe3e43d92017-06-06 11:49:48 +000020#include "llvm/Analysis/AliasSetTracker.h"
Chandler Carruth734c7782015-08-06 07:33:15 +000021#include "llvm/Analysis/BasicAliasAnalysis.h"
George Burgess IV3b5b98a2016-07-06 00:26:41 +000022#include "llvm/Analysis/CFLAndersAliasAnalysis.h"
23#include "llvm/Analysis/CFLSteensAliasAnalysis.h"
Andrew Tricka125cac2013-01-11 17:28:14 +000024#include "llvm/Analysis/CallPrinter.h"
Chris Lattnerb839c552009-10-18 04:10:40 +000025#include "llvm/Analysis/DomPrinter.h"
Chandler Carruth0d68ddf2015-08-14 03:48:20 +000026#include "llvm/Analysis/GlobalsModRef.h"
Reid Spencer62c51052006-08-21 05:34:03 +000027#include "llvm/Analysis/IntervalPartition.h"
Chandler Carruth255f89f2012-12-03 17:02:12 +000028#include "llvm/Analysis/Lint.h"
Reid Spencer62c51052006-08-21 05:34:03 +000029#include "llvm/Analysis/Passes.h"
30#include "llvm/Analysis/PostDominators.h"
Tobias Grosserd8c5ec62010-10-25 15:36:50 +000031#include "llvm/Analysis/RegionPass.h"
Tobias Grosserf96b0062010-07-22 07:46:31 +000032#include "llvm/Analysis/RegionPrinter.h"
Reid Spencer62c51052006-08-21 05:34:03 +000033#include "llvm/Analysis/ScalarEvolution.h"
Chandler Carruth217849d2015-08-14 03:11:16 +000034#include "llvm/Analysis/ScalarEvolutionAliasAnalysis.h"
Chandler Carruth01910b82015-08-14 02:55:50 +000035#include "llvm/Analysis/ScopedNoAliasAA.h"
Chandler Carruthcf88e922016-03-02 15:56:53 +000036#include "llvm/Analysis/TargetLibraryInfo.h"
Chandler Carruth40e8a592015-08-14 03:33:48 +000037#include "llvm/Analysis/TypeBasedAliasAnalysis.h"
Jeff Cohen06deda22005-01-08 18:15:23 +000038#include "llvm/CodeGen/Passes.h"
Chandler Carruth0b8c9a82013-01-02 11:36:10 +000039#include "llvm/IR/Function.h"
Chandler Carruth8a5351f2014-01-12 11:10:32 +000040#include "llvm/IR/IRPrintingPasses.h"
Chandler Carruthe3e43d92017-06-06 11:49:48 +000041#include "llvm/Support/Valgrind.h"
David Blaikieb99e7212018-04-24 15:40:07 +000042#include "llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h"
Jeff Cohen4b807e02005-01-06 06:02:53 +000043#include "llvm/Transforms/IPO.h"
Chandler Carruthb699f7b2016-08-17 02:56:20 +000044#include "llvm/Transforms/IPO/AlwaysInliner.h"
Chandler Carruthe9afeb02016-02-18 11:03:11 +000045#include "llvm/Transforms/IPO/FunctionAttrs.h"
David Blaikieb5b7fce2018-04-24 00:48:59 +000046#include "llvm/Transforms/InstCombine/InstCombine.h"
Chandler Carruth255f89f2012-12-03 17:02:12 +000047#include "llvm/Transforms/Instrumentation.h"
Chandler Carruth8dd352a2017-11-14 01:30:04 +000048#include "llvm/Transforms/Instrumentation/BoundsChecking.h"
Michael Gottesman24c48982013-01-28 01:35:51 +000049#include "llvm/Transforms/ObjCARC.h"
Jeff Cohen4b807e02005-01-06 06:02:53 +000050#include "llvm/Transforms/Scalar.h"
Chandler Carruthdd15ed02016-03-11 08:50:55 +000051#include "llvm/Transforms/Scalar/GVN.h"
Chandler Carruthb2b950d2018-06-29 23:36:03 +000052#include "llvm/Transforms/Scalar/InstSimplifyPass.h"
Mikael Holmencdf701a2018-11-21 14:00:17 +000053#include "llvm/Transforms/Scalar/Scalarizer.h"
David Blaikie49ca55e2018-03-28 17:44:36 +000054#include "llvm/Transforms/Utils.h"
Saleem Abdulrasool35c16302014-11-07 21:32:08 +000055#include "llvm/Transforms/Utils/SymbolRewriter.h"
Chandler Carruth1b279142015-01-14 11:23:27 +000056#include "llvm/Transforms/Utils/UnifyFunctionExitNodes.h"
Chandler Carruth255f89f2012-12-03 17:02:12 +000057#include "llvm/Transforms/Vectorize.h"
Chris Lattner9b2b56e2005-10-24 00:08:51 +000058#include <cstdlib>
Jeff Cohen4b807e02005-01-06 06:02:53 +000059
60namespace {
Jeff Cohen534927d2005-01-08 22:01:16 +000061 struct ForcePassLinking {
62 ForcePassLinking() {
Chris Lattner9b2b56e2005-10-24 00:08:51 +000063 // We must reference the passes in such a way that compilers will not
Jeff Cohenb99468d2005-01-07 07:44:02 +000064 // delete it all as dead code, even with whole program optimization,
65 // yet is effectively a NO-OP. As the compiler isn't smart enough
Chris Lattner9b2b56e2005-10-24 00:08:51 +000066 // to know that getenv() never returns -1, this will do the job.
67 if (std::getenv("bar") != (char*) -1)
Jeff Cohenb99468d2005-01-07 07:44:02 +000068 return;
Jeff Cohen4b807e02005-01-06 06:02:53 +000069
Jeff Cohen534927d2005-01-08 22:01:16 +000070 (void) llvm::createAAEvalPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +000071 (void) llvm::createAggressiveDCEPass();
Craig Topper6f6553e2018-04-24 00:11:04 +000072 (void) llvm::createAggressiveInstCombinerPass();
Hal Finkel5b43c852015-02-17 01:36:59 +000073 (void) llvm::createBitTrackingDCEPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +000074 (void) llvm::createArgumentPromotionPass();
Hal Finkel1d6c2d72014-09-07 20:05:11 +000075 (void) llvm::createAlignmentFromAssumptionsPass();
Chandler Carruth91468332015-09-09 17:55:00 +000076 (void) llvm::createBasicAAWrapperPass();
77 (void) llvm::createSCEVAAWrapperPass();
78 (void) llvm::createTypeBasedAAWrapperPass();
79 (void) llvm::createScopedNoAliasAAWrapperPass();
Chandler Carruth8dd352a2017-11-14 01:30:04 +000080 (void) llvm::createBoundsCheckingLegacyPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +000081 (void) llvm::createBreakCriticalEdgesPass();
Chandler Carruth562873f2016-03-10 11:04:40 +000082 (void) llvm::createCallGraphDOTPrinterPass();
Andrew Tricka125cac2013-01-11 17:28:14 +000083 (void) llvm::createCallGraphViewerPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +000084 (void) llvm::createCFGSimplificationPass();
George Burgess IV3b5b98a2016-07-06 00:26:41 +000085 (void) llvm::createCFLAndersAAWrapperPass();
86 (void) llvm::createCFLSteensAAWrapperPass();
Matt Arsenaultad966ea2013-06-19 20:18:24 +000087 (void) llvm::createStructurizeCFGPass();
Rong Xufe89a6b2016-10-18 21:36:27 +000088 (void) llvm::createLibCallsShrinkWrapPass();
Matthew Simpson7d6a3b62017-10-25 13:40:08 +000089 (void) llvm::createCalledValuePropagationPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +000090 (void) llvm::createConstantMergePass();
91 (void) llvm::createConstantPropagationPass();
Hiroshi Yamauchic38c8502018-09-04 17:19:13 +000092 (void) llvm::createControlHeightReductionLegacyPass();
Nadav Rotem6bed58e2012-11-02 21:48:17 +000093 (void) llvm::createCostModelAnalysisPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +000094 (void) llvm::createDeadArgEliminationPass();
95 (void) llvm::createDeadCodeEliminationPass();
96 (void) llvm::createDeadInstEliminationPass();
97 (void) llvm::createDeadStoreEliminationPass();
Chandler Carruthb6b8f762016-05-12 22:19:39 +000098 (void) llvm::createDependenceAnalysisWrapperPass();
Chris Lattnerb839c552009-10-18 04:10:40 +000099 (void) llvm::createDomOnlyPrinterPass();
100 (void) llvm::createDomPrinterPass();
101 (void) llvm::createDomOnlyViewerPass();
102 (void) llvm::createDomViewerPass();
Nick Lewyckye2292482011-12-06 00:11:58 +0000103 (void) llvm::createGCOVProfilerPass();
Xinliang David Liea2fb7d2016-05-06 05:49:19 +0000104 (void) llvm::createPGOInstrumentationGenLegacyPass();
Xinliang David Lif05d4a72016-05-07 05:39:12 +0000105 (void) llvm::createPGOInstrumentationUseLegacyPass();
Xinliang David Li17b42bd2016-05-15 01:04:24 +0000106 (void) llvm::createPGOIndirectCallPromotionLegacyPass();
Rong Xu9e52f8e2017-04-04 16:42:20 +0000107 (void) llvm::createPGOMemOPSizeOptLegacyPass();
Xinliang David Li6be977a2016-04-18 17:47:38 +0000108 (void) llvm::createInstrProfilingLegacyPass();
Teresa Johnson5d0d98f2015-12-07 19:21:11 +0000109 (void) llvm::createFunctionImportPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +0000110 (void) llvm::createFunctionInliningPass();
Chandler Carruthb699f7b2016-08-17 02:56:20 +0000111 (void) llvm::createAlwaysInlinerLegacyPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +0000112 (void) llvm::createGlobalDCEPass();
113 (void) llvm::createGlobalOptimizerPass();
Chandler Carruth91468332015-09-09 17:55:00 +0000114 (void) llvm::createGlobalsAAWrapperPass();
Sanjoy Das0266d5e2016-05-18 22:55:34 +0000115 (void) llvm::createGuardWideningPass();
Philip Reames7b018582018-04-27 17:29:10 +0000116 (void) llvm::createLoopGuardWideningPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +0000117 (void) llvm::createIPConstantPropagationPass();
118 (void) llvm::createIPSCCPPass();
Sanjoy Das148e8c92015-01-16 01:03:22 +0000119 (void) llvm::createInductiveRangeCheckEliminationPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +0000120 (void) llvm::createIndVarSimplifyPass();
Chandler Carruthb2b950d2018-06-29 23:36:03 +0000121 (void) llvm::createInstSimplifyLegacyPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +0000122 (void) llvm::createInstructionCombiningPass();
Rafael Espindolae5551ed2012-10-26 18:47:48 +0000123 (void) llvm::createInternalizePass();
Owen Anderson11f510b2006-05-26 13:58:26 +0000124 (void) llvm::createLCSSAPass();
Nicolai Haehnleb33a4032018-08-30 14:21:36 +0000125 (void) llvm::createLegacyDivergenceAnalysisPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +0000126 (void) llvm::createLICMPass();
Dehao Chen146c52f2016-10-27 16:30:08 +0000127 (void) llvm::createLoopSinkPass();
Chris Lattner10f2d132009-11-11 00:22:30 +0000128 (void) llvm::createLazyValueInfoPass();
Jeff Cohenbf652682005-01-08 17:21:40 +0000129 (void) llvm::createLoopExtractorPass();
Jingyue Wu294c7822015-06-10 22:54:02 +0000130 (void) llvm::createLoopInterchangePass();
Artur Pilipenko1dd101b2017-01-25 16:00:44 +0000131 (void) llvm::createLoopPredicationPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +0000132 (void) llvm::createLoopSimplifyPass();
Fiona Glasere9852432016-01-29 22:35:36 +0000133 (void) llvm::createLoopSimplifyCFGPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +0000134 (void) llvm::createLoopStrengthReducePass();
Hal Finkelbebe48d2013-11-16 23:59:05 +0000135 (void) llvm::createLoopRerollPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +0000136 (void) llvm::createLoopUnrollPass();
David Greene1012712018-07-01 12:47:30 +0000137 (void) llvm::createLoopUnrollAndJamPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +0000138 (void) llvm::createLoopUnswitchPass();
Ashutosh Nema9feccf42016-02-06 07:47:48 +0000139 (void) llvm::createLoopVersioningLICMPass();
Chris Lattnerb0db1612010-12-26 19:32:44 +0000140 (void) llvm::createLoopIdiomPass();
Chris Lattner6116fb12007-04-07 04:43:02 +0000141 (void) llvm::createLoopRotatePass();
Jakub Staszak9da99342011-07-06 18:22:43 +0000142 (void) llvm::createLowerExpectIntrinsicPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +0000143 (void) llvm::createLowerInvokePass();
Jeff Cohenb99468d2005-01-07 07:44:02 +0000144 (void) llvm::createLowerSwitchPass();
Jingyue Wu9cecacd2015-04-14 04:59:22 +0000145 (void) llvm::createNaryReassociatePass();
Chandler Carruth91468332015-09-09 17:55:00 +0000146 (void) llvm::createObjCARCAAWrapperPass();
Dan Gohman2f6263c2012-01-17 20:52:24 +0000147 (void) llvm::createObjCARCAPElimPass();
John McCall9fbd3182011-06-15 23:37:01 +0000148 (void) llvm::createObjCARCExpandPass();
149 (void) llvm::createObjCARCContractPass();
150 (void) llvm::createObjCARCOptPass();
Rafael Espindoladaa09d02014-11-17 02:28:27 +0000151 (void) llvm::createPAEvalPass();
Jeff Cohene60f69c2005-03-28 02:52:28 +0000152 (void) llvm::createPromoteMemoryToRegisterPass();
Andrew Lenharth105b2f52005-11-10 02:07:45 +0000153 (void) llvm::createDemoteRegisterToMemoryPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +0000154 (void) llvm::createPruneEHPass();
Chris Lattnerb839c552009-10-18 04:10:40 +0000155 (void) llvm::createPostDomOnlyPrinterPass();
156 (void) llvm::createPostDomPrinterPass();
157 (void) llvm::createPostDomOnlyViewerPass();
158 (void) llvm::createPostDomViewerPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +0000159 (void) llvm::createReassociatePass();
Tobias Grosserf96b0062010-07-22 07:46:31 +0000160 (void) llvm::createRegionInfoPass();
161 (void) llvm::createRegionOnlyPrinterPass();
162 (void) llvm::createRegionOnlyViewerPass();
163 (void) llvm::createRegionPrinterPass();
164 (void) llvm::createRegionViewerPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +0000165 (void) llvm::createSCCPPass();
Peter Collingbourne7ffec832015-06-15 21:07:11 +0000166 (void) llvm::createSafeStackPass();
David Majnemer0c4f69f2016-06-15 00:19:09 +0000167 (void) llvm::createSROAPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +0000168 (void) llvm::createSingleLoopExtractorPass();
Jeff Cohenbf652682005-01-08 17:21:40 +0000169 (void) llvm::createStripSymbolsPass();
Devang Patelf17fc462008-11-18 21:34:39 +0000170 (void) llvm::createStripNonDebugSymbolsPass();
Devang Patel26d14292010-07-01 19:49:20 +0000171 (void) llvm::createStripDeadDebugInfoPass();
Devang Patel5f2e4682008-02-22 18:39:29 +0000172 (void) llvm::createStripDeadPrototypesPass();
Jeff Cohenb99468d2005-01-07 07:44:02 +0000173 (void) llvm::createTailCallEliminationPass();
Chris Lattner8383a7b2008-04-20 20:35:01 +0000174 (void) llvm::createJumpThreadingPass();
Jeff Cohenbf652682005-01-08 17:21:40 +0000175 (void) llvm::createUnifyFunctionExitNodesPass();
Reid Spencer62c51052006-08-21 05:34:03 +0000176 (void) llvm::createInstCountPass();
Juergen Ributzka943ce552014-01-25 02:02:55 +0000177 (void) llvm::createConstantHoistingPass();
Chris Lattnerdbe0dec2007-03-31 04:06:36 +0000178 (void) llvm::createCodeGenPreparePass();
Hans Wennborg5765d842017-11-14 21:09:45 +0000179 (void) llvm::createEntryExitInstrumenterPass();
180 (void) llvm::createPostInlineEntryExitInstrumenterPass();
Chris Lattner12be9362011-01-02 21:47:05 +0000181 (void) llvm::createEarlyCSEPass();
Sebastian Pop9c2e9dc2016-07-15 13:45:20 +0000182 (void) llvm::createGVNHoistPass();
Gerolf Hoflehner9d01d422014-09-10 17:52:27 +0000183 (void) llvm::createMergedLoadStoreMotionPass();
Owen Anderson1ad2cb72007-07-24 17:55:58 +0000184 (void) llvm::createGVNPass();
Davide Italiano65696f42016-12-22 16:03:48 +0000185 (void) llvm::createNewGVNPass();
Owen Andersona723d1e2008-04-09 08:23:16 +0000186 (void) llvm::createMemCpyOptPass();
Owen Anderson0396cd32008-04-29 20:06:54 +0000187 (void) llvm::createLoopDeletionPass();
Owen Anderson5771d6c2008-05-29 17:00:13 +0000188 (void) llvm::createPostDomTree();
Chris Lattner37933252008-08-23 06:07:02 +0000189 (void) llvm::createInstructionNamerPass();
Alex Rosenberg95f1ef42012-09-11 02:46:18 +0000190 (void) llvm::createMetaRenamerPass();
Chandler Carruthe9afeb02016-02-18 11:03:11 +0000191 (void) llvm::createPostOrderFunctionAttrsLegacyPass();
Chandler Carruthe96fb9a2016-01-08 10:55:52 +0000192 (void) llvm::createReversePostOrderFunctionAttrsPass();
Nick Lewycky579a0242008-11-02 05:52:50 +0000193 (void) llvm::createMergeFunctionsPass();
Clement Courbet4855d2d2017-09-01 10:56:34 +0000194 (void) llvm::createMergeICmpsPass();
Clement Courbet3d456012017-11-03 12:12:27 +0000195 (void) llvm::createExpandMemCmpPass();
Dimitry Andric67e14a32016-01-13 18:29:46 +0000196 std::string buf;
197 llvm::raw_string_ostream os(buf);
198 (void) llvm::createPrintModulePass(os);
199 (void) llvm::createPrintFunctionPass(os);
200 (void) llvm::createPrintBasicBlockPass(os);
Dan Gohmanef0b1452010-05-07 16:22:32 +0000201 (void) llvm::createModuleDebugInfoPrinterPass();
Owen Andersonca399022009-06-14 08:26:32 +0000202 (void) llvm::createPartialInliningPass();
Dan Gohman113902e2010-04-08 18:47:09 +0000203 (void) llvm::createLintPass();
Dan Gohman28a193e2010-05-07 15:40:13 +0000204 (void) llvm::createSinkingPass();
Peter Collingbourne3bababf2010-08-03 16:19:16 +0000205 (void) llvm::createLowerAtomicPass();
Owen Anderson25e94052010-08-31 07:48:34 +0000206 (void) llvm::createCorrelatedValuePropagationPass();
Dan Gohmanead01092010-09-16 22:08:32 +0000207 (void) llvm::createMemDepPrinter();
Nadav Rotemae3b6522012-12-12 19:29:45 +0000208 (void) llvm::createLoopVectorizePass();
Nadav Rotem8383b532013-04-09 19:44:35 +0000209 (void) llvm::createSLPVectorizerPass();
Matt Arsenaultd8f310c2016-07-01 02:07:22 +0000210 (void) llvm::createLoadStoreVectorizerPass();
Richard Sandiforda8a70992013-08-23 10:27:02 +0000211 (void) llvm::createPartiallyInlineLibCallsPass();
Richard Sandiford0f778792013-11-22 16:58:05 +0000212 (void) llvm::createScalarizerPass();
Eli Bendersky167a57c2014-05-01 18:38:36 +0000213 (void) llvm::createSeparateConstOffsetFromGEPPass();
Jingyue Wu85e632d2015-05-15 17:54:48 +0000214 (void) llvm::createSpeculativeExecutionPass();
Justin Lebar41f2abf2016-04-15 00:32:09 +0000215 (void) llvm::createSpeculativeExecutionIfHasBranchDivergencePass();
Saleem Abdulrasool35c16302014-11-07 21:32:08 +0000216 (void) llvm::createRewriteSymbolsPass();
Jingyue Wu2918efd2015-02-03 19:37:06 +0000217 (void) llvm::createStraightLineStrengthReducePass();
Ramkumar Ramachandraab284392015-02-06 01:46:42 +0000218 (void) llvm::createMemDerefPrinter();
Philip Reames4961d4c2018-03-20 17:09:21 +0000219 (void) llvm::createMustExecutePrinter();
James Molloyfb45b9f2015-03-27 10:36:57 +0000220 (void) llvm::createFloat2IntPass();
Rafael Espindola94162a02015-07-13 14:18:22 +0000221 (void) llvm::createEliminateAvailableExternallyPass();
Ayman Musaeadb58f2017-05-15 11:30:54 +0000222 (void) llvm::createScalarizeMaskedMemIntrinPass();
Michael Kruse9a395de2018-12-12 17:32:52 +0000223 (void) llvm::createWarnMissedTransformationsPass();
Reid Spencer62c51052006-08-21 05:34:03 +0000224
Reid Spencer62c51052006-08-21 05:34:03 +0000225 (void)new llvm::IntervalPartition();
Chandler Carruthbfe1f1c2015-08-17 02:08:17 +0000226 (void)new llvm::ScalarEvolutionWrapperPass();
Dimitry Andric67e14a32016-01-13 18:29:46 +0000227 llvm::Function::Create(nullptr, llvm::GlobalValue::ExternalLinkage)->viewCFGOnly();
Andrew Trick0e122d12011-08-29 17:07:00 +0000228 llvm::RGPassManager RGM;
Chandler Carruthcf88e922016-03-02 15:56:53 +0000229 llvm::TargetLibraryInfoImpl TLII;
230 llvm::TargetLibraryInfo TLI(TLII);
231 llvm::AliasAnalysis AA(TLI);
Dimitry Andric67e14a32016-01-13 18:29:46 +0000232 llvm::AliasSetTracker X(AA);
George Burgess IV86195042018-12-22 17:42:08 +0000233 X.add(nullptr, llvm::LocationSize::unknown(),
234 llvm::AAMDNodes()); // for -print-alias-sets
Dmitri Gribenko32439e72015-04-14 03:49:53 +0000235 (void) llvm::AreStatisticsEnabled();
236 (void) llvm::sys::RunningOnValgrind();
Jeff Cohenb99468d2005-01-07 07:44:02 +0000237 }
Jim Laskey13ec7022006-08-01 14:21:23 +0000238 } ForcePassLinking; // Force link by creating a global definition.
Alexander Kornienkob7c46b52015-06-23 10:48:35 +0000239}
Jeff Cohen4b807e02005-01-06 06:02:53 +0000240
Jeff Cohen4b807e02005-01-06 06:02:53 +0000241#endif