Page MenuHomePhabricator

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

mvels (Martijn Vels)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 13 2019, 8:07 AM (211 w, 3 d)

Recent Activity

Aug 4 2023

mvels added a comment to D155486: Optimize basic_string's memory usage.

BTW: I did not understand the Apple max_size.pass failure, I adjusted the test and they all pass (check-cxx) on my local git repo on x86.

On the backdeployment targets the new code uses the old version of the dylib. My suspicion is there is an ABI incompatibility. @philnik do you see an issue in this patch?

This is an ABI break, but I don't think that's the problem. max_size isn't instantiated. This look to me like there is an off-by-one error somewhere.

Could we split this into two patches? This is really seems like it has high potential for having subtile bugs.

Aug 4 2023, 3:42 AM · Restricted Project, Restricted Project

Jul 26 2023

mvels updated the diff for D155486: Optimize basic_string's memory usage.

Remove parenthesis from debugging

Jul 26 2023, 7:18 AM · Restricted Project, Restricted Project
mvels updated the diff for D155486: Optimize basic_string's memory usage.

Fix what I am sure is a bug in checking for max_size() in grow_by_....

Jul 26 2023, 7:15 AM · Restricted Project, Restricted Project

Jul 25 2023

mvels added a comment to D155486: Optimize basic_string's memory usage.

BTW: I did not understand the Apple max_size.pass failure, I adjusted the test and they all pass (check-cxx) on my local git repo on x86.

Jul 25 2023, 8:51 AM · Restricted Project, Restricted Project
mvels edited reviewers for D155486: Optimize basic_string's memory usage, added: Mordante; removed: ldionne.
Jul 25 2023, 7:57 AM · Restricted Project, Restricted Project
mvels updated the diff for D155486: Optimize basic_string's memory usage.

Added extra comments on string growth

Jul 25 2023, 7:51 AM · Restricted Project, Restricted Project

Jul 17 2023

mvels added a reviewer for D155486: Optimize basic_string's memory usage: ldionne.
Jul 17 2023, 12:10 PM · Restricted Project, Restricted Project
mvels updated the diff for D155486: Optimize basic_string's memory usage.

Fix headers removed by clang-format mess

Jul 17 2023, 9:55 AM · Restricted Project, Restricted Project
mvels updated the diff for D155486: Optimize basic_string's memory usage.

Upload correct version this time

Jul 17 2023, 9:53 AM · Restricted Project, Restricted Project
mvels updated the diff for D155486: Optimize basic_string's memory usage.

Upload grow_by amended changes

Jul 17 2023, 9:51 AM · Restricted Project, Restricted Project
mvels updated the diff for D155486: Optimize basic_string's memory usage.

Add grow_by without replace

Jul 17 2023, 9:49 AM · Restricted Project, Restricted Project
mvels added a reviewer for D155486: Optimize basic_string's memory usage: EricWF.
Jul 17 2023, 9:40 AM · Restricted Project, Restricted Project
mvels requested review of D155486: Optimize basic_string's memory usage.
Jul 17 2023, 9:39 AM · Restricted Project, Restricted Project

Jul 20 2021

mvels added a comment to D102727: Use precise growth rather than amortized growth in std::string::resize/__resize_default_init..

_LIBCPP_ABI_UNSTABLE is meant for improvements (in correctness, performance or other) that require breaking the ABI.

Jul 20 2021, 2:12 PM · Restricted Project, Restricted Project

Jul 15 2021

mvels added inline comments to D102727: Use precise growth rather than amortized growth in std::string::resize/__resize_default_init..
Jul 15 2021, 4:48 PM · Restricted Project, Restricted Project
mvels added a comment to D102727: Use precise growth rather than amortized growth in std::string::resize/__resize_default_init..

Some 2 cents from my side.

Jul 15 2021, 4:44 PM · Restricted Project, Restricted Project
mvels added a comment to D102727: Use precise growth rather than amortized growth in std::string::resize/__resize_default_init..

@ckennelly I know you did a lot of work on std::string, can you take a look at this change?

I've added @mvels who has done a lot more looking at std::string than I have.

Jul 15 2021, 10:48 AM · Restricted Project, Restricted Project

Mar 30 2021

