From ed60f11bc544f1de4e699b1b46d366c77653199b Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Wed, 29 Jan 2014 15:35:46 +0100 Subject: [PATCH] gpu.c: expr_extract_access: avoid accessing pet_expr internals Use accessor functions instead. Signed-off-by: Sven Verdoolaege --- gpu.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/gpu.c b/gpu.c index d47c9f4..545468d 100644 --- a/gpu.c +++ b/gpu.c @@ -5629,19 +5629,28 @@ static void compute_copy_in_and_out(struct gpu_gen *gen) static struct gpu_stmt_access **expr_extract_access(struct pet_expr *expr, struct gpu_stmt_access **next_access) { + isl_map *may; struct gpu_stmt_access *access; - isl_ctx *ctx = isl_map_get_ctx(expr->acc.access); + isl_ctx *ctx; + may = pet_expr_access_get_may_access(expr); + ctx = isl_map_get_ctx(may); access = isl_alloc_type(ctx, struct gpu_stmt_access); assert(access); access->next = NULL; - access->read = expr->acc.read; - access->write = expr->acc.write; - access->access = pet_expr_access_get_may_access(expr); + access->read = pet_expr_access_is_read(expr); + access->write = pet_expr_access_is_write(expr); + access->access = may; access->tagged_access = pet_expr_access_get_tagged_may_access(expr); - access->exact_write = !expr->acc.write || - isl_map_is_equal(expr->acc.access, access->access); - access->ref_id = isl_id_copy(expr->acc.ref_id); + if (!access->write) { + access->exact_write = 1; + } else { + isl_map *must; + must = pet_expr_access_get_must_access(expr); + access->exact_write = isl_map_is_equal(must, access->access); + isl_map_free(must); + } + access->ref_id = pet_expr_access_get_ref_id(expr); access->group = -1; *next_access = access; -- 2.11.4.GIT