llvm/polly/include/polly/CodeGen/BlockGenerators.h

//===-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