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 VECTORIZER_POLLY, 22 }; 23 extern VectorizerChoice PollyVectorizerChoice; 24 25 /// Mark a basic block unreachable. 26 /// 27 /// Marks the basic block @p Block unreachable by equipping it with an 28 /// UnreachableInst. 29 void markBlockUnreachable(BasicBlock &Block, PollyIRBuilder &Builder); 30 31 struct CodeGenerationPass : public PassInfoMixin<CodeGenerationPass> { 32 PreservedAnalyses run(Scop &S, ScopAnalysisManager &SAM, 33 ScopStandardAnalysisResults &AR, SPMUpdater &U); 34 }; 35 36 extern bool PerfMonitoring; 37 } // namespace polly 38 39 #endif // POLLY_CODEGENERATION_H 40