FLANG
Trampoline.h
1//===-- Trampoline.h - Runtime trampoline pool builder ----------*- 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// Builder routines for generating calls to the Fortran runtime trampoline
10// pool APIs (_FortranATrampolineInit, _FortranATrampolineAdjust,
11// _FortranATrampolineFree).
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef FORTRAN_OPTIMIZER_BUILDER_RUNTIME_TRAMPOLINE_H
16#define FORTRAN_OPTIMIZER_BUILDER_RUNTIME_TRAMPOLINE_H
17
18namespace mlir {
19class Value;
20class Location;
21} // namespace mlir
22
23namespace fir {
24class FirOpBuilder;
25}
26
27namespace fir::runtime {
28
31mlir::Value genTrampolineInit(fir::FirOpBuilder &builder, mlir::Location loc,
32 mlir::Value scratch, mlir::Value calleeAddress,
33 mlir::Value staticChainAddress);
34
37mlir::Value genTrampolineAdjust(fir::FirOpBuilder &builder, mlir::Location loc,
38 mlir::Value handle);
39
42void genTrampolineFree(fir::FirOpBuilder &builder, mlir::Location loc,
43 mlir::Value handle);
44
45} // namespace fir::runtime
46
47#endif // FORTRAN_OPTIMIZER_BUILDER_RUNTIME_TRAMPOLINE_H
Definition FIRBuilder.h:56
Definition AbstractConverter.h:37
Definition AbstractConverter.h:32