1. Jun 22, 2022
  2. Jun 21, 2022
    • Mark de Wever's avatar
      [libc++] Improve charconv base10 algorithm. · 3561ee58
      Mark de Wever authored
      This change is a preparation to add the 128-bit integral output.
      
      Before
      ```
      --------------------------------------------------------------
      Benchmark                    Time             CPU   Iterations
      --------------------------------------------------------------
      BM_to_chars_good/2        20.1 ns         20.1 ns     35045000
      BM_to_chars_good/3         117 ns          117 ns      5916000
      BM_to_chars_good/4        83.7 ns         83.7 ns      8401000
      BM_to_chars_good/5        70.6 ns         70.6 ns      9915000
      BM_to_chars_good/6        59.9 ns         59.9 ns     11678000
      BM_to_chars_good/7        53.9 ns         53.8 ns     12995000
      BM_to_chars_good/8        19.0 ns         19.0 ns     37110000
      BM_to_chars_good/9        45.9 ns         45.8 ns     15278000
      BM_to_chars_good/10       9.24 ns         9.24 ns     75343000
      BM_to_chars_good/11       42.6 ns         42.6 ns     16449000
      BM_to_chars_good/12       38.8 ns         38.8 ns     18101000
      BM_to_chars_good/13       38.8 ns         38.8 ns     17999000
      BM_to_chars_good/14       37.7 ns         37.6 ns     18571000
      BM_to_chars_good/15       35.8 ns         35.8 ns     19660000
      BM_to_chars_good/16       15.4 ns         15.4 ns     46129000
      BM_to_chars_good/17       32.3 ns         32.3 ns     21763000
      BM_to_chars_good/18       32.8 ns         32.8 ns     21396000
      BM_to_chars_good/19       33.4 ns         33.4 ns     21078000
      BM_to_chars_good/20       33.3 ns         33.3 ns     21020000
      BM_to_chars_good/21       32.3 ns         32.3 ns     21807000
      BM_to_chars_good/22       31.6 ns         31.6 ns     22057000
      BM_to_chars_good/23       30.7 ns         30.7 ns     22938000
      BM_to_chars_good/24       28.3 ns         28.3 ns     24659000
      BM_to_chars_good/25       28.2 ns         28.2 ns     24790000
      BM_to_chars_good/26       28.4 ns         28.4 ns     24410000
      BM_to_chars_good/27       28.7 ns         28.7 ns     24423000
      BM_to_chars_good/28       28.9 ns         28.9 ns     24139000
      BM_to_chars_good/29       28.9 ns         28.9 ns     24347000
      BM_to_chars_good/30       29.2 ns         29.2 ns     24141000
      BM_to_chars_good/31       29.6 ns         29.6 ns     23699000
      BM_to_chars_good/32       29.5 ns         29.5 ns     23933000
      BM_to_chars_good/33       28.9 ns         28.9 ns     24042000
      BM_to_chars_good/34       28.7 ns         28.7 ns     24361000
      BM_to_chars_good/35       28.3 ns         28.3 ns     24703000
      BM_to_chars_good/36       28.1 ns         28.1 ns     24924000
      BM_to_chars_bad/2         6.16 ns         6.15 ns    114101000
      BM_to_chars_bad/3         14.5 ns         14.5 ns     48244000
      BM_to_chars_bad/4         16.9 ns         16.9 ns     41974000
      BM_to_chars_bad/5         12.5 ns         12.5 ns     56080000
      BM_to_chars_bad/6         10.9 ns         10.9 ns     64036000
      BM_to_chars_bad/7         14.5 ns         14.5 ns     47294000
      BM_to_chars_bad/8         6.36 ns         6.35 ns    110430000
      BM_to_chars_bad/9         12.4 ns         12.4 ns     56448000
      BM_to_chars_bad/10        5.13 ns         5.13 ns    137596000
      BM_to_chars_bad/11        9.88 ns         9.88 ns     69015000
      BM_to_chars_bad/12        10.8 ns         10.8 ns     63990000
      BM_to_chars_bad/13        10.7 ns         10.7 ns     65066000
      BM_to_chars_bad/14        9.71 ns         9.71 ns     71775000
      BM_to_chars_bad/15        9.18 ns         9.18 ns     75267000
      BM_to_chars_bad/16        6.12 ns         6.12 ns    115000000
      BM_to_chars_bad/17        10.7 ns         10.7 ns     65504000
      BM_to_chars_bad/18        10.6 ns         10.6 ns     65685000
      BM_to_chars_bad/19        9.98 ns         9.98 ns     69894000
      BM_to_chars_bad/20        9.74 ns         9.74 ns     72098000
      BM_to_chars_bad/21        9.25 ns         9.25 ns     75184000
      BM_to_chars_bad/22        9.10 ns         9.10 ns     75602000
      BM_to_chars_bad/23        9.48 ns         9.48 ns     72824000
      BM_to_chars_bad/24        9.27 ns         9.27 ns     75112000
      BM_to_chars_bad/25        9.61 ns         9.61 ns     72080000
      BM_to_chars_bad/26        9.72 ns         9.72 ns     72178000
      BM_to_chars_bad/27        10.0 ns         10.0 ns     69733000
      BM_to_chars_bad/28        10.3 ns         10.3 ns     67409000
      BM_to_chars_bad/29        9.97 ns         9.97 ns     69193000
      BM_to_chars_bad/30        10.1 ns         10.1 ns     69007000
      BM_to_chars_bad/31        9.68 ns         9.68 ns     72232000
      BM_to_chars_bad/32        8.99 ns         8.99 ns     76825000
      BM_to_chars_bad/33        8.82 ns         8.82 ns     79293000
      BM_to_chars_bad/34        8.64 ns         8.64 ns     80441000
      BM_to_chars_bad/35        8.96 ns         8.96 ns     75320000
      BM_to_chars_bad/36        8.87 ns         8.87 ns     77293000
      
      ```
      
      After
      ```
      --------------------------------------------------------------
      Benchmark                    Time             CPU   Iterations
      --------------------------------------------------------------
      BM_to_chars_good/2        14.7 ns         14.7 ns     47583000
      BM_to_chars_good/3         101 ns          101 ns      6901000
      BM_to_chars_good/4        68.4 ns         68.4 ns     10088000
      BM_to_chars_good/5        58.2 ns         58.2 ns     12007000
      BM_to_chars_good/6        51.1 ns         51.1 ns     13687000
      BM_to_chars_good/7        45.6 ns         45.6 ns     15323000
      BM_to_chars_good/8        14.6 ns         14.6 ns     47795000
      BM_to_chars_good/9        40.7 ns         40.7 ns     17371000
      BM_to_chars_good/10       7.48 ns         7.48 ns     90931000
      BM_to_chars_good/11       37.6 ns         37.6 ns     18542000
      BM_to_chars_good/12       35.2 ns         35.2 ns     19922000
      BM_to_chars_good/13       34.9 ns         34.9 ns     20105000
      BM_to_chars_good/14       33.5 ns         33.5 ns     20863000
      BM_to_chars_good/15       31.9 ns         31.9 ns     22014000
      BM_to_chars_good/16       11.7 ns         11.7 ns     60012000
      BM_to_chars_good/17       28.9 ns         28.9 ns     24148000
      BM_to_chars_good/18       29.0 ns         29.0 ns     24317000
      BM_to_chars_good/19       28.7 ns         28.7 ns     24363000
      BM_to_chars_good/20       28.1 ns         28.1 ns     24899000
      BM_to_chars_good/21       27.5 ns         27.5 ns     25499000
      BM_to_chars_good/22       26.9 ns         26.9 ns     25929000
      BM_to_chars_good/23       26.2 ns         26.2 ns     26828000
      BM_to_chars_good/24       25.1 ns         25.1 ns     27742000
      BM_to_chars_good/25       25.3 ns         25.3 ns     27720000
      BM_to_chars_good/26       25.2 ns         25.2 ns     27789000
      BM_to_chars_good/27       25.3 ns         25.3 ns     27777000
      BM_to_chars_good/28       25.3 ns         25.3 ns     27643000
      BM_to_chars_good/29       25.3 ns         25.3 ns     27750000
      BM_to_chars_good/30       25.4 ns         25.4 ns     27566000
      BM_to_chars_good/31       25.4 ns         25.4 ns     27611000
      BM_to_chars_good/32       25.8 ns         25.8 ns     27218000
      BM_to_chars_good/33       25.7 ns         25.7 ns     27070000
      BM_to_chars_good/34       26.1 ns         26.1 ns     26693000
      BM_to_chars_good/35       26.4 ns         26.4 ns     26486000
      BM_to_chars_good/36       26.3 ns         26.3 ns     26619000
      BM_to_chars_bad/2         5.99 ns         5.99 ns    118787000
      BM_to_chars_bad/3         14.3 ns         14.3 ns     48567000
      BM_to_chars_bad/4         16.0 ns         16.0 ns     43239000
      BM_to_chars_bad/5         12.6 ns         12.6 ns     55354000
      BM_to_chars_bad/6         10.7 ns         10.7 ns     65491000
      BM_to_chars_bad/7         14.4 ns         14.4 ns     48723000
      BM_to_chars_bad/8         6.50 ns         6.50 ns    104967000
      BM_to_chars_bad/9         12.0 ns         12.0 ns     56552000
      BM_to_chars_bad/10        5.16 ns         5.16 ns    136380000
      BM_to_chars_bad/11        10.5 ns         10.5 ns     66764000
      BM_to_chars_bad/12        10.7 ns         10.7 ns     65534000
      BM_to_chars_bad/13        11.0 ns         11.0 ns     63426000
      BM_to_chars_bad/14        9.90 ns         9.90 ns     68575000
      BM_to_chars_bad/15        9.52 ns         9.52 ns     70932000
      BM_to_chars_bad/16        6.14 ns         6.14 ns    111762000
      BM_to_chars_bad/17        10.6 ns         10.6 ns     65883000
      BM_to_chars_bad/18        10.5 ns         10.5 ns     67606000
      BM_to_chars_bad/19        9.96 ns         9.96 ns     68898000
      BM_to_chars_bad/20        9.40 ns         9.41 ns     73116000
      BM_to_chars_bad/21        9.12 ns         9.12 ns     78647000
      BM_to_chars_bad/22        8.95 ns         8.95 ns     80211000
      BM_to_chars_bad/23        9.50 ns         9.49 ns     73571000
      BM_to_chars_bad/24        9.29 ns         9.29 ns     74690000
      BM_to_chars_bad/25        9.65 ns         9.65 ns     72877000
      BM_to_chars_bad/26        9.78 ns         9.78 ns     70171000
      BM_to_chars_bad/27        10.1 ns         10.1 ns     69543000
      BM_to_chars_bad/28        10.4 ns         10.4 ns     67582000
      BM_to_chars_bad/29       10.00 ns        10.00 ns     70806000
      BM_to_chars_bad/30        9.99 ns         9.99 ns     70340000
      BM_to_chars_bad/31        9.56 ns         9.56 ns     74159000
      BM_to_chars_bad/32        8.97 ns         8.97 ns     78052000
      BM_to_chars_bad/33        8.86 ns         8.86 ns     78586000
      BM_to_chars_bad/34        8.81 ns         8.81 ns     78562000
      BM_to_chars_bad/35        8.90 ns         8.90 ns     77384000
      BM_to_chars_bad/36        9.04 ns         9.04 ns     77263000
      
      ```
      
      Reviewed By: #libc, ldionne
      
      Differential Revision: https://reviews.llvm.org/D127764
      3561ee58
    • Mark de Wever's avatar
      [libc++][format] Improves the handle test. · 5517bc6c
      Mark de Wever authored
      A formatter using a handle only needs to satisfy the BasicFormatter
      requirements. The current test allowed more than that minimum. Changed
      it to the minimum to make sure it works.
      
      This was due to a post-commit review comment of @vitaut in D121530.
      
      Reviewed By: ldionne, vitaut, #libc
      
      Differential Revision: https://reviews.llvm.org/D127767
      5517bc6c
    • Mircea Trofin's avatar
      [FunctionPropertiesAnalysis] Generalize support for unreachable · 3f8e4169
      Mircea Trofin authored
      Generalized support for subgraphs that get rendered unreachable, for
      both `call` and `invoke` cases.
      
      Differential Revision: https://reviews.llvm.org/D127921
      3f8e4169
    • David Green's avatar
      [AArch64] Move add_and_or_is_add pattern. NFC · 939c5709
      David Green authored
      This just moves the add_and_or_is_add further up in the file, so that it
      can be shared with SVE as in D128159.
      939c5709
    • Nabeel Omer's avatar
      Revert rGe6ccb57b "[SLP] Add cost model for... · 4c5f10ae
      Nabeel Omer authored
      Revert rGe6ccb57b "[SLP] Add cost model for `llvm.powi.*` intrinsics"
      
      This reverts commit e6ccb57b.
      4c5f10ae
    • Pavel Labath's avatar
      [lldb] Skip Recognizer/assert.test on linux · 1004d6e7
      Pavel Labath authored
      -> PR56144
      1004d6e7
    • Jonas Paulsson's avatar
      [SystemZ] Fix the cost function for vector zero extend. · bfca9a0b
      Jonas Paulsson authored
      Zero extend of a vector is done with either a single unpack or a vector
      permute, and the TTI cost function should reflect this.
      
      Review: Ulrich Weigand
      bfca9a0b
    • Nabeel Omer's avatar
      [SLP] Add cost model for `llvm.powi.*` intrinsics · e6ccb57b
      Nabeel Omer authored
      This patch adds handling for the llvm.powi.* intrinsics in
      BasicTTIImplBase::getIntrinsicInstrCost() and improves vectorization.
      Closes #53887.
      
      Differential Revision: https://reviews.llvm.org/D128172
      e6ccb57b
    • Jan Svoboda's avatar
      [llvm][vfs] Implement in-memory symlinks · a44c6453
      Jan Svoboda authored
      This patch implements symlinks for the in-memory VFS. Original author: @erik.pilkington.
      
      Depends on D117648 & D117649.
      
      Reviewed By: sammccall
      
      Differential Revision: https://reviews.llvm.org/D117650
      a44c6453
    • Jan Svoboda's avatar
    • Jan Svoboda's avatar
    • Jan Svoboda's avatar
    • Alexey Bataev's avatar
      [SLP]Fix a crash when insert subvector is out of range. · f1ee2738
      Alexey Bataev authored
      If the OffsetBeg + InsertVecSz is greater than VecSz, need to estimate
      the cost as shuffle of 2 vector, not as insert of subvector. Otherwise,
      the inserted subvector is out of range and compiler may crash.
      
      Differential Revision: https://reviews.llvm.org/D128071
      f1ee2738
    • Simon Pilgrim's avatar
      [X86] fold (and (mul x, c1), c2) -> (mul x, (and c1, c2)) iff c2 is all/no bits mask · ac4cb177
      Simon Pilgrim authored
      Noticed on D128216 - if we're zeroing out vector elements of a mul/mulh result then see if we can merge the and-mask into the mul by just multiplying by zero.
      
      Ideally we'd make this generic (similar to the existing foldSelectWithIdentityConstant?), but these cases are appearing very late, after the constants have been lowered to constant-pool loads.
      ac4cb177
    • LLVM GN Syncbot's avatar
      [gn build] Port 6a4056ab · beb85805
      LLVM GN Syncbot authored
      beb85805
    • Florian Hahn's avatar
      [ConstraintElimination] Remove unneeded StackEntry::Condition (NFC). · 4ea6891f
      Florian Hahn authored
      The field was only used for debug printing. Print constraint from the
      system instead.
      4ea6891f
    • Nico Weber's avatar
      6a4056ab
    • Jay Foad's avatar
      [AMDGPU] Update SPI_SHADER_PGM_RSRC2_PS.EXTRA_LDS_SIZE for GFX11 · 929a8ad2
      Jay Foad authored
      The granularity of SPI_SHADER_PGM_RSRC2_PS.EXTRA_LDS_SIZE changed
      in GFX11. It is now in units of 256 dwords instead of 128 dwords.
      
      COMPUTE_PGM_RSRC2.LDS_SIZE is unaffected. It is still in units of
      128 dwords.
      
      Differential Revision: https://reviews.llvm.org/D128179
      929a8ad2
    • Benjamin Kramer's avatar
    • David Spickett's avatar
      Revert "[CMake] Enable LLVM_ENABLE_PER_TARGET_RUNTIME_DIR by default on Linux" · 90c9d41c
      David Spickett authored
      This reverts commit 311f7839.
      
      Due to not working for Arm where arm and armhf configs are built.
      90c9d41c
    • Emre Kultursay's avatar
      Support expressions in the context of a reference · 6a85b9d1
      Emre Kultursay authored
      ...type variable by dereferencing the variable before
      evaluating the expression.
      
      Reviewed By: labath
      
      Differential Revision: https://reviews.llvm.org/D128126
      6a85b9d1
    • Nikita Popov's avatar
      [GlobalsModRef] Remove check for allocator calls · ed63fcb2
      Nikita Popov authored
      As the FIXME already indicates, I don't see why this code would be
      necessary. If there's a call to an allocator function, that should
      get treated just like any other function call -- usually it will be
      a declaration and handled conservatively based on memory attributes
      only. There should be no need to explicitly force it to be modref.
      No test failures either, so I think this is just dead code.
      
      Differential Revision: https://reviews.llvm.org/D127273
      ed63fcb2
    • Nicolas Vasilache's avatar
      [mlir][Linalg] Split reduction transform op · f439b319
      Nicolas Vasilache authored
      This revision separates the `LinalgSplitReduction` pattern, whose application is based on attributes,
      from its implementation.
      A transform dialect op extension is added to control the application of the transformation at a finer granularity.
      
      Differential Revision: https://reviews.llvm.org/D128165
      f439b319
    • David Spickett's avatar
      [llvm] Disable LLVM_ENABLE_PER_TARGET_RUNTIME_DIR for Arm Linux · 716e27bc
      David Spickett authored
      I did this before but the other change got reverted and relanded
      recently.
      
      arm vs armhf isn't handled correctly so this setting doesn't work
      for 32 bit Arm Linux. Causing failures like:
      https://lab.llvm.org/buildbot/#/builders/178/builds/2293
      716e27bc
    • LLVM GN Syncbot's avatar
      [gn build] Port 6ede6520 · 6904309c
      LLVM GN Syncbot authored
      6904309c