pscoro updated this revision to Diff 539113.
pscoro added a comment.

Some small changes, still non functional


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D154869/new/

https://reviews.llvm.org/D154869

Files:
  clang/lib/Driver/ToolChains/CommonArgs.cpp
  flang-rt/CMakeLists.txt
  flang-rt/src/dummy.cpp
  flang/CMakeLists.txt
  flang/cmake/modules/AddFlang.cmake
  flang/include/flang/Runtime/float128.h
  flang/lib/Decimal/CMakeLists.txt
  flang/runtime/CMakeLists.txt
  flang/test/CMakeLists.txt
  flang/test/Driver/linker-flags.f90
  flang/test/lit.cfg.py
  lld/COFF/MinGW.cpp
  llvm/CMakeLists.txt
  llvm/projects/CMakeLists.txt
  runtimes/CMakeLists.txt

Index: runtimes/CMakeLists.txt
===================================================================
--- runtimes/CMakeLists.txt
+++ runtimes/CMakeLists.txt
@@ -19,7 +19,7 @@
 
 # We order libraries to mirror roughly how they are layered, except that compiler-rt can depend
 # on libc++, so we put it after.
-set(LLVM_DEFAULT_RUNTIMES "libc;libunwind;libcxxabi;pstl;libcxx;compiler-rt;openmp")
+set(LLVM_DEFAULT_RUNTIMES "libc;libunwind;libcxxabi;pstl;libcxx;compiler-rt;openmp;flang-rt")
 set(LLVM_SUPPORTED_RUNTIMES "${LLVM_DEFAULT_RUNTIMES};llvm-libgcc")
 set(LLVM_ENABLE_RUNTIMES "" CACHE STRING
   "Semicolon-separated list of runtimes to build, or \"all\" (${LLVM_DEFAULT_RUNTIMES}). Supported runtimes are ${LLVM_SUPPORTED_RUNTIMES}.")
