<pre style='margin:0'>
Landon Fuller (landonf) pushed a commit to branch user/landonf/llvm-polly-subport
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/c64730f0074a9d0d79ceebfa34a4a374d93e663b">https://github.com/macports/macports-ports/commit/c64730f0074a9d0d79ceebfa34a4a374d93e663b</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit c64730f0074a9d0d79ceebfa34a4a374d93e663b
</span>Author: Landon Fuller <landonf@macports.org>
AuthorDate: Tue Jun 23 16:58:21 2020 -0600
<span style='display:block; white-space:pre;color:#404040;'> llvm-(9.0|10): lift +polly variant out into a subport
</span>---
lang/llvm-10/Portfile | 47 +++++++++++++++++++++++-----------------
lang/llvm-9.0/Portfile | 58 ++++++++++++++++++++++++++++----------------------
2 files changed, 61 insertions(+), 44 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-10/Portfile b/lang/llvm-10/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index a8739be93ce..d9033f357fb 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-10/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-10/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11,6 +11,7 @@ set clang_executable_version 10
</span> set lldb_executable_version 10
name llvm-${llvm_version}
revision 0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+subport polly-${llvm_version} { revision 0 }
</span> subport clang-${llvm_version} { revision 0 }
subport lldb-${llvm_version} { revision 0 }
set suffix mp-${llvm_version}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -33,6 +34,20 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span>
depends_lib port:libedit port:libffi port:ncurses path:lib/libxar.dylib:xar port:zlib
depends_run bin:perl:perl5 port:llvm_select
<span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {${subport} eq "polly-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ homepage https://polly.llvm.org
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ description High-level loop and data-locality optimizer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ long_description Polly is a high-level loop and data-locality optimizer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ and optimization infrastructure for LLVM. It uses an \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ abstract mathematical representation based on integer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ polyhedra to analyze and optimize the memory access \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pattern of a program. We currently perform classical loop \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ transformations, especially tiling and loop fusion to \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ improve data-locality. Polly can also exploit OpenMP level \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ parallelism, expose SIMDization opportunities. Work has \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ also be done in the area of automatic GPU code generation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib port:llvm-${llvm_version}
</span> } elseif {${subport} eq "clang-${llvm_version}"} {
homepage https://clang.llvm.org/
description C, C++, Objective C and Objective C++ compiler
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -76,10 +91,8 @@ distfiles llvm-${version}.src${extract.suffix}
</span> worksrcdir llvm-${version}.src
if {${distfiles} ne ""} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${subport} eq "llvm-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[variant_isset polly]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- distfiles-append polly-${version}.src${extract.suffix}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${subport} eq "polly-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ distfiles-append polly-${version}.src${extract.suffix}
</span> } elseif {${subport} eq "clang-${llvm_version}"} {
distfiles-append clang-${version}.src${extract.suffix} compiler-rt-${version}.src${extract.suffix} libcxx-${version}.src${extract.suffix} clang-tools-extra-${version}.src${extract.suffix}
} elseif {${subport} eq "lldb-${llvm_version}"} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -363,10 +376,8 @@ pre-fetch {
</span> }
post-extract {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${subport} eq "llvm-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[variant_isset polly]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file rename ${workpath}/polly-${version}.src ${worksrcpath}/tools/polly
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${subport} eq "polly-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${workpath}/polly-${version}.src ${worksrcpath}/tools/polly
</span> } elseif {${subport} eq "clang-${llvm_version}"} {
file rename ${workpath}/clang-${version}.src ${worksrcpath}/tools/clang
file rename ${workpath}/compiler-rt-${version}.src ${worksrcpath}/projects/compiler-rt
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -378,7 +389,11 @@ post-extract {
</span> }
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "clang-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport} eq "polly-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build.dir ${build.dir}/tools/polly
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ destroot.target install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test.target check-polly
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {${subport} eq "clang-${llvm_version}"} {
</span> destroot {
system "cd ${destroot.dir}/tools/clang && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
system "cd ${destroot.dir}/projects/compiler-rt && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -389,9 +404,7 @@ if {${subport} eq "clang-${llvm_version}"} {
</span> reinplace "s|/bin/clang-${clang_executable_version}|/bin/clang|g" \
"${destroot}${sub_prefix}/lib/cmake/clang/ClangTargets-release.cmake"
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "lldb-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {${subport} eq "lldb-${llvm_version}"} {
</span> post-patch {
reinplace "s|@@PREFIX@@|${prefix}|" \
${worksrcpath}/tools/clang/lib/Driver/ToolChains/Clang.cpp \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -418,7 +431,7 @@ if {${subport} eq "lldb-${llvm_version}"} {
</span> }
post-destroot {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach bin [glob ${destroot}${sub_prefix}/bin/*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach bin [glob -nocomplain -- ${destroot}${sub_prefix}/bin/*] {
</span> set bin_filename [string map "${sub_prefix} ${prefix}" ${bin}]-${suffix}
set exec_path [string map "${destroot}${sub_prefix} ${sub_prefix}" ${bin}]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -438,11 +451,9 @@ post-destroot {
</span> # set basename [string map "${destroot}${sub_prefix}/share/man/man1/ {}" ${man}]
# file rename ${man} ${destroot}${prefix}/share/man/man1/[string map ".1 -${suffix}.1" ${basename}]
#}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif {${subport} eq "polly-${llvm_version}"} {
</span> # https://llvm.org/bugs/show_bug.cgi?id=19465
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[variant_isset polly]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ln -s LLVMPolly.so ${destroot}${sub_prefix}/lib/LLVMPolly.dylib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s LLVMPolly.so ${destroot}${sub_prefix}/lib/LLVMPolly.dylib
</span> } elseif {${subport} eq "clang-${llvm_version}"} {
system "ditto ${worksrcpath}/projects/libcxx/include ${destroot}${sub_prefix}/lib/c++/v1"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -465,8 +476,6 @@ if {${os.major} < 11} {
</span> }
if {${subport} eq "llvm-${llvm_version}"} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- variant polly description {Provide the polly polyhedral optimizer} {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # Unless upstream reverts to their old OCaml detection mechanism,
# this variant will be broken until #46161 is resolved.
variant ocaml description {Enable generation of OCaml binding} {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-9.0/Portfile b/lang/llvm-9.0/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index eccd13d71cb..550b6901760 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-9.0/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-9.0/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14,9 +14,10 @@ set llvm_version_no_dot 90
</span> set clang_executable_version 9
set lldb_executable_version 9.0.0
name llvm-${llvm_version}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 1
</span> subport clang-${llvm_version} { revision 0 }
subport lldb-${llvm_version} { revision 0 }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+subport polly-${llvm_version} { revision 0 }
</span> set suffix mp-${llvm_version}
set sub_prefix ${prefix}/libexec/llvm-${llvm_version}
dist_subdir llvm
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -37,6 +38,20 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span>
depends_lib port:libedit port:libffi port:ncurses path:lib/libxar.dylib:xar port:zlib
depends_run bin:perl:perl5 port:llvm_select
<span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {${subport} eq "polly-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ homepage https://polly.llvm.org
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ description High-level loop and data-locality optimizer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ long_description Polly is a high-level loop and data-locality optimizer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ and optimization infrastructure for LLVM. It uses an \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ abstract mathematical representation based on integer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ polyhedra to analyze and optimize the memory access \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pattern of a program. We currently perform classical loop \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ transformations, especially tiling and loop fusion to \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ improve data-locality. Polly can also exploit OpenMP level \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ parallelism, expose SIMDization opportunities. Work has \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ also be done in the area of automatic GPU code generation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib port:llvm-${llvm_version}
</span> } elseif {${subport} eq "clang-${llvm_version}"} {
homepage https://clang.llvm.org/
description C, C++, Objective C and Objective C++ compiler
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -113,10 +128,8 @@ distfiles llvm-${version}.src${extract.suffix}
</span> worksrcdir llvm-${version}.src
if {${distfiles} ne ""} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${subport} eq "llvm-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[variant_isset polly]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- distfiles-append polly-${version}.src${extract.suffix}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${subport} eq "polly-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ distfiles-append polly-${version}.src${extract.suffix}
</span> } elseif {${subport} eq "clang-${llvm_version}"} {
distfiles-append clang-${version}.src${extract.suffix} compiler-rt-${version}.src${extract.suffix} libcxx-${version}.src${extract.suffix} clang-tools-extra-${version}.src${extract.suffix}
} elseif {${subport} eq "lldb-${llvm_version}"} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -470,15 +483,13 @@ pre-fetch {
</span> post-extract {
# Get HTTP proxy arguments if required, assuming we can use the same proxy for all repositories
set proxy_args [portfetch::svn_proxy_args https://llvm.org/svn/llvm-project/cfe/trunk]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${subport} eq "llvm-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[variant_isset polly]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${worksrcdir} eq "trunk"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/polly/trunk polly"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } elseif {${worksrcdir} eq "release_${llvm_version_no_dot}" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/polly/branches/release_${llvm_version_no_dot} polly"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file rename ${workpath}/polly-${version}.src ${worksrcpath}/tools/polly
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${subport} eq "polly-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${worksrcdir} eq "trunk"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/polly/trunk polly"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif {${worksrcdir} eq "release_${llvm_version_no_dot}" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system -W ${workpsrcath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/polly/branches/release_${llvm_version_no_dot} polly"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${workpath}/polly-${version}.src ${worksrcpath}/tools/polly
</span> }
} elseif {${subport} eq "clang-${llvm_version}"} {
if {${worksrcdir} eq "trunk"} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -511,7 +522,10 @@ post-extract {
</span> }
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "clang-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport} eq "polly-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build.dir ${build.dir}/tools/polly
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ destroot.target install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {${subport} eq "clang-${llvm_version}"} {
</span> destroot {
system "cd ${destroot.dir}/tools/clang && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
system "cd ${destroot.dir}/projects/compiler-rt && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -522,9 +536,7 @@ if {${subport} eq "clang-${llvm_version}"} {
</span> reinplace "s|/bin/clang-${clang_executable_version}|/bin/clang|g" \
"${destroot}${sub_prefix}/lib/cmake/clang/ClangTargets-release.cmake"
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "lldb-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {${subport} eq "lldb-${llvm_version}"} {
</span> post-patch {
reinplace "s|@@PREFIX@@|${prefix}|" \
${worksrcpath}/tools/clang/lib/Driver/ToolChains/Clang.cpp \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -551,7 +563,7 @@ if {${subport} eq "lldb-${llvm_version}"} {
</span> }
post-destroot {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach bin [glob ${destroot}${sub_prefix}/bin/*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach bin [glob -nocomplain -- ${destroot}${sub_prefix}/bin/*] {
</span> set bin_filename [string map "${sub_prefix} ${prefix}" ${bin}]-${suffix}
set exec_path [string map "${destroot}${sub_prefix} ${sub_prefix}" ${bin}]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -571,11 +583,9 @@ post-destroot {
</span> # set basename [string map "${destroot}${sub_prefix}/share/man/man1/ {}" ${man}]
# file rename ${man} ${destroot}${prefix}/share/man/man1/[string map ".1 -${suffix}.1" ${basename}]
#}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif {${subport} eq "polly-${llvm_version}"} {
</span> # https://llvm.org/bugs/show_bug.cgi?id=19465
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[variant_isset polly]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ln -s LLVMPolly.so ${destroot}${sub_prefix}/lib/LLVMPolly.dylib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s LLVMPolly.so ${destroot}${sub_prefix}/lib/LLVMPolly.dylib
</span> } elseif {${subport} eq "clang-${llvm_version}"} {
system "ditto ${worksrcpath}/projects/libcxx/include ${destroot}${sub_prefix}/lib/c++/v1"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -605,8 +615,6 @@ if {${os.major} < 11} {
</span> }
if {${subport} eq "llvm-${llvm_version}"} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- variant polly description {Provide the polly polyhedral optimizer} {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # Unless upstream reverts to their old OCaml detection mechanism,
# this variant will be broken until #46161 is resolved.
variant ocaml description {Enable generation of OCaml binding} {
</pre><pre style='margin:0'>
</pre>