Remove the unnecessary `is_nothrow_swappable` condition in `swap`.
authorMichael Park <mcypark@gmail.com>
Wed, 8 Jul 2020 17:46:02 +0000 (10:46 -0700)
committerMichael Park <mcypark@gmail.com>
Wed, 8 Jul 2020 17:46:38 +0000 (10:46 -0700)
commit6ab3208d779ffb3b32744b0190d7035d4b369173
tree23745287d5b564e5669efd61f95a47b7dfd5945a
parent82206e7fb49d9593d946599b107e8a8ad29a7d22
Remove the unnecessary `is_nothrow_swappable` condition in `swap`.

Thanks to @lewissbaker who pointed out the unnecessary condition in
https://reviews.llvm.org/D81954#inline-756872. Since this codepath does not
make use of `swap` anyway (that codepath is a different branch), we can safely
remove this condition and produce better codegen when all types are nothrow
movable but are potentially-throwing swappable.

See codegen in https://gcc.godbolt.org/z/uDFZjz

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D83274
libcxx/include/variant