HomePhabricator

Fix lld on GCC 5.1 after the C++14 move

Description

Fix lld on GCC 5.1 after the C++14 move

Summary:
libstdc++ in GCC 5.1 has some bugs. The move to C++14 in D66195 triggered one
such bug caused by the new constexpr support in C++14, and the implementation
doing SFINAE wrong with the comparator to std::stable_sort.

Here's a small repro: https://godbolt.org/z/2QC3-n

The fix is to inline the lambdas directly into the llvm::stable_sort call
instead of erasing them through a std::function. The code is more readable as
well.

Reviewers: thakis, ruiu, espindola

Subscribers: emaste, arichardson, MaskRay, jkorous, dexonsmith, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D66306

Details

Committed
jfbAug 15 2019, 10:47 AM
Differential Revision
D66306: Fix lld on GCC 5.1 after the C++14 move
Parents
rL369022: [X86] Improve cost model for subvector extraction of less than 128-bit vectors
Branches
Unknown
Tags
Unknown