Page MenuHomePhabricator
Feed Advanced Search

Mon, Dec 5

jloser added inline comments to D139189: [libc++] Granularize <type_traits> includes in <concepts>.
Mon, Dec 5, 9:59 AM · Restricted Project, Restricted Project

Sat, Dec 3

jloser committed rG1d650d4f1dd3: [MLIR] Fix typo in `add_mlir_library` docs. NFC. (authored by jloser).
[MLIR] Fix typo in `add_mlir_library` docs. NFC.
Sat, Dec 3, 6:30 PM · Restricted Project, Restricted Project
jloser closed D139265: [MLIR] Fix typo in `add_mlir_library` docs. NFC..
Sat, Dec 3, 6:30 PM · Restricted Project, Restricted Project
jloser requested review of D139265: [MLIR] Fix typo in `add_mlir_library` docs. NFC..
Sat, Dec 3, 6:28 PM · Restricted Project, Restricted Project
jloser committed rG5d3c972a3565: [MLIR] Use `if constexpr` in `StorageUniquer` and `IR/AffineExpr` (authored by jloser).
[MLIR] Use `if constexpr` in `StorageUniquer` and `IR/AffineExpr`
Sat, Dec 3, 6:08 PM · Restricted Project, Restricted Project
jloser closed D139264: [MLIR] Use `if constexpr` in `StorageUniquer` and `IR/AffineExpr`.
Sat, Dec 3, 6:08 PM · Restricted Project, Restricted Project
jloser updated the diff for D139264: [MLIR] Use `if constexpr` in `StorageUniquer` and `IR/AffineExpr`.

Update title to reflect IR/AffineExpr changes as well

Sat, Dec 3, 5:04 PM · Restricted Project, Restricted Project
jloser requested review of D139264: [MLIR] Use `if constexpr` in `StorageUniquer` and `IR/AffineExpr`.
Sat, Dec 3, 5:03 PM · Restricted Project, Restricted Project
jloser added a comment to D139164: [libc++] Add missing includes for __type_traits details.

Looks reasonable. Do you see any value in adding a test that verifies each top-level include actually includes all of the granularized headers? E.g. that <type_traits> does indeed include all of the header files in <__type_traits>? I idly wonder if we have similar problems for any of the other top-level includes that have been granularized such as the ones reported by the following:

Sat, Dec 3, 4:41 PM · Restricted Project, Restricted Project
jloser committed rG4509fb9c007e: [MLIR] Simplify key construction/hashing in StorageUniquer (authored by jloser).
[MLIR] Simplify key construction/hashing in StorageUniquer
Sat, Dec 3, 4:21 PM · Restricted Project, Restricted Project
jloser closed D139245: [MLIR] Simplify key construction/hashing in StorageUniquer.
Sat, Dec 3, 4:21 PM · Restricted Project, Restricted Project

Fri, Dec 2

jloser requested review of D139245: [MLIR] Simplify key construction/hashing in StorageUniquer.
Fri, Dec 2, 9:21 PM · Restricted Project, Restricted Project

Mon, Nov 28

jloser added a comment to D138828: [libc++] Fix incorrect guard against the presence of wide characters.

LGTM!

Mon, Nov 28, 10:39 AM · Restricted Project, Restricted Project

Fri, Nov 25

jloser added a comment to D138716: [libc++][NFC] Add missing include to ext/__hash.

LGTM!

Fri, Nov 25, 7:30 AM · Restricted Project, Restricted Project

Thu, Nov 24

jloser accepted D138685: [libc++] Bump AppleClang compiler requirement.
Thu, Nov 24, 1:22 PM · Restricted Project, Restricted Project

Sun, Nov 20

jloser committed rG35df882274e9: [ADT] Remove deprecated `llvm::array_lengthof` (authored by jloser).
[ADT] Remove deprecated `llvm::array_lengthof`
Sun, Nov 20, 10:57 AM · Restricted Project, Restricted Project
jloser closed D138374: [ADT] Remove deprecated `llvm::array_lengthof`.
Sun, Nov 20, 10:56 AM · Restricted Project, Restricted Project
jloser committed rG111c29802161: [ADT] Simplify determining size for joining items (authored by jloser).
[ADT] Simplify determining size for joining items
Sun, Nov 20, 10:55 AM · Restricted Project, Restricted Project
jloser closed D138375: [ADT] Simplify determining size for joining items.
Sun, Nov 20, 10:55 AM · Restricted Project, Restricted Project

Sat, Nov 19

