Page MenuHomePhabricator

Please use GitHub pull requests for new patches. Phabricator shutdown timeline

Feed Advanced Search

Jan 17 2023

BillyONeal added a comment to D141748: [WoA] Use fences for sequentially consistent stores/writes.

The explanation makes sense.

Can we make this specifically apply to _Interlocked* functions, instead of all atomics on Windows targets? I'd prefer not to impose this performance penalty on other users of atomics if we can avoid it.

Jan 17 2023, 8:05 PM · Restricted Project, Restricted Project

Jan 5 2022

BillyONeal added a comment to D116712: [libc++] [test] Remove `UNSUPPORTED: stdlib=msvc` from lock.pass.cpp.

There should probably be a note here that this test isn't testing
standard guarantee; it's testing that Howard's dining philosophers
rebooted algorithm is implemented.

Jan 5 2022, 5:46 PM · Restricted Project

Dec 8 2020

BillyONeal added a comment to D87974: [Builtin] Add __builtin_zero_non_value_bits..

Are they actually the same, with the same handling of corner cases like unions and tail padding?
There's more to this than just the name, and if they aren't the same, it seems better to have two names.

They are both implementing the same C++ feature, with the same desired semantics of zeroing out any bits in the object representation that aren't in the value representation. If they differ, one or the other would have a bug.

Do they support non-trivially copyable types? That isn't required for the atomic compare exchange feature, but is relevant for a feature exposed to users. What about extensions like zero-sized arrays or C99 flexible array members?

Dec 8 2020, 10:29 AM · Restricted Project, Restricted Project

Dec 7 2020

BillyONeal added a comment to D87974: [Builtin] Add __builtin_zero_non_value_bits..

Are they actually the same, with the same handling of corner cases like unions and tail padding?
There's more to this than just the name, and if they aren't the same, it seems better to have two names.

Dec 7 2020, 6:53 PM · Restricted Project, Restricted Project

Dec 6 2020

BillyONeal added a comment to D87974: [Builtin] Add __builtin_zero_non_value_bits..

So, it looks like GCC already uses __builtin_clear_padding and MSVC already uses __builtin_zero_non_value_bits. This patch (obviously) is currently implementing __builtin_zero_non_value_bits but, I had planned to update it to use __builtin_clear_padding. Maybe that's not the best course of action, though.

We should all try to agree on _one_ name. CC @BillyONeal @jwakely thoughts?

Dec 6 2020, 2:48 PM · Restricted Project, Restricted Project

May 14 2020

BillyONeal added a comment to D68820: win: Move Parallel.h off concrt to cross-platform code.

BTW ThreadPoolExecutor has undefined behavior since there's a detached thread touching the standard library when the program exits violating [basic.start.term]/6. Detached threads are almost never safe.

May 14 2020, 4:21 PM · Restricted Project

Feb 22 2020

BillyONeal committed rGe48849a24041: [libcxx] [test] Suppress MSVC++ warning 4640 under /Zc:threadSafeInit- (authored by BillyONeal).
[libcxx] [test] Suppress MSVC++ warning 4640 under /Zc:threadSafeInit-
Feb 22 2020, 6:59 AM

Feb 18 2020

BillyONeal added a comment to D73138: [libcxx] [test] Correct asserted type in subspan test; subspan with count should never produce dynamic_extent.

Thanks!

Feb 18 2020, 12:35 PM · Restricted Project
BillyONeal added a comment to D73138: [libcxx] [test] Correct asserted type in subspan test; subspan with count should never produce dynamic_extent.

@ldionne I think you're correct, though the test there is more complex than it needs to be (because the ==Count cases are the only ever encountered here).

Feb 18 2020, 11:58 AM · Restricted Project

Jan 22 2020

BillyONeal added a comment to rG45f630d729e2: [libcxx] [test] Don't assert that moved-from containers with non-POCMA….

This was https://reviews.llvm.org/D61366

Jan 22 2020, 9:35 PM
BillyONeal committed rG45f630d729e2: [libcxx] [test] Don't assert that moved-from containers with non-POCMA… (authored by BillyONeal).
[libcxx] [test] Don't assert that moved-from containers with non-POCMA…
Jan 22 2020, 9:17 PM
BillyONeal closed D61366: [libcxx] [test] Don't assert that moved-from containers with non-POCMA allocators are empty..

