Commit Graph

278 Commits

Author SHA1 Message Date
Howard Hinnant
56f0d5be06 A compiler writer's guide to <atomic>
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115629 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-05 16:44:40 +00:00
Howard Hinnant
6cac2c2c9c Make flag type configurable by the compiler
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115614 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-05 14:02:23 +00:00
Howard Hinnant
b4ac745466 Thanks Sebastian\!
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115612 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-05 13:38:23 +00:00
Howard Hinnant
002f1d341b Filling out the infrastructure in <atomic>
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115577 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-04 23:55:35 +00:00
Howard Hinnant
26994e383c __has_feature crutch
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115540 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-04 19:01:30 +00:00
Howard Hinnant
611fdaf229 Still working on the basic design of <atomic>. I'm working towards a system by which the compiler only needs to define the strongest intrinsics it can. Weaker atomics in the library automatically try stronger and stronger variants, picking the weakest compiler intrinsic available. If no compiler intrinsics are available for a given operation, the library locks a mutex and does the job. Better documentation to follow...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115538 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-04 18:52:54 +00:00
Howard Hinnant
7c0c696afd Tweak to make clang blocks work with std::functional (very fragile)
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115461 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-03 13:59:56 +00:00
Howard Hinnant
364f5965da Bug 7984 by Bernhard Rosenkraenzer
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115443 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-02 23:27:23 +00:00
Howard Hinnant
1348fba3e2 Bug 8254 by Bernhard Rosenkraenzer
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115430 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-02 23:23:25 +00:00
Howard Hinnant
79101aec3a [atomics.flag] completed. Initialization is not working on clang and can't be made to work without defaulted default constructors.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115207 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 21:05:29 +00:00
Howard Hinnant
f701e25c49 Name change of intrinsics as suggested by Jeffrey Yasskin
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115145 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 14:04:35 +00:00
Howard Hinnant
767ae2b483 Contemplating this <atomic> reorganization...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115087 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-29 21:20:03 +00:00
Howard Hinnant
5b6af69387 updated per weekly tests
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115081 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-29 20:15:25 +00:00
Howard Hinnant
c260b06366 Didn't mean to commit that one
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115058 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-29 18:33:45 +00:00
Howard Hinnant
ed760f40b7 Wrestling with the slowly dawning realization that <atomic> isn't implementable on any compiler at my disposal...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115054 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-29 18:13:54 +00:00
Howard Hinnant
0ce02245a9 fixing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114967 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-28 17:19:10 +00:00
Howard Hinnant
d1176e29b0 [atomics.order]
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114966 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-28 17:13:38 +00:00
Howard Hinnant
8f73c63658 Getting started on <atomic>
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114887 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-27 21:17:38 +00:00
Howard Hinnant
d05c6e646b Bugzilla 8231
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114851 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-27 18:09:23 +00:00
Howard Hinnant
e049cc5f75 Cleaning up some tuple code.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114848 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-27 17:54:17 +00:00
Howard Hinnant
ee6ccd0e32 visibility-decoration sweep completed.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114685 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-23 18:58:28 +00:00
Howard Hinnant
8d7a9557b7 visibility-decoration.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114671 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-23 17:31:07 +00:00
Howard Hinnant
28c97e6ee1 visibility-decoration.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114658 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-23 16:27:36 +00:00
Howard Hinnant
aef07cbffd visibility-decoration.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114647 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-23 15:13:20 +00:00
Howard Hinnant
b9af2eae4a visibility-decoration.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114559 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-22 18:02:38 +00:00
Howard Hinnant
828948148d visibility-decoration.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114551 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-22 16:48:34 +00:00
Howard Hinnant
68a8e90b3d visibility-decoration.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114545 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-22 15:29:08 +00:00
Howard Hinnant
8c6cbb24e8 visibility-decoration.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114543 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-22 14:16:26 +00:00
Howard Hinnant
42a63a781f visibility-decoration.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114496 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-21 22:55:27 +00:00
Howard Hinnant
422a53fd7a visibility-decoration.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114486 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-21 21:28:23 +00:00
Howard Hinnant
333f50d30c visibility-decoration.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114470 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-21 20:16:37 +00:00
Howard Hinnant
b0be42b2ce visibility-decoration.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114465 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-21 18:58:51 +00:00
Howard Hinnant
99acc5008b visibility-decoration.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114451 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-21 17:32:39 +00:00
Howard Hinnant
c0de2e48ff Getting started on a visibility-decoration sweep.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114440 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-21 16:04:28 +00:00
Howard Hinnant
3975ebd4f5 Tweak clang support for char16_t/char32_t
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114129 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-16 23:27:26 +00:00
Howard Hinnant
049734ed85 Updated chart for weekly test results.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114029 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-15 21:56:37 +00:00
Daniel Dunbar
611581b853 tests/lit: Split options into two groups, so we don't get driver warnings about
unused linker arguments for compile only tests.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113935 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-15 04:31:58 +00:00
Daniel Dunbar
26a43c25d7 tests: Remove some stray cleanup code.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113934 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-15 04:18:37 +00:00
Daniel Dunbar
7e0c57b203 tests: Fixup lit config, which got garbled somehow...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113931 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-15 04:11:29 +00:00
Daniel Dunbar
f5eadcd8d5 tests: Sketch a lit config for running libc++ tests; currently expects libc++ to have been installed.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113925 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-15 03:57:04 +00:00
Howard Hinnant
45f5717812 Cement ABI on clang for char16_t and char32_t. Also fixed some comments in <iterator>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113842 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-14 20:26:27 +00:00
Howard Hinnant
d2a9251977 Experimenting with a new forward fomulation (kudos Daniel Kruegler), updated insert iterators to work better with pproxies, and doubled the speed of __next_prime.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113731 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-13 01:43:27 +00:00
Howard Hinnant
a0f1dc9f46 Fix another const bug in function. Thanks to Daniel Krugler for finding this and the previous bug.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113686 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11 15:33:21 +00:00
Howard Hinnant
fdc5a0f321 Fix const bug in function
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113684 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-11 15:09:37 +00:00
Nick Kledzik
c7e4d82bc0 <rdar://problem/8279559> [libstdcxx] use new linker options to make symbols non-weak
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113616 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10 20:42:36 +00:00
Howard Hinnant
36cdf027d2 I am experimenting with putting visibility-default attributes on all struct/classes in libc++. This checkin decorates only basic_string and vector as an experiment, and for review by those in this audience that might know more about visibilty than I do. If I get no negative feedback on this procedure I will begin to decorate the entire library in this way.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113590 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10 16:42:26 +00:00
Howard Hinnant
cb2deb2652 Yonggang Luo fixed gcc version checking for type_traits support.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113487 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-09 13:58:34 +00:00
Howard Hinnant
e764f0b648 Updated by-chapter-summary with weekly test results, and fixed up some bad paths in some tests caused by aligning the test suite with N3126.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113403 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-08 20:31:42 +00:00
Howard Hinnant
745d473ac1 Hooked the following up to clang: is_class, is_enum, has_nothrow_copy_assign, has_trivial_destructor, has_virtual_destructor, is_pod. Implemented has_copy_assign.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113373 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-08 17:55:32 +00:00
Howard Hinnant
27031115bf has_nothrow_copy_assign hooked up to clang
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113364 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-08 16:39:18 +00:00