[llvm-branch-commits] [clang] 2b74728 - Add Hightec toolchain description

2021-09-03 Thread Konstantin Schwarz via llvm-branch-commits

Author: Konstantin Schwarz
Date: 2019-01-17T09:43:28+01:00
New Revision: 2b747283621473751ef40c0f2ea1fdf50c14453f

URL: 
https://github.com/llvm/llvm-project/commit/2b747283621473751ef40c0f2ea1fdf50c14453f
DIFF: 
https://github.com/llvm/llvm-project/commit/2b747283621473751ef40c0f2ea1fdf50c14453f.diff

LOG: Add Hightec toolchain description

Added: 
clang/lib/Driver/ToolChains/HighTec.cpp
clang/lib/Driver/ToolChains/HighTec.h
clang/rlm_libs/x64_l/librlm.a
clang/rlm_libs/x64_w/rlm1233.dll
clang/rlm_libs/x64_w/rlm1233.lib
clang/tools/driver/LicenseManagerBase.cpp
clang/tools/driver/LicenseManagerBase.h
clang/tools/driver/license.h

Modified: 
clang/lib/Driver/CMakeLists.txt
clang/lib/Driver/Driver.cpp
clang/lib/Frontend/InitHeaderSearch.cpp
clang/tools/driver/CMakeLists.txt
clang/tools/driver/driver.cpp

Removed: 




