maskray.me

A deep dive into SmallVector:push_back

mariuz · 17 points · 2 comments · Hôm qua

Comments

2 preview comments · loading full thread
dzaima34 phút trước

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.

haeseong32 phút trước

[deleted]