mvels added a reviewer for D99595: Add convenient composed tsan constants: dvyukov.
Mar 30 2021, 7:13 AM · Restricted Project
mvels requested review of D99595: Add convenient composed tsan constants.
Mar 30 2021, 7:11 AM · Restricted Project

Oct 27 2020

mvels added a comment to D90111: Partially implement C++20's P1020/P1973..

Sorry, didn't see this earlier as this drowned in my email filters :/

Oct 27 2020, 3:34 AM · Restricted Project, Restricted Project

Jul 6 2020

mvels committed rG842136428264: Modifications to the algorithm sort benchmark (authored by minjaehwang).
Modifications to the algorithm sort benchmark
Jul 6 2020, 3:32 PM
mvels closed D81770: Modifications to the algorithm sort benchmark.
Jul 6 2020, 3:32 PM · Restricted Project
mvels accepted D81770: Modifications to the algorithm sort benchmark.
Jul 6 2020, 3:27 PM · Restricted Project
mvels requested changes to D81770: Modifications to the algorithm sort benchmark.
Jul 6 2020, 1:11 PM · Restricted Project
mvels added inline comments to D81770: Modifications to the algorithm sort benchmark.
Jul 6 2020, 1:09 PM · Restricted Project
mvels updated the summary of D81770: Modifications to the algorithm sort benchmark.
Jul 6 2020, 1:05 PM · Restricted Project
mvels accepted D81770: Modifications to the algorithm sort benchmark.
Jul 6 2020, 1:02 PM · Restricted Project
mvels added a comment to D81770: Modifications to the algorithm sort benchmark.

clang-tidy complains that "benchmark/benchmark.h" is not found at CartesianBehcmarks.h. This diff does not modify that file and this is a benign error. It compiles without a problem.

Could anyone land this diff into the master?

Jul 6 2020, 1:02 PM · Restricted Project
mvels added a reviewer for D81770: Modifications to the algorithm sort benchmark: mvels.
Jul 6 2020, 1:01 PM · Restricted Project

Jun 29 2020

mvels created D82809: Optimize vector push_back for hot loops / push_back fill invocations.
Jun 29 2020, 2:46 PM · Restricted Project, Restricted Project
mvels committed rG2bad2226801f: Add optimization to basic_string::assign for compile-time known constant values. (authored by mvels).
Add optimization to basic_string::assign for compile-time known constant values.
Jun 29 2020, 11:55 AM
mvels closed D82221: Add optimization to basic_string::assign for compile-time known constant values..
Jun 29 2020, 11:55 AM · Restricted Project

Jun 19 2020

mvels abandoned D78763: Add optimization to basic_string::assign for compile-time known constant values..
Jun 19 2020, 11:58 AM · Restricted Project
mvels added a comment to D78763: Add optimization to basic_string::assign for compile-time known constant values..

I'm going to abandon this diff, seems arcanist, phabricator and I can't see each other eye to eye...... :\ which makes me sad,....

Create new diff (same as this) in https://reviews.llvm.org/D82220

Jun 19 2020, 11:58 AM · Restricted Project
mvels created D82220: Add optimization to basic_string::assign for compile-time known constant values..
Jun 19 2020, 11:26 AM · Restricted Project
mvels retitled D82220: Add optimization to basic_string::assign for compile-time known constant values. from This change optimizes the assign() methods for string where either the contents or lengths are compile time known constants. For small strings (< min_cap) we can execute the assignment entirely inline. For strings up to 128 bytes we allow the... to Add optimization to basic_string::assign for compile-time known constant values..
Jun 19 2020, 11:26 AM · Restricted Project
mvels created D82221: Add optimization to basic_string::assign for compile-time known constant values..
Jun 19 2020, 11:26 AM · Restricted Project
mvels added a comment to D78763: Add optimization to basic_string::assign for compile-time known constant values..

I'm going to abandon this diff, seems arcanist, phabricator and I can't see each other eye to eye...... :\ which makes me sad,....

Jun 19 2020, 11:26 AM · Restricted Project
mvels abandoned D82220: Add optimization to basic_string::assign for compile-time known constant values..
Jun 19 2020, 11:26 AM · Restricted Project
mvels updated the diff for D78763: Add optimization to basic_string::assign for compile-time known constant values..

