Reverts llvm/llvm-project#117603 due to failed buildbot https://lab.llvm.org/buildbot/#/builders/152/builds/710 The important bit of the log was ``` FAILED: CMakeFiles/FortranRuntime.dir/stop.cpp.o ccache /usr/bin/g++ -DFLANG_LITTLE_ENDIAN=1 -DGTEST_HAS_RTTI=0 -DRT_USE_LIBCUDACXX=1 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbot/worker/as-builder-7/ramdisk/flang-runtime-cuda-gcc/llvm-project/flang/runtime/../include -I/home/buildbot/worker/as-builder-7/ramdisk/flang-runtime-cuda-gcc/build -I/home/buildbot/worker/third-party/nv/cccl/libcudacxx/include -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -Wimplicit-fallthrough -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-lto -O3 -DNDEBUG -U_GLIBCXX_ASSERTIONS -U_LIBCPP_ENABLE_ASSERTIONS -UNDEBUG -std=c++17 -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -MD -MT CMakeFiles/FortranRuntime.dir/stop.cpp.o -MF CMakeFiles/FortranRuntime.dir/stop.cpp.o.d -o CMakeFiles/FortranRuntime.dir/stop.cpp.o -c /home/buildbot/worker/as-builder-7/ramdisk/flang-runtime-cuda-gcc/llvm-project/flang/runtime/stop.cpp /home/buildbot/worker/as-builder-7/ramdisk/flang-runtime-cuda-gcc/llvm-project/flang/runtime/stop.cpp:19:10: fatal error: llvm/Config/config.h: No such file or directory 19 | #include "llvm/Config/config.h" | ^~~~~~~~~~~~~~~~~~~~~~ compilation terminated. ``` CC @dty2
46 lines
2.1 KiB
C++
46 lines
2.1 KiB
C++
//===-- Stop.h - generate stop runtime API calls ----------------*- C++ -*-===//
|
|
//
|
|
// 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
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "flang/Optimizer/Builder/Runtime/Stop.h"
|
|
#include "flang/Optimizer/Builder/BoxValue.h"
|
|
#include "flang/Optimizer/Builder/FIRBuilder.h"
|
|
#include "flang/Optimizer/Builder/Runtime/RTBuilder.h"
|
|
#include "flang/Runtime/stop.h"
|
|
|
|
using namespace Fortran::runtime;
|
|
|
|
void fir::runtime::genExit(fir::FirOpBuilder &builder, mlir::Location loc,
|
|
mlir::Value status) {
|
|
auto exitFunc = fir::runtime::getRuntimeFunc<mkRTKey(Exit)>(loc, builder);
|
|
llvm::SmallVector<mlir::Value> args = fir::runtime::createArguments(
|
|
builder, loc, exitFunc.getFunctionType(), status);
|
|
builder.create<fir::CallOp>(loc, exitFunc, args);
|
|
}
|
|
|
|
void fir::runtime::genAbort(fir::FirOpBuilder &builder, mlir::Location loc) {
|
|
mlir::func::FuncOp abortFunc =
|
|
fir::runtime::getRuntimeFunc<mkRTKey(Abort)>(loc, builder);
|
|
builder.create<fir::CallOp>(loc, abortFunc, std::nullopt);
|
|
}
|
|
|
|
void fir::runtime::genReportFatalUserError(fir::FirOpBuilder &builder,
|
|
mlir::Location loc,
|
|
llvm::StringRef message) {
|
|
mlir::func::FuncOp crashFunc =
|
|
fir::runtime::getRuntimeFunc<mkRTKey(ReportFatalUserError)>(loc, builder);
|
|
mlir::FunctionType funcTy = crashFunc.getFunctionType();
|
|
mlir::Value msgVal = fir::getBase(
|
|
fir::factory::createStringLiteral(builder, loc, message.str() + '\0'));
|
|
mlir::Value sourceLine =
|
|
fir::factory::locationToLineNo(builder, loc, funcTy.getInput(2));
|
|
mlir::Value sourceFile = fir::factory::locationToFilename(builder, loc);
|
|
llvm::SmallVector<mlir::Value> args = fir::runtime::createArguments(
|
|
builder, loc, funcTy, msgVal, sourceFile, sourceLine);
|
|
builder.create<fir::CallOp>(loc, crashFunc, args);
|
|
}
|