https://github.com/llvm/llvm-project/commit/45f630d729e2cce044ed48e6eaf4b8e61e06fede Committed

Jan 22 2020, 9:17 PM
BillyONeal added a comment to D49530: [libc++] Implement Directory Entry Caching -- Sort of..

@BillyONeal has proposed a more reasonable set of requirements

Jan 22 2020, 12:06 AM

Jan 21 2020

BillyONeal abandoned D61365: [libcxx] [test] Suppress float->int narrowing warning in vector range-construction test..

It looks like someone already fixed this.

Jan 21 2020, 1:37 PM
BillyONeal created D73138: [libcxx] [test] Correct asserted type in subspan test; subspan with count should never produce dynamic_extent.
Jan 21 2020, 1:37 PM · Restricted Project

Jan 14 2020

BillyONeal committed rG6d8abe424a77: [libcxx] [test] Add casts to avoid signed/unsigned mismatch warnings on MSVC++ (authored by BillyONeal).
[libcxx] [test] Add casts to avoid signed/unsigned mismatch warnings on MSVC++
Jan 14 2020, 1:14 AM

Jan 8 2020

BillyONeal committed rG85ee4ff4e474: [libcxx] [test] Disable refwrap/weak_result.pass.cpp in C++20 mode (broken by… (authored by BillyONeal).
[libcxx] [test] Disable refwrap/weak_result.pass.cpp in C++20 mode (broken by…
Jan 8 2020, 4:51 PM

Oct 11 2019

BillyONeal added inline comments to D68820: win: Move Parallel.h off concrt to cross-platform code.
Oct 11 2019, 9:19 AM · Restricted Project

Oct 10 2019

BillyONeal added inline comments to D68820: win: Move Parallel.h off concrt to cross-platform code.
Oct 10 2019, 9:28 PM · Restricted Project

Sep 6 2019

BillyONeal added a comment to D67273: [libc++] Remove unnecessary assignment in exclusive_scan.

I have not run either through tests yet...

Sep 6 2019, 6:26 PM · Restricted Project
BillyONeal added a comment to D67273: [libc++] Remove unnecessary assignment in exclusive_scan.
Sep 6 2019, 10:10 AM · Restricted Project
BillyONeal added a comment to D67273: [libc++] Remove unnecessary assignment in exclusive_scan.

That's worse; it replaced 2n assignments with n assignments, n constructions, and n destructions. Interestingly, assigning over __saved is an optimization I should put into MSVC.

Sep 6 2019, 9:28 AM · Restricted Project

Jul 26 2019

BillyONeal added a comment to D65249: [NFC] use C++11 in AlignOf.h, remove AlignedCharArray.

(In fact I observe many patterns in this review like:

Jul 26 2019, 5:33 PM · Restricted Project, Restricted Project, Restricted Project
BillyONeal added a comment to D65249: [NFC] use C++11 in AlignOf.h, remove AlignedCharArray.
In D65249#1603335, @jfb wrote:

@rnk: how about I add a bit of code that wraps aligned_storage on all platforms except MSVC (where I'd implement it as Billy suggests). That would mean updating all the uses of aligned_storage to this LLVM one, but that's not a big deal.

Jul 26 2019, 5:28 PM · Restricted Project, Restricted Project, Restricted Project
BillyONeal added a comment to D65249: [NFC] use C++11 in AlignOf.h, remove AlignedCharArray.

@BillyONeal do you know if 19.11 has the aligned_storage issue on x86?

Jul 26 2019, 3:37 PM · Restricted Project, Restricted Project, Restricted Project

Jul 3 2019

BillyONeal added a comment to D61366: [libcxx] [test] Don't assert that moved-from containers with non-POCMA allocators are empty..

Is there a reason this hasn't been committed?

Jul 3 2019, 1:43 PM

Jul 1 2019

BillyONeal committed rG0384a780549a: [libcxx] [test] Add void cast to result of compare_exchange_weak to suppress… (authored by BillyONeal).
[libcxx] [test] Add void cast to result of compare_exchange_weak to suppress…
Jul 1 2019, 1:10 AM

May 14 2019

BillyONeal added inline comments to D61364: [libcxx] [test] Fix incorrect allocator::construct assertions in associative container tests.
May 14 2019, 3:58 PM · Restricted Project
BillyONeal added a comment to D61364: [libcxx] [test] Fix incorrect allocator::construct assertions in associative container tests.

From Billy and my last discussion, I think we came to the agreement that it's not clear exactly what the "standard behavior" is.

May 14 2019, 3:56 PM · Restricted Project
BillyONeal added a comment to D61364: [libcxx] [test] Fix incorrect allocator::construct assertions in associative container tests.

Do you know *why* the tests are failing with libc++? I see this overload for insert and it seems like it should be a better match?

May 14 2019, 3:37 PM · Restricted Project
BillyONeal added a comment to D61366: [libcxx] [test] Don't assert that moved-from containers with non-POCMA allocators are empty..

you are indeed allowed to move the elements

May 14 2019, 3:37 PM
BillyONeal added a comment to D61366: [libcxx] [test] Don't assert that moved-from containers with non-POCMA allocators are empty..

I'm not sure I agree with your design decision, but this patch LGTM.

May 14 2019, 2:47 PM

May 10 2019

BillyONeal added a comment to D59676: Make Parallel.h build with libc++ on Windows..

@BillyONeal do you think your new parallel algorithm(s) will give a better throughput?

May 10 2019, 11:37 AM · Restricted Project

May 6 2019

BillyONeal added inline comments to D61365: [libcxx] [test] Suppress float->int narrowing warning in vector range-construction test..
May 6 2019, 8:38 PM

May 1 2019

BillyONeal updated the diff for D61366: [libcxx] [test] Don't assert that moved-from containers with non-POCMA allocators are empty..

Also fixed vector<bool> test.

May 1 2019, 3:13 PM
BillyONeal updated the summary of D61364: [libcxx] [test] Fix incorrect allocator::construct assertions in associative container tests.
May 1 2019, 12:10 AM · Restricted Project
BillyONeal created D61366: [libcxx] [test] Don't assert that moved-from containers with non-POCMA allocators are empty..
May 1 2019, 12:04 AM
BillyONeal created D61365: [libcxx] [test] Suppress float->int narrowing warning in vector range-construction test..
May 1 2019, 12:01 AM

Apr 30 2019

BillyONeal created D61364: [libcxx] [test] Fix incorrect allocator::construct assertions in associative container tests.
Apr 30 2019, 11:59 PM · Restricted Project

Apr 18 2019

BillyONeal committed rGbd7db5ac958d: [libc++] [test] Add missing required headers to midpoint.integer.pass.cpp (authored by BillyONeal).
[libc++] [test] Add missing required headers to midpoint.integer.pass.cpp
Apr 18 2019, 11:03 AM

Apr 2 2019

BillyONeal committed rG4c1581e2da81: [libcxx] [test] Add missing <stdexcept> to name std::out_of_range to string. (authored by BillyONeal).
[libcxx] [test] Add missing <stdexcept> to name std::out_of_range to string.
Apr 2 2019, 5:08 PM
BillyONeal committed rG2bb0f75a8015: [libcxx] [test] Use ptrdiff_t rather than int in splice_after_range.pass.cpp to… (authored by BillyONeal).
[libcxx] [test] Use ptrdiff_t rather than int in splice_after_range.pass.cpp to…
Apr 2 2019, 5:07 PM
BillyONeal committed rG7b9e4ebb033e: [libcxx] [test] Fix test bugs in string.cons/copy_alloc.pass.cpp. (authored by BillyONeal).
[libcxx] [test] Fix test bugs in string.cons/copy_alloc.pass.cpp.
Apr 2 2019, 5:06 PM
BillyONeal closed D60104: [libcxx] [test] Use ptrdiff_t rather than int in splice_after_range.pass.cpp to avoid narrowing from pointer subtraction to int warnings..

Committed r357546

Apr 2 2019, 5:05 PM
BillyONeal closed D60023: [libcxx] [test] Fix test bugs in string.cons/copy_alloc.pass.cpp..

Committed r357545

Apr 2 2019, 5:04 PM · Restricted Project
BillyONeal updated the diff for D60023: [libcxx] [test] Fix test bugs in string.cons/copy_alloc.pass.cpp..
Apr 2 2019, 5:04 PM · Restricted Project
BillyONeal added a comment to D60023: [libcxx] [test] Fix test bugs in string.cons/copy_alloc.pass.cpp..

Tim Song suggests that http://eel.is/c++draft/string.require#2 indicates that basic_string actually does need to provide the strong guarantee here. While I think that wording is a mess I think I'll fix our basic_string to do that instead of that part of this change.

Apr 2 2019, 4:36 PM · Restricted Project

Apr 1 2019

BillyONeal updated the diff for D60023: [libcxx] [test] Fix test bugs in string.cons/copy_alloc.pass.cpp..

Fixed misspelled test macro.

Apr 1 2019, 6:41 PM · Restricted Project
BillyONeal created D60104: [libcxx] [test] Use ptrdiff_t rather than int in splice_after_range.pass.cpp to avoid narrowing from pointer subtraction to int warnings..
Apr 1 2019, 4:07 PM
BillyONeal updated the diff for D60023: [libcxx] [test] Fix test bugs in string.cons/copy_alloc.pass.cpp..

Fix asserts for the strong EH guarantee.

Apr 1 2019, 1:05 PM · Restricted Project

Mar 30 2019

BillyONeal added inline comments to D60023: [libcxx] [test] Fix test bugs in string.cons/copy_alloc.pass.cpp..
Mar 30 2019, 2:51 AM · Restricted Project
BillyONeal added inline comments to D60023: [libcxx] [test] Fix test bugs in string.cons/copy_alloc.pass.cpp..
Mar 30 2019, 2:44 AM · Restricted Project
BillyONeal added inline comments to D60023: [libcxx] [test] Fix test bugs in string.cons/copy_alloc.pass.cpp..
Mar 30 2019, 2:22 AM · Restricted Project

Mar 29 2019

BillyONeal created D60023: [libcxx] [test] Fix test bugs in string.cons/copy_alloc.pass.cpp..
Mar 29 2019, 7:02 PM · Restricted Project

Mar 22 2019

BillyONeal added a comment to D59676: Make Parallel.h build with libc++ on Windows..

f you happen to have pointers to the APIs to use here… :)

Mar 22 2019, 3:50 PM · Restricted Project
BillyONeal added a comment to D59607: libc++/win: Make once_flag have the same size as a pointer.

I think this is a good change regardless:

Mar 22 2019, 12:52 PM · Restricted Project
BillyONeal added a comment to D59676: Make Parallel.h build with libc++ on Windows..

'assumes' in what way? If concrt140.dll uses msvcp140.dll internally but no STL objects are passed from user code (built with libc++) to ppl functions to concrt140.dll, things should be fine for example.

Mar 22 2019, 12:25 PM · Restricted Project
BillyONeal abandoned D59621: [libcxx] [test] Add (void) casts to operator new calls, to suppress warnings generated by [[nodiscard]]..

This didn't work out, we'll just skip the tests for MSVC++ for now.

Mar 22 2019, 12:08 PM

Mar 21 2019

BillyONeal added a comment to D59607: libc++/win: Make once_flag have the same size as a pointer.

We (MSVC++) could just fix pplwin.h to not have this assumption, since clang doesn't need the workaround that forces us to reinterperet_cast void*, but that fix probably wouldn't make it shipped until VS 2019 Update 1 at the earliest (I'd have to go through ship room) and Update 2 more likely.

Mar 21 2019, 7:15 PM · Restricted Project
BillyONeal added a comment to D59676: Make Parallel.h build with libc++ on Windows..

Attempting to use ConcRT powered machinery (like the Concurrency:: primitives in this file) with a different STL like libc++ is likely to be non-functional, since that calls into concrt140.dll which assumes MSVC++'s STL. There's also an issue here that this code is using std::mutex with ConcRT powered machinery like Concurrency::parallel_for_each, which is not supported and is likely to result in deadlocks. ConcRT assumes that everything you give to it is non-blocking, so you can't use Concurrency::parallel_for_each with platform synchronization primitives. (This is the biggest reason we, MSVC++, are moving away from ConcRT as a technoligy and did not use it to power our parallel algorithms implementation)

Mar 21 2019, 7:04 PM · Restricted Project

Mar 20 2019

BillyONeal added a comment to D59621: [libcxx] [test] Add (void) casts to operator new calls, to suppress warnings generated by [[nodiscard]]..

This broke all the build bots, so I reverted the SVN change. I thought the nodiscard-ness was tested elsewhere but I'm not sure about interaction between this and -faligned-allocation.

Mar 20 2019, 5:26 PM
BillyONeal committed rG277cf30d6c80: [libcxx] [test] Revert r356632 add (void) casts to operator new calls, to… (authored by BillyONeal).
[libcxx] [test] Revert r356632 add (void) casts to operator new calls, to…
Mar 20 2019, 5:25 PM
BillyONeal committed rG49fc2655819f: [libcxx] [test] Add (void) casts to operator new calls, to suppress warnings… (authored by BillyONeal).
[libcxx] [test] Add (void) casts to operator new calls, to suppress warnings…
Mar 20 2019, 4:58 PM
BillyONeal added a comment to D59621: [libcxx] [test] Add (void) casts to operator new calls, to suppress warnings generated by [[nodiscard]]..

As an FYI, I committed this to subversion as r356632 since I haven't figured out the new git world order yet.....

Mar 20 2019, 4:58 PM
BillyONeal created D59621: [libcxx] [test] Add (void) casts to operator new calls, to suppress warnings generated by [[nodiscard]]..
Mar 20 2019, 4:48 PM

Oct 19 2018

BillyONeal closed D53466: [libcxx] [test] Don't detect Windows' UCRT with TEST_COMPILER_C1XX.

Thank you! :D

Oct 19 2018, 8:39 PM
BillyONeal abandoned D53468: [libcxx] [test] Don't silence MSVC STL deprecation warnings when testing _LIBCPP_ENABLE_DEPRECATION_WARNINGS.

Actually this doesn't work -- because we /FI this thing, this file is included before the test gets to say _LIBCPP_ENABLE_DEPRECATION_WARNINGS.

Oct 19 2018, 7:49 PM
BillyONeal created D53468: [libcxx] [test] Don't silence MSVC STL deprecation warnings when testing _LIBCPP_ENABLE_DEPRECATION_WARNINGS.
Oct 19 2018, 6:56 PM
BillyONeal updated the diff for D53466: [libcxx] [test] Don't detect Windows' UCRT with TEST_COMPILER_C1XX.

Also fixed cstdlib tests.

Oct 19 2018, 6:39 PM
BillyONeal created D53466: [libcxx] [test] Don't detect Windows' UCRT with TEST_COMPILER_C1XX.
Oct 19 2018, 6:31 PM
BillyONeal closed D47395: [libcxx] [test] Remove nonportable locale assumption in basic.ios.members/narrow.pass.cpp.
Oct 19 2018, 4:54 PM
BillyONeal closed D50551: [libcxx] [test] Add missing <stdexcept> to several tests..

Committed r344821

Oct 19 2018, 4:51 PM
BillyONeal closed D50549: [libcxx] [test] Repair thread unsafety in thread tests.

Committed r344820

Oct 19 2018, 4:48 PM

Aug 13 2018

BillyONeal updated the diff for D50549: [libcxx] [test] Repair thread unsafety in thread tests.

Remove changes to detach tests.

Aug 13 2018, 6:02 PM
BillyONeal added inline comments to D50549: [libcxx] [test] Repair thread unsafety in thread tests.
Aug 13 2018, 5:59 PM
BillyONeal added inline comments to D50549: [libcxx] [test] Repair thread unsafety in thread tests.
Aug 13 2018, 10:38 AM
BillyONeal added inline comments to D50549: [libcxx] [test] Repair thread unsafety in thread tests.
Aug 13 2018, 10:33 AM
BillyONeal added inline comments to D50549: [libcxx] [test] Repair thread unsafety in thread tests.
Aug 13 2018, 10:22 AM
BillyONeal added inline comments to D50549: [libcxx] [test] Repair thread unsafety in thread tests.
Aug 13 2018, 10:13 AM
BillyONeal added inline comments to D50549: [libcxx] [test] Repair thread unsafety in thread tests.
Aug 13 2018, 10:05 AM
BillyONeal added inline comments to D50549: [libcxx] [test] Repair thread unsafety in thread tests.
Aug 13 2018, 10:02 AM

Aug 10 2018

BillyONeal added a comment to D50549: [libcxx] [test] Repair thread unsafety in thread tests.

We should add some TSAN folks to this review, since I think these are also TSAN false negatives; perhaps correctly, perhaps not.

Aug 10 2018, 8:31 PM

Aug 9 2018

BillyONeal created D50551: [libcxx] [test] Add missing <stdexcept> to several tests..
Aug 9 2018, 11:05 PM
BillyONeal created D50549: [libcxx] [test] Repair thread unsafety in thread tests.
Aug 9 2018, 9:48 PM
BillyONeal closed D47400: [libcxx] [test] Allow a standard library that implements LWG 1203 in istream.rvalue/rvalue.pass.cpp.
Aug 9 2018, 12:00 PM

Aug 7 2018

BillyONeal added a reviewer for D47400: [libcxx] [test] Allow a standard library that implements LWG 1203 in istream.rvalue/rvalue.pass.cpp: ldionne.

Adding ldionne as suggested by Eric.

Aug 7 2018, 5:53 PM
BillyONeal added a reviewer for D47395: [libcxx] [test] Remove nonportable locale assumption in basic.ios.members/narrow.pass.cpp: ldionne.

Adding ldionne as suggested by Eric.

Aug 7 2018, 5:52 PM
BillyONeal added a comment to D47400: [libcxx] [test] Allow a standard library that implements LWG 1203 in istream.rvalue/rvalue.pass.cpp.

Committed r339214

Aug 7 2018, 5:49 PM
BillyONeal added a comment to D47395: [libcxx] [test] Remove nonportable locale assumption in basic.ios.members/narrow.pass.cpp.

Committed r339213

Aug 7 2018, 5:48 PM
BillyONeal closed D50421: [libcxx] [test] Remove assertion that <bitset> includes <cstddef> and <stdexcept>..

Committed r339212

Aug 7 2018, 5:44 PM
BillyONeal updated the diff for D50421: [libcxx] [test] Remove assertion that <bitset> includes <cstddef> and <stdexcept>..

Remove comma.

Aug 7 2018, 5:43 PM
BillyONeal closed D50420: [libcxx] [test] Add missing <stdexcept> to several tests..

Committed r339209

Aug 7 2018, 5:41 PM
BillyONeal added inline comments to D50421: [libcxx] [test] Remove assertion that <bitset> includes <cstddef> and <stdexcept>..
Aug 7 2018, 5:17 PM
BillyONeal created D50421: [libcxx] [test] Remove assertion that <bitset> includes <cstddef> and <stdexcept>..
Aug 7 2018, 4:45 PM
BillyONeal created D50420: [libcxx] [test] Add missing <stdexcept> to several tests..
Aug 7 2018, 4:43 PM

Jul 25 2018

BillyONeal added a comment to D49774: [libc++] Use __int128_t to represent file_time_type..

Another problem (that Eric and I discussed last night) is that filesystem is part of C++17, and file_clock is C++20. So we need a solution for C++17 as well.

It seems like we need to fix C++20 to allow that to be a typedef to a type in std::filesystem or that will be ABI breaking for MSVC++. IMO we should fix the spec to allow that rather than make libc++ jump through insane hoops.

We could also just provide file_clock "early" in C++17. Strictly speaking that may make our implementation non-conforming, but IDK how big of a deal this would be?

Jul 25 2018, 12:58 PM
BillyONeal added a comment to D49774: [libc++] Use __int128_t to represent file_time_type..

Another problem (that Eric and I discussed last night) is that filesystem is part of C++17, and file_clock is C++20. So we need a solution for C++17 as well.

Jul 25 2018, 11:39 AM

May 25 2018

BillyONeal created D47400: [libcxx] [test] Allow a standard library that implements LWG 1203 in istream.rvalue/rvalue.pass.cpp.
May 25 2018, 4:57 PM
BillyONeal created D47395: [libcxx] [test] Remove nonportable locale assumption in basic.ios.members/narrow.pass.cpp.
May 25 2018, 2:51 PM

Apr 26 2018

BillyONeal updated subscribers of D34331: func.wrap.func.con: Unset function before destroying anything.

Why did tests for this this go into std? [reentrancy]/1 says this isn't required to work. Moreover, assignments in the dtor like this *can't* work in the general case because they would try to overwrite the SSO space. e.g. what do you expect this to do?

Apr 26 2018, 4:04 PM