Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:48:11

0001 //===- polly/CodeGeneration.h - The Polly code generator --------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 
0009 #ifndef POLLY_CODEGENERATION_H
0010 #define POLLY_CODEGENERATION_H
0011 
0012 #include "polly/CodeGen/IRBuilder.h"
0013 #include "polly/ScopPass.h"
0014 #include "llvm/IR/PassManager.h"
0015 
0016 namespace polly {
0017 
0018 enum VectorizerChoice {
0019   VECTORIZER_NONE,
0020   VECTORIZER_STRIPMINE,
0021 };
0022 extern VectorizerChoice PollyVectorizerChoice;
0023 
0024 /// Mark a basic block unreachable.
0025 ///
0026 /// Marks the basic block @p Block unreachable by equipping it with an
0027 /// UnreachableInst.
0028 void markBlockUnreachable(BasicBlock &Block, PollyIRBuilder &Builder);
0029 
0030 struct CodeGenerationPass final : PassInfoMixin<CodeGenerationPass> {
0031   PreservedAnalyses run(Scop &S, ScopAnalysisManager &SAM,
0032                         ScopStandardAnalysisResults &AR, SPMUpdater &U);
0033 };
0034 
0035 extern bool PerfMonitoring;
0036 } // namespace polly
0037 
0038 #endif // POLLY_CODEGENERATION_H