diff  --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
index 2b03c9f7001f7..637907aa91fe3 100644
--- a/clang/lib/Driver/CMakeLists.txt
+++ b/clang/lib/Driver/CMakeLists.txt
@@ -45,6 +45,7 @@ add_clang_library(clangDriver
   ToolChains/Fuchsia.cpp
   ToolChains/Gnu.cpp
   ToolChains/Haiku.cpp
+  ToolChains/HighTec.cpp
   ToolChains/HIP.cpp
   ToolChains/Hexagon.cpp
   ToolChains/Linux.cpp

diff  --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 952a716cb6e61..1caf63bf354f7 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -26,6 +26,7 @@
 #include "ToolChains/HIP.h"
 #include "ToolChains/Haiku.h"
 #include "ToolChains/Hexagon.h"
+#include "ToolChains/HighTec.h"
 #include "ToolChains/Lanai.h"
 #include "ToolChains/Linux.h"
 #include "ToolChains/MSVC.h"
@@ -4282,6 +4283,12 @@ const ToolChain &Driver::getToolChain(const ArgList 
&Args,
 
   auto &TC = ToolChains[Target.str()];
   if (!TC) {
+
+if (toolchains::HighTec::handlesTarget(Target)) {
+  TC = llvm::make_unique(*this, Target, Args);
+  return *TC;
+}
+
 switch (Target.getOS()) {
 case llvm::Triple::Haiku:
   TC = llvm::make_unique(*this, Target, Args);

diff  --git a/clang/lib/Driver/ToolChains/HighTec.cpp 
b/clang/lib/Driver/ToolChains/HighTec.cpp
new file mode 100644
index 0..367137f771b08
--- /dev/null
+++ b/clang/lib/Driver/ToolChains/HighTec.cpp
@@ -0,0 +1,311 @@
+//===--- HighTec.cpp - HighTec ToolChain Implementation *- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===--===//
+
+#include "HighTec.h"
+#include "Arch/ARM.h"
+#include "clang/Basic/Version.h"
+#include "clang/Basic/VirtualFileSystem.h"
+#include "clang/Driver/Compilation.h"
+#include "clang/Driver/Driver.h"
+#include "clang/Driver/DriverDiagnostic.h"
+#include "clang/Driver/Options.h"
+#include "llvm/Option/ArgList.h"
+#include "llvm/Support/Path.h"
+#include "llvm/Support/TargetParser.h"
+#include "llvm/Support/raw_ostream.h"
+
+using namespace llvm::opt;
+using namespace clang;
+using namespace clang::driver;
+using namespace clang::driver::tools;
+using namespace clang::driver::toolchains;
+
+static std::string getArchitecture(llvm::Triple Triple) {
+
+  llvm::StringRef Arch = llvm::Triple::getArchTypePrefix(Triple.getArch());
+  if (Arch != "")
+return Arch;
+
+  llvm_unreachable("Unknown architecture specified.");
+}
+
+static std::string getArchVersionString(StringRef Arch) {
+
+  switch (llvm::ARM::parseArch(llvm::ARM::getCanonicalArchName(Arch))) {
+default:
+  // For now, only support v7 & v8
+  return "";
+case llvm::ARM::ArchKind::ARMV8A:
+  return "v8-a";
+case llvm::ARM::ArchKind::ARMV8_1A:
+  return "v8.1-a";
+case llvm::ARM::ArchKind::ARMV8_2A:
+  return "v8-2-a";
+case llvm::ARM::ArchKind::ARMV8_3A:
+  return "v8-3-a";
+case llvm::ARM::ArchKind::ARMV8R:
+  return "v8-r";
+case llvm::ARM::ArchKind::ARMV8MBaseline:
+  return "v8-m.base";
+case llvm::ARM::ArchKind::ARMV8MMainline:
+  return "v8-m.main";
+case llvm::ARM::ArchKind::ARMV7A:
+  return "v7-a";
+case llvm::ARM::ArchKind::ARMV7R:
+  return "v7-r";
+case llvm::ARM::ArchKind::ARMV7EM:
+  return "v7e-m";
+case llvm::ARM::ArchKind::ARMV7M:
+  return "v7-m";
+case llvm::ARM::ArchKind::ARMV7S:
+  return "v7-s";
+case llvm::ARM::ArchKind::ARMV7K:
+  return "v7-k";
+case llvm::ARM::ArchKind::ARMV7VE:
+  return "v7ve";
+case llvm::ARM::ArchKind::ARMV6M:
+  return "v6-m";
+  }
+}
+
+static std::string getArchVersion(llvm::Triple Triple, const 
llvm::opt::ArgList &Args) {
+
+
+  if (const Arg *A = Args.getLastArg(options::OPT_march_EQ)) {
+  return getArchVersionString(A->getValue());
+  } else {
+
+

[llvm-branch-commits] [clang] 043b898 - [LLVMARM-13] Add function for defining HighTec specific macros, call it from ARM targets.

2021-09-03 Thread Konstantin Schwarz via llvm-branch-commits

Author: Konstantin Schwarz
Date: 2019-01-17T11:35:06+01:00
New Revision: 043b8986368f76ba8fa2c5e34db83537e8af6d47

URL: 
https://github.com/llvm/llvm-project/commit/043b8986368f76ba8fa2c5e34db83537e8af6d47
DIFF: 
https://github.com/llvm/llvm-project/commit/043b8986368f76ba8fa2c5e34db83537e8af6d47.diff

LOG: [LLVMARM-13] Add function for defining HighTec specific macros, call it 
from ARM targets.

Added: 


Modified: 
clang/lib/Basic/Targets.cpp
clang/lib/Basic/Targets.h
clang/lib/Basic/Targets/AArch64.cpp
clang/lib/Basic/Targets/ARM.cpp

Removed: 




diff  --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 1ef2fe3b81416..5ee68fd92ce2a 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -112,6 +112,10 @@ void addMinGWDefines(const llvm::Triple &Triple, const 
LangOptions &Opts,
   addCygMingDefines(Opts, Builder);
 }
 
+void addHighTecDefines(MacroBuilder &Builder) {
+  Builder.defineMacro("__HIGHTEC__");
+}
+
 
//===--===//
 // Driver code
 
//===--===//

diff  --git a/clang/lib/Basic/Targets.h b/clang/lib/Basic/Targets.h
index d450aa3f37ed6..3c31890c8e15b 100644
--- a/clang/lib/Basic/Targets.h
+++ b/clang/lib/Basic/Targets.h
@@ -46,6 +46,9 @@ void addMinGWDefines(const llvm::Triple &Triple, const 
clang::LangOptions &Opts,
 LLVM_LIBRARY_VISIBILITY
 void addCygMingDefines(const clang::LangOptions &Opts,
clang::MacroBuilder &Builder);
+
+LLVM_LIBRARY_VISIBILITY
+void addHighTecDefines(clang::MacroBuilder &Builder);
 } // namespace targets
 } // namespace clang
 #endif // LLVM_CLANG_LIB_BASIC_TARGETS_H

diff  --git a/clang/lib/Basic/Targets/AArch64.cpp 
b/clang/lib/Basic/Targets/AArch64.cpp
index 3444591ac5933..ddca8369b7423 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -211,6 +211,8 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions 
&Opts,
   Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
   Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
   Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
+
+  addHighTecDefines(Builder);
 }
 
 ArrayRef AArch64TargetInfo::getTargetBuiltins() const {

diff  --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 19fcc5abea97e..8d49f124c854a 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -752,6 +752,8 @@ void ARMTargetInfo::getTargetDefines(const LangOptions 
&Opts,
 getTargetDefinesARMV82A(Opts, Builder);
 break;
   }
+
+  addHighTecDefines(Builder);
 }
 
 const Builtin::Info ARMTargetInfo::BuiltinInfo[] = {



___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [lld] 716de1c - Remove repository URL from version string

2021-09-03 Thread Konstantin Schwarz via llvm-branch-commits

Author: Konstantin Schwarz
Date: 2019-01-17T11:36:16+01:00
New Revision: 716de1cb582ea2676e1a00ed135085229d88e615

URL: 
https://github.com/llvm/llvm-project/commit/716de1cb582ea2676e1a00ed135085229d88e615
DIFF: 
https://github.com/llvm/llvm-project/commit/716de1cb582ea2676e1a00ed135085229d88e615.diff

LOG: Remove repository URL from version string

Added: 


Modified: 
clang/lib/Basic/Version.cpp
lld/Common/Version.cpp

Removed: 




diff  --git a/clang/lib/Basic/Version.cpp b/clang/lib/Basic/Version.cpp
index c2b7753d41288..bef40f9f1201c 100644
--- a/clang/lib/Basic/Version.cpp
+++ b/clang/lib/Basic/Version.cpp
@@ -25,6 +25,7 @@
 namespace clang {
 
 std::string getClangRepositoryPath() {
+  return "clang:";
 #if defined(CLANG_REPOSITORY_STRING)
   return CLANG_REPOSITORY_STRING;
 #else
@@ -55,6 +56,7 @@ std::string getClangRepositoryPath() {
 }
 
 std::string getLLVMRepositoryPath() {
+  return "llvm: ";
 #ifdef LLVM_REPOSITORY
   StringRef URL(LLVM_REPOSITORY);
 #else

diff  --git a/lld/Common/Version.cpp b/lld/Common/Version.cpp
index 6226c9a2fac69..3ef83bbeddd18 100644
--- a/lld/Common/Version.cpp
+++ b/lld/Common/Version.cpp
@@ -30,6 +30,8 @@ static std::string getRepository() {
   std::string Repo = getRepositoryPath();
   std::string Rev = LLD_REVISION_STRING;
 
+  return " (" + Rev + ")";
+
   if (Repo.empty() && Rev.empty())
 return "";
   if (!Repo.empty() && !Rev.empty())



___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [compiler-rt] 550c750 - Add support for building compiler-rt for bare metal.

2021-09-03 Thread Konstantin Schwarz via llvm-branch-commits

Author: Konstantin Schwarz
Date: 2019-01-17T12:15:24+01:00
New Revision: 550c750e922efcd0960498f876b28de71eb1657b

URL: 
https://github.com/llvm/llvm-project/commit/550c750e922efcd0960498f876b28de71eb1657b
DIFF: 
https://github.com/llvm/llvm-project/commit/550c750e922efcd0960498f876b28de71eb1657b.diff

LOG: Add support for building compiler-rt for bare metal.

Added: 


Modified: 
compiler-rt/cmake/builtin-config-ix.cmake
compiler-rt/lib/builtins/CMakeLists.txt
compiler-rt/lib/builtins/int_util.c

Removed: 




diff  --git a/compiler-rt/cmake/builtin-config-ix.cmake 
b/compiler-rt/cmake/builtin-config-ix.cmake
index a5704e5fed537..17311bcd8661a 100644
--- a/compiler-rt/cmake/builtin-config-ix.cmake
+++ b/compiler-rt/cmake/builtin-config-ix.cmake
@@ -23,8 +23,8 @@ int foo(int x, int y) {
 ")
 
 
-set(ARM64 aarch64)
-set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k)
+set(ARM64 aarch64 aarch64v8a)
+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv8r armv8a)
 set(HEXAGON hexagon)
 set(X86 i386)
 set(X86_64 x86_64)

diff  --git a/compiler-rt/lib/builtins/CMakeLists.txt 
b/compiler-rt/lib/builtins/CMakeLists.txt
index 82332967b1047..7a1b74d0c7e0e 100644
--- a/compiler-rt/lib/builtins/CMakeLists.txt
+++ b/compiler-rt/lib/builtins/CMakeLists.txt
@@ -207,11 +207,11 @@ if (HAVE_UNWIND_H)
   gcc_personality_v0.c)
 endif ()
 
-if (NOT FUCHSIA)
-  set(GENERIC_SOURCES
-${GENERIC_SOURCES}
-clear_cache.c)
-endif()
+#if (NOT FUCHSIA)
+#  set(GENERIC_SOURCES
+#${GENERIC_SOURCES}
+#clear_cache.c)
+#endif()
 
 # These sources work on all x86 variants, but only x86 variants.
 set(x86_ARCH_SOURCES
@@ -394,11 +394,18 @@ set(arm_Thumb1_VFPv2_SOURCES
   arm/unordsf2vfp.S)
 set(arm_Thumb1_icache_SOURCES
   arm/sync_synchronize.S)
-set(arm_Thumb1_SOURCES
-  ${arm_Thumb1_JT_SOURCES}
-  ${arm_Thumb1_SjLj_EH_SOURCES}
-  ${arm_Thumb1_VFPv2_SOURCES}
-  ${arm_Thumb1_icache_SOURCES})
+
+if(APPLE)
+  set(arm_Thumb1_SOURCES
+${arm_Thumb1_JT_SOURCES}
+${arm_Thumb1_SjLj_EH_SOURCES}
+${arm_Thumb1_VFPv2_SOURCES}
+${arm_Thumb1_icache_SOURCES})
+else()
+  set(arm_Thumb1_SOURCES
+${arm_Thumb1_JT_SOURCES}
+${arm_Thumb1_icache_SOURCES})
+endif()
 
 if(MINGW)
   set(arm_SOURCES
@@ -453,6 +460,12 @@ set(armhf_SOURCES ${arm_SOURCES})
 set(armv7_SOURCES ${arm_SOURCES})
 set(armv7s_SOURCES ${arm_SOURCES})
 set(armv7k_SOURCES ${arm_SOURCES})
+
+set(armv8a_SOURCES ${arm_SOURCES})
+set(armv8r_SOURCES ${arm_SOURCES})
+
+set(aarch64v8a_SOURCES ${aarch64_SOURCES})
+
 set(arm64_SOURCES ${aarch64_SOURCES})
 
 # macho_embedded archs
@@ -565,8 +578,13 @@ else ()
 set(_arch "arm|armv6m")
   elseif("${arch}" MATCHES "^(armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
 set(_arch "arm")
+  elseif("${arch}" MATCHES "^(armv8a|armv8r)$")
+set(_arch "arm")
+  elseif("${arch}" MATCHES "^(aarch64v8a)$")
+set(_arch "aarch64")
   endif()
 
+  message(WARNING "supposed to work for target: " ${arch})
   # For ARM archs, exclude any VFP builtins if VFP is not supported
   if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
 string(REPLACE ";" " " _TARGET_${arch}_CFLAGS 
"${TARGET_${arch}_CFLAGS}")
@@ -589,8 +607,9 @@ else ()
 
   # Needed for clear_cache on debug mode, due to r7's usage in inline asm.
   # Release mode already sets it via -O2/3, Debug mode doesn't.
+  set(BUILTIN_HF_CFLAGS "")
   if (${arch} STREQUAL "armhf")
-list(APPEND BUILTIN_CFLAGS -fomit-frame-pointer 
-DCOMPILER_RT_ARMHF_TARGET)
+list(APPEND BUILTIN_HF_CFLAGS -fomit-frame-pointer 
-DCOMPILER_RT_ARMHF_TARGET)
   endif()
 
   # For RISCV32, we must force enable int128 for compiling long
@@ -604,7 +623,7 @@ else ()
   ARCHS ${arch}
   SOURCES ${${arch}_SOURCES}
   DEFS ${BUILTIN_DEFS}
-  CFLAGS ${BUILTIN_CFLAGS}
+  CFLAGS ${BUILTIN_CFLAGS} ${BUILTIN_HF_CFLAGS}
   PARENT_TARGET builtins)
 endif ()
   endforeach ()

diff  --git a/compiler-rt/lib/builtins/int_util.c 
b/compiler-rt/lib/builtins/int_util.c
index de87410dbca28..b7e6a1c90741f 100644
--- a/compiler-rt/lib/builtins/int_util.c
+++ b/compiler-rt/lib/builtins/int_util.c
@@ -45,7 +45,7 @@ void compilerrt_abort_impl(const char *file, int line, const 
char *function) {
   __assert_rtn(function, file, line, "libcompiler_rt abort");
 }
 
-#elif __Fuchsia__
+#elif 1
 
 #ifndef _WIN32
 __attribute__((weak))



___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [libcxx] 344c7a1 - Add basic C++ library support.

2021-09-03 Thread Konstantin Schwarz via llvm-branch-commits

Author: Konstantin Schwarz
Date: 2019-01-17T12:24:02+01:00
New Revision: 344c7a13c1e0d48c89165365d9637dc0bef408a2

URL: 
https://github.com/llvm/llvm-project/commit/344c7a13c1e0d48c89165365d9637dc0bef408a2
DIFF: 
https://github.com/llvm/llvm-project/commit/344c7a13c1e0d48c89165365d9637dc0bef408a2.diff

LOG: Add basic C++ library support.

Added: 
libcxx/include/support/hightec/locale_htc.h

Modified: 
libcxx/include/CMakeLists.txt
libcxx/include/__config
libcxx/include/__locale
libcxx/include/math.h
libcxx/src/locale.cpp
libcxx/src/random.cpp

Removed: 




diff  --git a/libcxx/include/CMakeLists.txt b/libcxx/include/CMakeLists.txt
index d9def18d725c4..80663b1631232 100644
--- a/libcxx/include/CMakeLists.txt
+++ b/libcxx/include/CMakeLists.txt
@@ -168,6 +168,7 @@ if(LIBCXX_INSTALL_SUPPORT_HEADERS)
 ${files}
 support/android/locale_bionic.h
 support/fuchsia/xlocale.h
+support/hightec/locale_htc.h
 support/ibm/limits.h
 support/ibm/locale_mgmt_aix.h
 support/ibm/support.h

diff  --git a/libcxx/include/__config b/libcxx/include/__config
index 639d06c9f5d70..840da61978a36 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -307,6 +307,8 @@
 #  define _LIBCPP_USING_NACL_RANDOM
 #elif defined(_LIBCPP_WIN32API)
 #  define _LIBCPP_USING_WIN32_RANDOM
+#elif defined(__HIGHTEC__)
+// Do not define anything here for HighTec
 #else
 #  define _LIBCPP_USING_DEV_RANDOM
 #endif
@@ -979,6 +981,10 @@ template  struct __static_assert_check {};
 #define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
 #endif
 
+#if defined(__HIGHTEC__)
+#define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
+#endif
+
 #if defined(__APPLE__)
 #  if !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && \
   defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)

diff  --git a/libcxx/include/__locale b/libcxx/include/__locale
index f43e7b4303d34..2a71c7d279e9a 100644
--- a/libcxx/include/__locale
+++ b/libcxx/include/__locale
@@ -37,6 +37,8 @@
 # include 
 #elif defined(_LIBCPP_HAS_MUSL_LIBC)
 # include 
+#elif defined(__HIGHTEC__)
+# include 
 #endif
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

diff  --git a/libcxx/include/math.h b/libcxx/include/math.h
index 3cc72aa2791e3..d28194c2992a9 100644
--- a/libcxx/include/math.h
+++ b/libcxx/include/math.h
@@ -298,6 +298,8 @@ long doubletruncl(long double x);
 #pragma GCC system_header
 #endif
 
+#include 
+
 #include_next 
 
 #ifdef __cplusplus
@@ -306,7 +308,7 @@ long doubletruncl(long double x);
 // back to C++ linkage before including these C++ headers.
 extern "C++" {
 
-#include 
+
 #include 
 
 // signbit

diff  --git a/libcxx/include/support/hightec/locale_htc.h 
b/libcxx/include/support/hightec/locale_htc.h
new file mode 100644
index 0..7f06f8e243633
--- /dev/null
+++ b/libcxx/include/support/hightec/locale_htc.h
@@ -0,0 +1,56 @@
+// -*- C++ -*-
+//===  support/hightec/locale_htc.h -===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===--===//
+
+#ifndef _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
+#define _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H
+
+#include 
+
+// Add definition for isascii function, which is not part of ISO C
+static inline int isascii(int c) {
+  return c == (c & 0x7f);
+}
+
+// Patch over lack of extended locale support
+typedef void *locale_t;
+
+static inline locale_t duplocale(locale_t) {
+  return NULL;
+}
+
+static inline void freelocale(locale_t) {
+}
+
+static inline locale_t newlocale(int, const char *, locale_t) {
+  return NULL;
+}
+
+static inline locale_t uselocale(locale_t) {
+  return NULL;
+}
+
+#define LC_COLLATE_MASK  (LC_COLLATE)
+#define LC_CTYPE_MASK(LC_CTYPE)
+#define LC_MESSAGES_MASK (LC_MESSAGES)
+#define LC_MONETARY_MASK (LC_MONETARY)
+#define LC_NUMERIC_MASK  (LC_NUMERIC)
+#define LC_TIME_MASK (LC_TIME)
+#define LC_ALL_MASK (LC_COLLATE_MASK|\
+ LC_CTYPE_MASK|\
+ LC_MONETARY_MASK|\
+ LC_NUMERIC_MASK|\
+ LC_TIME_MASK|\
+ LC_MESSAGES_MASK)
+
+#include 
+#include 
+
+
+#endif // _LIBCPP_SUPPORT_HIGHTEC_LOCALE_HTC_H

diff  --git a/libcxx/src/locale.cpp b/libcxx/src/locale.cpp
index b9c701137df2d..0a23aba354697 100644
--- a/libcxx/src/locale.cpp
+++ b/libcxx/src/locale.cpp
@@ -31,6 +31,8 @@
 #include "__sso_allocator"
 #if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__)
 #include "support/win32/locale_win32.h"
+#elif defined(__HIGHTEC__)
+
 #elif !defined(__BIONIC__)
 #include 
 #endif

diff  --git a/libcxx/src/random.cpp b/libcxx/src/random.cpp
index 4a2468368d065..90a822d9a247c 100644
--- a/libcxx/src/random.cpp
+++ b/libcxx/src/random.cpp
@@ -166,6 +166

[llvm-branch-commits] [libunwind] 5f46db7 - Add CMake option for configuring libunwind bare-metal build

2021-09-03 Thread Konstantin Schwarz via llvm-branch-commits

Author: Konstantin Schwarz
Date: 2019-01-17T12:37:40+01:00
New Revision: 5f46db7c176433d7a81ed06e66dd5f3c4a4cae14

URL: 
https://github.com/llvm/llvm-project/commit/5f46db7c176433d7a81ed06e66dd5f3c4a4cae14
DIFF: 
https://github.com/llvm/llvm-project/commit/5f46db7c176433d7a81ed06e66dd5f3c4a4cae14.diff

LOG: Add CMake option for configuring libunwind bare-metal build

Added: 


Modified: 
libunwind/CMakeLists.txt

Removed: 




diff  --git a/libunwind/CMakeLists.txt b/libunwind/CMakeLists.txt
index e460a72d45c07..a49e482807e7d 100644
--- a/libunwind/CMakeLists.txt
+++ b/libunwind/CMakeLists.txt
@@ -134,6 +134,7 @@ option(LIBUNWIND_ENABLE_ARM_WMMX "Enable unwinding support 
for ARM WMMX register
 option(LIBUNWIND_ENABLE_THREADS "Build libunwind with threading support." ON)
 option(LIBUNWIND_USE_COMPILER_RT "Use compiler-rt instead of libgcc" OFF)
 option(LIBUNWIND_INCLUDE_DOCS "Build the libunwind documentation." 
${LLVM_INCLUDE_DOCS})
+option(LIBUNWIND_BAREMETAL "Build libunwind for baremetal targets." OFF)
 
 set(LIBUNWIND_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}" CACHE STRING
 "Define suffix of library directory name (32/64)")
@@ -332,6 +333,10 @@ if (WIN32 AND LIBUNWIND_ENABLE_STATIC AND NOT 
LIBUNWIND_ENABLE_SHARED)
   add_definitions(-D_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS)
 endif()
 
+if (LIBUNWIND_BAREMETAL)
+  list(APPEND LIBUNWIND_COMPILE_FLAGS -D_LIBUNWIND_IS_BAREMETAL)
+endif()
+
 
#===
 # Setup Source Code
 
#===



___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [compiler-rt] 2ca7535 - Revert all changes done on the htc/master branch.

2021-09-03 Thread Konstantin Schwarz via llvm-branch-commits

Author: Konstantin Schwarz
Date: 2019-09-03T11:55:46+02:00
New Revision: 2ca7535d6caa77de04bf3d80171376d26bde3729

URL: 
https://github.com/llvm/llvm-project/commit/2ca7535d6caa77de04bf3d80171376d26bde3729
DIFF: 
https://github.com/llvm/llvm-project/commit/2ca7535d6caa77de04bf3d80171376d26bde3729.diff

LOG: Revert all changes done on the htc/master branch.

For upcoming toolchains, we need a new concept for RLM license checks.
Moreover, the HighTec driver was mostly rewritten on the htc/release/7.x branch.

The changes are still available for later (partial) reuse.

Added: 


Modified: 
clang/lib/Basic/Targets.cpp
clang/lib/Basic/Targets.h
clang/lib/Basic/Targets/AArch64.cpp
clang/lib/Basic/Targets/ARM.cpp
clang/lib/Basic/Version.cpp
clang/lib/Driver/CMakeLists.txt
clang/lib/Driver/Driver.cpp
clang/lib/Frontend/InitHeaderSearch.cpp
clang/tools/driver/CMakeLists.txt
clang/tools/driver/driver.cpp
compiler-rt/cmake/builtin-config-ix.cmake
compiler-rt/lib/builtins/CMakeLists.txt
compiler-rt/lib/builtins/int_util.c
libcxx/include/CMakeLists.txt
libcxx/include/__config
libcxx/include/__locale
libcxx/include/math.h
libcxx/src/locale.cpp
libcxx/src/random.cpp
libunwind/CMakeLists.txt
lld/Common/Version.cpp

Removed: 
clang/lib/Driver/ToolChains/HighTec.cpp
clang/lib/Driver/ToolChains/HighTec.h
clang/rlm_libs/x64_l/librlm.a
clang/rlm_libs/x64_w/rlm1233.dll
clang/rlm_libs/x64_w/rlm1233.lib
clang/tools/driver/LicenseManagerBase.cpp
clang/tools/driver/LicenseManagerBase.h
clang/tools/driver/license.h
libcxx/include/support/hightec/locale_htc.h



diff  --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 5ee68fd92ce2a..1ef2fe3b81416 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -112,10 +112,6 @@ void addMinGWDefines(const llvm::Triple &Triple, const 
LangOptions &Opts,
   addCygMingDefines(Opts, Builder);
 }
 
-void addHighTecDefines(MacroBuilder &Builder) {
-  Builder.defineMacro("__HIGHTEC__");
-}
-
 
//===--===//
 // Driver code
 
//===--===//

diff  --git a/clang/lib/Basic/Targets.h b/clang/lib/Basic/Targets.h
index 3c31890c8e15b..d450aa3f37ed6 100644
--- a/clang/lib/Basic/Targets.h
+++ b/clang/lib/Basic/Targets.h
@@ -46,9 +46,6 @@ void addMinGWDefines(const llvm::Triple &Triple, const 
clang::LangOptions &Opts,
 LLVM_LIBRARY_VISIBILITY
 void addCygMingDefines(const clang::LangOptions &Opts,
clang::MacroBuilder &Builder);
-
-LLVM_LIBRARY_VISIBILITY
-void addHighTecDefines(clang::MacroBuilder &Builder);
 } // namespace targets
 } // namespace clang
 #endif // LLVM_CLANG_LIB_BASIC_TARGETS_H

diff  --git a/clang/lib/Basic/Targets/AArch64.cpp 
b/clang/lib/Basic/Targets/AArch64.cpp
index ddca8369b7423..3444591ac5933 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -211,8 +211,6 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions 
&Opts,
   Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2");
   Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4");
   Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
-
-  addHighTecDefines(Builder);
 }
 
 ArrayRef AArch64TargetInfo::getTargetBuiltins() const {

diff  --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 8d49f124c854a..19fcc5abea97e 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -752,8 +752,6 @@ void ARMTargetInfo::getTargetDefines(const LangOptions 
&Opts,
 getTargetDefinesARMV82A(Opts, Builder);
 break;
   }
-
-  addHighTecDefines(Builder);
 }
 
 const Builtin::Info ARMTargetInfo::BuiltinInfo[] = {

diff  --git a/clang/lib/Basic/Version.cpp b/clang/lib/Basic/Version.cpp
index bef40f9f1201c..c2b7753d41288 100644
--- a/clang/lib/Basic/Version.cpp
+++ b/clang/lib/Basic/Version.cpp
@@ -25,7 +25,6 @@
 namespace clang {
 
 std::string getClangRepositoryPath() {
-  return "clang:";
 #if defined(CLANG_REPOSITORY_STRING)
   return CLANG_REPOSITORY_STRING;
 #else
@@ -56,7 +55,6 @@ std::string getClangRepositoryPath() {
 }
 
 std::string getLLVMRepositoryPath() {
-  return "llvm: ";
 #ifdef LLVM_REPOSITORY
   StringRef URL(LLVM_REPOSITORY);
 #else

diff  --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
index 637907aa91fe3..2b03c9f7001f7 100644
--- a/clang/lib/Driver/CMakeLists.txt
+++ b/clang/lib/Driver/CMakeLists.txt
@@ -45,7 +45,6 @@ add_clang_library(clangDriver
   ToolChains/Fuchsia.cpp
   ToolChains/Gnu.cpp
   ToolChains/Haiku.cpp
-  ToolChains/HighTec.cpp
   ToolChains/HIP.cpp
   ToolChains/Hexagon.cpp
   ToolChains/Linux.cpp

diff  --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cp

[llvm-branch-commits] [libcxx] 1c3fcc8 - [libc++][NFC] Mark values in gdb pretty print comparison functions as live to prevent values being optimized out.

2021-09-03 Thread Louis Dionne via llvm-branch-commits

Author: Amy Kwan
Date: 2021-09-03T14:56:19-04:00
New Revision: 1c3fcc8ae92ebfe9a9d1a21a288ad71ef7f98091

URL: 
https://github.com/llvm/llvm-project/commit/1c3fcc8ae92ebfe9a9d1a21a288ad71ef7f98091
DIFF: 
https://github.com/llvm/llvm-project/commit/1c3fcc8ae92ebfe9a9d1a21a288ad71ef7f98091.diff

LOG: [libc++][NFC] Mark values in gdb pretty print comparison functions as live 
to prevent values being optimized out.

It appears when testing LLVM 13 on Power, we run into failures with the
`libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp` test case optimizing
values out.

Despite some the functions in the test already being marked with optnone,
adding the `MarkAsLive()` calls inside of the pretty printer comparison 
functions
resolves the issues of the values being optimized out.

This patch aims to address https://llvm.org/PR51675.

Differential Revision: https://reviews.llvm.org/D109204

(cherry picked from commit 217c6d643124be312f4a99b203118744edb9d54c)

Added: 


Modified: 
libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp

Removed: 




diff  --git a/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp 
b/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp
index 2d8e9620089a4..7c8d307d19fb4 100644
--- a/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp
+++ b/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp
@@ -92,24 +92,28 @@ void MarkAsLive(Type &&) {}
 template  void ComparePrettyPrintToChars(
 TypeToPrint value,
 const char *expectation) {
+  MarkAsLive(value);
   StopForDebugger(&value, &expectation);
 }
 
 template  void ComparePrettyPrintToRegex(
 TypeToPrint value,
 const char *expectation) {
+  MarkAsLive(value);
   StopForDebugger(&value, &expectation);
 }
 
 void CompareExpressionPrettyPrintToChars(
 std::string value,
 const char *expectation) {
+  MarkAsLive(value);
   StopForDebugger(&value, &expectation);
 }
 
 void CompareExpressionPrettyPrintToRegex(
 std::string value,
 const char *expectation) {
+  MarkAsLive(value);
   StopForDebugger(&value, &expectation);
 }
 



___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] 3b1fa4a - [RISCV] Fix reporting of incorrect commutable operand indices

2021-09-03 Thread Tom Stellard via llvm-branch-commits

Author: Fraser Cormack
Date: 2021-09-03T15:48:26-07:00
New Revision: 3b1fa4aef0069646522fac0775325bc3716efec4

URL: 
https://github.com/llvm/llvm-project/commit/3b1fa4aef0069646522fac0775325bc3716efec4
DIFF: 
https://github.com/llvm/llvm-project/commit/3b1fa4aef0069646522fac0775325bc3716efec4.diff

LOG: [RISCV] Fix reporting of incorrect commutable operand indices

This patch fixes an issue where RISCV's `findCommutedOpIndices` would
incorrectly return the pseudo `CommuteAnyOperandIndex` as a commutable
operand index, rather than fixing a specific index.

Reviewed By: rogfer01

Differential Revision: https://reviews.llvm.org/D108206

(cherry picked from commit 5b06cbac11e53ce55f483c1852a108012507a6bb)

Added: 
llvm/test/CodeGen/RISCV/rvv/commuted-op-indices-regression.mir

Modified: 
llvm/lib/Target/RISCV/RISCVInstrInfo.cpp

Removed: 




diff  --git a/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp 
b/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
index a541daaff9f43..207101763ac2f 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
@@ -1223,7 +1223,7 @@ bool RISCVInstrInfo::findCommutedOpIndices(const 
MachineInstr &MI,
 // Both of operands are not fixed. Set one of commutable
 // operands to the tied source.
 CommutableOpIdx1 = 1;
-  } else if (SrcOpIdx1 == CommutableOpIdx1) {
+  } else if (SrcOpIdx1 == CommuteAnyOperandIndex) {
 // Only one of the operands is not fixed.
 CommutableOpIdx1 = SrcOpIdx2;
   }

diff  --git a/llvm/test/CodeGen/RISCV/rvv/commuted-op-indices-regression.mir 
b/llvm/test/CodeGen/RISCV/rvv/commuted-op-indices-regression.mir
new file mode 100644
index 0..a10726ceab2e4
--- /dev/null
+++ b/llvm/test/CodeGen/RISCV/rvv/commuted-op-indices-regression.mir
@@ -0,0 +1,45 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
+# RUN: llc -march=riscv64 -mattr=+experimental-v 
-run-pass=simple-register-coalescing %s -o - 2>&1 | FileCheck %s
+
+# This test used to crash in the register coalescer when the target would
+# return the out-of-bounds CommuteAnyOperandIndex for one of its commutable
+# operand indices.
+
+--- |
+  target triple = "riscv64"
+  target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128"
+
+  define void @commuted_op_indices() {
+unreachable
+  }
+...
+---
+name:commuted_op_indices
+tracksRegLiveness: true
+registers:
+  - { id: 0, class: vr, preferred-register: '' }
+  - { id: 1, class: vrnov0, preferred-register: '' }
+  - { id: 2, class: vrnov0, preferred-register: '' }
+  - { id: 3, class: vr, preferred-register: '' }
+body: |
+  bb.0:
+liveins: $v0, $v1, $v2
+; CHECK-LABEL: name: commuted_op_indices
+; CHECK: liveins: $v0, $v1, $v2
+; CHECK: [[COPY:%[0-9]+]]:vr = COPY $v0
+; CHECK: [[COPY1:%[0-9]+]]:vrnov0 = COPY $v1
+; CHECK: [[COPY2:%[0-9]+]]:vrnov0 = COPY $v2
+; CHECK: [[PseudoVNMSUB_VV_M1_COMMUTABLE:%[0-9]+]]:vr = 
PseudoVNMSUB_VV_M1_COMMUTABLE [[PseudoVNMSUB_VV_M1_COMMUTABLE]], [[COPY1]], 
[[COPY2]], $x0, 6, implicit $vl, implicit $vtype
+; CHECK: [[COPY2:%[0-9]+]]:vr = COPY [[PseudoVNMSUB_VV_M1_COMMUTABLE]]
+; CHECK: dead [[COPY2]]:vr = PseudoVSLL_VI_M1 [[COPY2]], 11, $noreg, 6, 
implicit $vl, implicit $vtype
+; CHECK: $v0 = COPY [[PseudoVNMSUB_VV_M1_COMMUTABLE]]
+; CHECK: PseudoRET implicit $v0
+%0:vr = COPY $v0
+%1:vrnov0 = COPY $v1
+%2:vrnov0 = COPY $v2
+%0:vr = PseudoVNMSUB_VV_M1_COMMUTABLE %0, %1, killed %2, $x0, 6, implicit 
$vl, implicit $vtype
+%3:vr = COPY %0
+%3:vr = PseudoVSLL_VI_M1 %3, 11, $noreg, 6, implicit $vl, implicit $vtype
+$v0 = COPY %0
+PseudoRET implicit $v0
+...



___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] 7f3d00c - [libomptarget][amdcgn] Add build dependency for llvm-link and opt

2021-09-03 Thread Tom Stellard via llvm-branch-commits

Author: Joachim Protze
Date: 2021-09-03T15:49:31-07:00
New Revision: 7f3d00c9b49b8de4df63d51462081ce272af488d

URL: 
https://github.com/llvm/llvm-project/commit/7f3d00c9b49b8de4df63d51462081ce272af488d
DIFF: 
https://github.com/llvm/llvm-project/commit/7f3d00c9b49b8de4df63d51462081ce272af488d.diff

LOG: [libomptarget][amdcgn] Add build dependency for llvm-link and opt

D107156 and D107320 are not sufficient when OpenMP is built as llvm runtime
(LLVM_ENABLE_RUNTIMES=openmp) because dependencies only work within the same
cmake instance.

We could limit the dependency to cases where libomptarget/plugins are really
built. But compared to the whole llvm project, building openmp runtime is
negligible and postponing the build of OpenMP runtime after the dependencies
are ready seems reasonable.

The direct dependency introduced in D107156 and D107320 is necessary for the
case where OpenMP is built as llvm project (LLVM_ENABLE_PROJECTS=openmp).

Differential Revision: https://reviews.llvm.org/D108404

(cherry picked from commit 4bb36df144127c5bee6ea2607bc544c003aae446)

Added: 


Modified: 
llvm/runtimes/CMakeLists.txt
openmp/libomptarget/DeviceRTL/CMakeLists.txt
openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt

Removed: 




diff  --git a/llvm/runtimes/CMakeLists.txt b/llvm/runtimes/CMakeLists.txt
index 2786aa45e06f2..b972933b1f795 100644
--- a/llvm/runtimes/CMakeLists.txt
+++ b/llvm/runtimes/CMakeLists.txt
@@ -350,15 +350,19 @@ if(runtimes)
   # Create a runtimes target that uses this file as its top-level CMake file.
   # The runtimes target is a configuration of all the runtime libraries
   # together in a single CMake invocaiton.
+  if("openmp" IN_LIST LLVM_ENABLE_RUNTIMES)
+message(STATUS "Adding dependencies opt llvm-link")
+set(extra_deps opt llvm-link)
+  endif()
   if(NOT LLVM_RUNTIME_TARGETS)
 runtime_default_target(
-  DEPENDS ${deps}
+  DEPENDS ${deps} ${extra_deps}
   PREFIXES ${prefixes})
 set(test_targets check-runtimes)
   else()
 if("default" IN_LIST LLVM_RUNTIME_TARGETS)
   runtime_default_target(
-DEPENDS ${deps}
+DEPENDS ${deps} ${extra_deps}
 PREFIXES ${prefixes})
   list(REMOVE_ITEM LLVM_RUNTIME_TARGETS "default")
 else()

diff  --git a/openmp/libomptarget/DeviceRTL/CMakeLists.txt 
b/openmp/libomptarget/DeviceRTL/CMakeLists.txt
index 5e98104a46a9d..148dad2a04fc7 100644
--- a/openmp/libomptarget/DeviceRTL/CMakeLists.txt
+++ b/openmp/libomptarget/DeviceRTL/CMakeLists.txt
@@ -151,6 +151,7 @@ endif()
 
 # Create target to build all Bitcode libraries.
 add_custom_target(omptarget-new-nvptx-bc)
+add_dependencies(omptarget-new-nvptx-bc opt llvm-link)
 
 # Generate a Bitcode library for all the compute capabilities the user 
requested
 foreach(sm ${nvptx_sm_list})
@@ -197,6 +198,7 @@ foreach(sm ${nvptx_sm_list})
 
   add_custom_target(${bclib_target_name} ALL DEPENDS 
${CMAKE_CURRENT_BINARY_DIR}/${bclib_name}_opt)
   add_dependencies(omptarget-new-nvptx-bc ${bclib_target_name})
+  add_dependencies(${bclib_target_name} opt llvm-link)
 
   # Copy library to destination.
   add_custom_command(TARGET ${bclib_target_name} POST_BUILD

diff  --git a/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt 
b/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
index 4765d1989e521..6753b9708cdc4 100644
--- a/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
+++ b/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
@@ -157,7 +157,7 @@ foreach(mcpu ${mcpus})
   add_custom_command(
 OUTPUT ${bc_libname}
 COMMAND ${LINK_TOOL} ${bc_files} | ${OPT_TOOL} --always-inline -o 
${OUTPUTDIR}/${bc_libname}
-DEPENDS ${bc_files} opt)
+DEPENDS ${bc_files} llvm-link opt)
 
   add_custom_target(lib${libname}-${mcpu} ALL DEPENDS ${bc_libname})
 



___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] c45fa58 - [libomptarget][amdcgn] Only add opt/llvm-link dependency if TARGET is available

2021-09-03 Thread Tom Stellard via llvm-branch-commits

Author: Joachim Protze
Date: 2021-09-03T15:49:42-07:00
New Revision: c45fa58f171e72176c3df71909f2b85137cd909f

URL: 
https://github.com/llvm/llvm-project/commit/c45fa58f171e72176c3df71909f2b85137cd909f
DIFF: 
https://github.com/llvm/llvm-project/commit/c45fa58f171e72176c3df71909f2b85137cd909f.diff

LOG: [libomptarget][amdcgn] Only add opt/llvm-link dependency if TARGET is 
available

In some build configurations, the target we depend on is not available for 
declaring the build dependency.
We only need to declare the build dependency, if the build target is available 
in the same build.

Fixes the issue raised in https://reviews.llvm.org/D107156#2969862
This patch should go into release/13 together with D108404

Differential Revision: https://reviews.llvm.org/D108868

(cherry picked from commit 5ea1c37118699f0ed1da17e0d8562011d0002edd)

Added: 


Modified: 
llvm/runtimes/CMakeLists.txt
openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt

Removed: 




diff  --git a/llvm/runtimes/CMakeLists.txt b/llvm/runtimes/CMakeLists.txt
index b972933b1f795..3436cd8bdfbef 100644
--- a/llvm/runtimes/CMakeLists.txt
+++ b/llvm/runtimes/CMakeLists.txt
@@ -350,9 +350,14 @@ if(runtimes)
   # Create a runtimes target that uses this file as its top-level CMake file.
   # The runtimes target is a configuration of all the runtime libraries
   # together in a single CMake invocaiton.
+  set(extra_deps "")
   if("openmp" IN_LIST LLVM_ENABLE_RUNTIMES)
-message(STATUS "Adding dependencies opt llvm-link")
-set(extra_deps opt llvm-link)
+if(TARGET opt)
+  list(APPEND extra_deps opt)
+endif()
+if(TARGET llvm-link)
+  list(APPEND extra_deps llvm-link)
+endif()
   endif()
   if(NOT LLVM_RUNTIME_TARGETS)
 runtime_default_target(

diff  --git a/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt 
b/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
index 6753b9708cdc4..e398f398c7760 100644
--- a/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
+++ b/openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
@@ -149,6 +149,14 @@ endmacro()
 
 set(libname "omptarget-amdgcn")
 
+set(toolchain_deps "")
+if(TARGET llvm-link)
+  list(APPEND toolchain_deps llvm-link)
+endif()
+if(TARGET opt)
+  list(APPEND toolchain_deps opt)
+endif()
+
 foreach(mcpu ${mcpus})
   set(bc_files)
   add_cuda_bc_library(${cuda_sources})
@@ -157,7 +165,7 @@ foreach(mcpu ${mcpus})
   add_custom_command(
 OUTPUT ${bc_libname}
 COMMAND ${LINK_TOOL} ${bc_files} | ${OPT_TOOL} --always-inline -o 
${OUTPUTDIR}/${bc_libname}
-DEPENDS ${bc_files} llvm-link opt)
+DEPENDS ${bc_files} ${toolchain_deps})
 
   add_custom_target(lib${libname}-${mcpu} ALL DEPENDS ${bc_libname})
 



___
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits