1. Aug 26, 2020
  2. Aug 25, 2020
    • David Tenty's avatar
      [AIX][compiler-rt][builtins] Don't add ppc builtin implementations that require __int128 on AIX · f8454d60
      David Tenty authored
      since __int128 currently isn't supported on AIX.
      
      Reviewed By: hubert.reinterpretcast
      
      Differential Revision: https://reviews.llvm.org/D85972
      f8454d60
    • Sjoerd Meijer's avatar
      [LangRef] Revise semantics of intrinsic get.active.lane.mask · 2002bb48
      Sjoerd Meijer authored
      A first version of get.active.lane.mask was committed in rG7fb8a40e. One of
      the main purposes and uses of this intrinsic is to communicate information from
      the middle-end to the back-end, but its current definition and semantics make
      this actually very difficult. The intrinsic was defined as:
      
        @llvm.get.active.lane.mask(%IV, %BTC)
      
      where %BTC is the Backedge-Taken Count (variable names are different in the
      LangRef spec). This allows to implicitly communicate the loop tripcount, which
      can be reconstructed by calculating BTC + 1. But it has been very difficult to
      prove that calculating BTC + 1 is safe and doesn't overflow. We need
      complicated range and SCEV analysis, and thus the problem is that this
      intrinsic isn't really doing what it was supposed to solve. Examples of the
      overflow checks that are required in the (ARM) back-end are D79175 and D86074,
      which aren't even complete/correct yet.
      
      To solve this problem, we are revising the definitions/semantics for
      get.active.lane.mask to avoid all the complicated overflow analysis. This means
      that instead of communicating the BTC, we are now using the loop tripcount. Now
      using LangRef's variable names, its semantics is changed from:
      
        icmp ule (%base + i), %n
      
      to:
      
        icmp ult (%base + i), %n
      
      with %n > 0 and corresponding to the loop tripcount. The intrinsic signature
      remains the same.
      
      Differential Revision: https://reviews.llvm.org/D86147
      2002bb48