LLVM 20.0.0git
MaterializationUtils.h
Go to the documentation of this file.
1//===- MaterializationUtils.h - Utilities for doing materialization -------===//
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
10
11#ifndef LLVM_TRANSFORMS_COROUTINES_MATERIALIZATIONUTILS_H
12#define LLVM_TRANSFORMS_COROUTINES_MATERIALIZATIONUTILS_H
13
14namespace llvm {
15
16namespace coro {
17
18// True if I is trivially rematerialzable, e.g. InsertElementInst
19bool isTriviallyMaterializable(Instruction &I);
20
21// Performs rematerialization, invoked from buildCoroutineFrame.
22void doRematerializations(Function &F, SuspendCrossingInfo &Checker,
23 std::function<bool(Instruction &)> IsMaterializable);
24
25} // namespace coro
26
27} // namespace llvm
28
29#endif // LLVM_TRANSFORMS_COROUTINES_MATERIALIZATIONUTILS_H
#define F(x, y, z)
Definition: MD5.cpp:55
#define I(x, y, z)
Definition: MD5.cpp:58
bool isTriviallyMaterializable(Instruction &I)
void doRematerializations(Function &F, SuspendCrossingInfo &Checker, std::function< bool(Instruction &)> IsMaterializable)
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18