jloser requested review of D138375: [ADT] Simplify determining size for joining items.
Sat, Nov 19, 9:21 PM · Restricted Project, Restricted Project
jloser requested review of D138374: [ADT] Remove deprecated `llvm::array_lengthof`.
Sat, Nov 19, 9:04 PM · Restricted Project, Restricted Project

Fri, Nov 18

jloser added a comment to D138189: [libcxx] adds an include-what-you-use (IWYU) mapping file.

Thanks so much for working on this, @cjdb! I'm excited to try it out.

Fri, Nov 18, 5:08 PM · Restricted Project, Restricted Project

Mon, Nov 7

jloser added a comment to D137476: [libc++] Add utilites for instantiating functions with multiple types.

I don't think the test suite is the place to get clever with code deduplication and template magic.

Readability is significantly more important than repeating yourself. Tests need to be correct upon inspection, because we don't have tests for our tests.
Also I imagine this significantly borks any diagnostics you might get when the test fails.

Tests are not the place to be clever.

I agree with this and readability is more important. But in certain scenarios, e.g the math tests refactoring Nicolas did which increases the coverage for math tests, it was really hard for me to figure out what types are missing in the original tests as the original tests have hundreds of lines that enumerates all the types it is testing, for every argument, which in my opinion, not very readable. I also think this utility is needed for 3 iterator arguments range algorithms tests , as enumerate the combinations of types make the tests not very readable and hard to spot any combination missing. I think it is a useful tool but requires careful testing of itself

I agree that tests should be readable. I also agree that the test suite normally isn't the place for template magic. In this case I think the additional complexity is warranted, since it avoids forgetting anything in a list of types that are used commonly throughout the test suite and/or are subject to change over time. This is the case for example for the ranges algorithm tests, where we (should) use specific sets of iterators everywhere. Having the set of types in a central location allows us to update all the tests without being able to forget any one test. The other case are fundamental sets of types, like integral types, which are subject to change over time (i.e. there were additional floating point types added in C++23(?)) and it's a lot harder to miss any tests when all the tests have a single source of truth. Another benefit is that IMO it's a lot easier to understand what you are testing when you say meta::apply_all(meta::integral_types{}, []<class T>() { test<T>(); }). It's instantly clear that you are instantiating the test for all integral types.

As for errors, it doesn't really make them worse. It's just two or three extra entries in the Note: instantiated from here list, which is already miles long in most cases.

I also agree that this magic should be well tested if we want to use it in the tests. If you think I'm missing any coverage I'm happy to add more tests.

This is a major change in our testing infrastructure and I think all the people actively working on libc++ should at least take note of the change (@Mordante @var-const @ldionne - did I forget anyone?).

Mon, Nov 7, 7:26 PM · Restricted Project, Restricted Project

Oct 27 2022

jloser committed rG8d35558527ba: [ADT] Simplify hashing for tuples (authored by jloser).
[ADT] Simplify hashing for tuples
Oct 27 2022, 12:46 PM · Restricted Project, Restricted Project
jloser closed D136850: [ADT] Simplify hashing for tuples.
Oct 27 2022, 12:46 PM · Restricted Project, Restricted Project
jloser added a comment to D136657: [libc++][ranges][NFC] Revamp the Ranges status page.

After discussing this with @ldionne, I decided to drop the duplication. IIUC, we will switch to using GitHub issues to track these at some point, so ultimately it's not super important how we approach this.

+1 for doing this in GitHub

I recall we discussed that in the past but it required GitHub projects to be enabled for LLVM.

Oct 27 2022, 10:12 AM · Restricted Project, Restricted Project
jloser requested review of D136850: [ADT] Simplify hashing for tuples.
Oct 27 2022, 8:10 AM · Restricted Project, Restricted Project

Oct 24 2022

jloser added a comment to D136609: [llvm] Fix minimum Apple Clang requirement.

LGTM!

Oct 24 2022, 9:08 PM · Restricted Project, Restricted Project

Oct 23 2022

jloser added inline comments to D136549: [clang] Fix time profile in "isIntegerConstantExpr".
Oct 23 2022, 6:28 PM · Restricted Project, Restricted Project
jloser accepted D136549: [clang] Fix time profile in "isIntegerConstantExpr".

LGTM. Thanks for the fix.

Oct 23 2022, 3:25 PM · Restricted Project, Restricted Project

Oct 17 2022

jloser added a comment to D136050: [libc++] Fix missing requires clause on variant operator<=>.

thanks! LGTM. i must have been looking at a reference that's missing that requires...

