mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-30 08:44:31 +00:00
llvm_14,llvmPackages_git.llvm: enable polly by default
Port of 2a58596dd2
("llvmPackages_15.llvm: enable polly by default").
It should be ported all the back to LLVM 12, but I haven't done that
here because going further back than 14 requires fixing patches, and
I'm focused on my goal of getting the delta between LLVM 15 and LLVM
git under control — it's going to be hard enough to accomplish that.
This commit is contained in:
parent
ad02b6f9c3
commit
b27cf6ace4
@ -1,6 +1,6 @@
|
|||||||
{ lowPrio, newScope, pkgs, lib, stdenv, cmake
|
{ lowPrio, newScope, pkgs, lib, stdenv, cmake
|
||||||
, gccForLibs, preLibcCrossHeaders
|
, gccForLibs, preLibcCrossHeaders
|
||||||
, libxml2, python3, isl, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith
|
, libxml2, python3, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith
|
||||||
, buildLlvmTools # tools, but from the previous stage, for cross
|
, buildLlvmTools # tools, but from the previous stage, for cross
|
||||||
, targetLlvmLibraries # libraries, but from the next stage, for cross
|
, targetLlvmLibraries # libraries, but from the next stage, for cross
|
||||||
, targetLlvm
|
, targetLlvm
|
||||||
@ -41,7 +41,7 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
tools = lib.makeExtensible (tools: let
|
tools = lib.makeExtensible (tools: let
|
||||||
callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version monorepoSrc buildLlvmTools; });
|
callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 release_version version monorepoSrc buildLlvmTools; });
|
||||||
mkExtraBuildCommands0 = cc: ''
|
mkExtraBuildCommands0 = cc: ''
|
||||||
rsrc="$out/resource-root"
|
rsrc="$out/resource-root"
|
||||||
mkdir "$rsrc"
|
mkdir "$rsrc"
|
||||||
@ -221,7 +221,7 @@ let
|
|||||||
});
|
});
|
||||||
|
|
||||||
libraries = lib.makeExtensible (libraries: let
|
libraries = lib.makeExtensible (libraries: let
|
||||||
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version monorepoSrc; });
|
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 release_version version monorepoSrc; });
|
||||||
in {
|
in {
|
||||||
|
|
||||||
compiler-rt-libc = callPackage ./compiler-rt {
|
compiler-rt-libc = callPackage ./compiler-rt {
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
# broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245
|
# broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245
|
||||||
# broken for the armv7l builder
|
# broken for the armv7l builder
|
||||||
, enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch
|
, enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch
|
||||||
, enablePolly ? false
|
, enablePolly ? true
|
||||||
} @args:
|
} @args:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -42,7 +42,8 @@ in stdenv.mkDerivation (rec {
|
|||||||
cp -r ${monorepoSrc}/${pname} "$out"
|
cp -r ${monorepoSrc}/${pname} "$out"
|
||||||
cp -r ${monorepoSrc}/third-party "$out"
|
cp -r ${monorepoSrc}/third-party "$out"
|
||||||
'' + lib.optionalString enablePolly ''
|
'' + lib.optionalString enablePolly ''
|
||||||
cp -r ${monorepoSrc}/polly "$out/llvm/tools"
|
chmod u+w "$out/${pname}/tools"
|
||||||
|
cp -r ${monorepoSrc}/polly "$out/${pname}/tools"
|
||||||
'');
|
'');
|
||||||
|
|
||||||
sourceRoot = "${src.name}/${pname}";
|
sourceRoot = "${src.name}/${pname}";
|
||||||
|
@ -1,77 +1,7 @@
|
|||||||
diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt
|
This is the one remaining Polly install dirs related change that hasn't made it
|
||||||
index ca7c04c565bb..6a6155806ffa 100644
|
into upstream yet; previously this patch file also included:
|
||||||
--- a/tools/polly/CMakeLists.txt
|
https://reviews.llvm.org/D117541
|
||||||
+++ b/tools/polly/CMakeLists.txt
|
|
||||||
@@ -3,6 +3,8 @@ if (NOT DEFINED LLVM_MAIN_SRC_DIR)
|
|
||||||
project(Polly)
|
|
||||||
cmake_minimum_required(VERSION 3.13.4)
|
|
||||||
|
|
||||||
+ include(GNUInstallDirs)
|
|
||||||
+
|
|
||||||
# Where is LLVM installed?
|
|
||||||
find_package(LLVM CONFIG REQUIRED)
|
|
||||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
|
|
||||||
@@ -122,13 +124,13 @@ include_directories(
|
|
||||||
|
|
||||||
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
|
||||||
install(DIRECTORY include/
|
|
||||||
- DESTINATION include
|
|
||||||
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
||||||
FILES_MATCHING
|
|
||||||
PATTERN "*.h"
|
|
||||||
)
|
|
||||||
|
|
||||||
install(DIRECTORY ${POLLY_BINARY_DIR}/include/
|
|
||||||
- DESTINATION include
|
|
||||||
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
||||||
FILES_MATCHING
|
|
||||||
PATTERN "*.h"
|
|
||||||
PATTERN "CMakeFiles" EXCLUDE
|
|
||||||
diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt
|
|
||||||
index 7cc129ba2e90..137be25e4b80 100644
|
|
||||||
--- a/tools/polly/cmake/CMakeLists.txt
|
|
||||||
+++ b/tools/polly/cmake/CMakeLists.txt
|
|
||||||
@@ -79,18 +79,18 @@ file(GENERATE
|
|
||||||
|
|
||||||
# Generate PollyConfig.cmake for the install tree.
|
|
||||||
unset(POLLY_EXPORTS)
|
|
||||||
-set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
|
|
||||||
+set(POLLY_INSTALL_PREFIX "")
|
|
||||||
set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
|
|
||||||
-set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
|
|
||||||
-set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}")
|
|
||||||
+set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
|
|
||||||
+set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
|
|
||||||
if (POLLY_BUNDLED_ISL)
|
|
||||||
set(POLLY_CONFIG_INCLUDE_DIRS
|
|
||||||
- "${POLLY_INSTALL_PREFIX}/include"
|
|
||||||
- "${POLLY_INSTALL_PREFIX}/include/polly"
|
|
||||||
+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}"
|
|
||||||
+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly"
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
set(POLLY_CONFIG_INCLUDE_DIRS
|
|
||||||
- "${POLLY_INSTALL_PREFIX}/include"
|
|
||||||
+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}"
|
|
||||||
${ISL_INCLUDE_DIRS}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
@@ -100,12 +100,12 @@ endif()
|
|
||||||
foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS)
|
|
||||||
get_target_property(tgt_type ${tgt} TYPE)
|
|
||||||
if (tgt_type STREQUAL "EXECUTABLE")
|
|
||||||
- set(tgt_prefix "bin/")
|
|
||||||
+ set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/")
|
|
||||||
else()
|
|
||||||
- set(tgt_prefix "lib/")
|
|
||||||
+ set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
- set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
|
|
||||||
+ set(tgt_path "${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
|
|
||||||
file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path})
|
|
||||||
|
|
||||||
if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY")
|
|
||||||
diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake
|
diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake
|
||||||
index 518a09b45a42..bd9d6f5542ad 100644
|
index 518a09b45a42..bd9d6f5542ad 100644
|
||||||
--- a/tools/polly/cmake/polly_macros.cmake
|
--- a/tools/polly/cmake/polly_macros.cmake
|
||||||
@ -87,16 +17,3 @@ index 518a09b45a42..bd9d6f5542ad 100644
|
|||||||
endif()
|
endif()
|
||||||
set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
|
set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
|
||||||
endmacro(add_polly_library)
|
endmacro(add_polly_library)
|
||||||
diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt
|
|
||||||
index e3a5683fccdc..293b482eb28a 100644
|
|
||||||
--- a/tools/polly/lib/External/CMakeLists.txt
|
|
||||||
+++ b/tools/polly/lib/External/CMakeLists.txt
|
|
||||||
@@ -290,7 +290,7 @@ if (POLLY_BUNDLED_ISL)
|
|
||||||
install(DIRECTORY
|
|
||||||
${ISL_SOURCE_DIR}/include/
|
|
||||||
${ISL_BINARY_DIR}/include/
|
|
||||||
- DESTINATION include/polly
|
|
||||||
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly
|
|
||||||
FILES_MATCHING
|
|
||||||
PATTERN "*.h"
|
|
||||||
PATTERN "CMakeFiles" EXCLUDE
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
|
{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
|
||||||
, gccForLibs, preLibcCrossHeaders
|
, gccForLibs, preLibcCrossHeaders
|
||||||
, libxml2, python3, isl, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith
|
, libxml2, python3, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith
|
||||||
, buildLlvmTools # tools, but from the previous stage, for cross
|
, buildLlvmTools # tools, but from the previous stage, for cross
|
||||||
, targetLlvmLibraries # libraries, but from the next stage, for cross
|
, targetLlvmLibraries # libraries, but from the next stage, for cross
|
||||||
# This is the default binutils, but with *this* version of LLD rather
|
# This is the default binutils, but with *this* version of LLD rather
|
||||||
@ -40,7 +40,7 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
tools = lib.makeExtensible (tools: let
|
tools = lib.makeExtensible (tools: let
|
||||||
callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 isl release_version version monorepoSrc buildLlvmTools; });
|
callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; });
|
||||||
mkExtraBuildCommands0 = cc: ''
|
mkExtraBuildCommands0 = cc: ''
|
||||||
rsrc="$out/resource-root"
|
rsrc="$out/resource-root"
|
||||||
mkdir "$rsrc"
|
mkdir "$rsrc"
|
||||||
@ -220,7 +220,7 @@ let
|
|||||||
});
|
});
|
||||||
|
|
||||||
libraries = lib.makeExtensible (libraries: let
|
libraries = lib.makeExtensible (libraries: let
|
||||||
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake ninja libxml2 python3 isl release_version version monorepoSrc; });
|
callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc; });
|
||||||
in {
|
in {
|
||||||
|
|
||||||
compiler-rt-libc = callPackage ./compiler-rt {
|
compiler-rt-libc = callPackage ./compiler-rt {
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
|| stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245
|
|| stdenv.isAarch64 # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245
|
||||||
|| stdenv.isAarch32 # broken for the armv7l builder
|
|| stdenv.isAarch32 # broken for the armv7l builder
|
||||||
)
|
)
|
||||||
, enablePolly ? false
|
, enablePolly ? true
|
||||||
} @args:
|
} @args:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -44,7 +44,8 @@ in stdenv.mkDerivation (rec {
|
|||||||
cp -r ${monorepoSrc}/${pname} "$out"
|
cp -r ${monorepoSrc}/${pname} "$out"
|
||||||
cp -r ${monorepoSrc}/third-party "$out"
|
cp -r ${monorepoSrc}/third-party "$out"
|
||||||
'' + lib.optionalString enablePolly ''
|
'' + lib.optionalString enablePolly ''
|
||||||
cp -r ${monorepoSrc}/polly "$out/llvm/tools"
|
chmod u+w "$out/${pname}/tools"
|
||||||
|
cp -r ${monorepoSrc}/polly "$out/${pname}/tools"
|
||||||
'');
|
'');
|
||||||
|
|
||||||
sourceRoot = "${src.name}/${pname}";
|
sourceRoot = "${src.name}/${pname}";
|
||||||
|
@ -1,77 +1,7 @@
|
|||||||
diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt
|
This is the one remaining Polly install dirs related change that hasn't made it
|
||||||
index ca7c04c565bb..6a6155806ffa 100644
|
into upstream yet; previously this patch file also included:
|
||||||
--- a/tools/polly/CMakeLists.txt
|
https://reviews.llvm.org/D117541
|
||||||
+++ b/tools/polly/CMakeLists.txt
|
|
||||||
@@ -3,6 +3,8 @@ if (NOT DEFINED LLVM_MAIN_SRC_DIR)
|
|
||||||
project(Polly)
|
|
||||||
cmake_minimum_required(VERSION 3.13.4)
|
|
||||||
|
|
||||||
+ include(GNUInstallDirs)
|
|
||||||
+
|
|
||||||
# Where is LLVM installed?
|
|
||||||
find_package(LLVM CONFIG REQUIRED)
|
|
||||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
|
|
||||||
@@ -122,13 +124,13 @@ include_directories(
|
|
||||||
|
|
||||||
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
|
||||||
install(DIRECTORY include/
|
|
||||||
- DESTINATION include
|
|
||||||
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
||||||
FILES_MATCHING
|
|
||||||
PATTERN "*.h"
|
|
||||||
)
|
|
||||||
|
|
||||||
install(DIRECTORY ${POLLY_BINARY_DIR}/include/
|
|
||||||
- DESTINATION include
|
|
||||||
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
||||||
FILES_MATCHING
|
|
||||||
PATTERN "*.h"
|
|
||||||
PATTERN "CMakeFiles" EXCLUDE
|
|
||||||
diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt
|
|
||||||
index 7cc129ba2e90..137be25e4b80 100644
|
|
||||||
--- a/tools/polly/cmake/CMakeLists.txt
|
|
||||||
+++ b/tools/polly/cmake/CMakeLists.txt
|
|
||||||
@@ -79,18 +79,18 @@ file(GENERATE
|
|
||||||
|
|
||||||
# Generate PollyConfig.cmake for the install tree.
|
|
||||||
unset(POLLY_EXPORTS)
|
|
||||||
-set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
|
|
||||||
+set(POLLY_INSTALL_PREFIX "")
|
|
||||||
set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
|
|
||||||
-set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
|
|
||||||
-set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}")
|
|
||||||
+set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
|
|
||||||
+set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
|
|
||||||
if (POLLY_BUNDLED_ISL)
|
|
||||||
set(POLLY_CONFIG_INCLUDE_DIRS
|
|
||||||
- "${POLLY_INSTALL_PREFIX}/include"
|
|
||||||
- "${POLLY_INSTALL_PREFIX}/include/polly"
|
|
||||||
+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}"
|
|
||||||
+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly"
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
set(POLLY_CONFIG_INCLUDE_DIRS
|
|
||||||
- "${POLLY_INSTALL_PREFIX}/include"
|
|
||||||
+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}"
|
|
||||||
${ISL_INCLUDE_DIRS}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
@@ -100,12 +100,12 @@ endif()
|
|
||||||
foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS)
|
|
||||||
get_target_property(tgt_type ${tgt} TYPE)
|
|
||||||
if (tgt_type STREQUAL "EXECUTABLE")
|
|
||||||
- set(tgt_prefix "bin/")
|
|
||||||
+ set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/")
|
|
||||||
else()
|
|
||||||
- set(tgt_prefix "lib/")
|
|
||||||
+ set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
- set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
|
|
||||||
+ set(tgt_path "${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
|
|
||||||
file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path})
|
|
||||||
|
|
||||||
if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY")
|
|
||||||
diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake
|
diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake
|
||||||
index 518a09b45a42..bd9d6f5542ad 100644
|
index 518a09b45a42..bd9d6f5542ad 100644
|
||||||
--- a/tools/polly/cmake/polly_macros.cmake
|
--- a/tools/polly/cmake/polly_macros.cmake
|
||||||
@ -87,16 +17,3 @@ index 518a09b45a42..bd9d6f5542ad 100644
|
|||||||
endif()
|
endif()
|
||||||
set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
|
set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
|
||||||
endmacro(add_polly_library)
|
endmacro(add_polly_library)
|
||||||
diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt
|
|
||||||
index e3a5683fccdc..293b482eb28a 100644
|
|
||||||
--- a/tools/polly/lib/External/CMakeLists.txt
|
|
||||||
+++ b/tools/polly/lib/External/CMakeLists.txt
|
|
||||||
@@ -290,7 +290,7 @@ if (POLLY_BUNDLED_ISL)
|
|
||||||
install(DIRECTORY
|
|
||||||
${ISL_SOURCE_DIR}/include/
|
|
||||||
${ISL_BINARY_DIR}/include/
|
|
||||||
- DESTINATION include/polly
|
|
||||||
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly
|
|
||||||
FILES_MATCHING
|
|
||||||
PATTERN "*.h"
|
|
||||||
PATTERN "CMakeFiles" EXCLUDE
|
|
||||||
|
Loading…
Reference in New Issue
Block a user