1 //===- polly/CodeGeneration.h - The Polly code generator --------*- C++ -*-===// 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 #ifndef POLLY_CODEGENERATION_H 10 #define POLLY_CODEGENERATION_H 11 12 #include "polly/CodeGen/IRBuilder.h" 13 #include "polly/ScopPass.h" 14 #include "llvm/IR/PassManager.h" 15 16 namespace polly { 17 18 enum VectorizerChoice { 19 VECTORIZER_NONE, 20 VECTORIZER_STRIPMINE, 21 }; 22 extern VectorizerChoice PollyVectorizerChoice; 23 24 /// Mark a basic block unreachable. 25 /// 26 /// Marks the basic block @p Block unreachable by equipping it with an 27 /// UnreachableInst. 28 void markBlockUnreachable(BasicBlock &Block, PollyIRBuilder &Builder); 29 30 struct CodeGenerationPass final : PassInfoMixin<CodeGenerationPass> { 31 PreservedAnalyses run(Scop &S, ScopAnalysisManager &SAM, 32 ScopStandardAnalysisResults &AR, SPMUpdater &U); 33 }; 34 35 extern bool PerfMonitoring; 36 } // namespace polly 37 38 #endif // POLLY_CODEGENERATION_H 39