ppcg will be used to provide mapping decisions for GPU code generation. As we do not use C as input language, we do not include pet. However, we include pet.h from pet 82cacb71 plus a set of dummy functions to ensure ppcg links without problems. The version of ppcg committed is unmodified ppcg-0.04 which has been well tested in the context of LLVM. It does not provide an official library interface yet, which means that in upcoming commits we will add minor modifications to make necessary functionality accessible. We will aim to upstream these modifications after we gained enough experience with GPU generation support in Polly to propose a stable interface. Reviewers: Meinersbur Subscribers: pollydev, llvm-commits Differential Revision: http://reviews.llvm.org/D22033 llvm-svn: 275274
30 lines
1.2 KiB
C
30 lines
1.2 KiB
C
#ifndef GPU_TREE_H
|
|
#define GPU_TREE_H
|
|
|
|
#include <isl/schedule_node.h>
|
|
|
|
#include "gpu.h"
|
|
|
|
int gpu_tree_node_is_kernel(__isl_keep isl_schedule_node *node);
|
|
__isl_give isl_schedule_node *gpu_tree_move_up_to_thread(
|
|
__isl_take isl_schedule_node *node);
|
|
__isl_give isl_schedule_node *gpu_tree_move_down_to_thread(
|
|
__isl_take isl_schedule_node *node, __isl_keep isl_union_set *core);
|
|
__isl_give isl_schedule_node *gpu_tree_move_up_to_kernel(
|
|
__isl_take isl_schedule_node *node);
|
|
__isl_give isl_schedule_node *gpu_tree_move_down_to_depth(
|
|
__isl_take isl_schedule_node *node, int depth,
|
|
__isl_keep isl_union_set *core);
|
|
|
|
int gpu_tree_id_is_sync(__isl_keep isl_id *id, struct ppcg_kernel *kernel);
|
|
__isl_give isl_schedule_node *gpu_tree_ensure_sync_after_core(
|
|
__isl_take isl_schedule_node *node, struct ppcg_kernel *kernel);
|
|
__isl_give isl_schedule_node *gpu_tree_ensure_following_sync(
|
|
__isl_take isl_schedule_node *node, struct ppcg_kernel *kernel);
|
|
__isl_give isl_schedule_node *gpu_tree_move_left_to_sync(
|
|
__isl_take isl_schedule_node *node, struct ppcg_kernel *kernel);
|
|
__isl_give isl_schedule_node *gpu_tree_move_right_to_sync(
|
|
__isl_take isl_schedule_node *node, struct ppcg_kernel *kernel);
|
|
|
|
#endif
|