1. Dec 24, 2023
  2. Dec 23, 2023
    • Mark de Wever's avatar
      [libc++][modules] Fixes clang-tidy exports. · dd147d31
      Mark de Wever authored
      As suggested in #71438 we should use
        export import std;
      in the std.compat module.
      
      Using this exports some named declarations from functions and records,
      adding them to the global namespace. Clang correctly, does not export
      these it's and issue in the declaration filtering. Declarations in
      function or record context are not considered a global named
      declaration.
      dd147d31
    • Mark de Wever's avatar
      [libc++][modules] Increase clang-tidy version used. · 10dcb940
      Mark de Wever authored
      As suggested in #71438 we should use
        export import std;
      in the std.compat module.
      
      Testing this locally failed when building with the clang-tidy-17
      plugin. The std module was considered corrupt in the test
        libcxx/test/libcxx/module_std_compat.gen.py
      however the test
        libcxx/test/libcxx/module_std.gen.py
      passed. Both test generated identical std.pcm files. Using the
      clang-tidy-18 plugin solves the issue.
      10dcb940
    • Mark de Wever's avatar
      Darker fixes. · 35a9aa3f
      Mark de Wever authored
      35a9aa3f
    • Mark de Wever's avatar
      Apply suggestions from code review · 907f4428
      Mark de Wever authored
      
      
      Co-authored-by: default avatarWill Hawkins <hawkinsw@obs.cr>
      907f4428
    • Mark de Wever's avatar
      Update libcxx/utils/libcxx/test/format.py · 57e435da
      Mark de Wever authored
      
      
      Co-authored-by: default avatarWill Hawkins <hawkinsw@obs.cr>
      57e435da
    • Mark de Wever's avatar
      [libc++][modules] Adds module testing. · fe2406d5
      Mark de Wever authored
      This adds a new module test infrastructure. This requires tagging tests
      using modules. The test runner uses this information to determine the
      compiler flags needed to build and use the module.
      
      Currently modules are build per test, which allows testing them for
      tests with ADDITIONAL_COMPILE_FLAGS. At the moment only 4 tests use
      modules. Therefore the performance penalty is not measurable. If in the
      future more tests use modules it would be good to measure the overhead
      and determine whether it's acceptable.
      fe2406d5
  3. Dec 21, 2023
    • Mark de Wever's avatar
      [libc++][modules] Removes module testing. · 5c5c9685
      Mark de Wever authored
      This removes the entire modules testing infrastructure.
      
      The current infrastructure uses CMake to generate the std and std.compat
      module. This requires quite a bit of plumbing and uses CMake. Since
      CMake introduced module support in CMake 3.26, modules have a higher
      CMake requirement than the rest of the LLVM project. (The LLVM project
      requires 3.20.) The main motivation for this approach was how libc++
      generated its modules. Every header had its own module partition. This
      was changed to improve performance and now only two modules remain.
      The code to build these can be manually crafted.
      
      A followup patch will reenable testing modules, using a different
      approach.
      5c5c9685
    • Florian Hahn's avatar
      [ConstraintElim] Extend AND implication logic to support OR as well. (#76044) · 18170d0f
      Florian Hahn authored
      Extend the logic check if an operand of an AND is implied by the other
      to also support OR. This is done by checking if !op1 implies op2 or vice
      versa.
      18170d0f
    • LLVM GN Syncbot's avatar
      [gn build] Port 5ea15fab · 2c257cf8
      LLVM GN Syncbot authored
      2c257cf8
    • Cyndy Ishida's avatar
      [TextAPI] Add support to convert RecordSlices -> InterfaceFile (#75007) · 5ea15fab
      Cyndy Ishida authored
      Introduce RecordVisitor. This is used for different clients that want to
      extract information out of RecordSlice types.
      The first and immediate use case is for serializing symbol information
      into TBD files.
      5ea15fab
    • Schrodinger ZHU Yifan's avatar
      [libc] [startup] add cmake function to merge separated crt1 objects (#75413) · 8bbeed05
      Schrodinger ZHU Yifan authored
      As part of startup refactoring, this patch adds a function to merge
      multiple objects into a single relocatable object:
                           cc -r obj1.o obj2.o -o obj.o
      
      A relocatable object is an object file that is not fully linked into an
      executable or a shared library. It is an intermediate file format that
      can be passed into the linker.
      
      A crt object can have arch-specific code and arch-agnostic code. To
      reduce code cohesion, the implementation is splitted into multiple
      units. As a result, we need to merge them into a single relocatable
      object.
      8bbeed05
    • Joseph Huber's avatar
      [Libomptarget][NFC] Fix linting warnings in the plugins · e4f4022b
      Joseph Huber authored
      Summary:
      Fix some linting warnings present in the plugins.
      e4f4022b
  4. Dec 20, 2023