Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/llvm/llvm-project.git. Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
  1. Apr 08, 2022
  2. Mar 28, 2022
  3. Mar 25, 2022
  4. Feb 28, 2022
  5. Feb 12, 2022
  6. Dec 07, 2021
  7. Dec 06, 2021
    • Jack Andersen's avatar
      [CMake] Installable find modules for terminfo and libffi · b6633957
      Jack Andersen authored
      Improves cross-distro portability of LLVM cmake package by resolving paths for
      terminfo and libffi via import targets.
      
      When LLVMExports.cmake is generated for installation, it contains absolute
      library paths which are likely to be a common cause of portability issues. To
      mitigate this, the discovery logic for these dependencies is refactored into
      find modules which get installed alongside LLVMConfig.cmake. The result is
      cleaner, cmake-friendly management of these dependencies that respect the
      environment of the LLVM package importer.
      
      Reviewed By: JDevlieghere
      
      Differential Revision: https://reviews.llvm.org/D114327
      b6633957
  8. Dec 03, 2021
  9. Dec 02, 2021
  10. Oct 19, 2021
  11. Oct 17, 2021
    • Kito Cheng's avatar
      [RISCV] Unify the arch string parsing logic to to RISCVISAInfo. · ff13189c
      Kito Cheng authored
      How many place you need to modify when implementing a new extension for RISC-V?
      
      At least 7 places as I know:
      
      - Add new SubtargetFeature at RISCV.td
      - -march parser in RISCV.cpp
      - RISCVTargetInfo::initFeatureMap@RISCV.cpp for handling feature vector.
      - RISCVTargetInfo::getTargetDefines@RISCV.cpp for pre-define marco.
      - Arch string parser for ELF attribute in RISCVAsmParser.cpp
      - ELF attribute emittion in RISCVAsmParser.cpp, and make sure it's in
        canonical order...
      - ELF attribute emittion in RISCVTargetStreamer.cpp, and again, must in
        canonical order...
      
      And now, this patch provide an unified infrastructure for handling (almost)
      everything of RISC-V arch string.
      
      After this patch, you only need to update 2 places for implement an extension
      for RISC-V:
      - Add new SubtargetFeature at RISCV.td, hmmm, it's hard to avoid.
      - Add new entry to RISCVSupportedExtension@RISCVISAInfo.cpp or
        SupportedExperimentalExtensions@RISCVISAInfo.cpp .
      
      Most codes are come from existing -march parser, but with few new feature/bug
      fixes:
      - Accept version for -march, e.g. -march=rv32i2p0.
      - Reject version info with `p` but without minor version number like `rv32i2p`.
      
      Differential Revision: https://reviews.llvm.org/D105168
      ff13189c
  12. Oct 09, 2021
  13. Oct 01, 2021
    • Christopher Tetreault's avatar
      [NFC] Restore magic and magicu to a globally visible location · 3077bc90
      Christopher Tetreault authored
      While these functions are only used in one location in upstream,
      it has been reused in multiple downstreams. Restore this file to
      a globally visibile location (outside of APInt.h) to eliminate
      donwstream breakage and enable potential future reuse.
      
      Additionally, this patch renames types and cleans up
      clang-tidy issues.
      3077bc90
  14. Sep 28, 2021
  15. Jul 27, 2021
    • Mehdi Amini's avatar
      Build libSupport with -Werror=global-constructors (NFC) · 402461be
      Mehdi Amini authored
      Ensure that libSupport does not carry any static global initializer.
      libSupport can be embedded in use cases where we don't want to load all
      cl::opt unless we want to parse the command line.
      ManagedStatic can be used to enable lazy-initialization of globals.
      
      The -Werror=global-constructors is only added on platform that have
      support for the flag and for which std::mutex does not have a global
      destructor. This is ensured by having CMake trying to compile a file
      with a global mutex before adding the flag to libSupport.
      402461be
    • Mehdi Amini's avatar
      Revert "Build libSupport with -Werror=global-constructors (NFC)" · 2f49eb47
      Mehdi Amini authored
      This reverts commit beff86e8.
      
      The sanitizer-x86_64-linux bot is still broken.
      2f49eb47
    • Mehdi Amini's avatar
      Build libSupport with -Werror=global-constructors (NFC) · beff86e8
      Mehdi Amini authored
      Ensure that libSupport does not carry any static global initializer.
      libSupport can be embedded in use cases where we don't want to load all
      cl::opt unless we want to parse the command line.
      ManagedStatic can be used to enable lazy-initialization of globals.
      
      The -Werror=global-constructors is only added on platform that have
      support for the flag and for which std::mutex does not have a global
      destructor. This is ensured by having CMake trying to compile a file
      with a global mutex before adding the flag to libSupport.
      beff86e8
  16. Jul 26, 2021
  17. Jul 17, 2021
  18. May 03, 2021
  19. Apr 06, 2021
  20. Apr 03, 2021
    • Bjorn Pettersson's avatar
      Fix build rules for LLVM_WITH_Z3 after D95727 · d66f9c4f
      Bjorn Pettersson authored
      Started to see build errors like this
      
      ../lib/Support/Z3Solver.cpp:19:10: fatal error: 'z3.h' file not found
      #include <z3.h>
               ^~~~~~
      1 error generated.
      
      after commit 43ceb74e.
      
      The -isystem path to the Z3_INCLUDE_DIR wen't missing in the compile
      commands. No idea why target_include_directories stopped working with
      that commit, but using include_directories seem to work better.
      d66f9c4f
  21. Apr 02, 2021
    • Sander de Smalen's avatar
      Always emit error for wrong interfaces to scalable vectors, unless cmdline flag is passed. · 0f7bbbc4
      Sander de Smalen authored
      In order to bring up scalable vector support in LLVM incrementally,
      we introduced behaviour to emit a warning, instead of an error, when
      asking the wrong question of a scalable vector, like asking for the
      fixed number of elements.
      
      This patch puts that behaviour under a flag. The default behaviour is
      that the compiler will always error, which means that all LLVM unit
      tests and regression tests will now fail when a code-path is taken that
      still uses the wrong interface.
      
      The behaviour to demote an error to a warning can be individually enabled
      for tools that want to support experimental use of scalable vectors.
      This patch enables that behaviour when driving compilation from Clang.
      This means that for users who want to try out scalable-vector support,
      fixed-width codegen support, or build user-code with scalable vector
      intrinsics, Clang will not crash and burn when the compiler encounters
      such a case.
      
      This allows us to do away with the following pattern in many of the SVE tests:
        RUN: .... 2>%t
        RUN: cat %t | FileCheck --check-prefix=WARN
        WARN-NOT: warning: ...
      
      The behaviour to emit warnings is only temporary and we expect this flag
      to be removed in the future when scalable vector support is more stable.
      
      This patch also has fixes the following tests:
       unittests:
         ScalableVectorMVTsTest.SizeQueries
         SelectionDAGAddressAnalysisTest.unknownSizeFrameObjects
         AArch64SelectionDAGTest.computeKnownBitsSVE_ZERO_EXTEND_VECTOR_INREG
      
       regression tests:
         Transforms/InstCombine/vscale_gep.ll
      
      Reviewed By: paulwalker-arm, ctetreau
      
      Differential Revision: https://reviews.llvm.org/D98856
      0f7bbbc4
  22. Feb 15, 2021
  23. Jan 28, 2021
    • Serge Pavlov's avatar
      [Support] Fix build for Haiku · 5c1cea6f
      Serge Pavlov authored
      This change fixes two issues with building LLVM on Haiku. The first issue is
      that LLVM requires wait4(), which on Haiku is hidden behind the _BSD_SOURCE
      feature flag when using the --std=c++14 flag. Additionally, the wait4()
      function is only available in libbsd.so, so this is now a dependency.
      
      The other fix is that Haiku does not have the (non-standard) rusage.maxrss
      member, so by default the used memory info will be set to 0 on this platform.
      
      Reviewed By: sepavloff
      
      Differential Revision: https://reviews.llvm.org/D87920
      
      Patch by Niels Sascha Reedijk.
      5c1cea6f
  24. Dec 11, 2020
    • David Sherwood's avatar
      [Support] Introduce a new InstructionCost class · 9b76160e
      David Sherwood authored
      This is the first in a series of patches that attempts to migrate
      existing cost instructions to return a new InstructionCost class
      in place of a simple integer. This new class is intended to be
      as light-weight and simple as possible, with a full range of
      arithmetic and comparison operators that largely mirror the same
      sets of operations on basic types, such as integers. The main
      advantage to using an InstructionCost is that it can encode a
      particular cost state in addition to a value. The initial
      implementation only has two states - Normal and Invalid - but these
      could be expanded over time if necessary. An invalid state can
      be used to represent an unknown cost or an instruction that is
      prohibitively expensive.
      
      This patch adds the new class and changes the getInstructionCost
      interface to return the new class. Other cost functions, such as
      getUserCost, etc., will be migrated in future patches as I believe
      this to be less disruptive. One benefit of this new class is that
      it provides a way to unify many of the magic costs in the codebase
      where the cost is set to a deliberately high number to prevent
      optimisations taking place, e.g. vectorization. It also provides
      a route to represent the extremely high, and unknown, cost of
      scalarization of scalable vectors, which is not currently supported.
      
      Differential Revision: https://reviews.llvm.org/D91174
      9b76160e
  25. Nov 13, 2020
    • serge-sans-paille's avatar
      llvmbuildectomy - replace llvm-build by plain cmake · 9218ff50
      serge-sans-paille authored
      No longer rely on an external tool to build the llvm component layout.
      
      Instead, leverage the existing `add_llvm_componentlibrary` cmake function and
      introduce `add_llvm_component_group` to accurately describe component behavior.
      
      These function store extra properties in the created targets. These properties
      are processed once all components are defined to resolve library dependencies
      and produce the header expected by llvm-config.
      
      Differential Revision: https://reviews.llvm.org/D90848
      9218ff50
  26. Oct 28, 2020
Loading