Skip to content
  1. Nov 28, 2016
    • Daniil Fukalov's avatar
      [CMAKE] fix LLVM_OPTIMIZED_TABLEGEN for Visual Studio · fb501330
      Daniil Fukalov authored
      At the moment optimized tablegen is generated by LLVM_USE_HOST_TOOLS variable that is not set for Visual Sudio since LLVM_ENABLE_ASSERTIONS depends on CMAKE_BUILD_TYPE value that is not equal to "DEBUG" in case of Visual Studio soltion generation.
      
      Modified to do not depend on LLVM_ENABLE_ASSERTIONS value in VS and Xcode cases
      
      Reviewers: beanz
      
      Subscribers: RKSimon, llvm-commits, mgorny
      
      Differential Revision: https://reviews.llvm.org/D27135
      
      llvm-svn: 288042
      fb501330
    • Adam Nemet's avatar
      [LTO] Move finishOptimizationRemarks after codegen · 58951d38
      Adam Nemet authored
      This addresses the comment D26832.
      
      llvm-svn: 288041
      58951d38
    • Simon Pilgrim's avatar
      [X86][SSE] Added support for combining bit-shifts with shuffles. · 3f10e669
      Simon Pilgrim authored
      Bit-shifts by a whole number of bytes can be represented as a shuffle mask suitable for combining.
      
      Added a 'getFauxShuffleMask' function to allow us to create shuffle masks from other suitable operations.
      
      llvm-svn: 288040
      3f10e669
    • Simon Pilgrim's avatar
      3def9e11
    • Daniel Cederman's avatar
      Test commit · 59168e28
      Daniel Cederman authored
      llvm-svn: 288036
      59168e28
    • Nirav Dave's avatar
      Revert "[DAG] Improve loads-from-store forwarding to handle TokenFactor" · a4133617
      Nirav Dave authored
      This reverts commit r287773 which caused issues with ppc64le builds.
      
      llvm-svn: 288035
      a4133617
    • Ulrich Weigand's avatar
      [SystemZ] Fix build bot fallout from r288030 · a29bf16e
      Ulrich Weigand authored
      Remove unused variable that came in due to a copy-and-paste bug
      and caused build bot failures.
      
      llvm-svn: 288033
      a29bf16e
    • Ulrich Weigand's avatar
      [SystemZ] Support execution hint instructions · 84404f30
      Ulrich Weigand authored
      This adds assembler support for the instructions provided by the
      execution-hint facility (NIAI and BP(R)P).  This required adding
      support for the new relocation types for 12-bit and 24-bit PC-
      relative offsets used by the BP(R)P instructions.
      
      llvm-svn: 288031
      84404f30
    • Ulrich Weigand's avatar
      [SystemZ] Support load-and-trap instructions · 2d9e3d9d
      Ulrich Weigand authored
      This adds support for the instructions provided with the
      load-and-trap facility.
      
      llvm-svn: 288030
      2d9e3d9d
    • Ulrich Weigand's avatar
      [SystemZ] Add remaining branch instructions · 75839913
      Ulrich Weigand authored
      This patch adds assembler support for the remaining branch instructions:
      the non-relative branch on count variants, and all variants of branch
      on index.
      
      The only one of those that can be readily exploited for code generation
      is BRCTH (branch on count using a high 32-bit register as count).  Do
      use it, however, it is necessary to also introduce a hew CHIMux pseudo
      to allow comparisons of a 32-bit value agains a short immediate to go
      into a high register as well (implemented via CHI/CIH).
      
      This causes a bit of codegen changes overall, but those have proven to
      be neutral (or even beneficial) in performance measurements.
      
      llvm-svn: 288029
      75839913
    • Ulrich Weigand's avatar
      [SystemZ] Improve use of conditional instructions · 524f276c
      Ulrich Weigand authored
      This patch moves formation of LOC-type instructions from (late)
      IfConversion to the early if-conversion pass, and in some cases
      additionally creates them directly from select instructions
      during DAG instruction selection.
      
      To make early if-conversion work, the patch implements the
      canInsertSelect / insertSelect callbacks.  It also implements
      the commuteInstructionImpl and FoldImmediate callbacks to
      enable generation of the full range of LOC instructions.
      
      Finally, the patch adds support for all instructions of the
      load-store-on-condition-2 facility, which allows using LOC
      instructions also for high registers.
      
      Due to the use of the GRX32 register class to enable high registers,
      we now also have to handle the cases where there are still no single
      hardware instructions (conditional move from a low register to a high
      register or vice versa).  These are converted back to a branch sequence
      after register allocation.  Since the expandRAPseudos callback is not
      allowed to create new basic blocks, this requires a simple new pass,
      modelled after the ARM/AArch64 ExpandPseudos pass.
      
      Overall, this patch causes significantly more LOC-type instructions
      to be used, and results in a measurable performance improvement.
      
      llvm-svn: 288028
      524f276c
    • James Molloy's avatar
      [InlineCost] Reduce inline thresholds to compensate for cost changes · 6bed13c5
      James Molloy authored
      In r286814, the algorithm for calculating inline costs changed. This
      caused more inlining to take place which is especially apparent
      in optsize and minsize modes.
      
      As the cost calculation removed a skewed behaviour (we were inconsistent
      about the cost of calls) it isn't possible to update the thresholds to
      get exactly the same behaviour as before. However, this threshold change
      accounts for the very common case where an inline candidate has no
      calls within it. In this case, r286814 would inline around 5-6 more (IR)
      instructions.
      
      The changes to -Oz have been heavily benchmarked. The "obvious" value
      for the inline threshold at -Oz is zero, but due to inaccuracies in the
      inline heuristics this can actually cause code size increases due to
      not inlining key thunk functions (that then disappear). Experimentally,
      5 was the sweet spot for code size over the test-suite.
      
      For -Os, this change removes the outlier results shown up by green dragon
      (http://104.154.54.203/db_default/v4/nts/13248).
      
      Fixes D26848.
      
      llvm-svn: 288024
      6bed13c5
    • Chandler Carruth's avatar
      [PM] Remove weird marking of invalidated analyses as "preserved". · 0c6efff1
      Chandler Carruth authored
      This never made a lot of sense. They've been invalidated for one IR unit
      but they aren't really preserved in any normal sense. It seemed like it
      would be an elegant way of communicating to outer IR units that pass
      managers and adaptors had already handled invalidation, but we've since
      ended up adding sets that model this more clearly: we're now using
      the 'AllAnalysesOn<IRUnitT>' set to handle cases where the trick of
      "preserving" invalidated analyses didn't work.
      
      This patch moves to rely on that technique exclusively and removes the
      cumbersome API aspect of updating the preserved set when doing
      invalidation. This in turn will simplify a *number* of upcoming patches.
      
      This has a side benefit of exposing a number of places where we were
      failing to mark the 'AllAnalysesOn<IRUnitT>' set as preserved. This
      patch fixes those, and with those fixes shouldn't change any observable
      behavior.
      
      llvm-svn: 288023
      0c6efff1
    • Davide Italiano's avatar
      0f0d5d8f
    • Davide Italiano's avatar
      [ThreadPool] Remove outdated comment after r288016. · 3dd87dad
      Davide Italiano authored
      llvm-svn: 288017
      3dd87dad
    • Davide Italiano's avatar
      [ThreadPool] Simplify the interface. NFCI. · 3ea0bfa7
      Davide Italiano authored
      The callers don't use the return value. Found by Michael
      Spencer.
      
      llvm-svn: 288016
      3ea0bfa7
    • Mehdi Amini's avatar
      Revert "Improve error handling in YAML parsing" · 43c24282
      Mehdi Amini authored
      This reverts commit r288014, the unittest isn't passing
      
      llvm-svn: 288015
      43c24282
    • Mehdi Amini's avatar
      Improve error handling in YAML parsing · c54281be
      Mehdi Amini authored
      Some scanner errors were not checked and reported by the parser.
      
      Fix PR30934
      
      Patch by: Serge Guelton <serge.guelton@telecom-bretagne.eu>
      
      Differential Revision: https://reviews.llvm.org/D26419
      
      llvm-svn: 288014
      c54281be
    • Chandler Carruth's avatar
      [PM] Add an ASCII-art diagram for the call graph in the CGSCC unit test. · 4cf2c898
      Chandler Carruth authored
      No functionality changed.
      
      llvm-svn: 288013
      4cf2c898
  2. Nov 27, 2016
  3. Nov 26, 2016
Loading