1. Feb 24, 2022
    • Valentin Clement's avatar
      [flang] Lower complex constant · e9d2f173
      Valentin Clement authored
      Add ability to lower complex constant.
      
      This patch is part of the upstreaming effort from fir-dev branch.
      
      Reviewed By: PeteSteinfeld
      
      Differential Revision: https://reviews.llvm.org/D120402
      
      
      
      Co-authored-by: default avatarKiran Chandramohan <kiran.chandramohan@arm.com>
      Co-authored-by: default avatarEric Schweitz <eschweitz@nvidia.com>
      Co-authored-by: default avatarJean Perier <jperier@nvidia.com>
      e9d2f173
    • Sam McCall's avatar
      [Pseudo] Token/TokenStream, PP directive parser. · 7c1ee5e9
      Sam McCall authored
      The TokenStream class is the representation of the source code that will
      be fed into the GLR parser.
      
      This patch allows a "raw" TokenStream to be built by reading source code.
      It also supports scanning a TokenStream to find the directive structure.
      
      Next steps (with placeholders in the code): heuristically choosing a
      path through #ifs, preprocessing the code by stripping directives and comments.
      These will produce a suitable stream to feed into the parser proper.
      
      Differential Revision: https://reviews.llvm.org/D119162
      7c1ee5e9
    • Augie Fackler's avatar
      AttributorAttributes: avoid a crashing on bad alignments · 70ff6fbe
      Augie Fackler authored
      Prior to this change, LLVM would attempt to optimize an
      aligned_alloc(33, ...) call to the stack. This flunked an assertion when
      trying to emit the alloca, which crashed LLVM. Avoid that with extra
      checks.
      
      Differential Revision: https://reviews.llvm.org/D119604
      70ff6fbe
    • Philip Reames's avatar
      [SLP] Remove cap on schedule window size · 6adf4b03
      Philip Reames authored
      This cap was first added in 848c1aa4 (back in 2015).  Per the original commit message, the purpose was to avoid a compile time explosion in long basic blocks.  The algorithmic problem in scheduling has now been fixed in 0539a26d.
      
      In the meantime, the code has rotten fairly badly.  Some intermediate refactoring caused the size to only be incremented if *both* iterators advance in the window search.  This causes the size to be badly undercounted when near one end of a basic block.  We no longer have any test which exercises the logic in an intentional way; there's one test which differs with this change, but the changes appear fairly orthoganol to the purpose of the test file.
      
      Unfortunately, we no longer have the original motivating example, so it's possible that it also hits some other issue.  I tested locally with a large example, but even at it's worst, that one doesn't demonstrate anything too extreme even without the algorithmic fix.  It's clearly faster with, but only by ~20% which doesn't seem in line with the original commit message.   If regressions with this patch are seen, please file a bug and I'll try to fix any other algorithmic problems which fall out.
      6adf4b03
    • Philipp Stephani's avatar
      clang-format.el: Make clang-format work in indirect buffers. · 2f906683
      Philipp Stephani authored
      In an indirect buffer, buffer-file-name is nil, so check the base buffer
      instead.  This works fine in direct buffers where buffer-base-buffer returns
      nil.
      
      Reviewed By: sammccall
      
      Differential Revision: https://reviews.llvm.org/D120408
      2f906683
  2. Feb 23, 2022