Index: llvm/projects/CMakeLists.txt
===================================================================
--- llvm/projects/CMakeLists.txt
+++ llvm/projects/CMakeLists.txt
@@ -6,6 +6,7 @@
   if(IS_DIRECTORY ${entry} AND EXISTS ${entry}/CMakeLists.txt)
     if((NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/compiler-rt) AND
        (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/dragonegg) AND
+       (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/flang-rt) AND
        (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/libcxx) AND
        (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/libcxxabi) AND
        (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/libunwind) AND
@@ -42,6 +43,8 @@
 add_llvm_external_project(dragonegg)
 add_llvm_external_project(openmp)
 
+add_llvm_external_project(flang-rt)
+
 if(LLVM_INCLUDE_TESTS)
   add_llvm_external_project(cross-project-tests)
 endif()
Index: llvm/CMakeLists.txt
===================================================================
--- llvm/CMakeLists.txt
+++ llvm/CMakeLists.txt
@@ -149,7 +149,10 @@
 # As we migrate runtimes to using the bootstrapping build, the set of default runtimes
 # should grow as we remove those runtimes from LLVM_ENABLE_PROJECTS above.
 set(LLVM_DEFAULT_RUNTIMES "libcxx;libcxxabi;libunwind")
-set(LLVM_SUPPORTED_RUNTIMES "libc;libunwind;libcxxabi;pstl;libcxx;compiler-rt;openmp;llvm-libgcc")
+if ("flang" IN_LIST LLVM_ENABLE_PROJECTS)
+  set(LLVM_DEFAULT_RUNTIMES "libcxx;libcxxabi;libunwind;flang-rt")
+endif()
+set(LLVM_SUPPORTED_RUNTIMES "libc;libunwind;libcxxabi;pstl;libcxx;compiler-rt;openmp;llvm-libgcc;flang-rt")
 set(LLVM_ENABLE_RUNTIMES "" CACHE STRING
   "Semicolon-separated list of runtimes to build, or \"all\" (${LLVM_DEFAULT_RUNTIMES}). Supported runtimes are ${LLVM_SUPPORTED_RUNTIMES}.")
 if(LLVM_ENABLE_RUNTIMES STREQUAL "all")
Index: lld/COFF/MinGW.cpp
===================================================================
--- lld/COFF/MinGW.cpp
+++ lld/COFF/MinGW.cpp
@@ -50,8 +50,7 @@
       "libc++",
       "libc++abi",
       "libFortran_main",
-      "libFortranRuntime",
-      "libFortranDecimal",
+      "libflang-rt",
       "libunwind",
       "libmsvcrt",
       "libucrtbase",
Index: flang/test/lit.cfg.py
===================================================================
--- flang/test/lit.cfg.py
+++ flang/test/lit.cfg.py
@@ -153,19 +153,16 @@
 # the C++ runtime libraries. For this we need a C compiler. If for some reason
 # we don't have one, we can just disable the test.
 if config.cc:
-    libruntime = os.path.join(config.flang_lib_dir, "libFortranRuntime.a")
-    libdecimal = os.path.join(config.flang_lib_dir, "libFortranDecimal.a")
+    libruntime = os.path.join(config.flang_lib_dir, "libflang-rt.a")
     include = os.path.join(config.flang_src_dir, "include")
 
     if (
         os.path.isfile(libruntime)
-        and os.path.isfile(libdecimal)
         and os.path.isdir(include)
     ):
         config.available_features.add("c-compiler")
         tools.append(ToolSubst("%cc", command=config.cc, unresolved="fatal"))
         tools.append(ToolSubst("%libruntime", command=libruntime, unresolved="fatal"))
-        tools.append(ToolSubst("%libdecimal", command=libdecimal, unresolved="fatal"))
         tools.append(ToolSubst("%include", command=include, unresolved="fatal"))
 
 # Add all the tools and their substitutions (if applicable). Use the search paths provided for
Index: flang/test/Driver/linker-flags.f90
===================================================================
--- flang/test/Driver/linker-flags.f90
+++ flang/test/Driver/linker-flags.f90
@@ -24,21 +24,18 @@
 ! GNU-LABEL:  "{{.*}}ld{{(\.exe)?}}"
 ! GNU-SAME: "[[object_file]]"
 ! GNU-SAME: -lFortran_main
-! GNU-SAME: -lFortranRuntime
-! GNU-SAME: -lFortranDecimal
+! GNU-SAME: -lflang-rt
 ! GNU-SAME: -lm
 
 ! DARWIN-LABEL:  "{{.*}}ld{{(\.exe)?}}"
 ! DARWIN-SAME: "[[object_file]]"
 ! DARWIN-SAME: -lFortran_main
-! DARWIN-SAME: -lFortranRuntime
-! DARWIN-SAME: -lFortranDecimal
+! DARWIN-SAME: -lflang-rt
 
 ! MINGW-LABEL:  "{{.*}}ld{{(\.exe)?}}"
 ! MINGW-SAME: "[[object_file]]"
 ! MINGW-SAME: -lFortran_main
-! MINGW-SAME: -lFortranRuntime
-! MINGW-SAME: -lFortranDecimal
+! MINGW-SAME: -lflang-rt
 
 ! NOTE: This also matches lld-link (when CLANG_DEFAULT_LINKER=lld) and
 !       any .exe suffix that is added when resolving to the full path of
@@ -46,7 +43,6 @@
 !       when the executable is not found or on non-Windows platforms.
 ! MSVC-LABEL: link
 ! MSVC-SAME: Fortran_main.lib
-! MSVC-SAME: FortranRuntime.lib
-! MSVC-SAME: FortranDecimal.lib
+! MSVC-SAME: flang-rt.lib
 ! MSVC-SAME: /subsystem:console
 ! MSVC-SAME: "[[object_file]]"
Index: flang/test/CMakeLists.txt
===================================================================
--- flang/test/CMakeLists.txt
+++ flang/test/CMakeLists.txt
@@ -61,9 +61,8 @@
   llvm-objdump
   llvm-readobj
   split-file
-  FortranRuntime
+  flang-rt
   Fortran_main
-  FortranDecimal
 )
 if (LLVM_ENABLE_PLUGINS AND NOT WIN32)
   list(APPEND FLANG_TEST_DEPENDS Bye)
Index: flang/runtime/CMakeLists.txt
===================================================================
--- flang/runtime/CMakeLists.txt
+++ flang/runtime/CMakeLists.txt
@@ -5,17 +5,17 @@
 # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 #
 #===------------------------------------------------------------------------===#
+set(FLANG_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..")
 
-if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR FLANG_RT_STANDALONE_BUILD)
   cmake_minimum_required(VERSION 3.20.0)
 
-  project(FlangRuntime C CXX)
+  project(FortranRuntime C CXX)
 
   set(CMAKE_CXX_STANDARD 17)
   set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
   set(CMAKE_CXX_EXTENSIONS OFF)
 
