libcxx __hash_table constrain_hash

Hi Eric,

Do you happen to remember which benchmarks you were looking at when you added the optimization here [1]? With aggressive if-conversion, those two optimizations are really only increasing the critical path, rather than providing the intended early exit fast-path. I’m wondering if we ought to conditionally apply these optimizations in the compiler instead, where we know whether if-conversion is likely to negate the gains.

Jon

1: https://github.com/llvm/llvm-project/commit/118cb4180f30a5e501a055dc859b326049a24be2