Torvald Riegel
bc8da6ba25
libitm: Use ml_wt as default TM methods for >1 thread.
...
libitm/
* retry.cc (GTM::gtm_thread::number_of_threads_changed): Change
default dispatch for more than 1 thread to ml_wt.
From-SVN: r184547
2012-02-24 11:05:37 +00:00
Torvald Riegel
63b08143d6
libitm: Put gl_wt global lock on separate cache line.
...
libitm/
* method-gl.cc (gl_wt_dispatch::orec): Put on separate cacheline.
From-SVN: r184403
2012-02-20 20:57:37 +00:00
Torvald Riegel
4c9bd6acb0
libitm: Optimize synchronization in gl_wt rollback.
...
libitm/
* method-gl.cc (gl_wt_dispatch::rollback): Optimize memory orders.
From-SVN: r184402
2012-02-20 20:57:23 +00:00
Torvald Riegel
651ff4152e
libitm: Remove obsolete handling of prior serial lock corner cases in gl_wt.
...
libitm/
* method-gl.cc (gl_wt_dispatch::trycommit): Remove handling of
serial mode corner cases made obsolete by prior gtm_rwlock changes.
(gl_wt_dispatch.rollback): Same.
From-SVN: r184401
2012-02-20 20:57:09 +00:00
Torvald Riegel
efee0113e8
libitm: Optimize memory order requiremens in gl_wt pre_write.
...
libtim/
* method-gl.cc (gl_wt_dispatch::pre_write): Optimize memory orders.
From-SVN: r184400
2012-02-20 20:56:56 +00:00
Torvald Riegel
33a03827d2
libitm: Add missing undo-logging of RfW src regions in gl_wt memtransfer.
...
libitm/
* method-gl.cc (gl_wt_dispatch::memtransfer_static): Add missing undo
for RfW src. Optimize number of calls to gtm_thr.
From-SVN: r184399
2012-02-20 20:56:42 +00:00
Torvald Riegel
a19db3f2e3
libitm: Fix race condition in dispatch choice at transaction begin.
...
libitm/
* beginend.cc (GTM::gtm_thread::begin_transaction): Move serial lock
acquisition to ...
* retry.cc (GTM::gtm_thread::decide_begin_dispatch): ... here.
(default_dispatch): Make atomic.
(GTM::gtm_thread::set_default_dispatch): Access atomically.
(GTM::gtm_thread::decide_retry_strategy): Access atomically and
use decide_begin_dispatch() if default_dispatch might have changed.
(GTM::gtm_thread::number_of_threads_changed): Initialize
default_dispatch here.
From-SVN: r184392
2012-02-20 13:06:07 +00:00
Iain Sandoe
e948a1fbd4
re PR libitm/52220 (FAIL: libitm.c++/eh-1.C execution test due to Xcode 4 weakref linker bug)
...
libitm/
2012-02-15 Iain Sandoe <iains@gcc.gnu.org>
Patrick Marlier <patrick.marlier@gmail.com>
PR libitm/52220
* alloc_cpp.cc: No dummy definitions for darwin.
* eh_cpp.cc: Likewise.
libgcc/
2012-02-15 Iain Sandoe <iains@gcc.gnu.org>
Patrick Marlier <patrick.marlier@gmail.com>
PR libitm/52220
* config/darwin-crt-tm.c: Generate dummy functions.
Co-Authored-By: Patrick Marlier <patrick.marlier@gmail.com>
From-SVN: r184293
2012-02-15 23:39:28 +00:00
Richard Henderson
72824d5e40
* config/x86/target.h (GTM_longjmp): Correct the .cfi corrections.
...
From-SVN: r184227
2012-02-14 11:46:46 -08:00
Uros Bizjak
1f319dbad6
target.h (GTM_longjmp): Correct .cfi directives.
...
* config/x86/target.h (GTM_longjmp): Correct .cfi directives.
From-SVN: r184220
2012-02-14 19:38:38 +01:00
Torvald Riegel
31772c9507
libitm: Add multi-lock, write-through TM method.
...
libitm/
* libitm_i.h (GTM::gtm_rwlog_entry): New.
(GTM::gtm_thread): Add read and write logs.
(GTM::dispatch_ml_wt): Declare.
* retry.cc (parse_default_method): Support ml_wt.
* method-ml.cc: New file.
* Makefile.am: Add method-ml.cc.
* Makefile.in: Regenerate.
From-SVN: r184212
2012-02-14 13:14:27 +00:00
Torvald Riegel
5b9cf5d2bf
libitm: Improve method reinit and choice.
...
libitm/
* dispatch.h (GTM::abi_dispatch::supports): New.
(GTM::method_group::reinit): New.
* retry.cc (GTM::gtm_thread::decide_retry_strategy): Use reinit().
(GTM::gtm_thread::number_of_threads_changed): Check that the method
supports the current situation.
From-SVN: r184211
2012-02-14 13:14:12 +00:00
Torvald Riegel
7d33bcb738
libitm: Add xcalloc.
...
libitm/
* util.cc (GTM::xcalloc): New.
* common.h (GTM::xcalloc): Declare.
From-SVN: r184210
2012-02-14 13:13:56 +00:00
Eric Botcazou
62513f7bed
target.h (cpu_relax): Read from CC register.
...
* config/sparc/target.h (cpu_relax): Read from CC register.
* config/sparc/sjlj.S (GTM_longjmp): Restore %fp atomically.
From-SVN: r184202
2012-02-14 09:22:26 +00:00
Uros Bizjak
d4a698d494
target.h (GTM_longjmp): Jump indirect from memory address.
...
* config/x86/target.h (GTM_longjmp): Jump indirect from memory address.
From-SVN: r184198
2012-02-14 08:50:38 +01:00
Eric Botcazou
f3f5e3c32e
configure.tgt (target_cpu): Handle sparc and sparc64 & sparcv9.
...
* configure.tgt (target_cpu): Handle sparc and sparc64 & sparcv9.
* config/sparc/cacheline.h: New file.
* config/sparc/target.h: Likewise.
* config/sparc/sjlj.S: Likewise.
* config/linux/sparc/futex_bits.h: Likewise.
From-SVN: r184177
2012-02-13 21:51:44 +00:00
Eric Botcazou
255a9a1bb5
gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
...
gcc/
* gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
(GTM_SELF_SPECS): Define if not already defined.
(driver_self_specs): Add GTM_SELF_SPECS.
* config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
(GTM_SELF_SPECS): Define.
* config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
* config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
libitm/
* configure.ac (link_itm): Fix comment.
* configure: Regenerate.
* testsuite/lib/libitm.exp: Do not pass -litm for the link.
From-SVN: r184174
2012-02-13 21:46:38 +00:00
Rainer Orth
fc985d2fc7
Fixed PR reference.
...
From-SVN: r183755
2012-01-31 11:42:55 +00:00
Rainer Orth
681355e30d
Link C++ tests with -shared-libgcc (PR libitm/51822)
...
PR libstdc++/51296
* testsuite/libitm.c++/c++.exp (lang_link_flags): Add
-shared-libgcc.
Correct libgomp references.
From-SVN: r183754
2012-01-31 11:40:17 +00:00
Torvald Riegel
999bcff5bd
libitm: Fix wake-up of readers in futex-based serial lock.
...
libitm/
* config/linux/rwlock.cc (GTM::gtm_rwlock::write_unlock): Fix reader
wake-up.
From-SVN: r183488
2012-01-24 19:17:05 +00:00
Uros Bizjak
9848887afa
target.h (gtm_jmpbuf): Move rip to the end of structure.
...
* config/x86/target.h (gtm_jmpbuf) [__x86_64__]: Move rip to the
end of structure.
* config/x86/sjlj.S (_ITM_beginTransaction) [__x86_64__]: Update
offset values. Do not copy return address. Decrement stack
by 56 bytes only.
(GTM_longjump) [__x86_64__]: Update offset values.
From-SVN: r183467
2012-01-24 08:23:57 +01:00
Uros Bizjak
5752c591bc
re PR libitm/51830 (FAIL: libitm.c/mem(cpy|set)-1.c execution test)
...
PR libitm/51830
* builtin-types.def (BT_FN_UINT_UINT_VAR): New.
* gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
libitm/ChangeLog:
PR libitm/51830
* config/x86/sjlj.S (_ITM_beginTransaction) [!__x86_64__]: Load
the first function argument to %eax.
From-SVN: r183435
2012-01-23 15:57:44 +01:00
Rainer Orth
61e72ca4fa
Remove _ITM_getThreadnum
...
* libitm.h (_ITM_getThreadnum): Remove.
* libitm.map (_ITM_getThreadnum): Remove from LIBITM_1.0.
From-SVN: r183431
2012-01-23 13:05:00 +00:00
Rainer Orth
9ce91011bf
Clear hardware capabilities on libitm.so with Sun ld
...
* clearcap.map: New file.
* acinclude.m4 (LIBITM_CHECK_LINKER_HWCAP): New test.
* configure.ac: Call it.
Clear HWCAP_LDFLAGS if defaulting to -mavx.
* Makefile.am (AM_LDFLAGS): Add $(HWCAP_LDFLAGS)
* configure: Regenerate.
* Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.
From-SVN: r183430
2012-01-23 13:03:25 +00:00
Rainer Orth
3b4f05ec1e
Skip static_ctor.C test (PR libitm/51173)
...
PR libitm/51173
* testsuite/libitm.c++/static_ctor.C: Skip test, note PR, remove
include, exclude options.
From-SVN: r183253
2012-01-17 15:42:47 +00:00
Torvald Riegel
aab74ee9d4
libitm: Truncate undo log after rolling back.
...
libitm/
* local.cc (GTM::gtm_undolog::rollback): Truncate undo log after
rolling back.
* containers.h (GTM::vector::set_size): New.
From-SVN: r183173
2012-01-13 23:45:42 +00:00
Torvald Riegel
07b6642b93
libitm: Filter out undo writes that overlap with the libitm stack.
...
PR libitm/51855
* config/generic/tls.h (GTM::mask_stack_top): New.
(GTM::mask_stack_bottom): Declare.
* config/generic/tls.c (GTM::mask_stack_bottom): New.
* local.cc (gtm_undolog::rollback): Filter out any updates that
overlap the libitm stack. Add current transaction as parameter.
* libitm_i.h (GTM::gtm_undolog::rollback): Adapt.
* beginend.cc (GTM::gtm_thread::rollback): Adapt.
* testsuite/libitm.c/stackundo.c: New test.
From-SVN: r183172
2012-01-13 23:45:06 +00:00
Richard Henderson
8377e5e546
libitm_i.h (_Unwind_DeleteException): Declare weak.
...
* libitm_i.h (_Unwind_DeleteException): Declare weak.
* eh_cpp.cc (_Unwind_DeleteException): Define for
!HAVE_ELF_STYLE_WEAKREF.
From-SVN: r183049
2012-01-09 19:16:07 -08:00
Torvald Riegel
11f30bb0e4
libitm: Optimize undo log.
...
libitm/
* local.cc (GTM_LB): Use GTM::gtm_undolog.
(GTM::gtm_thread::drop_references_undolog): Remove.
(GTM::gtm_thread::commit_undolog,
GTM::gtm_thread::rollback_undolog): Move to ...
* libitm_i.h (GTM::gtm_undolog): ...here. New.
(GTM::gtm_undolog_entry): Remove.
(GTM::gtm_thread): Adapt.
* beginend.cc (GTM::gtm_thread::rollback): Adapt.
(GTM::gtm_thread::trycommit): Adapt.
* method-serial.cc (serial_dispatch::log): Adapt.
* method-gl.cc (gl_wt_dispatch::pre_write): Adapt.
(gl_wt_dispatch::store): Fix likely/unlikely.
* containers.h (GTM::vector::resize): Add additional_capacity
parameter and handle it.
(GTM::vector::resize_noinline): New/adapt.
(GTM::vector::push): New.
From-SVN: r182992
2012-01-08 14:13:49 +00:00
Richard Henderson
a32e5e9357
libitm: PowerPC support.
...
* configure.tgt: Support powerpc-linux and powerpc-darwin.
* config/linux/powerpc/futex_bits.h: New file.
* config/powerpc/cacheline.h: New file.
* config/powerpc/sjlj.S: New file.
* config/powerpc/target.h: New file.
* config/generic/asmcfi.h (cfi_offset): New.
(cfi_restore, cfi_undefined): New.
From-SVN: r182930
2012-01-05 13:36:35 -08:00
Aldy Hernandez
be223aafde
Add Patrick Marlier to ChangeLog entry.
...
From-SVN: r182912
2012-01-05 14:16:39 +00:00
Aldy Hernandez
1f53a8e6ab
re PR libitm/51171 (XFAIL: libitm.c/reentrant.c execution test)
...
PR other/51171
* testsuite/libitm.c/reentrant.c: Remove xfail.
(thread): Pass x to pure().
From-SVN: r182911
2012-01-05 14:14:29 +00:00
Torvald Riegel
c898f7b85f
libitm: Don't enforce privatization safety if already in serial mode.
...
libitm/
* beginend.cc (GTM::gtm_thread::trycommit): Don't enforce
privatization safety if already in serial mode.
From-SVN: r182676
2011-12-24 01:42:48 +00:00
Torvald Riegel
610e390135
libitm: Fix privatization safety during upgrades to serial mode.
...
libitm/
* beginend.cc (GTM::gtm_thread::restart): Add and handle
finish_serial_upgrade parameter.
* libitm.h (GTM::gtm_thread::restart): Adapt declaration.
* config/linux/rwlock.cc (GTM::gtm_rwlock::write_lock_generic):
Don't unset reader flag.
(GTM::gtm_rwlock::write_upgrade_finish): New.
* config/posix/rwlock.cc: Same.
* config/linux/rwlock.h (GTM::gtm_rwlock::write_upgrade_finish):
Declare.
* config/posix/rwlock.h: Same.
* method-serial.cc (GTM::gtm_thread::serialirr_mode): Unset reader
flag after commit or after rollback when restarting.
From-SVN: r182675
2011-12-24 01:42:35 +00:00
Torvald Riegel
799142bf74
libitm: Fixed conversion to C++11 atomics.
...
libitm/
* beginend.cc (GTM::gtm_thread::begin_transaction): Add comment.
(GTM::gtm_thread::try_commit): Changed memory order.
* config/linux/alpha/futex_bits.h (sys_futex0): Take atomic int
as parameter.
* config/linux/x86/futex_bits.h (sys_futex0): Same.
* config/linux/sh/futex_bits.h (sys_futex0): Same.
* config/linux/futex_bits.h (sys_futex0): Same.
* config/linux/futex.cc (futex_wait, futex_wake): Same.
* config/linux/futex.h (futex_wait, futex_wake): Same.
* config/linux/rwlock.h (gtm_rwlock::writers,
gtm_rwlock::writer_readers, gtm_rwlock::readers): Change to atomic
ints.
* config/linux/rwlock.cc (gtm_rwlock::read_lock,
gtm_rwlock::write_lock_generic, gtm_rwlock::read_unlock,
gtm_rwlock::write_unlock): Fix memory orders and fences.
* config/posix/rwlock.cc (gtm_rwlock::read_lock,
gtm_rwlock::write_lock_generic, gtm_rwlock::read_unlock,
gtm_rwlock::write_unlock): Same.
* config/linux/rwlock.h (gtm_rwlock::summary): Change to atomic int.
* method-gl.cc (gl_mg::init, gl_wt_dispatch::memtransfer_static,
gl_wt_dispatch::memset_static, gl_wt_dispatch::begin_or_restart):
Add comments.
(gl_wt_dispatch::pre_write, gl_wt_dispatch::validate,
gl_wt_dispatch::load, gl_wt_dispatch::store,
gl_wt_dispatch::try_commit, gl_wt_dispatch::rollback): Fix memory
orders and fences. Add comments.
From-SVN: r182674
2011-12-24 01:42:20 +00:00
Jakub Jelinek
b0f96e350a
Makefile.am (AM_CXXFLAGS): Put $(XCFLAGS) first.
...
* Makefile.am (AM_CXXFLAGS): Put $(XCFLAGS) first.
* Makefile.in: Regenerated.
From-SVN: r182593
2011-12-21 17:14:11 +01:00
Kaz Kojima
cc16324749
configure.tgt: Add sh* case.
...
* configure.tgt: Add sh* case.
* config/sh/target.h: New file.
* config/sh/sjlj.S: New file.
* config/linux/sh/futex_bits.h: New file.
From-SVN: r182429
2011-12-17 03:19:40 +00:00
Richard Henderson
aebac0ca06
arm-linux: Add libitm support.
...
* config/arm/hwcap.h, config/arm/hwcap.cc: New files.
* config/arm/sjlj.S, config/arm/target.h: New files.
* config/generic/asmcfi.h (cfi_adjust_cfa_offset): New.
(cfi_rel_offset): New.
* config/linux/futex_bits.h: New file.
* config/linux/futex.cc: Include futex_bits.h here...
* config/linux/futex.h: ... not here.
* Makefile.am (libitm_la_SOURCES) <ARCH_ARM>: Add hwcap.cc.
* configure.ac (ARCH_AM): New conditional.
* Makefile.in, configure: Rebuild.
* configure.tgt: Handle ARM.
From-SVN: r182355
2011-12-14 19:24:05 -08:00
Richard Henderson
5d9d05d349
rwlock.cc (gtm_rwlock::write_lock_generic): Fix signed/unsigned comparison werror.
...
* config/posix/rwlock.cc (gtm_rwlock::write_lock_generic): Fix
signed/unsigned comparison werror.
From-SVN: r182302
2011-12-13 12:10:36 -08:00
Richard Henderson
36cfbee133
libitm: Conversion to c++11 atomics.
...
* local_atomic: New file.
* libitm_i.h: Include it.
(gtm_thread::shared_state): Use atomic template.
* beginend.cc (GTM::gtm_clock): Use atomic template.
(global_tid): Use atomic template if 64-bit atomics available.
(gtm_thread::gtm_thread): Update shared_state access.
(gtm_thread::trycommit): Likewise.
(choose_code_path): Update global_tid access.
* method-gl.cc (gl_mg::orec): Use atomic template. Update all users.
* stmlock.h (GTM::gtm_clock): Use atomic template.
(gtm_get_clock, gtm_inc_clock): Update accesses.
* config/linux/rwlock.cc (gtm_rwlock::read_lock): Remove
redundant __sync_synchronize after atomic shared_state access.
* config/posix/rwlock.cc (gtm_rwlock::read_lock): Likewise.
(gtm_rwlock::write_lock_generic): Likewise.
(gtm_rwlock::read_unlock): Likewise.
* config/alpha/target.h (atomic_read_barrier): Remove.
(atomic_write_barrier): Remove.
* config/x86/target.h (atomic_read_barrier): Remove.
(atomic_write_barrier): Remove.
From-SVN: r182294
2011-12-13 11:11:25 -08:00
Richard Henderson
062f93f255
Swap the action and jmpbuf arguments to GTM_longjmp
...
On several ABIs, the first register parameter is the same as
the return value register. Moving the action parameter first
avoids the need for register shuffling on these targets.
* libitm_i.h (GTM_longjmp): Swap first and second arguments.
* beginend.c (_ITM_abortTransaction): Update to match.
(GTM::gtm_thread::restart): Likewise.
* config/alpha/sjlj.S (GTM_longjmp): Likewise.
* config/x86/sjlj.S (GTM_longjmp): Likewise.
From-SVN: r181863
2011-11-30 14:29:33 -08:00
Iain Sandoe
bd8aaa863d
Makefile.am (libitm_la_LDFLAGS): Remove "-no-undefined".
...
libitm:
* Makefile.am (libitm_la_LDFLAGS): Remove "-no-undefined".
* Makefile.in: Regenerate.
From-SVN: r181654
2011-11-23 09:46:59 +00:00
Iain Sandoe
8cf36bb3b8
weakref.m4: New file.
...
config:
* weakref.m4: New file.
libitm:
* configure.ac: Use GCC_CHECK_ELF_STYLE_WEAKREF.
* alloc_cpp.cc: Generate dummy functions if we don't
HAVE_ELF_STYLE_WEAKREF.
* eh_cpp.cc: Likewise.
* configure: Regenerate.
* aclocal.m4: Likewise.
* config.h.in: Likewise.
* Makefile.in: Likewise.
* testsuite/Makefile.in: Likewise.
From-SVN: r181618
2011-11-22 14:49:11 +00:00
Iain Sandoe
0b41ebef72
sjlj.S (CONCAT1, [...]): Respond to __USER_LABEL_PREFIX__ for targets that use it.
...
libitm:
* config/x86/sjlj.S (CONCAT1, CONCAT2, SYM): Respond to
__USER_LABEL_PREFIX__ for targets that use it.
TYPE, SIZE, HIDDEN): New macros to assist on non-elf targets.
(_ITM_beginTransaction): Use SYM, TYPE, SIZE macros to assist
in portability to non-elf targets.
(GTM_longjmp): LIkewise.
* libitm_i.h (begin_transaction): Apply __USER_LABEL_PREFIX__
where required.
From-SVN: r181612
2011-11-22 09:57:19 +00:00
Iain Sandoe
9c9d352aba
memcpy-1.c: Allow for MAP_ANON spelling.
...
libitm:
* testsuite/libitm.c/memcpy-1.c: Allow for MAP_ANON spelling.
* testsuite/libitm.c/memset-1.c: Likewise.
From-SVN: r181611
2011-11-22 09:49:32 +00:00
Andreas Tobler
c6084f681e
Additional fixes for FreeBSD-10 build:
...
/: * libtool.m4: Additional FreeBSD 10 fixes.
boehm-gc/: * configure: Regenerate.
gcc/: * configure: Regenerate.
libffi/: * configure: Regenerate.
libgfortran/: * configure: Regenerate.
libgomp/: * configure: Regenerate.
libitm/: * configure: Regenerate.
libjava/: * configure.ac: Fix some more FreeBSD 10 issues..
* configure: Regenerate.
libjava/libltdl/: * acinclude.m4: Additional FreeBSD 10 fixes.
* configure: Regenerate.
libmudflap/: * configure: Regenerate.
libobjc/: * configure: Regenerate.
libquadmath/: * configure: Regenerate.
libssp/: * configure: Regenerate.
libstdc++-v3/: * configure: Regenerate.
lto-plugin/: * configure: Regenerate.
zlib/: * configure: Regenerate.
From-SVN: r181593
2011-11-21 20:22:35 +01:00
Rainer Orth
adcd36bc3f
Support sun symbol versioning in libitm
...
libitm:
* acinclude.m4 (LIBITM_CHECK_LINKER_FEATURES): Handle gold.
(LIBITM_ENABLE_SYMVERS): Handle sun style.
* Makefile.am: Handle sun style versioning.
(libitm_la_LINK): Add $(libitm_la_LDFLAGS).
* configure: Regenerate.
* Makefile.in: Regenerate.
contrib:
* make_sunver.pl: Convert '?' in glob patterns to '.'.
From-SVN: r181588
2011-11-21 17:03:50 +00:00
Rainer Orth
59659b5967
Support libitm on Solaris 8 and 9/x86 with Sun as
...
* config/generic/asmcfi.h: Fix comment.
* config/x86/sjlj.S (_ITM_beginTransaction): Provide ELF PIC code
sequence without .hidden support, error for non-ELF targets.
(GTM_longjmp) [__ELF__]: Only use .hidden if
HAVE_ATTRIBUTE_VISIBILITY.
From-SVN: r181481
2011-11-18 16:15:59 +00:00
Rainer Orth
d846e425c9
Provide all dummy functions in alloc_cpp.cc, eh_cpp.cc
...
* alloc_cpp.cc [__osf__] (_ZnwX, _ZdlPv, _ZnaX, _ZdaPv,
_ZnwXRKSt9nothrow_t, _ZdlPvRKSt9nothrow_t, _ZdaPvRKSt9nothrow_t):
Dummy functions.
* eh_cpp.cc [__osf__] (__cxa_allocate_exception, __cxa_throw,
__cxa_begin_catch, __cxa_end_catch, __cxa_tm_cleanup): Likewise.
From-SVN: r181442
2011-11-17 11:34:33 +00:00
Uros Bizjak
807133470c
re PR bootstrap/51098 (bootstrap failed on avx i686, svn revision 181259 to 181267)
...
PR bootstrap/51098
* acinclude.m4 (LIBITM_CHECK_AS_AVX): Fix target selector.
* configure: Regenerate.
From-SVN: r181408
2011-11-16 15:51:13 +01:00