1. Mar 06, 2021
    • Martin Storsjö's avatar
      [libcxx] [test] Fix path.decompose for windows · 1adaf48d
      Martin Storsjö authored
      Add ifdefs to the test reference tables for cases where paths are
      interpreted differently (paths that contain a root name).
      
      Fix test assumptions regarding has_root_name() and is_absolute() and
      add logic to verify the results of is_absolute() for the test cases in
      the table.
      
      Also add a testcase for the path "//net/", which seemed like an
      omission.
      
      Differential Revision: https://reviews.llvm.org/D89943
      1adaf48d
    • Andrzej Warzynski's avatar
      [Utils] Add missing attributes in syntax files · 2da21a1b
      Andrzej Warzynski authored
      Added the following attributes to all LLVM syntax files:
        * allocsize
        * cold
        * convergent
        * dereferenceable_or_null
        * hot
        * inaccessiblemem_or_argmemonly
        * inaccessiblememonly
        * inalloca
        * jumptable
        * nocallback
        * nocf_check
        * noduplicate
        * nofree
        * nomerge
        * noprofile
        * nosync
        * null_pointer_is_valid
        * optforfuzzing
        * preallocated
        * safestack
        * sanitize_hwaddress
        * sanitize_memtag
        * shadowcallstack
        * speculative_load_hardening
        * swifterror
        * syncscope
        * tailcc
        * willreturn
      
      I generated that list by comparing:
        * Attributes.inc (generated from Attributes.td), and
        * the Vim syntax file: llvm/utils/vim/syntax/llvm.vim
      
      My original intention was to focus on the Vim syntax file. Since other
      syntax files are also out-of-date, I added these attributes (if missing)
      to other files as well. Note that in the other sytnax files (i.e. for
      Emacs, VScode and Kate), there will be other attributes missing too.
      
      I've also sorted all attributes alphabetically. Otherwise it's really
      hard to automate adding new attributes. And I think that it was the
      original intent to keep all of them ordered alphabetically.
      
      Differential Revision: https://reviews.llvm.org/D97627
      2da21a1b
    • Nico Weber's avatar
      [mac/lld] Fix scale computation for vector ops in PAGEOFF12 relocations · 210cc073
      Nico Weber authored
      With this, llvm-tblgen no longer tries and fails to allocate 7953 petabyte
      when it runs during the build. Instead, `check-llvm` with lld/mac as host
      linker now completes without any failures on an m1 mac.
      
      This vector op handling code matches what happens in:
      - ld64's OutputFile::applyFixUps() in OutputFile.cpp for kindStoreARM64PageOff12
      - lld.ld64.darwinold's offset12KindFromInstruction() in
        lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp for offset12scale16
      - RuntimeDyld's decodeAddend() in
        llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h for
        ARM64_RELOC_PAGEOFF12
      
      Fixes PR49444.
      
      Differential Revision: https://reviews.llvm.org/D98053
      210cc073
    • LemonBoy's avatar
      [LegalizeDAG] Implement promotion rules for SELECT_CC · 2ec43e41
      LemonBoy authored
      Implement the promotion rule for SELECT_CC nodes by upcasting all the parameters and downcasting the result.
      The AArch64 target makes use of this rule and, since it was not implemented, in some cases the instruction selector would hit an assertion upon encountering the illegal node.
      
      This patch requires D97840, the included test cases hit both problems.
      
      Reviewed By: craig.topper
      
      Differential Revision: https://reviews.llvm.org/D97859
      2ec43e41
    • RamNalamothu's avatar
      [AMDGPU] Do not attempt sgpr spills to vgpr, when it is disabled · 3998a8e7
      RamNalamothu authored
      This covers a path missed in https://reviews.llvm.org/D95768.
      
      Reviewed By: arsenm
      
      Differential Revision: https://reviews.llvm.org/D98013
      3998a8e7
    • Nico Weber's avatar
      [gn build] allow setting clang_base_path to a source-absolute path · 98c6d319
      Nico Weber authored
      With this, you can set `clang_base_path = "//out/gn1"` in `out/gn2/args.gn` and
      the build in out/gn2 will use clang and lld from out/gn1.
      
      Setting `clang_base_path` to an absolute path (with e.g.
      `clang_base_path = getenv("HOME") + "/src/..."`) should behave as before.
      
      Differential Revision: https://reviews.llvm.org/D97989
      98c6d319
    • Nico Weber's avatar
      90085d92
    • Jinsong Ji's avatar
      [PowerPC] Update Copy/Paste encodings according to ISA3.1 · cc21de67
      Jinsong Ji authored
      Copy-paste P9 insns were added back in 2016,
      however, looks like the opcodes has changed in ISA3.1.
      
      Reviewed By: #powerpc, nemanjai
      
      Differential Revision: https://reviews.llvm.org/D97416
      cc21de67
    • gbtozers's avatar
      [DebugInfo] Add DIArgList MD to store multple values in DbgVariableIntrinsics · 65600cb2
      gbtozers authored
      This patch adds a new metadata node, DIArgList, which contains a list of SSA
      values. This node is in many ways similar in function to the existing
      ValueAsMetadata node, with the difference being that it tracks a list instead of
      a single value. Internally, it uses ValueAsMetadata to track the individual
      values, but there is also a reasonable amount of DIArgList-specific
      value-tracking logic on top of that. Similar to ValueAsMetadata, it is a special
      case in parsing and printing due to the fact that it requires a function state
      (as it may reference function-local values).
      
      This patch should not result in any immediate functional change; it allows for
      DIArgLists to be parsed and printed, but debug variable intrinsics do not yet
      recognize them as a valid argument (outside of parsing).
      
      Differential Revision: https://reviews.llvm.org/D88175
      65600cb2
    • Aart Bik's avatar
      [mlir][sparse] mask reduction update · adc35b68
      Aart Bik authored
      Reduction updates should be masked, just like the load and stores.
      Note that alternatively, we could use the fact that masked values are
      zero of += updates and mask invariants to get this working but that
      would not work for *= updates. Masking the update itself is cleanest.
      This change also replaces the constant mask with a broadcast of "true"
      since this constant folds much better for various folding patterns.
      
      Reviewed By: nicolasvasilache
      
      Differential Revision: https://reviews.llvm.org/D98000
      adc35b68
  2. Mar 05, 2021