diff options
author | Eric Fiselier <eric@efcs.ca> | 2016-07-01 04:07:39 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2016-07-01 04:07:39 +0000 |
commit | e2fd8b8db95cea730e9ab277c0e05f4ecfd59d09 (patch) | |
tree | d3084e6b34e463b59d06d2ab65c877fdddfa6b25 /llvm/lib/CodeGen/MachineBlockPlacement.cpp | |
parent | 10b9a1bb422639cf47d4aaf13a38b74e68101bef (diff) | |
download | bcm5719-llvm-e2fd8b8db95cea730e9ab277c0e05f4ecfd59d09.tar.gz bcm5719-llvm-e2fd8b8db95cea730e9ab277c0e05f4ecfd59d09.zip |
Flatten tuple_constructible, tuple_convertible and tuple_assignable.
This patch is the last in a series that replaces recursive meta-programming
in std::tuple with non-recursive implementations.
Previously std::tuple could only be instantiated with 126 elements before
it blew the max template instantiation depth. Now the size of std::tuple is
essentially unbounded (I've tested with over 5000 elements).
One unfortunate side-effect of this change is that tuple_constructible
and similar no longer short circuit after the first failure. Instead they
evaluate the conditions for all elements. This could be potentially breaking.
I plan to look into this further.
llvm-svn: 274331
Diffstat (limited to 'llvm/lib/CodeGen/MachineBlockPlacement.cpp')
0 files changed, 0 insertions, 0 deletions