Revision 1c5d7339e72b64ee9289c3645eb651cc611c18b1 authored by Jameson Nash on 22 February 2017, 19:58:46 UTC, committed by Jameson Nash on 22 February 2017, 20:01:19 UTC
The powi intrinsic optimization over calling powf is that it is inaccurate.
We don't need that.

When it is equally accurate (e.g. tiny constant powers),
LLVM will already recognize and optimize any call to a function named `powf`,
and produce the same speedup.

fix #19872
1 parent 5a1f971
Raw File
.travis.yml
language: cpp
sudo: false
matrix:
  include:
    - os: linux
      env: ARCH="i686"
      compiler: "g++-5 -m32"
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          packages:
            - bar
            - time
            - binutils
            - gcc-5
            - g++-5
            - gcc-5-multilib
            - g++-5-multilib
            - make:i386
            - libssl-dev:i386
            - gfortran-5
            - gfortran-5-multilib
    - os: linux
      env: ARCH="x86_64"
      compiler: "g++-5 -m64"
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          packages:
            - bar
            - time
            - g++-5
            - gfortran-5
    - os: osx
      env: ARCH="x86_64"
      osx_image: xcode8
cache:
  directories:
    - $TRAVIS_BUILD_DIR/deps/srccache
    - $TRAVIS_BUILD_DIR/deps/scratch
    - $TRAVIS_BUILD_DIR/deps/usr-staging
branches:
  only:
    - master
    - /release-.*/
notifications:
    email: false
    irc:
        channels:
            - "chat.freenode.net#julia-notifications"
        on_success: change
        on_failure: always
    webhooks:
        urls:
          - http://status.julialang.org/put/travis
          - http://julia.mit.edu:8000/travis-hook
before_install:
    - make check-whitespace
    - if [ `uname` = "Linux" ]; then
        contrib/travis_fastfail.sh || exit 1;
        mkdir -p $HOME/bin;
        ln -s /usr/bin/gcc-5 $HOME/bin/gcc;
        ln -s /usr/bin/g++-5 $HOME/bin/g++;
        ln -s /usr/bin/gfortran-5 $HOME/bin/gfortran;
        ln -s /usr/bin/gcc-5 $HOME/bin/x86_64-linux-gnu-gcc;
        ln -s /usr/bin/g++-5 $HOME/bin/x86_64-linux-gnu-g++;
        gcc --version;
        BAR="bar -i 30";
        BUILDOPTS="-j3 VERBOSE=1 FORCE_ASSERTIONS=1 LLVM_ASSERTIONS=1";
        echo "override ARCH=$ARCH" >> Make.user;
        TESTSTORUN="all";
      elif [ `uname` = "Darwin" ]; then
        brew update;
        brew install -v jq pv;
        BAR="pv -i 30";
        contrib/travis_fastfail.sh || exit 1;
        brew tap staticfloat/julia;
        brew rm --force $(brew deps --HEAD julia);
        brew install -v --only-dependencies --HEAD julia;
        brew install -v staticfloat/juliadeps/libgfortran llvm39-julia;
        BUILDOPTS="-j3 USECLANG=1 LLVM_CONFIG=$(brew --prefix llvm39-julia)/bin/llvm-config LLVM_SIZE=$(brew --prefix llvm39-julia)/bin/llvm-size";
        BUILDOPTS="$BUILDOPTS VERBOSE=1 USE_BLAS64=0 SUITESPARSE_INC=-I$(brew --prefix suite-sparse-julia)/include FORCE_ASSERTIONS=1";
        BUILDOPTS="$BUILDOPTS LIBBLAS=-lopenblas LIBBLASNAME=libopenblas LIBLAPACK=-lopenblas LIBLAPACKNAME=libopenblas";
        for lib in LLVM SUITESPARSE ARPACK BLAS FFTW LAPACK GMP MPFR PCRE LIBUNWIND; do
            BUILDOPTS="$BUILDOPTS USE_SYSTEM_$lib=1";
        done;
        export LDFLAGS="-L$(brew --prefix openblas-julia)/lib -L$(brew --prefix suite-sparse-julia)/lib";
        export DYLD_FALLBACK_LIBRARY_PATH="/usr/local/lib:/lib:/usr/lib:$(brew --prefix openblas-julia)/lib:$(brew --prefix suite-sparse-julia)/lib:$(brew --prefix arpack-julia)/lib";
        export JULIA_MACOS_SPAWN="DYLD_FALLBACK_LIBRARY_PATH=\"$DYLD_FALLBACK_LIBRARY_PATH\" \$1";
        export BUILDOPTS="$BUILDOPTS spawn=\$(JULIA_MACOS_SPAWN)";
        make $BUILDOPTS -C contrib -f repackage_system_suitesparse4.make;
        TESTSTORUN="all --skip linalg/triangular subarray"; fi # TODO: re enable these if possible without timing out
    - git clone -q git://git.kitenet.net/moreutils
script:
    - echo BUILDOPTS=$BUILDOPTS
    - export BUILDOPTS
    - contrib/download_cmake.sh
    - make -C moreutils mispipe
    - make $BUILDOPTS -C base version_git.jl.phony
    # capture the log, but only print it if `make deps` fails
    # try to show the end of the log first, because this log might be very long (> 4MB)
    # and thus be truncated by travis
    - moreutils/mispipe "make \$BUILDOPTS NO_GIT=1 -C deps 2> deps-err.log" "$BAR" > deps.log ||
        { echo "-- deps build log stderr tail 100 --------------------------------------";
          tail -n 100 deps-err.log;
          echo "-- deps build log stdout tail 100 --------------------------------------";
          tail -n 100 deps.log;
          echo "-- deps build log stderr all -------------------------------------------";
          cat deps-err.log;
          echo "-- deps build log stdout all -------------------------------------------";
          cat deps.log;
          echo "-- end of deps build log -----------------------------------------------";
          false; }
    - make $BUILDOPTS NO_GIT=1 prefix=/tmp/julia install | moreutils/ts -s "%.s"
    - make $BUILDOPTS NO_GIT=1 build-stats
    - du -sk /tmp/julia/*
    - if [ `uname` = "Darwin" ]; then
        for name in suitesparseconfig spqr umfpack colamd cholmod amd suitesparse_wrapper; do
            install -pm755 usr/lib/lib${name}*.dylib* /tmp/julia/lib/julia/;
        done;
      fi
    - cd .. && mv julia julia2
    - /tmp/julia/bin/julia --precompiled=no -e 'true' &&
        /tmp/julia/bin/julia-debug --precompiled=no -e 'true'
    - /tmp/julia/bin/julia -e 'versioninfo()'
    - export JULIA_CPU_CORES=2 && export JULIA_TEST_MAXRSS_MB=600 &&
        cd /tmp/julia/share/julia/test &&
        /tmp/julia/bin/julia --check-bounds=yes runtests.jl $TESTSTORUN &&
        /tmp/julia/bin/julia --check-bounds=yes runtests.jl libgit2-online pkg
    - cd `dirname $TRAVIS_BUILD_DIR` && mv julia2 julia &&
        rm -f julia/deps/scratch/libgit2-*/CMakeFiles/CMakeOutput.log
# uncomment the following if failures are suspected to be due to the out-of-memory killer
#    - dmesg
back to top