Skip to content
  1. Jun 19, 2020
  2. Jun 18, 2020
    • Fangrui Song's avatar
    • Matt Arsenault's avatar
      ARC: Enforce function alignment at code emission time · bbd78519
      Matt Arsenault authored
      Don't do this in the MachineFunctionInfo constructor. Also, ensure the
      alignment rather than overwriting it outright. I vaguely remember
      there was another place to enforce the target minimum alignment, but I
      couldn't find it (it's there for instructions).
      bbd78519
    • Matt Arsenault's avatar
      AMDGPU/GlobalISel: Implement computeKnownAlignForTargetInstr · 95605b78
      Matt Arsenault authored
      We probably need to move where intrinsics are lowered to copies to
      make this useful.
      95605b78
    • Matt Arsenault's avatar
      AMDGPU: Update private null pointer value in documentation · ae5adb8d
      Matt Arsenault authored
      Private pointers used to workaround IR semantics by artifically
      reserving an object at offset 0 so no user object would be allocated
      there. Since alloca now uses a non-0 address space, that workaround is
      unnecssary and 0 can be treated as a valid pointer.
      ae5adb8d
    • Matt Arsenault's avatar
      BypassSlowDivision: Fix dropping debug info · b13f6b0f
      Matt Arsenault authored
      I don't know anything about debug info, but this seems like more work
      should be necessary. This constructs a new IRBuilder and reconstructs
      the original divides rather than moving the original.
      
      One problem this has is if a div/rem pair are handled, both end up
      with the same debugloc. I'm not sure how to fix this, since this uses
      a cache when it sees the same input operands again, which will have
      the first instance's location attached.
      b13f6b0f
    • peter klausler's avatar
      [flang] Roll up small fixes to runtime bugs found in testing · 27505565
      peter klausler authored
      Summary:
      Fix several bugs in the Fortran runtime found in initial
      testing.
      
      Reviewers: tskeith, PeteSteinfeld, sscalpone, jdoerfert, DavidTruby
      
      Reviewed By: tskeith, PeteSteinfeld
      
      Subscribers: llvm-commits, flang-commits
      
      Tags: #flang, #llvm
      
      Differential Revision: https://reviews.llvm.org/D82116
      27505565
    • Amy Kwan's avatar
      [PowerPC][Power10] Implement Parallel Bits Deposit/Extract Builtins in LLVM/Clang · c45c1611
      Amy Kwan authored
      This patch implements builtins for the following prototypes:
      
      vector unsigned long long vec_pdep(vector unsigned long long, vector unsigned long long);
      vector unsigned long long vec_pext(vector unsigned long long, vector unsigned long long __b);
      unsigned long long __builtin_pdepd (unsigned long long, unsigned long long);
      unsigned long long __builtin_pextd (unsigned long long, unsigned long long);
      
      Revision Depends on D80758
      
      Differential Revision: https://reviews.llvm.org/D80935
      c45c1611
    • Matt Arsenault's avatar
      GlobalISel: Fix some artifact combiner worklist inconsistencies · 2ec1267e
      Matt Arsenault authored
      In one case, UpdateDefs was not getting set and a dead SmallVector
      constructed. In another, it was adding new vreg defs to the updated
      set which should be unnecessary. This also wasn't considering the
      multiple defs of G_UNMERGE_VALUES.
      
      Also increase the small vector sizes for merge/unmerge operands to the
      usual semi-arbitrary 8. While debugging these, I'm usually seeing
      merges and unmerges with at least 4 uses/defs.
      
      I haven't run into an actual problem from any of these though.
      2ec1267e
    • Matt Arsenault's avatar
      GlobalISel: Pass LegalizerHelper to custom legalize callbacks · 7f8b2e1b
      Matt Arsenault authored
      This was passing in all the parameters needed to construct a
      LegalizerHelper in the custom legalization, when it's simpler to just
      pass in the existing helper.
      
      This is slightly more annoying to use in the common case where you
      don't need the legalizer helper, but we could add back the common
      parameters back in addition to the helper.
      
      I didn't propagate this to all the internal target changes that this
      logically implies, but did update a sample one for
      legalizeMinNumMaxNum.
      
      This is in preparation for moving AMDGPU load/store legalization
      entirely into custom lowering. The current set of legalization actions
      is really constraining and not really capable of expressing all the
      actions needed to legalize loads/stores. In particular there's no way
      to express when the memory access itself needs to change size vs. the
      result type. There's also a lot of redundancy since the same
      split/widen actions need to be applied in both vector and scalar
      cases. All of the sub-cases logically belong as steps in the legalizer
      helper, but it will be easier to consider everything at once in custom
      lowering.
      7f8b2e1b
    • Vedant Kumar's avatar
      [docs] Specify rules for updating debug locations · b4459b59
      Vedant Kumar authored
      Summary:
      Restructure HowToUpdateDebugInfo.rst to specify rules for when
      transformations should preserve, merge, or drop debug locations.
      
      The goal is to have clear, well-justified rules that come with a few
      examples and counter-examples, so that pass authors can pick the best
      strategy for managing debug locations depending on the specific task at
      hand.
      
      I've tried to set down sensible rules here that mostly align with what
      we already do in llvm today, and that take a diverse set of use cases
      into account (interactive debugging, crash triage, SamplePGO).
      
      Please *do* try to pick these rules apart and suggest clarifications or
      improvements :).
      
      Side note: Prior to 24660ea1, this document was structured as a long
      list of very specific code transformations -- the idea being that we
      would fill in what to do in each specific case. I chose to reorganize
      the document as a list of actions to take because it drastically cuts
      down on the amount of redundant exposition/explanation needed. I hope
      that's fine...
      
      Reviewers: jmorse, aprantl, dblaikie
      
      Subscribers: llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D81198
      b4459b59
    • Jonas Devlieghere's avatar
      [Sphinx] Adjust for source_parsers deprecation in Sphinx 3.0 · 9989e816
      Jonas Devlieghere authored
      Update the Sphinx configuration for the removal of source_parsers in
      Sphinx 3.0. The variable has been deprecated since version 1.8.
      
      > Version 1.8 deprecates and version 3.0 removes the source_parsers
      > configuration variable that was used by older recommonmark versions.
      
      https://www.sphinx-doc.org/en/master/usage/markdown.html
      
      Differential revision: https://reviews.llvm.org/D75284
      9989e816
    • Alex Zinenko's avatar
      [mlir] Update Toy tutorial to use callback-based loop constructors · 68628c94
      Alex Zinenko authored
      We recently introduced support for building loops or loop nests using callbacks
      that populate the body. Use these in the tutorial instead of setInsertionPoint
      manipulations.
      
      Differential Revision: https://reviews.llvm.org/D82104
      68628c94
    • Alex Zinenko's avatar
      [mlir] Refactor affine loop nest builders · 8647a9bc
      Alex Zinenko authored
      Existing implementation of affine loop nest builders relies on EDSC
      ScopedContext, which is not used pervasively. Provide a common OpBuilder-based
      helper function to construct a perfect nest of affine loops with the body of
      the innermost loop populated by a callback. Use this function to implement the
      EDSC version.
      
      Affine "for" loops differ from SCF "for" loops by (1) not allowing to yield
      values and (2) supporting short-hand form for constant bounds, which justifies
      a separate implementation of the loop nest builder for the same of simplicity.
      
      Differential Revision: https://reviews.llvm.org/D81955
      8647a9bc
    • River Riddle's avatar
      [mlir] Allow for patterns to match any root kind. · 80d7ac3b
      River Riddle authored
      Traditionally patterns have always had the root operation kind hardcoded to a specific operation name. This has worked well for quite some time, but it has certain limitations that make it undesirable. For example, some lowering have the same implementation for many different operations types with a few lowering entire dialects using the same pattern implementation. This problem has led to several "solutions":
      a) Provide a template implementation to the user so that they can instantiate it for each operation combination, generally requiring the inclusion of the auto-generated operation definition file.
      b) Use a non-templated pattern that allows for providing the name of the operation to match
        - No one ever does this, because enumerating operation names can be cumbersome and so this quickly devolves into solution a.
      
      This revision removes the restriction that patterns have a hardcoded root type, and allows for a class patterns that could match "any" operation type. The major downside of root-agnostic patterns is that they make certain pattern analyses more difficult, so it is still very highly encouraged that an operation specific pattern be used whenever possible.
      
      Differential Revision: https://reviews.llvm.org/D82066
      80d7ac3b
    • River Riddle's avatar
      [mlir] Refactor RewritePatternMatcher into a new PatternApplicator class. · 3e98fbf4
      River Riddle authored
      This class enables for abstracting more of the details for the rewrite process, and will allow for clients to apply specific cost models to the pattern list. This allows for DialectConversion and the GreedyPatternRewriter to share the same underlying matcher implementation. This also simplifies the plumbing necessary to support dynamic patterns.
      
      Differential Revision: https://reviews.llvm.org/D81985
      3e98fbf4
    • Shuhong Liu's avatar
      [AIX] Split lit test shtest-format into two separate tests and add AIX as... · af8aee7c
      Shuhong Liu authored
      [AIX] Split lit test shtest-format into two separate tests and add AIX as UNSUPPORTED for shtest-format-argv0
      
      Summary: lit test `shtest-format.py` fails on AIX  because one of the subtest of shtest-format requires the tool `[` to be installed under the system PATH. For AIX, `[` is only available as a shell builtin and does not present as an executable file under PATH. Hence, split the original shtest-format into two separate test files and added AIX as UNSUPPORTED for the test using `[` .
      
      Reviewers: daltenty, hubert.reinterpretcast
      
      Reviewed By: hubert.reinterpretcast
      
      Subscribers: delcypher, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D82100
      af8aee7c
    • aartbik's avatar
      [mlir] [integration-test] [LLVMIR] Add reduction intrinsic tests · 01277bc9
      aartbik authored
      Reviewers: ftynse, nicolasvasilache, reidtatge
      
      Reviewed By: nicolasvasilache
      
      Subscribers: mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, stephenneuendorffer, Joonsoo, grosul1, Kayjukh, jurahul, msifontes
      
      Tags: #mlir
      
      Differential Revision: https://reviews.llvm.org/D82117
      01277bc9
    • Christopher Tetreault's avatar
      [SVE] Remove calls to VectorType::getNumElements from Transforms/Utils · 8d11ec66
      Christopher Tetreault authored
      Reviewers: efriedma, c-rhodes, david-arm, Tyker, asbirlea
      
      Reviewed By: david-arm
      
      Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D82057
      8d11ec66
Loading