On 08/30/12 15:39, Iyer, Balaji V wrote:
Hello Everyone,
The Cilk-Plus branch is feature-complete. Programs using Cilk Plus
constructs get great performance on vector and multicore hardware. Programs
that don't use the new language features (enabled by a -fcilkplus flag) see no
change. For details please see http://cilkplus.org.
It's time to promote the branch into mainline. Cilk Plus branch is
stable and there is no unexpected failures with respect to the trunk in
regression testsuites. Most of the changes are in the front and middle-end.
Since it involves many changes, I plan to break it up into individual patches
(listed below), each of which adds a new, complete capability. Later patches
sometimes use the functionality added by the previous one. For example,
Elemental functions for C++ will depend on some of the common routines used in
C patch:
Hi Iyer.
Thank you for all your work on this.
Perhaps it is of interest to note (IIRC), that the language extensions
have been proposed for inclusion in the next OpenMP version??
I can't speak for the rest of the community, but I think items 1-12 are
useful for GCC (elemental functions, SIMD annotations, and array
notations for C/C++), regardless of any language extensions. Perhaps
you could provide examples on these as a start?
Regarding the SIMD annotations, I find the "vector" attribute somewhat
ambiguous, or prone to confusing users, so perhaps we could come up with
a better name?
Over all, I don't see why this can't be included as an experimental
feature like OpenMP, transactional memory, etc, especially if it's
relatively self contained and doesn't affected the non cilkplus code
path too much.
Anyone have further thoughts on this, especially global maintainers :)?
Aldy
1. Elemental functions for C.
2. Regression tests for elemental functions for C.
3. Elemental functions for C++.
4. Regression tests for elemental functions for C++.
5. SIMD annotations for C.
6. Regression tests for SIMD annotations for C.
7. SIMD annotations for C++.
8. Regression tests for SIMD annotations for C++.
9. Array notations for C.
10. Regression tests for Array notations for C.
11. Array Notations for C++.
12. Regression tests for Array Notations for C++.
13. The Cilk Runtime library -- It is a separate directory without any changes
to compiler source.
14. Cilk Keywords (_Cilk_spawn and _Cilk_sync) for C.
15. Regression tests _Cilk_spawn and _Cilk_sync for C.
16. Cilk Keywords (_Cilk_spawn and _Cilk_sync) for C++.
17. Regression tests _Cilk_spawn and _Cilk_sync for C++.
18. Cilk Keywords (_Cilk_for) for C.
19. _Cilk_for Regression tests for C.
20. Cilk Keywords (_Cilk_for) for C++.
21. _Cilk_for Regression tests for C++.
22. Documentation about Cilk Plus into GCC documents.
If there is a more effective way to merge our changes to the trunk, I am open
to suggestions.
Thanking You,
Yours Sincerely,
Balaji V. Iyer.