//===-BlockGenerators.h - Helper to generate code for statements-*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file defines the BlockGenerator and VectorBlockGenerator classes, which // generate sequential code and vectorized code for a polyhedral statement, // respectively. // //===----------------------------------------------------------------------===// #ifndef POLLY_BLOCK_GENERATORS_H #define POLLY_BLOCK_GENERATORS_H #include "polly/CodeGen/IRBuilder.h" #include "polly/Support/ScopHelper.h" #include "llvm/Analysis/ScalarEvolutionExpressions.h" #include "isl/isl-noexceptions.h" namespace polly { AllocaInst; ArrayRef; AssertingVH; BasicBlock; BinaryOperator; CmpInst; DataLayout; DenseMap; DominatorTree; Function; Instruction; LoadInst; Loop; LoopInfo; LoopToScevMapT; MapVector; PHINode; ScalarEvolution; SetVector; SmallVector; StoreInst; StringRef; Type; UnaryInstruction; Value; class MemoryAccess; class ScopArrayInfo; class IslExprBuilder; /// Generate a new basic block for a polyhedral statement. class BlockGenerator { … }; /// Generator for new versions of polyhedral region statements. class RegionGenerator final : BlockGenerator { … }; } // namespace polly #endif