This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Merging Cilk Plus into GCC Trunk


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.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]