-  set(FLANG_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..")
 
   set(LLVM_COMMON_CMAKE_UTILS "${FLANG_SOURCE_DIR}/../cmake")
   set(LLVM_CMAKE_UTILS "${FLANG_SOURCE_DIR}/../llvm/cmake")
@@ -44,9 +44,9 @@
   else ()
     add_compile_definitions(FLANG_LITTLE_ENDIAN=1)
   endif ()
-  include_directories(BEFORE
-    ${FLANG_SOURCE_DIR}/include)
 endif()
+include_directories(BEFORE
+  ${FLANG_SOURCE_DIR}/include)
 
 include(CheckCXXSymbolExists)
 include(CheckCXXSourceCompiles)
@@ -246,10 +246,14 @@
   add_compile_definitions(OMP_OFFLOAD_BUILD)
 endif()
 
-add_flang_library(FortranRuntime
-  ${sources}
-  LINK_LIBS
-  FortranDecimal
+add_compile_options(-fPIC)
 
-  INSTALL_WITH_TOOLCHAIN
-)
+if ("flang-rt" IN_LIST LLVM_ENABLE_RUNTIMES)
+  add_flang_library(FortranRuntime STATIC
+    ${sources}
+    LINK_LIBS
+    FortranDecimalRT
+
+    INSTALL_WITH_TOOLCHAIN
+  )
+endif()
Index: flang/lib/Decimal/CMakeLists.txt
===================================================================
--- flang/lib/Decimal/CMakeLists.txt
+++ flang/lib/Decimal/CMakeLists.txt
@@ -1,14 +1,14 @@
-if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+set(FLANG_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..")
+if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR FLANG_RT_STANDALONE_BUILD)
   cmake_minimum_required(VERSION 3.20.0)
 
   project(FortranDecimal C CXX)
+  project(FortranDecimalRT C CXX)
 
   set(CMAKE_CXX_STANDARD 17)
   set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
   set(CMAKE_CXX_EXTENSIONS OFF)
 
-  set(FLANG_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..")
-
   set(LLVM_COMMON_CMAKE_UTILS "${FLANG_SOURCE_DIR}/../cmake")
   set(LLVM_CMAKE_UTILS "${FLANG_SOURCE_DIR}/../llvm/cmake")
   set(CLANG_CMAKE_UTILS "${FLANG_SOURCE_DIR}/../clang/cmake")
@@ -36,9 +36,9 @@
   else ()
     add_compile_definitions(FLANG_LITTLE_ENDIAN=1)
   endif ()
-  include_directories(BEFORE
-    ${FLANG_SOURCE_DIR}/include)
 endif()
+include_directories(BEFORE
+  ${FLANG_SOURCE_DIR}/include)
 
 check_cxx_compiler_flag(-fno-lto FLANG_RUNTIME_HAS_FNO_LTO_FLAG)
 if (FLANG_RUNTIME_HAS_FNO_LTO_FLAG)
@@ -49,7 +49,18 @@
 # avoid an unwanted dependency on libstdc++.so.
 add_definitions(-U_GLIBCXX_ASSERTIONS)
 
-add_flang_library(FortranDecimal INSTALL_WITH_TOOLCHAIN
-  binary-to-decimal.cpp
-  decimal-to-binary.cpp
-)
+add_compile_options(-fPIC)
+
+if (NOT FLANG_RT_STANDALONE_BUILD)
+  add_flang_library(FortranDecimal
+    binary-to-decimal.cpp
+    decimal-to-binary.cpp
+  )
+endif()
+
+if ("flang-rt" IN_LIST LLVM_ENABLE_RUNTIMES OR FLANG_RT_STANDALONE_BUILD)
+  add_flang_library(FortranDecimalRT STATIC INSTALL_WITH_TOOLCHAIN
+    binary-to-decimal.cpp
+    decimal-to-binary.cpp
+  )
+endif()
Index: flang/include/flang/Runtime/float128.h
===================================================================
--- flang/include/flang/Runtime/float128.h
+++ flang/include/flang/Runtime/float128.h
@@ -39,13 +39,13 @@
  * since earlier versions may define the macros above, but
  * still do not support __float128 fully.
  */
-#if __x86_64__
-#if __GNUC__ >= 7 || __clang_major__ >= 7
-#define HAS_FLOAT128 1
-#endif
-#elif defined __PPC__ && __GNUC__ >= 8
-#define HAS_FLOAT128 1
-#endif
+//#if __x86_64__
+//#if __GNUC__ >= 7 || __clang_major__ >= 7
+//#define HAS_FLOAT128 1
+//#endif
+//#elif defined __PPC__ && __GNUC__ >= 8
+//#define HAS_FLOAT128 1
+//#endif
 #endif /* (defined(__FLOAT128__) || defined(__SIZEOF_FLOAT128__)) && \
           !defined(_LIBCPP_VERSION)  && !defined(__CUDA_ARCH__) */
 
Index: flang/cmake/modules/AddFlang.cmake
===================================================================
--- flang/cmake/modules/AddFlang.cmake
+++ flang/cmake/modules/AddFlang.cmake
@@ -65,6 +65,7 @@
   endif()
 
   llvm_add_library(${name} ${LIBTYPE} ${ARG_UNPARSED_ARGUMENTS} ${srcs})
+  set_target_properties(${name} PROPERTIES POSITION_INDEPENDENT_CODE ON)
 
   clang_target_link_libraries(${name} PRIVATE ${ARG_CLANG_LIBS})
 
Index: flang/CMakeLists.txt
===================================================================
--- flang/CMakeLists.txt
+++ flang/CMakeLists.txt
@@ -186,9 +186,9 @@
     endif()
   endif()
   if (FLANG_GTEST_AVAIL)
-    add_custom_target(check-all DEPENDS check-flang FlangUnitTests)
+    add_custom_target(check-all DEPENDS flang-rt check-flang FlangUnitTests)
   else()
-    add_custom_target(check-all DEPENDS check-flang )
+    add_custom_target(check-all DEPENDS flang-rt check-flang)
   endif()
   if (LLVM_BUILD_DOCS)
     add_custom_target(doxygen ALL)
Index: flang-rt/src/dummy.cpp
===================================================================
--- /dev/null
+++ flang-rt/src/dummy.cpp
@@ -0,0 +1,6 @@
+// TODO: If the object library approach is followed through. This entire src/
+// directory should be deleted. This dummy source file was needed to make
+// CMake add a new library for flang-rt with the prvious approach that used
+// target_link_libraries to link FortranRuntime and FortranDecimalRT instead.
+//
+// This file is intentionally left blank.
Index: flang-rt/CMakeLists.txt
===================================================================
--- /dev/null
+++ flang-rt/CMakeLists.txt
@@ -0,0 +1,127 @@
+# CMake build for the Flang runtime libraries
+# The source for the flang runtime libraries (FortranDecimalRT, FortranRuntime)
+# exist in the flang top-level directory.
+# Flang-rt is only scaffolding and does not provide any additional source files.
+
+cmake_minimum_required(VERSION 3.20.0)
+
+#===============================================================================
+# Configure CMake
+#===============================================================================
+set(LLVM_COMMON_CMAKE_UTILS "${CMAKE_CURRENT_SOURCE_DIR}/../cmake")
+include(${LLVM_COMMON_CMAKE_UTILS}/Modules/CMakePolicy.cmake
+  NO_POLICY_SCOPE)
+
+set(CMAKE_BUILD_WITH_INSTALL_NAME_DIR ON)
+
+# Check if flang-rt is built as a standalone project.
+if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR FLANG_RT_STANDALONE_BUILD)
+  project(flang-rt C CXX)
+  set(CMAKE_INCLUDE_CURRENT_DIR ON)
+  set(FLANG_RT_STANDALONE_BUILD TRUE)
+  set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+endif()
+
+set(FLANG_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../flang")
+set(LLVM_COMMON_CMAKE_UTILS "${FLANG_SOURCE_DIR}/../cmake")
+set(LLVM_CMAKE_UTILS "${FLANG_SOURCE_DIR}/../llvm/cmake")
+set(CLANG_CMAKE_UTILS "${FLANG_SOURCE_DIR}/../clang/cmake")
+
+# Add path for custom modules
+list(INSERT CMAKE_MODULE_PATH 0
+  "${FLANG_SOURCE_DIR}/cmake"
+  "${FLANG_SOURCE_DIR}/cmake/modules"
+  "${LLVM_COMMON_CMAKE_UTILS}"
+  "${LLVM_COMMON_CMAKE_UTILS}/Modules"
+  "${LLVM_CMAKE_UTILS}"
+  "${LLVM_CMAKE_UTILS}/modules"
+  "${CLANG_CMAKE_UTILS}/modules"
+)
+
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY
+  ${CMAKE_BINARY_DIR}/lib)
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY
+  ${CMAKE_BINARY_DIR}/lib)
+set(CMAKE_CURRENT_BINARY_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+
+include(AddClang)
+include(AddLLVM)
+include(AddFlang)
+include(HandleLLVMOptions)
+include(TestBigEndian)
+test_big_endian(IS_BIGENDIAN)
+if (IS_BIGENDIAN)
+  add_compile_definitions(FLANG_BIG_ENDIAN=1)
+else ()
+  add_compile_definitions(FLANG_LITTLE_ENDIAN=1)
+endif ()
+
+#===============================================================================
+# Setup CMake Options
+#===============================================================================
+option(FLANG_RT_ENABLE_SHARED "Build flang-rt as a shared library." OFF)
+option(FLANG_RT_ENABLE_STATIC "Build flang-rt as a static library." OFF)
+
+#===============================================================================
+# Find Flang Libraries
+#===============================================================================
+set(FORTRAN_DECIMAL_SRC "${CMAKE_CURRENT_SOURCE_DIR}/../flang/lib/Decimal")
+set(FORTRAN_RUNTIME_SRC "${CMAKE_CURRENT_SOURCE_DIR}/../flang/runtime")
+
+# TODO: Removed commented code (previous implementation w/o object libraries)
+#find_library(FORTRAN_DECIMAL FortranDecimalRT PATHS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+#find_library(FORTRAN_RUNTIME FortranRuntime PATHS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+
+#if (FORTRAN_DECIMAL)
+#  list(APPEND FLANG_RT_LIBS ${FORTRAN_DECIMAL})
+#else()
+#  add_subdirectory(${FORTRAN_DECIMAL_SRC} FortranDecimalRT)
+#  list(APPEND FLANG_RT_LIBS FortranDecimalRT)
+#endif()
+#if (FORTRAN_RUNTIME)
+#  list(APPEND FLANG_RT_LIBS ${FORTRAN_RUNTIME})
+#else()
+#  add_subdirectory(${FORTRAN_RUNTIME_SRC} FortranRuntime)
+#  list(APPEND FLANG_RT_LIBS FortranRuntime)
+#endif()
+
+add_subdirectory(${FORTRAN_DECIMAL_SRC} FortranDecimalRT)
+add_subdirectory(${FORTRAN_RUNTIME_SRC} FortranRuntime)
+
+#===============================================================================
+# Create Flang-rt wrapper library
+#===============================================================================
+# TODO: Removed commented code (previous implementation w/o object libraries)
+# Build as shared by default if no linkage type option set.
+if (NOT FLANG_RT_ENABLE_SHARED AND NOT FLANG_RT_ENABLE_STATIC)
+#  add_library(flang-rt SHARED src/dummy.cpp)
+  add_library(flang-rt SHARED $<TARGET_OBJECTS:obj.FortranDecimalRT>
+                              $<TARGET_OBJECTS:obj.FortranRuntime>)
+endif()
+if (FLANG_RT_ENABLE_SHARED)
+#  add_library(flang-rt SHARED src/dummy.cpp)
+  add_library(flang-rt SHARED $<TARGET_OBJECTS:obj.FortranDecimalRT>
+                              $<TARGET_OBJECTS:obj.FortranRuntime>)
+endif()
+if (FLANG_RT_ENABLE_STATIC AND NOT FLANG_RT_ENABLE_SHARED)
+#  add_library(flang-rt STATIC src/dummy.cpp)
+  add_library(flang-rt STATIC $<TARGET_OBJECTS:obj.FortranDecimalRT>
+                              $<TARGET_OBJECTS:obj.FortranRuntime>)
+endif()
+# When building both static and shared, we need to append _static to the name
+# to avoid naming conflicts.
+if (FLANG_RT_ENABLE_STATIC AND FLANG_RT_ENABLE_SHARED)
+#  add_library(flang-rt_static STATIC src/dummy.cpp)
+  add_library(flang-rt_static STATIC $<TARGET_OBJECTS:obj.FortranDecimalRT>
+                                     $<TARGET_OBJECTS:obj.FortranRuntime>)
+endif()
+
+# TODO: Remove all this if we are using object libraries
+#===============================================================================
+# Link Flang Libraries
+#===============================================================================
+#target_link_libraries(flang-rt PUBLIC ${FLANG_RT_LIBS})
+#if (FLANG_RT_ENABLE_STATIC AND FLANG_RT_ENABLE_SHARED)
+#  target_link_libraries(flang-rt_static PUBLIC ${FLANG_RT_LIBS})
+#endif()
Index: clang/lib/Driver/ToolChains/CommonArgs.cpp
===================================================================
--- clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -921,12 +921,10 @@
                                   llvm::opt::ArgStringList &CmdArgs) {
   if (TC.getTriple().isKnownWindowsMSVCEnvironment()) {
     CmdArgs.push_back("Fortran_main.lib");
-    CmdArgs.push_back("FortranRuntime.lib");
-    CmdArgs.push_back("FortranDecimal.lib");
+    CmdArgs.push_back("flang-rt.lib");
   } else {
     CmdArgs.push_back("-lFortran_main");
-    CmdArgs.push_back("-lFortranRuntime");
-    CmdArgs.push_back("-lFortranDecimal");
+    CmdArgs.push_back("-lflang-rt");
   }
 }
 
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to