This patches adds the code to handle host association for inner subroutines and functions. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D121134 Co-authored-by: Eric Schweitz <eschweitz@nvidia.com> Co-authored-by: Jean Perier <jperier@nvidia.com> Co-authored-by: V Donaldson <vdonaldson@nvidia.com>
39 lines
1.6 KiB
C++
39 lines
1.6 KiB
C++
//===-- LowLevelIntrinsics.cpp --------------------------------------------===//
|
|
//
|
|
// 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
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Coding style: https://mlir.llvm.org/getting_started/DeveloperGuide/
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Low level intrinsic functions.
|
|
//
|
|
// These include LLVM intrinsic calls and standard C library calls.
|
|
// Target-specific calls, such as OS functions, should be factored in other
|
|
// file(s).
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "flang/Optimizer/Builder/LowLevelIntrinsics.h"
|
|
#include "flang/Optimizer/Builder/FIRBuilder.h"
|
|
|
|
mlir::FuncOp fir::factory::getLlvmStackSave(fir::FirOpBuilder &builder) {
|
|
auto ptrTy = builder.getRefType(builder.getIntegerType(8));
|
|
auto funcTy =
|
|
mlir::FunctionType::get(builder.getContext(), llvm::None, {ptrTy});
|
|
return builder.addNamedFunction(builder.getUnknownLoc(), "llvm.stacksave",
|
|
funcTy);
|
|
}
|
|
|
|
mlir::FuncOp fir::factory::getLlvmStackRestore(fir::FirOpBuilder &builder) {
|
|
auto ptrTy = builder.getRefType(builder.getIntegerType(8));
|
|
auto funcTy =
|
|
mlir::FunctionType::get(builder.getContext(), {ptrTy}, llvm::None);
|
|
return builder.addNamedFunction(builder.getUnknownLoc(), "llvm.stackrestore",
|
|
funcTy);
|
|
}
|