1. Aug 05, 2020
  2. Aug 04, 2020
    • Florian Hahn's avatar
      [docs] Mention LLVM_ENABLE_MODULES. · 05aa29ef
      Florian Hahn authored
      05aa29ef
    • Matt Arsenault's avatar
      GlobalISel: Hack a test to avoid a bug introducing a verifier error · 444401c3
      Matt Arsenault authored
      There seems to be an unrelated CSEMIRBuilder bug that was causing
      expensive checks failures in this case. Hack the test to avoid this
      problem for now until that's fixed.
      444401c3
    • Fangrui Song's avatar
      [llvm-symbolizer] Switch command line parsing from llvm::cl to OptTable · 593e1962
      Fangrui Song authored
      for the advantage outlined by D83639 ([OptTable] Support grouped short options)
      
      Some behavior changes:
      
      * -i={0,false} is removed. Use --no-inlines instead.
      * --demangle={0,false} is removed. Use --no-demangle instead
      * -untag-addresses={0,false} is removed. Use --no-untag-addresses instead
      
      Added a higher level API OptTable::parseArgs which handles optional
      initial options populated from an environment variable, expands response
      files recursively, and parses options.
      
      Reviewed By: jhenderson
      
      Differential Revision: https://reviews.llvm.org/D83530
      593e1962
    • AndreyChurbanov's avatar
      [OpenMP] Don't use MSVC workaround with MinGW · 4a04bc89
      AndreyChurbanov authored
      Patch by mati865@gmail.com
      
      Differential Revision: https://reviews.llvm.org/D85210
      4a04bc89
    • Yonghong Song's avatar
      [clang][BPF] support type exist/size and enum exist/value relocations · 6d675069
      Yonghong Song authored
      This patch added the following additional compile-once
      run-everywhere (CO-RE) relocations:
        - existence/size of typedef, struct/union or enum type
        - enum value and enum value existence
      
      These additional relocations will make CO-RE bpf programs more
      adaptive for potential kernel internal data structure changes.
      
      For existence/size relocations, the following two code patterns
      are supported:
        1. uint32_t __builtin_preserve_type_info(*(<type> *)0, flag);
        2. <type> var;
           uint32_t __builtin_preserve_field_info(var, flag);
      flag = 0 for existence relocation and flag = 1 for size relocation.
      
      For enum value existence and enum value relocations, the following code
      pattern is supported:
        uint64_t __builtin_preserve_enum_value(*(<enum_type> *)<enum_value>,
                                               flag);
      flag = 0 means existence relocation and flag = 1 for enum value.
      relocation. In the above <enum_type> can be an enum type or
      a typedef to enum type. The <enum_value> needs to be an enumerator
      value from the same enum type. The return type is uint64_t to
      permit potential 64bit enumerator values.
      
      Differential Revision: https://reviews.llvm.org/D83242
      6d675069
    • Nemanja Ivanovic's avatar
      [PowerPC] Don't remove single swap between the load and store · 14d726ac
      Nemanja Ivanovic authored
      The swap removal pass looks to remove swaps when a loaded value is swapped, some
      number of lane-insensitive operations are performed and then the value is
      swapped again and stored.
      
      However, in a situation where we load the value, swap it and then store it
      without swapping again, the pass erroneously removes the single swap. The
      reason is that both checks in the same equivalence class:
      
      - load feeds a swap
      - swap feeds a store
      
      pass. However, there is no check that the two swaps are actually a single swap.
      This patch just fixes that.
      
      Differential revision: https://reviews.llvm.org/D84785
      14d726ac
    • Simon Pilgrim's avatar
    • Simon Pilgrim's avatar
      cc0b670a
    • Jay Foad's avatar
      [PowerPC] Custom lowering for funnel shifts · 28e322ea
      Jay Foad authored
      The custom lowering saves an instruction over the generic expansion, by
      taking advantage of the fact that PowerPC shift instructions are well
      defined in the shift-by-bitwidth case.
      
      Differential Revision: https://reviews.llvm.org/D83948
      28e322ea
    • Jordan Rupprecht's avatar
      [test] Use abspath instead of realpath sometimes · 817b3a6f
      Jordan Rupprecht authored
      In these two cases, use of `os.path.realpath` is problematic:
      
      - The name of the compiler is significant [1] . For testing purposes, we might
        provide a compiler called "clang" which is actually a symlink to some build
        script (which does some flag processing before invoking the real clang). The
        destination the symlink may not be called "clang", but we still want it to be
        treated as such.
      - When using a build system that puts build artifacts in an arbitrary build
        location, and later creates a symlink for it (e.g. creates a
        "<lldb root>/lldbsuite/test/dotest.py" symlinks that points to
        "/build/artifact/<hash>/dotest.py"), looking at the realpath will not match
        the "test" convention required here.
      
      [1] See `Makefile.rules` in the lldb tree, e.g. we use different flags if the compiler is named "clang"
      
      Reviewed By: JDevlieghere
      
      Differential Revision: https://reviews.llvm.org/D85175
      817b3a6f
    • Jay Foad's avatar
      [AMDGPU] Use fma for lowering frem · 8ec8ad86
      Jay Foad authored
      This gives shorter f64 code and perhaps better accuracy.
      
      Differential Revision: https://reviews.llvm.org/D84516
      8ec8ad86