1. Sep 03, 2021
  2. Sep 02, 2021
    • Craig Topper's avatar
      [RISCV] Add Zba command line to rv64i-exhaustive-w-insts.ll · 498e8ae4
      Craig Topper authored
      Zba adds a zext.w pseudoinstruction using ADDUW. This can simplify
      the generated code for many of these tests.
      
      There are at least 2 suboptimal cases in this config that I've marked
      with TODOs.
      498e8ae4
    • Craig Topper's avatar
      [RISCV] Remove stale TODOs from test. NFC · eaa56058
      Craig Topper authored
      These were fixed by D106230.
      eaa56058
    • Nico Weber's avatar
      Try to unbreak lldb build after 97351982 · 7f544f76
      Nico Weber authored
      7f544f76
    • Wenlei He's avatar
      [CSSPGO] Honor preinliner decision for ThinLTO importing · a2768b47
      Wenlei He authored
      When pre-inliner decision is used for CSSPGO, we should take that into account for ThinLTO importing as well, so post-link sample loader inliner can favor that decision. This is handled by a small tweak in this patch. It also includes a change to transfer preinliner decision when merging context.
      
      Differential Revision: https://reviews.llvm.org/D109088
      a2768b47
    • Kristóf Umann's avatar
      Revert "[analyzer][NFCI] Allow clients of NoStateChangeFuncVisitor to check... · 3891b45a
      Kristóf Umann authored
      Revert "[analyzer][NFCI] Allow clients of NoStateChangeFuncVisitor to check entire function calls, rather than each ExplodedNode in it"
      
      This reverts commit 7d0e62bf.
      3891b45a
    • Ivan Zhechev's avatar
      [flang] Fix non-deterministic line output function · e962718d
      Ivan Zhechev authored
      The evaluation order for the `|` operator is undefined
      (in contrast to the short-circuiting `||` operator). The arguments are
      stored in variables to force a specific evaluation order.
      
      A test in D107575 relies on this change.
      
      Reviewed By: kiranchandramohan, klausler
      
      Differential Revision: https://reviews.llvm.org/D108623
      e962718d
    • Bradley Smith's avatar
      [AArch64][SVE] Workaround incorrect types when lowering fixed length gather/scatter · 14e1a4a6
      Bradley Smith authored
      When lowering a fixed length gather/scatter the index type is assumed to
      be the same as the memory type, this is incorrect in cases where the
      extension of the index has been folded into the addressing mode.
      
      For now add a temporary workaround to fix the codegen faults caused by
      this by preventing the removal of this extension. At a later date the
      lowering for SVE gather/scatters will be redesigned to improve the way
      addressing modes are handled.
      
      As a short term side effect of this change, the addressing modes
      generated for fixed length gather/scatters will not be optimal.
      
      Differential Revision: https://reviews.llvm.org/D109145
      14e1a4a6
    • Jinsong Ji's avatar
      3fd27ec7
    • Kristóf Umann's avatar
      [analyzer][NFCI] Allow clients of NoStateChangeFuncVisitor to check entire... · 7d0e62bf
      Kristóf Umann authored
      [analyzer][NFCI] Allow clients of NoStateChangeFuncVisitor to check entire function calls, rather than each ExplodedNode in it
      
      D105553 added NoStateChangeFuncVisitor, an abstract class to aid in creating
      notes such as "Returning without writing to 'x'", or "Returning without changing
      the ownership status of allocated memory". Its clients need to define, among
      other things, what a change of state is.
      
      For code like this:
      
      f() {
        g();
      }
      
      foo() {
        f();
        h();
      }
      
      We'd have a path in the ExplodedGraph that looks like this:
      
                   -- <g> -->
                  /          \
               ---     <f>    -------->        --- <h> --->
              /                        \      /            \
      --------        <foo>             ------    <foo>     -->
      
      When we're interested in whether f neglected to change some property,
      NoStateChangeFuncVisitor asks these questions:
      
                             ÷×~
                      -- <g> -->
                 ß   /          \$    @&#*
                  ---     <f>    -------->        --- <h> --->
                 /                        \      /            \
         --------        <foo>             ------    <foo>     -->
      
      Has anything changed in between # and *?
      Has anything changed in between & and *?
      Has anything changed in between @ and *?
      ...
      Has anything changed in between $ and *?
      Has anything changed in between × and ~?
      Has anything changed in between ÷ and ~?
      ...
      Has anything changed in between ß and *?
      ...
      This is a rather thorough line of questioning, which is why in D105819, I was
      only interested in whether state *right before* and *right after* a function
      call changed, and early returned to the CallEnter location:
      
      if (!CurrN->getLocationAs<CallEnter>())
        return;
      Except that I made a typo, and forgot to negate the condition. So, in this
      patch, I'm fixing that, and under the same hood allow all clients to decide to
      do this whole-function check instead of the thorough one.
      
      Differential Revision: https://reviews.llvm.org/D108695
      7d0e62bf