Oct 17 2022, 5:53 PM · Restricted Project, Restricted Project
jloser added a comment to D135868: [libc++] Remove std::function in C++03.

LGTM for what it's worth. Thanks for the cleanup.

Oct 17 2022, 5:52 PM · Restricted Project, Restricted Project
jloser committed rGdd9afdbb2ab4: [libc++] Fix missing requires clause on variant operator<=> (authored by jloser).
[libc++] Fix missing requires clause on variant operator<=>
Oct 17 2022, 3:28 PM · Restricted Project, Restricted Project
jloser closed D136050: [libc++] Fix missing requires clause on variant operator<=>.
Oct 17 2022, 3:28 PM · Restricted Project, Restricted Project
jloser added inline comments to D136050: [libc++] Fix missing requires clause on variant operator<=>.
Oct 17 2022, 10:55 AM · Restricted Project, Restricted Project
jloser updated the diff for D136050: [libc++] Fix missing requires clause on variant operator<=>.

Add requires clause to synopsis in both <variant> and the three_way_pass.cpp.

Oct 17 2022, 10:55 AM · Restricted Project, Restricted Project
jloser updated the diff for D136050: [libc++] Fix missing requires clause on variant operator<=>.

Another test fix

Oct 17 2022, 8:12 AM · Restricted Project, Restricted Project

Oct 16 2022

jloser requested review of D136050: [libc++] Fix missing requires clause on variant operator<=>.
Oct 16 2022, 7:26 PM · Restricted Project, Restricted Project
jloser added a comment to D136022: [clang] Add time profile for constant evaluation.

I like the idea of this — +1 for the direction. I'd like to see some tests through before I approve.

Oct 16 2022, 2:57 PM · Restricted Project, Restricted Project

Sep 26 2022

jloser added a comment to D134625: Summary: bug fix! Rotation direction on `__countl_zero()` probably unnoticed because only affects rare cases (does not affect 128 bit ints because rotation is effectively swap) (does not affect integers of sizes less or equal to 64bits).

Is there a test we can add to exhibit this bug and verify this fixes the problem?

Sep 26 2022, 5:19 AM · Restricted Project, Restricted Project

Sep 22 2022

jloser closed D134316: [clang][docs] Fix supported element types for `__builtin_reduce_(add|mul)`.

This landed with https://github.com/llvm/llvm-project/commit/cf77333da986720e9aded4301d81a581e2be9611. The revision didn't auto-close for some reason.

Sep 22 2022, 6:54 AM · Restricted Project, Restricted Project
jloser committed rGcf77333da986: [clang][docs] Fix supported element types for __builtin_reduce_(add|mul) (authored by jloser).
[clang][docs] Fix supported element types for __builtin_reduce_(add|mul)
Sep 22 2022, 6:53 AM · Restricted Project, Restricted Project

Sep 20 2022

jloser requested review of D134316: [clang][docs] Fix supported element types for `__builtin_reduce_(add|mul)`.
Sep 20 2022, 2:37 PM · Restricted Project, Restricted Project

Sep 16 2022

jloser committed rG7061a3f3f89d: [support] Prepare TimeProfiler for cross-thread support (authored by mbs-modular).
[support] Prepare TimeProfiler for cross-thread support
Sep 16 2022, 9:21 AM · Restricted Project, Restricted Project
jloser closed D133153: [support] Prepare TimeProfiler for cross-thread support.
Sep 16 2022, 9:21 AM · Restricted Project, Restricted Project, Restricted Project

Sep 15 2022

jloser accepted D133153: [support] Prepare TimeProfiler for cross-thread support.

@russell.gallop can you still repro a regression with the current patch?

Sorry to take a while to reply.

I rebuilt with Diff 460060 applied to 40ab7875f8ccb8d1b0166bf91475fc4d662cffe9 and yes, I do still see a build performance impact with -ftime-trace. I reproduced this building SemaExpr.cpp from a stage2 build so this should be something that you can reproduce.

In spite of the warning about statistical outliers (it was a pretty quiet PC), there is no overlap between the range of times with and without -ftime-trace so it's not just one or two samples causing this.

