Skip to content
  1. Dec 29, 2014
    • Chandler Carruth's avatar
      [multilib] Add support to the autoconf build to substitute · 9db2b524
      Chandler Carruth authored
      a CLANG_LIBDIR_SUFFIX variable. This is necessary before I can add
      support for using that variable to CMake and the C++ code in Clang, and
      the autoconf build system does all substitutions in the LLVM tree.
      
      As mentioned before, I'm not planning to add actual multilib support to
      the autoconf build, just enough stubs for it to keep playing nicely with
      the CMake build once that one has support.
      
      llvm-svn: 224922
      9db2b524
    • Chandler Carruth's avatar
      [cmake] Teach the llvm-config program to respect LLVM_LIBDIR_SUFFIX. · 7d58776f
      Chandler Carruth authored
      For this to work, we have to encode it in the build variables and use it
      from llvm-config.cpp. I've tried to do this reasonably cleanly, but the
      code for llvm-config.cpp is pretty strange. However, with this,
      llvm-config stops giving the wrong answer when using LLVM_LIBDIR_SUFFIX.
      
      Note that the configure+make build just sets this to an empty string as
      that build system has zero support for multilib of any form. I'm not
      planning to add support there either, but this should leave a path for
      anyone that wanted to.
      
      llvm-svn: 224921
      7d58776f
    • Chandler Carruth's avatar
      [cmake] Push LLVM_LIBDIR_SUFFIX through to the LLVMConfig.cmake file · ab8df0b6
      Chandler Carruth authored
      that is used by other projects to build against LLVM. This will allow
      subsequent patches to them to use LLVM_LIBDIR_SUFFIX, both when built as
      part of the larger LLVM build an as part of a standalone build against
      an installed set of LLVM libraries.
      
      llvm-svn: 224920
      ab8df0b6
    • Chandler Carruth's avatar
      [cmake] Start making LLVM_LIBDIR_SUFFIX effective by adding it to · a78e24e5
      Chandler Carruth authored
      *numerous* places where it was missing in the CMake build. The primary
      change here is that the suffix is now actually used for all of the lib
      directories in the LLVM project's CMake. The various subprojects still
      need similar treatment.
      
      This is the first of a series of commits to try to make LLVM's cmake
      effective in a multilib Linux installation. I don't think many people
      are seriously using this variable so I'm hoping the fallout will be
      minimal. A somewhat unfortunate consequence of the nature of these
      commits is that until I land all of them, they will in part make the
      brokenness of our multilib support more apparant. At the end, things
      should actually work.
      
      llvm-svn: 224919
      a78e24e5
    • Elena Demikhovsky's avatar
      Fixed 2 minor typos in the documentation. · e86c8c80
      Elena Demikhovsky authored
      llvm-svn: 224917
      e86c8c80
    • NAKAMURA Takumi's avatar
  2. Dec 28, 2014
    • Keno Fischer's avatar
      [X86][ISel] Fix a regression I introduced in r224884 · fd22c669
      Keno Fischer authored
      The else case ResultReg was not checked for validity.
      To my surprise, this case was not hit in any of the
      existing test cases. This includes a new test cases
      that tests this path.
      
      Also drop the `target triple` declaration from the
      original test as suggested by H.J. Lu, because
      apparently with it the test won't be run on Linux
      
      llvm-svn: 224901
      fd22c669
    • Michael Kuperstein's avatar
      [X86] Add missing memory variants to AVX false dependency breaking · 683c3cde
      Michael Kuperstein authored
      Adds missing memory instruction variants to AVX false dependency breaking handling. (SSE was handled in r224246)
      
      Differential Revision: http://reviews.llvm.org/D6780
      
      llvm-svn: 224900
      683c3cde
    • Andrea Di Biagio's avatar
      [CodeGenPrepare] Teach when it is profitable to speculate calls to @llvm.cttz/ctlz. · 22ee3f63
      Andrea Di Biagio authored
      If the control flow is modelling an if-statement where the only instruction in
      the 'then' basic block (excluding the terminator) is a call to cttz/ctlz,
      CodeGenPrepare can try to speculate the cttz/ctlz call and simplify the control
      flow graph.
      
      Example:
      \code
      entry:
        %cmp = icmp eq i64 %val, 0
        br i1 %cmp, label %end.bb, label %then.bb
      
      then.bb:
        %c = tail call i64 @llvm.cttz.i64(i64 %val, i1 true)
        br label %end.bb
      
      end.bb:
        %cond = phi i64 [ %c, %then.bb ], [ 64, %entry]
      \code
      
      In this example, basic block %then.bb is taken if value %val is not zero.
      Also, the phi node in %end.bb would propagate the size-of in bits of %val
      only if %val is equal to zero.
      
      With this patch, CodeGenPrepare will try to hoist the call to cttz from %then.bb
      into basic block %entry only if cttz is cheap to speculate for the target.
      
      Added two new hooks in TargetLowering.h to let targets customize the behavior
      (i.e. decide whether it is cheap or not to speculate calls to cttz/ctlz). The
      two new methods are 'isCheapToSpeculateCtlz' and 'isCheapToSpeculateCttz'.
      By default, both methods return 'false'.
      On X86, method 'isCheapToSpeculateCtlz' returns true only if the target has
      LZCNT. Method 'isCheapToSpeculateCttz' only returns true if the target has BMI.
      
      Differential Revision: http://reviews.llvm.org/D6728
      
      llvm-svn: 224899
      22ee3f63
    • Elena Demikhovsky's avatar
      Scalarizer for masked load and store intrinsics. · 87700a73
      Elena Demikhovsky authored
      Masked vector intrinsics are a part of common LLVM IR, but they are really supported on AVX2 and AVX-512 targets. I added a code that translates masked intrinsic for all other targets. The masked vector intrinsic is converted to a chain of scalar operations inside conditional basic blocks.
      
      http://reviews.llvm.org/D6436
      
      llvm-svn: 224897
      87700a73
  3. Dec 27, 2014
  4. Dec 26, 2014
  5. Dec 25, 2014
Loading