arc diff with --head=HEAD 'HEAD~1'

Jun 19 2020, 11:26 AM · Restricted Project
mvels updated the diff for D78763: Add optimization to basic_string::assign for compile-time known constant values..

Running arc diff --update D78763

Jun 19 2020, 9:12 AM · Restricted Project
mvels added a comment to D78763: Add optimization to basic_string::assign for compile-time known constant values..

Looks like harbormaster builds use arcanist, and arcanist has **magic ** making awful diffs?

Jun 19 2020, 8:37 AM · Restricted Project
mvels added a comment to D78763: Add optimization to basic_string::assign for compile-time known constant values..

I'm mystified why the build fails, it fails on applying the patch:

Jun 19 2020, 8:05 AM · Restricted Project
mvels updated the diff for D78763: Add optimization to basic_string::assign for compile-time known constant values..

Uploading clean diff

Jun 19 2020, 6:59 AM · Restricted Project
mvels added a comment to D78763: Add optimization to basic_string::assign for compile-time known constant values..

Uploaded clean diff in case harbormaster is confused about diffs

Jun 19 2020, 6:59 AM · Restricted Project

Jun 18 2020

mvels added a comment to D78763: Add optimization to basic_string::assign for compile-time known constant values..

Thanks for the reviews!

Jun 18 2020, 1:38 PM · Restricted Project
mvels abandoned D73134: Add invariant on <long string cap> >= __min_cap and change brittle __was_long cases.
Jun 18 2020, 1:38 PM · Restricted Project
mvels updated the diff for D78763: Add optimization to basic_string::assign for compile-time known constant values..

Optimed ternary op for ascizz string -> always evalutate length in inlined constant string.

Jun 18 2020, 1:38 PM · Restricted Project
mvels updated the diff for D73134: Add invariant on <long string cap> >= __min_cap and change brittle __was_long cases.

Cleaned up const char* ternary, evaluating traits_type::length for all constant strings

Jun 18 2020, 1:38 PM · Restricted Project
mvels added inline comments to D78763: Add optimization to basic_string::assign for compile-time known constant values..
Jun 18 2020, 12:34 PM · Restricted Project
mvels abandoned D80827: Optimize vector push_back to avoid continuous load and store of end pointer. (alt 2).
Jun 18 2020, 12:34 PM · Restricted Project
mvels abandoned D73291: Inline basic_string::assign(s [, n]) for compile time known short strings.
Jun 18 2020, 12:34 PM · Restricted Project
mvels committed rGd96aac435423: Optimize 'construct at end' loops in vector (authored by mvels).
Optimize 'construct at end' loops in vector
Jun 18 2020, 11:27 AM
mvels closed D82111: Optimize 'construct at end' loops in vector.
Jun 18 2020, 11:27 AM · Restricted Project
mvels committed rG555106aa6935: Unreachable (removed) (authored by mvels).
Optimize 'construct at end' loops in vector
Jun 18 2020, 10:55 AM
mvels created D82111: Optimize 'construct at end' loops in vector.
Jun 18 2020, 10:54 AM · Restricted Project

Jun 9 2020

mvels updated the diff for D80827: Optimize vector push_back to avoid continuous load and store of end pointer. (alt 2).

Removed __config changes

Jun 9 2020, 2:21 PM · Restricted Project
mvels updated the diff for D80827: Optimize vector push_back to avoid continuous load and store of end pointer. (alt 2).

Revamped

Jun 9 2020, 2:21 PM · Restricted Project
mvels updated the diff for D80827: Optimize vector push_back to avoid continuous load and store of end pointer. (alt 2).

Fixed __config comment

Jun 9 2020, 2:21 PM · Restricted Project

May 29 2020

mvels updated the diff for D80827: Optimize vector push_back to avoid continuous load and store of end pointer. (alt 2).

Fixed NOEXCEPT comments