f:\git\llvm-project\stage2>%USERPROFILE%\bin\hyperfine -w 1 -m 10 "F:\git\llvm-project\stage1\bin\clang-cl.exe  /nologo -TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GNU_SOURCE -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools\clang\lib\Sema -IF:\git\llvm-project\clang\lib\Sema -IF:\git\llvm-project\clang\include -Itools\clang\include -Iinclude -IF:\git\llvm-project\llvm\include -Wno-nonportable-include-path /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /MT /O2 /Ob2 /DNDEBUG    /EHs-c- /GR- -std:c++17 /Fotools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\SemaExpr.cpp.obj /Fdtools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\ -c F:\git\llvm-project\clang\lib\Sema\SemaExpr.cpp" "F:\git\llvm-project\stage1\bin\clang-cl.exe  /nologo -TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GNU_SOURCE -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools\clang\lib\Sema -IF:\git\llvm-project\clang\lib\Sema -IF:\git\llvm-project\clang\include -Itools\clang\include -Iinclude -IF:\git\llvm-project\llvm\include -Wno-nonportable-include-path /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /MT /O2 /Ob2 /DNDEBUG    /EHs-c- /GR- -std:c++17 /Fotools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\SemaExpr.cpp.obj /Fdtools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\ -c F:\git\llvm-project\clang\lib\Sema\SemaExpr.cpp -ftime-trace"
Benchmark #1: F:\git\llvm-project\stage1\bin\clang-cl.exe  /nologo -TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GNU_SOURCE -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools\clang\lib\Sema -IF:\git\llvm-project\clang\lib\Sema -IF:\git\llvm-project\clang\include -Itools\clang\include -Iinclude -IF:\git\llvm-project\llvm\include -Wno-nonportable-include-path /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /MT /O2 /Ob2 /DNDEBUG    /EHs-c- /GR- -std:c++17 /Fotools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\SemaExpr.cpp.obj /Fdtools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\ -c F:\git\llvm-project\clang\lib\Sema\SemaExpr.cpp
  Time (mean ± σ):     42.646 s ±  0.417 s    [User: 1.3 ms, System: 13.0 ms]
  Range (min … max):   41.783 s … 43.535 s    10 runs

  Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet PC without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.

Benchmark #2: F:\git\llvm-project\stage1\bin\clang-cl.exe  /nologo -TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GNU_SOURCE -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools\clang\lib\Sema -IF:\git\llvm-project\clang\lib\Sema -IF:\git\llvm-project\clang\include -Itools\clang\include -Iinclude -IF:\git\llvm-project\llvm\include -Wno-nonportable-include-path /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /MT /O2 /Ob2 /DNDEBUG    /EHs-c- /GR- -std:c++17 /Fotools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\SemaExpr.cpp.obj /Fdtools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\ -c F:\git\llvm-project\clang\lib\Sema\SemaExpr.cpp -ftime-trace
  Time (mean ± σ):     46.308 s ±  1.108 s    [User: 3.9 ms, System: 9.9 ms]
  Range (min … max):   44.930 s … 49.074 s    10 runs

Summary
  'F:\git\llvm-project\stage1\bin\clang-cl.exe  /nologo -TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GNU_SOURCE -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools\clang\lib\Sema -IF:\git\llvm-project\clang\lib\Sema -IF:\git\llvm-project\clang\include -Itools\clang\include -Iinclude -IF:\git\llvm-project\llvm\include -Wno-nonportable-include-path /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /MT /O2 /Ob2 /DNDEBUG    /EHs-c- /GR- -std:c++17 /Fotools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\SemaExpr.cpp.obj /Fdtools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\ -c F:\git\llvm-project\clang\lib\Sema\SemaExpr.cpp' ran
    1.09 ± 0.03 times faster than 'F:\git\llvm-project\stage1\bin\clang-cl.exe  /nologo -TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GNU_SOURCE -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools\clang\lib\Sema -IF:\git\llvm-project\clang\lib\Sema -IF:\git\llvm-project\clang\include -Itools\clang\include -Iinclude -IF:\git\llvm-project\llvm\include -Wno-nonportable-include-path /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /MT /O2 /Ob2 /DNDEBUG    /EHs-c- /GR- -std:c++17 /Fotools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\SemaExpr.cpp.obj /Fdtools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\ -c F:\git\llvm-project\clang\lib\Sema\SemaExpr.cpp -ftime-trace'

And without this patch it's just 1%.

