pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/devel/polly



Module Name:    pkgsrc
Committed By:   kamil
Date:           Mon Sep 12 22:49:24 UTC 2016

Added Files:
        pkgsrc/devel/polly: DESCR Makefile PLIST buildlink3.mk distinfo
        pkgsrc/devel/polly/patches: patch-CMakeLists.txt
            patch-lib_External_isl_configure

Log Message:
Import LLVM Polly 3.8.1 as devel/polly

Polly is a high-level loop and data-locality optimizer and optimization
infrastructure for LLVM. It uses an abstract mathematical representation based
on integer polyhedra to analyze and optimize the memory access pattern of a
program. We currently perform classical loop transformations, especially tiling
and loop fusion to improve data-locality. Polly can also exploit OpenMP level
parallelism, expose SIMDization opportunities. Work has also be done in the
area of automatic GPU code generation.

For many users, however, it's not the existing optimizations in Polly that are
of most interest, but the new analyses and optimizations enabled by the Polly
infrastructure. At polyhedral.info you can get an idea of what has already been
done and what is possible in the context of polyhedral compilation.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 pkgsrc/devel/polly/DESCR pkgsrc/devel/polly/Makefile \
    pkgsrc/devel/polly/PLIST pkgsrc/devel/polly/buildlink3.mk \
    pkgsrc/devel/polly/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/devel/polly/patches/patch-CMakeLists.txt \
    pkgsrc/devel/polly/patches/patch-lib_External_isl_configure

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: pkgsrc/devel/polly/DESCR
diff -u /dev/null pkgsrc/devel/polly/DESCR:1.1
--- /dev/null   Mon Sep 12 22:49:24 2016
+++ pkgsrc/devel/polly/DESCR    Mon Sep 12 22:49:23 2016
@@ -0,0 +1,12 @@
+Polly is a high-level loop and data-locality optimizer and optimization
+infrastructure for LLVM. It uses an abstract mathematical representation based
+on integer polyhedra to analyze and optimize the memory access pattern of a
+program. We currently perform classical loop transformations, especially tiling
+and loop fusion to improve data-locality. Polly can also exploit OpenMP level
+parallelism, expose SIMDization opportunities. Work has also be done in the
+area of automatic GPU code generation.
+
+For many users, however, it's not the existing optimizations in Polly that are
+of most interest, but the new analyses and optimizations enabled by the Polly
+infrastructure. At polyhedral.info you can get an idea of what has already been
+done and what is possible in the context of polyhedral compilation.
Index: pkgsrc/devel/polly/Makefile
diff -u /dev/null pkgsrc/devel/polly/Makefile:1.1
--- /dev/null   Mon Sep 12 22:49:24 2016
+++ pkgsrc/devel/polly/Makefile Mon Sep 12 22:49:23 2016
@@ -0,0 +1,31 @@
+# $NetBSD: Makefile,v 1.1 2016/09/12 22:49:23 kamil Exp $
+
+DISTNAME=      polly-3.8.1.src
+PKGNAME=       ${DISTNAME:S/.src//}
+CATEGORIES=    devel
+MASTER_SITES=  http://llvm.org/releases/${PKGVERSION_NOREV}/
+#MASTER_SITES= http://llvm.org/pre-releases/3.8.0/rc1/
+EXTRACT_SUFX=  .tar.xz
+
+MAINTAINER=    pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=      http://polly.llvm.org/
+COMMENT=       Polyhedral optimizations for LLVM
+LICENSE=       modified-bsd
+
+CONFIGURE_DIRS=                ${WRKDIR}/build
+CMAKE_ARG_PATH=                ${WRKSRC}
+
+USE_LANGUAGES=         c c++
+USE_CMAKE=             yes
+GCC_REQD+=             4.8
+
+CMAKE_ARGS+=   -DCMAKE_BUILD_TYPE=Release
+CMAKE_ARGS+=   -DCMAKE_C_COMPILER=${CC:Q}
+CMAKE_ARGS+=   -DCMAKE_CXX_COMPILER=${CXX:Q}
+
+post-extract:
+       ${RUN} mkdir -p ${WRKDIR}/build
+
+DEPENDS+=      llvm-${PKGVERSION_NOREV}{,nb*}:../../lang/llvm
+.include "../../lang/llvm/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/devel/polly/PLIST
diff -u /dev/null pkgsrc/devel/polly/PLIST:1.1
--- /dev/null   Mon Sep 12 22:49:24 2016
+++ pkgsrc/devel/polly/PLIST    Mon Sep 12 22:49:23 2016
@@ -0,0 +1,30 @@
+@comment $NetBSD: PLIST,v 1.1 2016/09/12 22:49:23 kamil Exp $
+include/polly/Canonicalization.h
+include/polly/CodeGen/BlockGenerators.h
+include/polly/CodeGen/CodeGeneration.h
+include/polly/CodeGen/CodegenCleanup.h
+include/polly/CodeGen/IRBuilder.h
+include/polly/CodeGen/IslAst.h
+include/polly/CodeGen/IslExprBuilder.h
+include/polly/CodeGen/IslNodeBuilder.h
+include/polly/CodeGen/LoopGenerators.h
+include/polly/CodeGen/RuntimeDebugBuilder.h
+include/polly/CodeGen/Utils.h
+include/polly/Config/config.h
+include/polly/DependenceInfo.h
+include/polly/LinkAllPasses.h
+include/polly/Options.h
+include/polly/RegisterPasses.h
+include/polly/ScheduleOptimizer.h
+include/polly/ScopDetection.h
+include/polly/ScopDetectionDiagnostic.h
+include/polly/ScopInfo.h
+include/polly/ScopPass.h
+include/polly/Support/GICHelper.h
+include/polly/Support/SCEVAffinator.h
+include/polly/Support/SCEVValidator.h
+include/polly/Support/ScopHelper.h
+include/polly/Support/ScopLocation.h
+lib/LLVMPolly.so
+lib/libPolly.a
+lib/libPollyISL.a
Index: pkgsrc/devel/polly/buildlink3.mk
diff -u /dev/null pkgsrc/devel/polly/buildlink3.mk:1.1
--- /dev/null   Mon Sep 12 22:49:24 2016
+++ pkgsrc/devel/polly/buildlink3.mk    Mon Sep 12 22:49:23 2016
@@ -0,0 +1,14 @@
+# $NetBSD: buildlink3.mk,v 1.1 2016/09/12 22:49:23 kamil Exp $
+
+BUILDLINK_TREE+=       polly
+
+.if !defined(POLLY_BUILDLINK3_MK)
+POLLY_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.polly+=  polly>=3.8.1
+BUILDLINK_PKGSRCDIR.polly?=    ../../devel/polly
+
+.include "../../lang/llvm/buildlink3.mk"
+.endif # POLLY_BUILDLINK3_MK
+
+BUILDLINK_TREE+=       -polly
Index: pkgsrc/devel/polly/distinfo
diff -u /dev/null pkgsrc/devel/polly/distinfo:1.1
--- /dev/null   Mon Sep 12 22:49:24 2016
+++ pkgsrc/devel/polly/distinfo Mon Sep 12 22:49:23 2016
@@ -0,0 +1,8 @@
+$NetBSD: distinfo,v 1.1 2016/09/12 22:49:23 kamil Exp $
+
+SHA1 (polly-3.8.1.src.tar.xz) = 918f3c74369a3605f3d624ea3f20c97bc3c921ad
+RMD160 (polly-3.8.1.src.tar.xz) = 766873d4b88e0e9c5670aeb45313d47cca7bd79a
+SHA512 (polly-3.8.1.src.tar.xz) = e5d0d1625be47579cd337fce6d6a1c5b64c8991a6b073778c8d8f237fccbd29f3a8ab815f191bd75c550ac4404c9581c948400cd5c71f56d3ea8fb07fec05536
+Size (polly-3.8.1.src.tar.xz) = 7799188 bytes
+SHA1 (patch-CMakeLists.txt) = 6ee16a91e3d23eeb033bc2e9729ceabb3dfff6db
+SHA1 (patch-lib_External_isl_configure) = dad55f0d959b64f0cb910dad412bfe5bb3702ec9

Index: pkgsrc/devel/polly/patches/patch-CMakeLists.txt
diff -u /dev/null pkgsrc/devel/polly/patches/patch-CMakeLists.txt:1.1
--- /dev/null   Mon Sep 12 22:49:24 2016
+++ pkgsrc/devel/polly/patches/patch-CMakeLists.txt     Mon Sep 12 22:49:23 2016
@@ -0,0 +1,206 @@
+$NetBSD: patch-CMakeLists.txt,v 1.1 2016/09/12 22:49:23 kamil Exp $
+
+Bump minimal required CMake version to 3.4.3 like modern LLVM
+Add support for standalone builds
+Disable tests - they require missing files from standard LLVM build (lit tool)
+
+--- CMakeLists.txt.orig        2015-10-15 12:18:37.000000000 +0000
++++ CMakeLists.txt
+@@ -1,90 +1,107 @@
+ # Check if this is a in tree build.
+ if (NOT DEFINED LLVM_MAIN_SRC_DIR)
+   project(Polly)
+-  cmake_minimum_required(VERSION 2.8)
++  cmake_minimum_required(VERSION 3.4.3)
+ 
+-  # Where is LLVM installed?
+-  set(LLVM_INSTALL_ROOT "" CACHE PATH "Root of LLVM install.")
+-  # Check if the LLVM_INSTALL_ROOT valid.
+-  if( NOT EXISTS ${LLVM_INSTALL_ROOT}/include/llvm )
+-    message(FATAL_ERROR "LLVM_INSTALL_ROOT (${LLVM_INSTALL_ROOT}) is not a valid LLVM installation.")
+-  endif(NOT EXISTS ${LLVM_INSTALL_ROOT}/include/llvm)
+-  #FileCheck is not install by default, warn the user to Copy FileCheck
+-  if( NOT EXISTS ${LLVM_INSTALL_ROOT}/bin/FileCheck
+-      OR NOT EXISTS ${LLVM_INSTALL_ROOT}/bin/not)
+-    message(WARNING "FileCheck or not are required by running regress tests, "
+-                    "but they are not installed! Please copy it to "
+-                    "${LLVM_INSTALL_ROOT}/bin.")
+-  endif(NOT EXISTS ${LLVM_INSTALL_ROOT}/bin/FileCheck
+-        OR NOT EXISTS ${LLVM_INSTALL_ROOT}/bin/not)
+-  # Add the llvm header path.
+-  include_directories(${LLVM_INSTALL_ROOT}/include/)
+-
+-  # Get the system librarys that will link into LLVM.
+-  function(get_system_libs return_var)
+-    # Returns in `return_var' a list of system libraries used by LLVM.
+-    if( NOT MSVC )
+-      if( MINGW )
+-        set(system_libs ${system_libs} imagehlp psapi)
+-      elseif( CMAKE_HOST_UNIX )
+-        if( HAVE_LIBDL )
+-          set(system_libs ${system_libs} ${CMAKE_DL_LIBS})
+-        endif()
+-        if( LLVM_ENABLE_THREADS AND HAVE_LIBPTHREAD )
+-          set(system_libs ${system_libs} pthread)
+-        endif()
+-      endif( MINGW )
+-    endif( NOT MSVC )
+-    set(${return_var} ${system_libs} PARENT_SCOPE)
+-  endfunction(get_system_libs)
+-
+-  # Now set the header paths.
+-  execute_process(COMMAND "${LLVM_INSTALL_ROOT}/bin/llvm-config" --includedir
+-                  OUTPUT_VARIABLE LLVM_INCLUDE_DIR
+-                  OUTPUT_STRIP_TRAILING_WHITESPACE)
+-  include_directories( ${LLVM_INCLUDE_DIR} )
+-
+-  # Get the TARGET_TRIPLE
+-  execute_process(COMMAND "${LLVM_INSTALL_ROOT}/bin/llvm-config" --host-target
+-                  OUTPUT_VARIABLE TARGET_TRIPLE
+-                  OUTPUT_STRIP_TRAILING_WHITESPACE)
+-
+-  # And then set the cxx flags.
+-  execute_process(COMMAND "${LLVM_INSTALL_ROOT}/bin/llvm-config" --cxxflags
+-                  OUTPUT_VARIABLE LLVM_CXX_FLAGS
+-                  OUTPUT_STRIP_TRAILING_WHITESPACE)
+-  set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} ${LLVM_CXX_FLAGS})
+-
+-  # Check LLVM_ENABLE_ASSERTIONS
+-  execute_process(COMMAND "${LLVM_INSTALL_ROOT}/bin/llvm-config" --assertion-mode
+-                  OUTPUT_VARIABLE LLVM_ENABLE_ASSERTIONS
+-                  OUTPUT_STRIP_TRAILING_WHITESPACE)
+-  # Copied from LLVM's HandleLLVMOptions.cmake
+-  if( LLVM_ENABLE_ASSERTIONS )
+-    # MSVC doesn't like _DEBUG on release builds. See PR 4379.
+-    if( NOT MSVC )
+-      add_definitions( -D_DEBUG )
+-    endif()
+-    # On non-Debug builds cmake automatically defines NDEBUG, so we
+-    # explicitly undefine it:
+-    if( NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG" )
+-      add_definitions( -UNDEBUG )
+-      # Also remove /D NDEBUG to avoid MSVC warnings about conflicting defines.
+-      foreach (flags_var_to_scrub
+-          CMAKE_CXX_FLAGS_RELEASE
+-          CMAKE_CXX_FLAGS_RELWITHDEBINFO
+-          CMAKE_CXX_FLAGS_MINSIZEREL
+-          CMAKE_C_FLAGS_RELEASE
+-          CMAKE_C_FLAGS_RELWITHDEBINFO
+-          CMAKE_C_FLAGS_MINSIZEREL)
+-        string (REGEX REPLACE "(^| )[/-]D *NDEBUG($| )" " "
+-          "${flags_var_to_scrub}" "${${flags_var_to_scrub}}")
+-      endforeach()
+-    endif()
++  option(LLVM_INSTALL_TOOLCHAIN_ONLY "Only include toolchain files in the 'install' target." OFF)
++
++  # Rely on llvm-config.
++  set(CONFIG_OUTPUT)
++  find_program(LLVM_CONFIG "llvm-config")
++  if(LLVM_CONFIG)
++    message(STATUS "Found LLVM_CONFIG as ${LLVM_CONFIG}")
++    set(CONFIG_COMMAND ${LLVM_CONFIG}
++      "--assertion-mode"
++      "--bindir"
++      "--libdir"
++      "--includedir"
++      "--prefix"
++      "--src-root")
++    execute_process(
++      COMMAND ${CONFIG_COMMAND}
++      RESULT_VARIABLE HAD_ERROR
++      OUTPUT_VARIABLE CONFIG_OUTPUT
++    )
++    if(NOT HAD_ERROR)
++      string(REGEX REPLACE
++        "[ \t]*[\r\n]+[ \t]*" ";"
++        CONFIG_OUTPUT ${CONFIG_OUTPUT})
++    else()
++      string(REPLACE ";" " " CONFIG_COMMAND_STR "${CONFIG_COMMAND}")
++      message(STATUS "${CONFIG_COMMAND_STR}")
++      message(FATAL_ERROR "llvm-config failed with status ${HAD_ERROR}")
++
++     endif()
++  else()
++    message(FATAL_ERROR "llvm-config not found -- ${LLVM_CONFIG}")
++  endif()
++
++  list(GET CONFIG_OUTPUT 0 ENABLE_ASSERTIONS)
++  list(GET CONFIG_OUTPUT 1 TOOLS_BINARY_DIR)
++  list(GET CONFIG_OUTPUT 2 LIBRARY_DIR)
++  list(GET CONFIG_OUTPUT 3 INCLUDE_DIR)
++  list(GET CONFIG_OUTPUT 4 LLVM_OBJ_ROOT)
++  list(GET CONFIG_OUTPUT 5 MAIN_SRC_DIR)
++      
++  if(NOT MSVC_IDE)  
++    set(LLVM_ENABLE_ASSERTIONS ${ENABLE_ASSERTIONS}
++      CACHE BOOL "Enable assertions")
++    # Assertions should follow llvm-config's.
++    mark_as_advanced(LLVM_ENABLE_ASSERTIONS)
++  endif()
++      
++  set(LLVM_TOOLS_BINARY_DIR ${TOOLS_BINARY_DIR} CACHE PATH "Path to llvm/bin")
++  set(LLVM_LIBRARY_DIR ${LIBRARY_DIR} CACHE PATH "Path to llvm/lib")
++  set(LLVM_MAIN_INCLUDE_DIR ${INCLUDE_DIR} CACHE PATH "Path to llvm/include")
++  set(LLVM_DIR ${LLVM_OBJ_ROOT}/cmake/modules/CMakeFiles CACHE PATH "Path to LLVM build tree CMake files")
++  set(LLVM_BINARY_DIR ${LLVM_OBJ_ROOT} CACHE PATH "Path to LLVM build tree")
++  set(LLVM_MAIN_SRC_DIR ${MAIN_SRC_DIR} CACHE PATH "Path to LLVM source tree")
++    
++  find_program(LLVM_TABLEGEN_EXE "llvm-tblgen" ${LLVM_TOOLS_BINARY_DIR}
++    NO_DEFAULT_PATH)
++  
++  set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR}/share/llvm/cmake")
++  set(LLVMCONFIG_FILE "${LLVM_CMAKE_PATH}/LLVMConfig.cmake")
++  if(EXISTS ${LLVMCONFIG_FILE})
++    list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_PATH}")                                                                                                                                     
++    include(${LLVMCONFIG_FILE})
++  else()
++    message(FATAL_ERROR "Not found: ${LLVMCONFIG_FILE}")
++  endif()
++
++  # They are used as destination of target generators.
++  set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
++  set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
++  if(WIN32 OR CYGWIN)
++    # DLL platform -- put DLLs into bin.
++    set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_RUNTIME_OUTPUT_INTDIR})
++  else()
++    set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
+   endif()
+ 
+-  # Make sure the isl c files are built as fPIC
+-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
++  include(AddLLVM)
++  include(HandleLLVMOptions)
++  include(TableGen)
++
++  # Import CMake library targets from LLVM and Clang.
++  include("${LLVM_OBJ_ROOT}/share/llvm/cmake/LLVMConfig.cmake")
++  set(PACKAGE_VERSION "${LLVM_PACKAGE_VERSION}")
++  set(LLVM_BINARY_DIR ${CMAKE_BINARY_DIR})
++
++  set(CMAKE_INCLUDE_CURRENT_DIR ON)
++  include_directories("${LLVM_BINARY_DIR}/include" "${LLVM_MAIN_INCLUDE_DIR}")
++  # Next three include directories are needed when llvm-config is located in build directory.
++  # LLVM and Cland are assumed to be built together
++  if (EXISTS "${LLVM_OBJ_ROOT}/include")
++    include_directories("${LLVM_OBJ_ROOT}/include")
++   endif()
++  link_directories("${LLVM_LIBRARY_DIR}")
++
++  set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
++  set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX})                                                                                                          
++  set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX})
++ 
++  set(POLLY_BUILT_STANDALONE 1)
+ endif(NOT DEFINED LLVM_MAIN_SRC_DIR)
+ 
+ set(POLLY_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
+@@ -155,7 +172,7 @@ install(DIRECTORY ${POLLY_BINARY_DIR}/in
+ add_definitions( -D_GNU_SOURCE )
+ 
+ add_subdirectory(lib)
+-add_subdirectory(test)
++#add_subdirectory(test)
+ add_subdirectory(tools)
+ # TODO: docs.
+ 
Index: pkgsrc/devel/polly/patches/patch-lib_External_isl_configure
diff -u /dev/null pkgsrc/devel/polly/patches/patch-lib_External_isl_configure:1.1
--- /dev/null   Mon Sep 12 22:49:24 2016
+++ pkgsrc/devel/polly/patches/patch-lib_External_isl_configure Mon Sep 12 22:49:24 2016
@@ -0,0 +1,29 @@
+$NetBSD: patch-lib_External_isl_configure,v 1.1 2016/09/12 22:49:24 kamil Exp $
+
+Fix shell portability issue.
+
+--- lib/External/isl/configure.orig    2015-12-02 09:35:04.000000000 +0000
++++ lib/External/isl/configure
+@@ -17487,7 +17487,7 @@ else
+ fi
+ 
+ 
+- if test "x$with_int" == "ximath-32"; then
++ if test "x$with_int" = "ximath-32"; then
+   SMALL_INT_OPT_TRUE=
+   SMALL_INT_OPT_FALSE='#'
+ else
+@@ -17495,7 +17495,7 @@ else
+   SMALL_INT_OPT_FALSE=
+ fi
+ 
+-if test "x$with_int" == "ximath-32"; then :
++if test "x$with_int" = "ximath-32"; then :
+ 
+ 
+ $as_echo "#define USE_SMALL_INT_OPT /**/" >>confdefs.h
+@@ -21881,4 +21881,3 @@ if test -n "$ac_unrecognized_opts" && te
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+ $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+ fi
+-



Home | Main Index | Thread Index | Old Index