Skip to content
  1. Sep 30, 2019
  2. Sep 29, 2019
    • Craig Topper's avatar
      [X86] Add custom isel logic to match VPTERNLOG from 2 logic ops. · 0e3f6591
      Craig Topper authored
      There's room from improvement here, but this is a decent
      starting point.
      
      There are a few minor regressions in the vector-rotate tests,
      where we are now forming a vpternlog from an and before we get
      a chance to form it for a bitselect that we were matching
      previously. This results in an AND and an ANDN feeding the
      vpternlog where previously we just had an AND after the
      vpternlog. I think we can probably DAG combine the AND with
      the bitselect to get back to similar codegen.
      
      llvm-svn: 373172
      0e3f6591
    • Amaury Sechet's avatar
    • Aditya Kumar's avatar
      [LLVM-C][Ocaml] Add MergeFunctions and DCE pass · a6d9d312
      Aditya Kumar authored
      MergeFunctions and DCE pass are missing from OCaml/C-api. This patch
      adds them.
      
      Differential Revision: https://reviews.llvm.org/D65071
      
      Reviewers: whitequark, hiraditya, deadalnix
      
      Reviewed By: whitequark
      
      Subscribers: llvm-commits
      
      Tags: #llvm
      
      Authored by: kren1
      
      llvm-svn: 373170
      a6d9d312
    • DeForest Richards's avatar
      [Docs] Moves article links to new pages · eb78dea4
      DeForest Richards authored
      Moves existing article links on the Programming, Subsystem, and Reference documentation pages to new locations. Also moves Github Repository and Publications links to the sidebar.
      
      llvm-svn: 373169
      eb78dea4
    • Fangrui Song's avatar
      [MC] Emit unused undefined symbol even if its binding is not set · c5133606
      Fangrui Song authored
      For the following two cases, we currently suppress the symbols. This
      patch emits them (compatible with GNU as).
      
      * `test2_a = undef`: if `undef` is otherwise unused.
      * `.hidden hidden`: if `hidden` is unused. This is the main point of the
        patch, because omitting the symbol would cause a linker semantic
        difference.
      
      It causes a behavior change that is not compatible with GNU as:
      
      .weakref foo1, bar1
      
      When neither foo1 nor bar1 is used, we now emit bar1, which is arguably
      more consistent.
      
      Another change is that we will emit .TOC. for .TOC.@tocbase .  For this
      directive, suppressing .TOC. can be seen as a size optimization, but we
      choose to drop it for simplicity and consistency.
      
      llvm-svn: 373168
      c5133606
    • Roman Lebedev's avatar
      [DivRemPairs] Don't assert that we won't ever get expanded-form rem pairs in... · d30093bb
      Roman Lebedev authored
      [DivRemPairs] Don't assert that we won't ever get expanded-form rem pairs in different BB's (PR43500)
      
      If we happen to have the same div in two basic blocks,
      and in one of those we also happen to have the rem part,
      we'd match the div-rem pair, but the wrong ones.
      So let's drop overly-ambiguous assert.
      
      Fixes https://bugs.llvm.org/show_bug.cgi?id=43500
      
      llvm-svn: 373167
      d30093bb
    • Alexey Bataev's avatar
      [SLP] Fix for PR31847: Assertion failed: (isLoopInvariant(Operands[i], L) &&... · 8b1eeafb
      Alexey Bataev authored
      [SLP] Fix for PR31847: Assertion failed: (isLoopInvariant(Operands[i], L) && "SCEVAddRecExpr operand is not loop-invariant!")
      
      Initially SLP vectorizer replaced all going-to-be-vectorized
      instructions with Undef values. It may break ScalarEvaluation and may
      cause a crash.
      Reworked SLP vectorizer so that it does not replace vectorized
      instructions by UndefValue anymore. Instead vectorized instructions are
      marked for deletion inside if BoUpSLP class and deleted upon class
      destruction.
      
      Reviewers: mzolotukhin, mkuper, hfinkel, RKSimon, davide, spatel
      
      Subscribers: RKSimon, Gerolf, anemet, hans, majnemer, llvm-commits, sanjoy
      
      Differential Revision: https://reviews.llvm.org/D29641
      
      llvm-svn: 373166
      8b1eeafb
    • Jinsong Ji's avatar
      [PowerPC] Fix conditions of assert in PPCAsmPrinter · 72b544e6
      Jinsong Ji authored
      Summary:
      g++ build emits warning:
      
      llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:667:77: error: suggest parentheses around ?&&? within ?||? [-Werror=parentheses]
           assert(MO.isGlobal() || MO.isCPI() || MO.isJTI() || MO.isBlockAddress() &&
                                                               ~~~~~~~~~~~~~~~~~~~~^~
                  "Unexpected operand type for LWZtoc pseudo.");
      
      I believe the intension is to assert all different types,
      so we should add a parentheses to include all '||'.
      
      Reviewers: #powerpc, sfertile, hubert.reinterpretcast, Xiangling_L
      
      Reviewed By: Xiangling_L
      
      Subscribers: wuzish, nemanjai, hiraditya, kbarton, MaskRay, shchenz, steven.zhang, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D68180
      
      llvm-svn: 373164
      72b544e6
    • David Green's avatar
      [ARM] Cortex-M4 schedule additions · 120a5e9a
      David Green authored
      This is an attempt to fill in some of the missing instructions from the
      Cortex-M4 schedule, and make it easier to do the same for other ARM cpus.
      
      - Some instructions are marked as hasNoSchedulingInfo as they are pseudos or
        otherwise do not require scheduling info
      - A lot of features have been marked not supported
      - Some WriteRes's have been added for cvt instructions.
      - Some extra instruction latencies have been added, notably by relaxing the
        regex for dsp instruction to catch more cases, and some fp instructions.
      
      This goes a long way to get the CompleteModel working for this CPU. It does not
      go far enough as to get all scheduling info for all output operands correct.
      
      Differential Revision: https://reviews.llvm.org/D67957
      
      llvm-svn: 373163
      120a5e9a
    • DeForest Richards's avatar
      [Docs] Adds sections for Command Line and LibFuzzer articles · ac596993
      DeForest Richards authored
      Adds sections for Command Line and Libfuzzer articles on Programming Documentation page.
      
      llvm-svn: 373158
      ac596993
    • Craig Topper's avatar
    • Craig Topper's avatar
      [X86] Move bitselect matching to vpternlog into X86ISelDAGToDAG.cpp · b6a2207b
      Craig Topper authored
      This allows us to reduce the use count on the condition node before
      the match. This enables load folding for that operand without
      relying on the peephole pass. This will be improved on for
      broadcast load folding in a subsequent commit.
      
      This still requires a bunch of isel patterns for vXi16/vXi8 types
      though.
      
      llvm-svn: 373156
      b6a2207b
    • Craig Topper's avatar
      0ac4aace
    • Craig Topper's avatar
      [X86] Match (or (and A, B), (andn (A, C))) to VPTERNLOG with AVX512. · 6195ed83
      Craig Topper authored
      This uses a similar isel pattern as we used for vpcmov with XOP.
      
      llvm-svn: 373154
      6195ed83
  3. Sep 28, 2019
Loading