f:\git\llvm-project\stage2>%USERPROFILE%\bin\hyperfine -w 1 -m 10 "F:\git\llvm-project\stage1\bin\clang-cl.exe  /nologo -TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GNU_SOURCE -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools\clang\lib\Sema -IF:\git\llvm-project\clang\lib\Sema -IF:\git\llvm-project\clang\include -Itools\clang\include -Iinclude -IF:\git\llvm-project\llvm\include -Wno-nonportable-include-path /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /MT /O2 /Ob2 /DNDEBUG    /EHs-c- /GR- -std:c++17 /Fotools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\SemaExpr.cpp.obj /Fdtools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\ -c F:\git\llvm-project\clang\lib\Sema\SemaExpr.cpp" "F:\git\llvm-project\stage1\bin\clang-cl.exe  /nologo -TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GNU_SOURCE -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools\clang\lib\Sema -IF:\git\llvm-project\clang\lib\Sema -IF:\git\llvm-project\clang\include -Itools\clang\include -Iinclude -IF:\git\llvm-project\llvm\include -Wno-nonportable-include-path /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /MT /O2 /Ob2 /DNDEBUG    /EHs-c- /GR- -std:c++17 /Fotools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\SemaExpr.cpp.obj /Fdtools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\ -c F:\git\llvm-project\clang\lib\Sema\SemaExpr.cpp -ftime-trace"
Benchmark #1: F:\git\llvm-project\stage1\bin\clang-cl.exe  /nologo -TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GNU_SOURCE -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools\clang\lib\Sema -IF:\git\llvm-project\clang\lib\Sema -IF:\git\llvm-project\clang\include -Itools\clang\include -Iinclude -IF:\git\llvm-project\llvm\include -Wno-nonportable-include-path /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /MT /O2 /Ob2 /DNDEBUG    /EHs-c- /GR- -std:c++17 /Fotools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\SemaExpr.cpp.obj /Fdtools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\ -c F:\git\llvm-project\clang\lib\Sema\SemaExpr.cpp
  Time (mean ± σ):     40.761 s ±  1.346 s    [User: 1.2 ms, System: 7.4 ms]
  Range (min … max):   38.188 s … 42.256 s    10 runs

Benchmark #2: F:\git\llvm-project\stage1\bin\clang-cl.exe  /nologo -TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GNU_SOURCE -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools\clang\lib\Sema -IF:\git\llvm-project\clang\lib\Sema -IF:\git\llvm-project\clang\include -Itools\clang\include -Iinclude -IF:\git\llvm-project\llvm\include -Wno-nonportable-include-path /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /MT /O2 /Ob2 /DNDEBUG    /EHs-c- /GR- -std:c++17 /Fotools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\SemaExpr.cpp.obj /Fdtools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\ -c F:\git\llvm-project\clang\lib\Sema\SemaExpr.cpp -ftime-trace
  Time (mean ± σ):     41.162 s ±  0.319 s    [User: 2.5 ms, System: 8.7 ms]
  Range (min … max):   40.750 s … 41.845 s    10 runs

Summary
  'F:\git\llvm-project\stage1\bin\clang-cl.exe  /nologo -TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GNU_SOURCE -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools\clang\lib\Sema -IF:\git\llvm-project\clang\lib\Sema -IF:\git\llvm-project\clang\include -Itools\clang\include -Iinclude -IF:\git\llvm-project\llvm\include -Wno-nonportable-include-path /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /MT /O2 /Ob2 /DNDEBUG    /EHs-c- /GR- -std:c++17 /Fotools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\SemaExpr.cpp.obj /Fdtools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\ -c F:\git\llvm-project\clang\lib\Sema\SemaExpr.cpp' ran
    1.01 ± 0.03 times faster than 'F:\git\llvm-project\stage1\bin\clang-cl.exe  /nologo -TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GNU_SOURCE -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools\clang\lib\Sema -IF:\git\llvm-project\clang\lib\Sema -IF:\git\llvm-project\clang\include -Itools\clang\include -Iinclude -IF:\git\llvm-project\llvm\include -Wno-nonportable-include-path /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported /Gw /MT /O2 /Ob2 /DNDEBUG    /EHs-c- /GR- -std:c++17 /Fotools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\SemaExpr.cpp.obj /Fdtools\clang\lib\Sema\CMakeFiles\obj.clangSema.dir\ -c F:\git\llvm-project\clang\lib\Sema\SemaExpr.cpp -ftime-trace'

Sorry I don't have time to look into this in more depth, but it is a cause for concern that we might be losing a nice property of -ftime-trace.

Apart from this I'm happy with the patch.

