maskray.me

A deep dive into SmallVector:push_back

mariuz · 16 points · 2 comments · 昨日

Comments

2 preview comments · loading full thread
dzaima33 分前

The crappiness of shrink-wrapping in gcc and clang (but especially clang) annoys me a lot. It feels like there should be a quite decent amount of general performance to be gained from properly pushing more into slow paths (or, not necessarily even slow paths, but generally paths with high register pressure / uninlined function calls), never mind calling conventions in general. On the push impl in the article - for non-x86 (and perhaps even on x86 for performance, though not size/instruction count) it'd be better to allow the size increment to reuse the size read done by the capacity check; with C++'s lack of aliasing information, the interleaved memcpy/store prevents the compiler from deciding this itself.

haeseong31 分前

[deleted]