[GPGPU] Do not require the Scop::Context to have information about all parameters

llvm-svn: 309368
This commit is contained in:
Tobias Grosser 2017-07-28 06:49:44 +00:00
parent fa4969539a
commit 25271b91b2
2 changed files with 43 additions and 4 deletions

View File

@ -2424,10 +2424,9 @@ public:
S->getIslCtx(),
S->getNumParams() + std::distance(S->array_begin(), S->array_end()));
auto *Zero = isl_ast_expr_from_val(isl_val_zero(S->getIslCtx()));
auto *Space = S->getParamSpace();
for (int I = 0, E = S->getNumParams(); I < E; ++I) {
isl_id *Id = isl_space_get_dim_id(Space, isl_dim_param, I);
for (const SCEV *P : S->parameters()) {
isl_id *Id = S->getIdForParam(P);
Names = isl_id_to_ast_expr_set(Names, Id, isl_ast_expr_copy(Zero));
}
@ -2436,7 +2435,6 @@ public:
Names = isl_id_to_ast_expr_set(Names, Id, isl_ast_expr_copy(Zero));
}
isl_space_free(Space);
isl_ast_expr_free(Zero);
return Names;

View File

@ -0,0 +1,41 @@
; RUN: opt %loadPolly -polly-codegen-ppcg -polly-acc-dump-code \
; RUN: -disable-output < %s | \
; RUN: FileCheck -check-prefix=CODE %s
; REQUIRES: pollyacc
; CODE: Code
; CODE: ====
; CODE: No code generated
source_filename = "bugpoint-output-83bcdeb.bc"
target datalayout = "e-p:64:64:64-S128-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f16:16:16-f32:32:32-f64:64:64-f128:128:128-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-unknown-linux-gnu"
@__data_radiation_MOD_cobi = external global [168 x double], align 32
; Function Attrs: nounwind uwtable
define void @__radiation_rg_MOD_coe_so() #0 {
entry:
%polly.access.kspec.load = load i32, i32* undef, align 4
%0 = or i1 undef, undef
br label %polly.preload.cond29
polly.preload.cond29: ; preds = %entry
br i1 %0, label %polly.preload.exec31, label %polly.preload.merge30
polly.preload.merge30: ; preds = %polly.preload.exec31, %polly.preload.cond29
%polly.preload..merge32 = phi double [ %polly.access.__data_radiation_MOD_cobi.load, %polly.preload.exec31 ], [ 0.000000e+00, %polly.preload.cond29 ]
ret void
polly.preload.exec31: ; preds = %polly.preload.cond29
%1 = sext i32 %polly.access.kspec.load to i64
%2 = mul nsw i64 7, %1
%3 = add nsw i64 0, %2
%4 = add nsw i64 %3, 48
%polly.access.__data_radiation_MOD_cobi = getelementptr double, double* getelementptr inbounds ([168 x double], [168 x double]* @__data_radiation_MOD_cobi, i32 0, i32 0), i64 %4
%polly.access.__data_radiation_MOD_cobi.load = load double, double* %polly.access.__data_radiation_MOD_cobi, align 8
br label %polly.preload.merge30
}
attributes #0 = { nounwind uwtable }