1. Dec 24, 2023
    • Kazu Hirata's avatar
      [llvm] Use StringRef::contains (NFC) · 1daf2994
      Kazu Hirata authored
      1daf2994
    • Shengchen Kan's avatar
      [X86][NFC] Not infer OpSize from Xi8|16|32|64 · 17ff25a5
      Shengchen Kan authored
      For legacy (arithmetic) instructions, the operand size override prefix (0x66)
      is used to switch the operand data size from 32b to 16b (in 32/64-bit mode),
      16b to 32b (in 16-bit mode). That's why we set OpSize16 for 16-bit instructions
      and set OpSize32 for 32-bit instructions.
      
      But it's not a generic rule any more after APX. APX adds 4 variants for
      arithmetic instructions: promoted EVEX, NDD (new data destination), NF (no flag),
      NF_NDD. All the 4 variants are in EVEX space and only legal in 64-bit
      mode. EVEX.pp is set to 01 for the 16-bit instructions to encode 0x66.
      For APX, we should set OpSizeFixed for 8/16/32/64-bit variants and set PD for
      the 16-bit variants.
      
      Hence, to reuse the classes ITy and its subclasses BinOp* for APX instructions,
      we extract the OpSize setting from the class ITy.
      17ff25a5
    • Shengchen Kan's avatar
      [X86][NFC] Set default OpPrefix to PS for XOP/VEX/EVEX instructions · 6e20df1a
      Shengchen Kan authored
      It helps simplify the class definitions. Now, the only explicit usage of PS is
      to check prefix 0x66/0xf2/0xf3 can not be used a prefix, e.g. wbinvd.
      
      See 82974e01 for more details.
      6e20df1a
    • Vitaly Buka's avatar
      0e07bf91
    • Rik Huijzer's avatar
      [mlir][doc] Escape effects, interfaces, and traits (#76297) · 061e4f24
      Rik Huijzer authored
      Fixes https://github.com/llvm/llvm-project/issues/76270
      
      .
      
      Thanks to @scottamain for the clear description.
      
      
      Co-authored-by: default avatarScott Main <scott@modular.com>
      061e4f24
    • Felipe de Azevedo Piovezan's avatar
      [LiveDebugValues][nfc] Reduce memory usage of InstrRef (#76051) · acacec3b
      Felipe de Azevedo Piovezan authored
      Commit 1b531d54 (#74203) removed the usage of unique_ptrs of arrays
      in favour of using vectors, but inadvertently increased peak memory
      usage by removing the ability to deallocate vector memory that was no
      longer needed mid-LDV.
      
      In that same review, it was pointed out that `FuncValueTable` typedef
      could be removed, since it was "just a vector".
      
      This commit addresses both issues by making `FuncValueTable` a real data
      structure, capable of mapping BBs to ValueTables and able to free
      ValueTables as needed.
      
      This reduces peak memory usage in the compiler by 10% in the benchmarks
      flagged by the original review.
      
      As a consequence, we had to remove a handful of instances of the
      "declare-then-initialize" antipattern in unittests, as the
      FuncValueTable class is no longer default-constructible.
      acacec3b
  2. Dec 23, 2023
  3. Dec 22, 2023