Polly
22.0.0git
llvm-project
polly
include
polly
Simplify.h
Go to the documentation of this file.
1
//===------ Simplify.h ------------------------------------------*- 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
// Simplify a SCoP by removing unnecessary statements and accesses.
10
//
11
//===----------------------------------------------------------------------===//
12
13
#ifndef POLLY_TRANSFORM_SIMPLIFY_H
14
#define POLLY_TRANSFORM_SIMPLIFY_H
15
16
#include "llvm/ADT/SmallVector.h"
17
18
namespace
polly
{
19
class
MemoryAccess
;
20
class
Scop
;
21
class
ScopStmt
;
22
23
/// Return a vector that contains MemoryAccesses in the order in
24
/// which they are executed.
25
///
26
/// The order is:
27
/// - Implicit reads (BlockGenerator::generateScalarLoads)
28
/// - Explicit reads and writes (BlockGenerator::generateArrayLoad,
29
/// BlockGenerator::generateArrayStore)
30
/// - In block statements, the accesses are in order in which their
31
/// instructions are executed.
32
/// - In region statements, that order of execution is not predictable at
33
/// compile-time.
34
/// - Implicit writes (BlockGenerator::generateScalarStores)
35
/// The order in which implicit writes are executed relative to each other is
36
/// undefined.
37
llvm::SmallVector<MemoryAccess *, 32>
getAccessesInOrder
(
ScopStmt
&Stmt);
38
39
bool
runSimplify
(
Scop
&
S
,
int
CallNo);
40
}
// namespace polly
41
42
#endif
/* POLLY_TRANSFORM_SIMPLIFY_H */
polly::MemoryAccess
Represent memory accesses in statements.
Definition
ScopInfo.h:426
polly::ScopStmt
Statement of the Scop.
Definition
ScopInfo.h:1135
polly::Scop
Static Control Part.
Definition
ScopInfo.h:1625
S
#define S(TYPE, NAME)
Definition
isl_list_templ.c:23
polly
Definition
Canonicalization.h:14
polly::getAccessesInOrder
llvm::SmallVector< MemoryAccess *, 32 > getAccessesInOrder(ScopStmt &Stmt)
Return a vector that contains MemoryAccesses in the order in which they are executed.
Definition
Simplify.cpp:765
polly::runSimplify
bool runSimplify(Scop &S, int CallNo)
Definition
Simplify.cpp:783
Generated on
for Polly by
1.14.0