<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>