123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- #ifndef GCC_CILK_H
- #define GCC_CILK_H
- #define CILK_FRAME_UNSYNCHED 0x02
- #define CILK_FRAME_DETACHED 0x04
- #define CILK_FRAME_EXCEPTING 0x10
- #define CILK_FRAME_VERSION (1 << 24)
- enum cilk_tree_index {
- CILK_TI_F_WORKER = 0,
- CILK_TI_F_SYNC,
- CILK_TI_F_DETACH,
- CILK_TI_F_ENTER,
- CILK_TI_F_ENTER_FAST,
- CILK_TI_F_LEAVE,
- CILK_TI_F_POP,
- CILK_TI_F_RETHROW,
- CILK_TI_F_SAVE_FP,
- CILK_TI_F_LOOP_32,
- CILK_TI_F_LOOP_64,
-
- CILK_TI_FRAME_FLAGS,
- CILK_TI_FRAME_PARENT,
- CILK_TI_FRAME_WORKER,
- CILK_TI_FRAME_EXCEPTION,
- CILK_TI_FRAME_CONTEXT,
- CILK_TI_FRAME_PEDIGREE,
-
- CILK_TI_WORKER_CUR,
- CILK_TI_WORKER_TAIL,
- CILK_TI_WORKER_PEDIGREE,
-
- CILK_TI_PEDIGREE_RANK,
- CILK_TI_PEDIGREE_PARENT,
-
-
- CILK_TI_FRAME_TYPE,
- CILK_TI_FRAME_PTR,
- CILK_TI_WORKER_TYPE,
- CILK_TI_PEDIGREE_TYPE,
- CILK_TI_MAX
- };
- extern GTY (()) tree cilk_trees[CILK_TI_MAX];
- #define cilk_worker_fndecl cilk_trees[CILK_TI_F_WORKER]
- #define cilk_sync_fndecl cilk_trees[CILK_TI_F_SYNC]
- #define cilk_synched_fndecl cilk_trees[CILK_TI_F_SYNCED]
- #define cilk_detach_fndecl cilk_trees[CILK_TI_F_DETACH]
- #define cilk_enter_fndecl cilk_trees[CILK_TI_F_ENTER]
- #define cilk_enter_fast_fndecl cilk_trees[CILK_TI_F_ENTER_FAST]
- #define cilk_leave_fndecl cilk_trees[CILK_TI_F_LEAVE]
- #define cilk_rethrow_fndecl cilk_trees[CILK_TI_F_RETHROW]
- #define cilk_pop_fndecl cilk_trees[CILK_TI_F_POP]
- #define cilk_save_fp_fndecl cilk_trees[CILK_TI_F_SAVE_FP]
- #define cilk_for_32_fndecl cilk_trees[CILK_TI_F_LOOP_32]
- #define cilk_for_64_fndecl cilk_trees[CILK_TI_F_LOOP_64]
- #define cilk_worker_type_fndecl cilk_trees[CILK_TI_WORKER_TYPE]
- #define cilk_frame_type_decl cilk_trees[CILK_TI_FRAME_TYPE]
- #define cilk_frame_ptr_type_decl cilk_trees[CILK_TI_FRAME_PTR]
- #define cilk_pedigree_type_decl cilk_trees[CILK_TI_PEDIGREE_TYPE]
- extern void expand_builtin_cilk_detach (tree);
- extern void expand_builtin_cilk_pop_frame (tree);
- extern tree cilk_arrow (tree, int, bool);
- extern tree cilk_dot (tree, int, bool);
- extern void cilk_init_builtins (void);
- extern void gimplify_cilk_sync (tree *, gimple_seq *);
- extern tree cilk_call_setjmp (tree);
- inline bool
- fn_contains_cilk_spawn_p (function *f)
- {
- return (flag_cilkplus
- && (f->calls_cilk_spawn || f->cilk_frame_decl != NULL_TREE));
- }
- #endif
|