(And many apologies in advance if it's something I'm doing wrong here! I'd be interested if anyone else can reproduce this on SemaExpr. If it's just me then I'd suggest not blocking this patch landing due to this.)

Sep 15 2022, 8:49 AM · Restricted Project, Restricted Project, Restricted Project
jloser committed rGf97cc6b71202: [libc++] Clean up `_LIBCPP_HAS_NO_PLATFORM_WAIT` macro (authored by jloser).
[libc++] Clean up `_LIBCPP_HAS_NO_PLATFORM_WAIT` macro
Sep 15 2022, 8:46 AM · Restricted Project, Restricted Project
jloser closed D132715: [libc++] Clean up `_LIBCPP_HAS_NO_PLATFORM_WAIT` macro.
Sep 15 2022, 8:45 AM · Restricted Project, Restricted Project

Sep 13 2022

jloser added a comment to D132715: [libc++] Clean up `_LIBCPP_HAS_NO_PLATFORM_WAIT` macro.

ping @ldionne

Sep 13 2022, 7:25 AM · Restricted Project, Restricted Project

Sep 9 2022

jloser committed rG27731f047587: [llvm][lit] Respect GTEST_TOTAL_SHARDS and GTEST_SHARD_INDEX env vars (authored by jloser).
[llvm][lit] Respect GTEST_TOTAL_SHARDS and GTEST_SHARD_INDEX env vars
Sep 9 2022, 4:48 PM · Restricted Project, Restricted Project
jloser added inline comments to D133542: [llvm][lit] Respect GTEST_TOTAL_SHARDS and GTEST_SHARD_INDEX env vars.
Sep 9 2022, 4:48 PM · Restricted Project, Restricted Project
jloser closed D133542: [llvm][lit] Respect GTEST_TOTAL_SHARDS and GTEST_SHARD_INDEX env vars.
Sep 9 2022, 4:48 PM · Restricted Project, Restricted Project
jloser committed rG62b8a61d6c44: [llvm] Remove includes of `llvm/Support/STLArrayExtras.h` (authored by jloser).
[llvm] Remove includes of `llvm/Support/STLArrayExtras.h`
Sep 9 2022, 4:45 PM · Restricted Project, Restricted Project
jloser closed D133600: [llvm] Remove includes of `llvm/Support/STLArrayExtras.h`.
Sep 9 2022, 4:44 PM · Restricted Project, Restricted Project
jloser added a comment to D133502: [ADT] Mark `llvm::array_lengthof` as deprecated.

This produces a warning when built with GCC for every single source file that includes the header:

../include/llvm/Support/Compiler.h:145:35: warning: attribute ignored [-Wattributes]  
  145 | #define LLVM_DEPRECATED(MSG, FIX) [[deprecated(MSG)]]
      |                                   ^
../include/llvm/ADT/STLArrayExtras.h:31:18: note: in expansion of macro ‘LLVM_DEPRECATED’        
   31 | constexpr inline LLVM_DEPRECATED("Use std::size instead.", "std::size") size_t
      |                  ^~~~~~~~~~~~~~~
../include/llvm/Support/Compiler.h:145:35: note: an attribute that appertains to a type-specifier is ignored              
  145 | #define LLVM_DEPRECATED(MSG, FIX) [[deprecated(MSG)]]
      |                                   ^
../include/llvm/ADT/STLArrayExtras.h:31:18: note: in expansion of macro ‘LLVM_DEPRECATED’
   31 | constexpr inline LLVM_DEPRECATED("Use std::size instead.", "std::size") size_t
      |                  ^~~~~~~~~~~~~~~

Should be fixed now. The placement before Placement of LLVM_DEPRECATED matters was actually correct for [[deprecated(...)]] :)

Sep 9 2022, 4:02 PM · Restricted Project, Restricted Project
jloser updated the diff for D133600: [llvm] Remove includes of `llvm/Support/STLArrayExtras.h`.

Rebase now that https://reviews.llvm.org/D133598 has landed

Sep 9 2022, 2:39 PM · Restricted Project, Restricted Project
jloser committed rG5758c824dab4: [ADT] Mark `llvm::array_lengthof` as deprecated (authored by jloser).
[ADT] Mark `llvm::array_lengthof` as deprecated
Sep 9 2022, 2:32 PM · Restricted Project, Restricted Project
jloser closed D133502: [ADT] Mark `llvm::array_lengthof` as deprecated.
Sep 9 2022, 2:32 PM · Restricted Project, Restricted Project
jloser committed rG1173ecf9fbc7: [lld] Use std::size instead of llvm::array_lengthof (authored by jloser).
[lld] Use std::size instead of llvm::array_lengthof
Sep 9 2022, 2:30 PM · Restricted Project
jloser closed D133598: [lld] Use std::size instead of llvm::array_lengthof.
Sep 9 2022, 2:29 PM · Restricted Project, Restricted Project
jloser updated the diff for D133598: [lld] Use std::size instead of llvm::array_lengthof.

