Polly 22.0.0git
DeLICM.h
Go to the documentation of this file.
1//===------ DeLICM.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// Undo the effect of Loop Invariant Code Motion (LICM) and
10// GVN Partial Redundancy Elimination (PRE) on SCoP-level.
11//
12// Namely, remove register/scalar dependencies by mapping them back to array
13// elements.
14//
15//===----------------------------------------------------------------------===//
16
17#ifndef POLLY_DELICM_H
18#define POLLY_DELICM_H
19
21
22namespace llvm {
23class raw_ostream;
24} // namespace llvm
25
26namespace polly {
27class Scop;
28
29/// Determine whether two lifetimes are conflicting.
30///
31/// Used by unittesting.
32bool isConflicting(isl::union_set ExistingOccupied,
33 isl::union_set ExistingUnused, isl::union_map ExistingKnown,
34 isl::union_map ExistingWrites,
35 isl::union_set ProposedOccupied,
36 isl::union_set ProposedUnused, isl::union_map ProposedKnown,
37 isl::union_map ProposedWrites,
38 llvm::raw_ostream *OS = nullptr, unsigned Indent = 0);
39
40bool runDeLICM(Scop &S);
41} // namespace polly
42
43#endif /* POLLY_DELICM_H */
Static Control Part.
Definition ScopInfo.h:1625
#define S(TYPE, NAME)
bool isConflicting(isl::union_set ExistingOccupied, isl::union_set ExistingUnused, isl::union_map ExistingKnown, isl::union_map ExistingWrites, isl::union_set ProposedOccupied, isl::union_set ProposedUnused, isl::union_map ProposedKnown, isl::union_map ProposedWrites, llvm::raw_ostream *OS=nullptr, unsigned Indent=0)
Determine whether two lifetimes are conflicting.
Definition DeLICM.cpp:1398
bool runDeLICM(Scop &S)
Definition DeLICM.cpp:1412