May 29 2020, 12:00 PM · Restricted Project
mvels added a reviewer for D80827: Optimize vector push_back to avoid continuous load and store of end pointer. (alt 2): EricWF.
May 29 2020, 12:00 PM · Restricted Project
mvels retitled D80827: Optimize vector push_back to avoid continuous load and store of end pointer. (alt 2) from credits: this change is based on analysis and a proof of concept by gerbens@google.com. to Optimize vector push_back to avoid continuous load and store of end pointer. (alt 2).
May 29 2020, 12:00 PM · Restricted Project
mvels added inline comments to D80588: [libc++] Optimize vector push_back to avoid continuous load and store of end pointer.
May 29 2020, 12:00 PM · Restricted Project, Restricted Project
mvels updated the diff for D80588: [libc++] Optimize vector push_back to avoid continuous load and store of end pointer.

renamed end --> pos

May 29 2020, 12:00 PM · Restricted Project, Restricted Project
mvels created D80827: Optimize vector push_back to avoid continuous load and store of end pointer. (alt 2).
May 29 2020, 12:00 PM · Restricted Project
mvels updated the diff for D78763: Add optimization to basic_string::assign for compile-time known constant values..

Update diff after master pull

May 29 2020, 8:39 AM · Restricted Project
mvels updated the diff for D78763: Add optimization to basic_string::assign for compile-time known constant values..

Removed Apple V2 abi list

May 29 2020, 8:07 AM · Restricted Project

May 27 2020

mvels updated the diff for D80588: [libc++] Optimize vector push_back to avoid continuous load and store of end pointer.

White space / comment clean up

May 27 2020, 2:42 PM · Restricted Project, Restricted Project
mvels updated the diff for D80588: [libc++] Optimize vector push_back to avoid continuous load and store of end pointer.

Fixed AsanTransaction for single 'construct_at' use case

May 27 2020, 2:10 PM · Restricted Project, Restricted Project
mvels abandoned D75639: Partially inline basic_string copy constructor in UNSTABLE.
May 27 2020, 1:02 PM · Restricted Project
Herald added a reviewer for D75639: Partially inline basic_string copy constructor in UNSTABLE: Restricted Project.
May 27 2020, 1:02 PM · Restricted Project
mvels added a comment to D78763: Add optimization to basic_string::assign for compile-time known constant values..

Well, I think we should probably remove that notion, or merge it with the "unstable" ABI. It's not really a thing since V2 is basically unstable AFAICT.

Just fix it and we can improve the situation (i.e. probably remove it) later.

I have no way to verify / test this (cross compiling apple darwin v2 looks to be impossible?), and guessing the mangled names from x86 compiles seems dubious as well given the diffs I see on apple v1 vs linux v1

May 27 2020, 11:56 AM · Restricted Project
mvels added a comment to D80588: [libc++] Optimize vector push_back to avoid continuous load and store of end pointer.
  1. Pass this->__end_ to the helper functions
  2. Return the new end pointer from those helpers

I am skeptical why step 2 is needed at all. You never remove setting of this->__end_. So why do you need to do work that has already been done? Could you please verify that the second part is indeed necessary?

If it is indeed necessary I note that you pessimize the slow path by decrementing and then incrementing.

I would greatly prefer it if you would directly return in both the fast and the slow path.

May 27 2020, 10:16 AM · Restricted Project, Restricted Project

May 26 2020

mvels updated the summary of D80588: [libc++] Optimize vector push_back to avoid continuous load and store of end pointer.
May 26 2020, 2:11 PM · Restricted Project, Restricted Project
mvels created D80588: [libc++] Optimize vector push_back to avoid continuous load and store of end pointer.
May 26 2020, 2:11 PM · Restricted Project, Restricted Project
mvels added a reviewer for D80588: [libc++] Optimize vector push_back to avoid continuous load and store of end pointer: EricWF.
May 26 2020, 2:11 PM · Restricted Project, Restricted Project

May 21 2020

mvels added a comment to D78763: Add optimization to basic_string::assign for compile-time known constant values..