clang-format

Sep 9 2022, 12:49 PM · Restricted Project, Restricted Project
jloser added a comment to D133542: [llvm][lit] Respect GTEST_TOTAL_SHARDS and GTEST_SHARD_INDEX env vars.

Looks good. I think this is useful to discover whether tests are affecting each other or to disable sharding if the platform has trouble correctly emitting & parsing the GTest JSON result file (like the Github issues you mentioned). On a side note, if you think the LIT sharding implementation is buggy, it is better to submit a bug report.

Could you please add a test? Thanks.

Sep 9 2022, 12:48 PM · Restricted Project, Restricted Project
jloser updated the diff for D133542: [llvm][lit] Respect GTEST_TOTAL_SHARDS and GTEST_SHARD_INDEX env vars.

Add test and use os.environ.get

Sep 9 2022, 12:45 PM · Restricted Project, Restricted Project
jloser requested review of D133600: [llvm] Remove includes of `llvm/Support/STLArrayExtras.h`.
Sep 9 2022, 11:50 AM · Restricted Project, Restricted Project
jloser requested review of D133598: [lld] Use std::size instead of llvm::array_lengthof.
Sep 9 2022, 11:44 AM · Restricted Project, Restricted Project
jloser updated the diff for D133502: [ADT] Mark `llvm::array_lengthof` as deprecated.

Include "llvm/Support/Compiler.h" explicitly for using LLVM_DEPRECATED

Sep 9 2022, 11:42 AM · Restricted Project, Restricted Project

Sep 8 2022

jloser requested review of D133542: [llvm][lit] Respect GTEST_TOTAL_SHARDS and GTEST_SHARD_INDEX env vars.
Sep 8 2022, 5:04 PM · Restricted Project, Restricted Project
jloser committed rG1b3a78d1d534: [clang] Use std::size instead of llvm::array_lengthof (authored by jloser).
[clang] Use std::size instead of llvm::array_lengthof
Sep 8 2022, 4:21 PM · Restricted Project, Restricted Project
jloser closed D133520: [clang] Use std::size instead of llvm::array_lengthof.
Sep 8 2022, 4:21 PM · Restricted Project, Restricted Project
jloser requested review of D133520: [clang] Use std::size instead of llvm::array_lengthof.
Sep 8 2022, 1:32 PM · Restricted Project, Restricted Project
jloser updated the diff for D133502: [ADT] Mark `llvm::array_lengthof` as deprecated.

Placement of LLVM_DEPRECATED matters

Sep 8 2022, 1:25 PM · Restricted Project, Restricted Project
jloser committed rG47b76631e768: [lldb] Use std::size instead of llvm::array_lengthof (authored by jloser).
[lldb] Use std::size instead of llvm::array_lengthof
Sep 8 2022, 1:23 PM · Restricted Project
jloser closed D133501: [lldb] Use std::size instead of llvm::array_lengthof.
Sep 8 2022, 1:22 PM · Restricted Project, Restricted Project
jloser added a comment to D133502: [ADT] Mark `llvm::array_lengthof` as deprecated.

By the way, I just realized that array_lengthof is the only thing in STLArrayExtras.h. You might want to consider a follow-up patch to stop including the header file (at 7 places or so). Thanks!

Sep 8 2022, 9:24 AM · Restricted Project, Restricted Project
jloser updated the diff for D133502: [ADT] Mark `llvm::array_lengthof` as deprecated.

Use LLVM_DEPRECATED instead

Sep 8 2022, 9:23 AM · Restricted Project, Restricted Project
jloser accepted D133435: [libc++] Removes Clang 13 support..

LGTM — thanks!

Sep 8 2022, 8:49 AM · Restricted Project, Restricted Project
jloser added inline comments to D133435: [libc++] Removes Clang 13 support..
Sep 8 2022, 8:48 AM · Restricted Project, Restricted Project
jloser accepted D133490: [libc++] Fix compilation error on platforms that don't implement std::tm.

LGTM!

Sep 8 2022, 8:43 AM · Restricted Project, Restricted Project
jloser added a comment to D133429: [llvm] Use std::size instead of llvm::array_lengthof.

As a follow-up, probably good to deprecate the API with the necessary recommended alternative for at least a little while, to client code migrations easier.

