1. Feb 12, 2021
    • Craig Topper's avatar
      [RISCV] Add support loads, stores, and splats of vXi1 fixed vectors. · 033b1bd1
      Craig Topper authored
      This refines how we determine which masks types are legal and adds
      support for loads, stores, and all ones/zeros splats.
      
      I left a fixme in store handling where I think we need to zero
      extra bits if the type isn't a multiple of a byte. If I remember
      right from X86 there was some case we could have a store of a
      1, 2, or 4 bit mask and have a scalar zextload that then expected the
      bits to be 0. Its tricky to zero the bits with RVV. We need to do
      something like round VL up, zero a register, lower the VL back down,
      then do a tail undisturbed move into the zero register. Another
      option might be to generate a mask of 1/2/4 bits set with a VL of 8
      and use that to mask off the bits.
      
      Reviewed By: frasercrmck
      
      Differential Revision: https://reviews.llvm.org/D96468
      033b1bd1
    • Simon Pilgrim's avatar
      [DAG] foldLogicOfSetCCs - Generalize and/or (setcc X, CMax, ne), (setcc X, CMin, ne/eq) fold. NFCI. · 5beebf9c
      Simon Pilgrim authored
      Prep work to add support for non-uniform vectors - replace APInt values with using the SDValue ops directly.
      5beebf9c
    • Mark de Wever's avatar
      [libc++][format] Add basic_format_parse_context. · 38ddeade
      Mark de Wever authored
      Implements parts of:
      - P0645 Text Formatting
      
      Depends on D92214
      
      Reland with changes:
      The format header will only be compiled if the compiler used has support
      for concepts. This should fix the issues with the initial version.
      
      Differential Revision: https://reviews.llvm.org/D93166
      38ddeade
    • Nico Weber's avatar
      [gn build] Port 7e3b9aba · 1739e7ed
      Nico Weber authored
      1739e7ed
    • clementval's avatar
      Revert "[flang][fir][NFC] Move BoxType to TableGen type definition" · 661f9e2a
      clementval authored
      This reverts commit d96bb48f.
      661f9e2a
    • Yonghong Song's avatar
      BPF: Implement TTI.IntImmCost() properly · a260ae71
      Yonghong Song authored
      This patch implemented TTI.IntImmCost() properly.
      Each BPF insn has 32bit immediate space, so for any immediate
      which can be represented as 32bit signed int, the cost
      is technically free. If an int cannot be presented as
      a 32bit signed int, a ld_imm64 instruction is needed
      and a TCC_Basic is returned.
      
      This change is motivated when we observed that
      several bpf selftests failed with latest llvm trunk, e.g.,
        #10/16 strobemeta.o:FAIL
        #10/17 strobemeta_nounroll1.o:FAIL
        #10/18 strobemeta_nounroll2.o:FAIL
        #10/19 strobemeta_subprogs.o:FAIL
        #96 snprintf_btf:FAIL
      
      The reason of the failure is due to that
      SpeculateAroundPHIsPass did aggressive transformation
      which alters control flow for which currently verifer
      cannot handle well. In llvm12, SpeculateAroundPHIsPass
      is not called.
      
      SpeculateAroundPHIsPass relied on TTI.getIntImmCost()
      and TTI.getIntImmCostInst() for profitability
      analysis. This patch implemented TTI.getIntImmCost()
      properly for BPF backend which also prevented
      transformation which caused the above test failures.
      
      Differential Revision: https://reviews.llvm.org/D96448
      a260ae71
    • Alex Hoppen's avatar
      [Timer] On macOS count number of executed instructions · 7e3b9aba
      Alex Hoppen authored
      In addition to wall time etc. this should allow us to get less noisy
      values for time measurements.
      
      Reviewed By: JDevlieghere
      
      Differential Revision: https://reviews.llvm.org/D96049
      7e3b9aba
    • Valentin Clement's avatar
      [flang][fir][NFC] Move BoxType to TableGen type definition · d96bb48f
      Valentin Clement authored
      This patch is a follow up of D96422 and move BoxType to TableGen.
      
      Reviewed By: mehdi_amini
      
      Differential Revision: https://reviews.llvm.org/D96476
      d96bb48f
    • Raphael Isemann's avatar
      [lldb] Fix that running a top level expression without a process fails with a cryptic error · 71536fd0
      Raphael Isemann authored
      Right now when running `expr --top-level -- void foo() {}`, LLDB just prints a cryptic
      `error: Couldn't find $__lldb_expr() in the module` error. The reason for that is
      that if we don't have a running process, we try to set our execution policy to always use the
      IR interpreter (ExecutionPolicyNever) which works even without a process. However
      that code didn't consider the special ExecutionPolicyTopLevel which we use for
      top-level expressions. By changing the execution policy to ExecutionPolicyNever,
      LLDB thinks we're actually trying to interpret a normal expression inside our
      `$__lldb_expr` function and then fails when looking for it.
      
      This just adds an exception for top-level expressions to that code and a bunch of tests.
      
      Reviewed By: shafik
      
      Differential Revision: https://reviews.llvm.org/D91723
      71536fd0
  2. Feb 11, 2021