They are removed from the unstable ABI, but not from the ABI v2. Those are different things (and I guess it doesn't really make sense for them to be different). But we should either decide that we don't test abi lists for ABI v2, or fix it. I suggest we fix it for now in order to make progress on this. You just need to update the ABI list for v2, it shouldn't be difficult.

May 21 2020, 2:05 PM · Restricted Project
mvels updated the diff for D78763: Add optimization to basic_string::assign for compile-time known constant values..

Restricted assign to __min_cap

May 21 2020, 12:26 PM · Restricted Project
mvels added a comment to D78763: Add optimization to basic_string::assign for compile-time known constant values..

Please make sure you update the ABI v2 abi list when you make these changes. It's currently broken (and this change will break it even more). You can run make check-cxx-abilist to see the failures.

Or, I guess we can also have a discussion to disable the abi list tests for unstable ABIs, since it's not that useful I guess.

May 21 2020, 6:59 AM · Restricted Project
mvels updated the diff for D78763: Add optimization to basic_string::assign for compile-time known constant values..

Fixed external instantiations for unstable (removed __resize)

May 21 2020, 6:59 AM · Restricted Project
mvels updated the diff for D78763: Add optimization to basic_string::assign for compile-time known constant values..

Simplified change to inlined optimizations.

May 21 2020, 6:58 AM · Restricted Project

Apr 23 2020

mvels updated the diff for D78763: Add optimization to basic_string::assign for compile-time known constant values..

Added proper constant for min short -> long promotion size

Apr 23 2020, 3:15 PM · Restricted Project
mvels added a reviewer for D78763: Add optimization to basic_string::assign for compile-time known constant values.: EricWF.
Apr 23 2020, 3:15 PM · Restricted Project
mvels updated the summary of D78763: Add optimization to basic_string::assign for compile-time known constant values..
Apr 23 2020, 3:15 PM · Restricted Project
mvels updated the summary of D78763: Add optimization to basic_string::assign for compile-time known constant values..
Apr 23 2020, 3:15 PM · Restricted Project
mvels created D78763: Add optimization to basic_string::assign for compile-time known constant values..
Apr 23 2020, 3:15 PM · Restricted Project
mvels updated the diff for D78763: Add optimization to basic_string::assign for compile-time known constant values..

Adjusted for sizeof(value_type)

Apr 23 2020, 3:15 PM · Restricted Project

Apr 10 2020

mvels committed rG7ba045a430b9: Make basic_string::operator=() tail call properly (authored by mvels).
Make basic_string::operator=() tail call properly
Apr 10 2020, 4:42 PM
mvels closed D77913: Make basic_string::operator=() tail call properly.
Apr 10 2020, 4:42 PM · Restricted Project
mvels created D77913: Make basic_string::operator=() tail call properly.
Apr 10 2020, 3:37 PM · Restricted Project

Mar 4 2020

mvels committed rGb019c5c0372e: Partially inline basic_string copy constructor in UNSTABLE (authored by mvels).
Partially inline basic_string copy constructor in UNSTABLE
Mar 4 2020, 3:15 PM
mvels closed D75554: Partially inline basic_string::assign(__s [, __n]) methods..
Mar 4 2020, 3:14 PM · Restricted Project
mvels updated the diff for D75554: Partially inline basic_string::assign(__s [, __n]) methods..

New diff after rebase

Mar 4 2020, 3:11 PM · Restricted Project
mvels added a comment to D75639: Partially inline basic_string copy constructor in UNSTABLE.

Thanks, arc is not my friend :\ Fixed the diff using --base=git:origin

Mar 4 2020, 3:11 PM · Restricted Project
mvels added a comment to D73223: Partially inline basic_string copy constructor in UNSTABLE.

Thanks, arc is not my friend :\ Fixed the diff using --base=git:origin

Mar 4 2020, 3:11 PM · Restricted Project
mvels added a comment to D73223: Partially inline basic_string copy constructor in UNSTABLE.

BTW, you could argue 'arc' was smart enough to recognize this was a rolled forward revert, and only diff against the original submit, alas :)

Mar 4 2020, 3:11 PM · Restricted Project
mvels updated the diff for D75639: Partially inline basic_string copy constructor in UNSTABLE.

Diff against

Mar 4 2020, 2:37 PM · Restricted Project
mvels added a reviewer for D75639: Partially inline basic_string copy constructor in UNSTABLE: EricWF.
Mar 4 2020, 12:57 PM · Restricted Project
mvels created D75639: Partially inline basic_string copy constructor in UNSTABLE.
Mar 4 2020, 12:57 PM · Restricted Project
mvels committed rG3712edb152ac: Revert "Partially inline basic_string copy constructor in UNSTABLE" (authored by mvels).
Revert "Partially inline basic_string copy constructor in UNSTABLE"
Mar 4 2020, 12:23 PM