maskray.me

A deep dive into SmallVector:push_back

mariuz · 21 points · 3 comments · 昨天
打开原文HN 讨论

评论

2 条预览评论 · 正在加载完整讨论
dzaima1小时前

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 suitable aliasing information, the interleaved memcpy/store prevents the compiler from deciding this itself.

haeseong1小时前

[deleted]