aboutsummaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
authorJoseph Huber <jhuber6@vols.utk.edu>2023-07-06 18:25:52 -0500
committerJoseph Huber <jhuber6@vols.utk.edu>2023-07-06 18:26:41 -0500
commit6ca6cdb23ece54fcbdead75cda3dd36e08db9665 (patch)
tree8a8377681d38c55c3bbfe6f322894860620a0a7f /libc
parenta8df21f433d2f7cd267ac6e5581163f15501918b (diff)
downloadllvm-6ca6cdb23ece54fcbdead75cda3dd36e08db9665.zip
llvm-6ca6cdb23ece54fcbdead75cda3dd36e08db9665.tar.gz
llvm-6ca6cdb23ece54fcbdead75cda3dd36e08db9665.tar.bz2
Revert "[libc] Add support for creating wrapper headers for offloading in clang"
This reverts commit a4a26374aa11d48ac6bf65c78c2aaf8f16414287. This was causing some problems with the CPU build and CUDA buildbot. Revert until I can figure out what those issues are and fix them. I believe it is just some CMake.
Diffstat (limited to 'libc')
-rw-r--r--libc/cmake/modules/LLVMLibCHeaderRules.cmake20
-rw-r--r--libc/include/CMakeLists.txt22
-rw-r--r--libc/utils/HdrGen/Generator.cpp75
-rw-r--r--libc/utils/HdrGen/Generator.h1
-rw-r--r--libc/utils/HdrGen/Main.cpp8
5 files changed, 2 insertions, 124 deletions
diff --git a/libc/cmake/modules/LLVMLibCHeaderRules.cmake b/libc/cmake/modules/LLVMLibCHeaderRules.cmake
index 3e241a24..20cf43a 100644
--- a/libc/cmake/modules/LLVMLibCHeaderRules.cmake
+++ b/libc/cmake/modules/LLVMLibCHeaderRules.cmake
@@ -131,23 +131,6 @@ function(add_gen_header target_name)
${hdrgen_deps}
)
- if(LIBC_TARGET_ARCHITECTURE_IS_GPU)
- file(MAKE_DIRECTORY ${LIBC_INCLUDE_DIR}/llvm-libc-decls)
- set(decl_out_file ${LIBC_INCLUDE_DIR}/llvm-libc-decls/${relative_path})
- add_custom_command(
- OUTPUT ${decl_out_file}
- COMMAND ${hdrgen_exe} -o ${decl_out_file}
- --header ${ADD_GEN_HDR_GEN_HDR} --def ${in_file} --export-decls
- ${replacement_params} -I ${LIBC_SOURCE_DIR} ${ENTRYPOINT_NAME_LIST_ARG}
- ${LIBC_SOURCE_DIR}/config/${LIBC_TARGET_OS}/api.td
-
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
- DEPENDS ${in_file} ${fq_data_files} ${td_includes}
- ${LIBC_SOURCE_DIR}/config/${LIBC_TARGET_OS}/api.td
- ${hdrgen_deps}
- )
- endif()
-
if(ADD_GEN_HDR_DEPENDS)
get_fq_deps_list(fq_deps_list ${ADD_GEN_HDR_DEPENDS})
# Dependencies of a add_header target can only be another add_gen_header target
@@ -161,14 +144,13 @@ function(add_gen_header target_name)
endif()
add_custom_target(
${fq_target_name}
- DEPENDS ${out_file} ${fq_deps_list} ${decl_out_file}
+ DEPENDS ${out_file} ${fq_deps_list}
)
set_target_properties(
${fq_target_name}
PROPERTIES
HEADER_FILE_PATH ${out_file}
- DECLS_FILE_PATH ${decl_out_file}
DEPS "${fq_deps_list}"
)
endfunction(add_gen_header)
diff --git a/libc/include/CMakeLists.txt b/libc/include/CMakeLists.txt
index 1e34f4b..02a5f54 100644
--- a/libc/include/CMakeLists.txt
+++ b/libc/include/CMakeLists.txt
@@ -3,11 +3,6 @@ set(LIBC_INCLUDE_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
include(LLVMLibCHeaderRules)
-# The GPU build wants to install files in the compiler's resource directory.
-if(LIBC_TARGET_ARCHITECTURE_IS_GPU)
- include(GetClangResourceDir)
-endif()
-
add_subdirectory(llvm-libc-macros)
add_subdirectory(llvm-libc-types)
@@ -544,21 +539,4 @@ foreach(target IN LISTS all_install_header_targets)
install(FILES ${header_file}
DESTINATION ${LIBC_INSTALL_INCLUDE_DIR}/${nested_dir}
COMPONENT libc-headers)
- # The GPU optionally provides the supported declarations externally so
- # offloading languages like CUDA and OpenMP know what is supported by libc. We
- # install these in the compiler's resource directory at a preset location.
- if(LIBC_TARGET_ARCHITECTURE_IS_GPU)
- get_target_property(decls_file ${target} DECLS_FILE_PATH)
- if(NOT decls_file)
- continue()
- endif()
- get_clang_resource_dir(resource_dir SUBDIR include)
- file(RELATIVE_PATH relative_path ${LIBC_INCLUDE_BINARY_DIR} ${decls_file})
- get_filename_component(nested_dir ${relative_path} DIRECTORY)
- set(install_dir
- ${CMAKE_INSTALL_PREFIX}/${resource_dir}/llvm_libc_wrappers/${nested_dir})
- install(FILES ${decls_file}
- DESTINATION ${install_dir}
- COMPONENT libc-headers)
- endif()
endforeach()
diff --git a/libc/utils/HdrGen/Generator.cpp b/libc/utils/HdrGen/Generator.cpp
index 24d2268..cbfb2db 100644
--- a/libc/utils/HdrGen/Generator.cpp
+++ b/libc/utils/HdrGen/Generator.cpp
@@ -10,7 +10,6 @@
#include "IncludeFileCommand.h"
#include "PublicAPICommand.h"
-#include "utils/LibcTableGenUtil/APIIndexer.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/MemoryBuffer.h"
@@ -117,78 +116,4 @@ void Generator::generate(llvm::raw_ostream &OS, llvm::RecordKeeper &Records) {
}
}
-void Generator::generateDecls(llvm::raw_ostream &OS,
- llvm::RecordKeeper &Records) {
-
- OS << "//===-- C standard declarations for " << StdHeader << " "
- << std::string(80 - (42 + StdHeader.size()), '-') << "===//\n"
- << "//\n"
- << "// Part of the LLVM Project, under the Apache License v2.0 with LLVM "
- "Exceptions.\n"
- << "// See https://llvm.org/LICENSE.txt for license information.\n"
- << "// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception\n"
- << "//\n"
- << "//"
- "===-------------------------------------------------------------------"
- "---===//\n\n";
-
- std::string HeaderGuard(StdHeader.size(), '\0');
- llvm::transform(StdHeader, HeaderGuard.begin(), [](const char C) -> char {
- return !isalnum(C) ? '_' : llvm::toUpper(C);
- });
- OS << "#ifndef __LLVM_LIBC_DECLARATIONS_" << HeaderGuard << "\n"
- << "#define __LLVM_LIBC_DECLARATIONS_" << HeaderGuard << "\n\n";
-
- OS << "#ifndef __LIBC_ATTRS\n"
- << "#define __LIBC_ATTRS\n"
- << "#endif\n\n";
-
- OS << "#ifdef __cplusplus\n"
- << "extern \"C\" {\n"
- << "#endif\n\n";
-
- APIIndexer G(StdHeader, Records);
- for (auto &Name : EntrypointNameList) {
- // Filter out functions not exported by this header.
- if (G.FunctionSpecMap.find(Name) == G.FunctionSpecMap.end())
- continue;
-
- llvm::Record *FunctionSpec = G.FunctionSpecMap[Name];
- llvm::Record *RetValSpec = FunctionSpec->getValueAsDef("Return");
- llvm::Record *ReturnType = RetValSpec->getValueAsDef("ReturnType");
-
- OS << G.getTypeAsString(ReturnType) << " " << Name << "(";
-
- auto ArgsList = FunctionSpec->getValueAsListOfDefs("Args");
- for (size_t i = 0; i < ArgsList.size(); ++i) {
- llvm::Record *ArgType = ArgsList[i]->getValueAsDef("ArgType");
- OS << G.getTypeAsString(ArgType);
- if (i < ArgsList.size() - 1)
- OS << ", ";
- }
-
- OS << ") __LIBC_ATTRS;\n\n";
- }
-
- // Make another pass over entrypoints to emit object declarations.
- for (const auto &Name : EntrypointNameList) {
- if (G.ObjectSpecMap.find(Name) == G.ObjectSpecMap.end())
- continue;
- llvm::Record *ObjectSpec = G.ObjectSpecMap[Name];
- auto Type = ObjectSpec->getValueAsString("Type");
- OS << "extern " << Type << " " << Name << " __LIBC_ATTRS;\n";
- }
-
- // Emit a final newline if we emitted any object declarations.
- if (llvm::any_of(EntrypointNameList, [&](const std::string &Name) {
- return G.ObjectSpecMap.find(Name) != G.ObjectSpecMap.end();
- }))
- OS << "\n";
-
- OS << "#ifdef __cplusplus\n"
- << "}\n"
- << "#endif\n\n";
- OS << "#endif\n";
-}
-
} // namespace llvm_libc
diff --git a/libc/utils/HdrGen/Generator.h b/libc/utils/HdrGen/Generator.h
index 76a8a11..eef96ad 100644
--- a/libc/utils/HdrGen/Generator.h
+++ b/libc/utils/HdrGen/Generator.h
@@ -52,7 +52,6 @@ public:
ArgMap(Map) {}
void generate(llvm::raw_ostream &OS, llvm::RecordKeeper &Records);
- void generateDecls(llvm::raw_ostream &OS, llvm::RecordKeeper &Records);
};
} // namespace llvm_libc
diff --git a/libc/utils/HdrGen/Main.cpp b/libc/utils/HdrGen/Main.cpp
index d3418f2..d148747 100644
--- a/libc/utils/HdrGen/Main.cpp
+++ b/libc/utils/HdrGen/Main.cpp
@@ -32,9 +32,6 @@ llvm::cl::list<std::string> EntrypointNamesOption(
llvm::cl::list<std::string> ReplacementValues(
"args", llvm::cl::desc("Command separated <argument name>=<value> pairs."),
llvm::cl::value_desc("<name=value>[,name=value]"));
-llvm::cl::opt<bool> ExportDecls(
- "export-decls",
- llvm::cl::desc("Output a new header containing only the entrypoints."));
void ParseArgValuePairs(std::unordered_map<std::string, std::string> &Map) {
for (std::string &R : ReplacementValues) {
@@ -51,10 +48,7 @@ bool HeaderGeneratorMain(llvm::raw_ostream &OS, llvm::RecordKeeper &Records) {
std::unordered_map<std::string, std::string> ArgMap;
ParseArgValuePairs(ArgMap);
Generator G(HeaderDefFile, EntrypointNamesOption, StandardHeader, ArgMap);
- if (ExportDecls)
- G.generateDecls(OS, Records);
- else
- G.generate(OS, Records);
+ G.generate(OS, Records);
return false;
}