@kazu - this might be something you'd be interested in helping with, or pointing @jloser to the right tools/directions.

Sep 8 2022, 8:17 AM · Restricted Project, Restricted Project
jloser requested review of D133502: [ADT] Mark `llvm::array_lengthof` as deprecated.
Sep 8 2022, 8:15 AM · Restricted Project, Restricted Project
jloser requested review of D133501: [lldb] Use std::size instead of llvm::array_lengthof.
Sep 8 2022, 8:10 AM · Restricted Project, Restricted Project
jloser committed rG5e96cea1db06: [llvm] Use std::size instead of llvm::array_lengthof (authored by jloser).
[llvm] Use std::size instead of llvm::array_lengthof
Sep 8 2022, 8:03 AM · Restricted Project, Restricted Project
jloser closed D133429: [llvm] Use std::size instead of llvm::array_lengthof.
Sep 8 2022, 8:02 AM · Restricted Project, Restricted Project
jloser added inline comments to D133490: [libc++] Fix compilation error on platforms that don't implement std::tm.
Sep 8 2022, 7:54 AM · Restricted Project, Restricted Project

Sep 7 2022

jloser added inline comments to D133435: [libc++] Removes Clang 13 support..
Sep 7 2022, 2:01 PM · Restricted Project, Restricted Project
jloser committed rGe5a8f50ab160: [mlir] Use std::size instead of llvm::array_lengthof (authored by jloser).
[mlir] Use std::size instead of llvm::array_lengthof
Sep 7 2022, 8:56 AM · Restricted Project, Restricted Project
jloser closed D133387: [mlir] Use std::size instead of llvm::array_lengthof.
Sep 7 2022, 8:55 AM · Restricted Project, Restricted Project
jloser requested review of D133429: [llvm] Use std::size instead of llvm::array_lengthof.
Sep 7 2022, 8:54 AM · Restricted Project, Restricted Project
jloser added inline comments to D133387: [mlir] Use std::size instead of llvm::array_lengthof.
Sep 7 2022, 8:12 AM · Restricted Project, Restricted Project
jloser updated the diff for D133387: [mlir] Use std::size instead of llvm::array_lengthof.

clang-format and rebase

Sep 7 2022, 8:11 AM · Restricted Project, Restricted Project

Sep 6 2022

jloser updated the diff for D133387: [mlir] Use std::size instead of llvm::array_lengthof.

Remove #include <iterator> from SPIRVBase.td

Sep 6 2022, 5:39 PM · Restricted Project, Restricted Project
jloser requested review of D133387: [mlir] Use std::size instead of llvm::array_lengthof.
Sep 6 2022, 5:03 PM · Restricted Project, Restricted Project
jloser added a comment to D132715: [libc++] Clean up `_LIBCPP_HAS_NO_PLATFORM_WAIT` macro.

Gentle ping @ldionne

Sep 6 2022, 10:47 AM · Restricted Project, Restricted Project

Aug 30 2022

jloser added inline comments to D132284: [libc++] Reduces the number of transitive includes..
Aug 30 2022, 8:01 AM · Restricted Project, Restricted Project

Aug 26 2022

jloser accepted D132744: [llvm][ADT] Fix formatting for files relevant to `StringMap`..

Seems fine with me.

Aug 26 2022, 8:46 AM · Restricted Project, Restricted Project

Aug 25 2022

jloser requested review of D132715: [libc++] Clean up `_LIBCPP_HAS_NO_PLATFORM_WAIT` macro.
Aug 25 2022, 8:33 PM · Restricted Project, Restricted Project
jloser committed rGeb1ceb17ae97: [libc++][test] Use TEST_HAS_NO_CHAR8_T to simplify #ifdefs. NFCI. (authored by jloser).
[libc++][test] Use TEST_HAS_NO_CHAR8_T to simplify #ifdefs. NFCI.
Aug 25 2022, 8:10 PM · Restricted Project, Restricted Project
jloser closed D132626: [libc++][test] Use TEST_HAS_NO_CHAR8_T to simplify #ifdefs. NFCI..
Aug 25 2022, 8:09 PM · Restricted Project, Restricted Project
jloser committed rG77eac327167c: [ADT] Make `llvm::identity` a transparent function object (authored by jloser).
[ADT] Make `llvm::identity` a transparent function object
Aug 25 2022, 8:08 PM · Restricted Project, Restricted Project
jloser closed D132628: [ADT] Make `llvm::identity` a transparent function object.
Aug 25 2022, 8:07 PM · Restricted Project, Restricted Project