blob: b32f31299c608bff20e51bcc0037bbd0cf7975b5 [file] [log] [blame]
Olivier Deprezf4ef2d02021-04-20 13:36:24 +02001//===- 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
16namespace polly {
17
18enum VectorizerChoice {
19 VECTORIZER_NONE,
20 VECTORIZER_STRIPMINE,
21 VECTORIZER_POLLY,
22};
23extern 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.
29void markBlockUnreachable(BasicBlock &Block, PollyIRBuilder &Builder);
30
31struct CodeGenerationPass : public PassInfoMixin<CodeGenerationPass> {
32 PreservedAnalyses run(Scop &S, ScopAnalysisManager &SAM,
33 ScopStandardAnalysisResults &AR, SPMUpdater &U);
34};
35
36extern bool PerfMonitoring;
37} // namespace polly
38
39#endif // POLLY_CODEGENERATION_H