diff options
author | Eric Fiselier <eric@efcs.ca> | 2016-06-30 22:34:43 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2016-06-30 22:34:43 +0000 |
commit | 9743af6e31eb0699ded017ac1f957a4a6fe78bf6 (patch) | |
tree | 2d3cec62f76d9487514a083bf65a9d018d630c84 /llvm/lib/Target/MSP430 | |
parent | 3b8669edbf3f8565309432126a6a3a1a7259a568 (diff) | |
download | bcm5719-llvm-9743af6e31eb0699ded017ac1f957a4a6fe78bf6.tar.gz bcm5719-llvm-9743af6e31eb0699ded017ac1f957a4a6fe78bf6.zip |
Replace __make_tuple_indices implementation with superior implementation.
The previous __make_tuple_indices implementation caused O(N) instantiations
and was pretty inefficient. The C++14 __make_integer_sequence implementation
is much better, since it either uses a builtin to generate the sequence or
a very nice Log8(N) implementation provided by richard smith.
This patch moves the __make_integer_sequence implementation into __tuple
and uses it to implement __make_tuple_indices.
Since libc++ can't expose the name 'integer_sequence' in C++11 this patch
also introduces a dummy type '__integer_sequence' which is used when generating
the sequence. One the sequence is generated '__integer_sequence' can be
converted into the required type; either '__tuple_indices' or 'integer_sequence'.
llvm-svn: 274286
Diffstat (limited to 'llvm/lib/Target/MSP430')
0 files changed, 0 insertions, 0 deletions