http://polly.llvm.org/example_manual_matmul.html which illustrates individual passes of Polly, has been ported to reStructuredText and necessary changes have been made to the configuration files used by SPHINX to include the new source as a part of the documentation. Contributed-by: Singapuram Sanjay Srivallabh <singapuram.sanjay@gmail.com> Differential Revision: https://reviews.llvm.org/D25163 llvm-svn: 294735
52 lines
3.9 KiB
Plaintext
52 lines
3.9 KiB
Plaintext
digraph "Scop Graph for 'print_array' function" {
|
|
label="Scop Graph for 'print_array' function";
|
|
|
|
Node0x5b5ee00 [shape=record,label="{entry:\l br label %entry.split\l}"];
|
|
Node0x5b5ee00 -> Node0x5b5ee50;
|
|
Node0x5b5ee50 [shape=record,label="{entry.split: \l br label %for.cond1.preheader\l}"];
|
|
Node0x5b5ee50 -> Node0x5b5ee70;
|
|
Node0x5b5ee70 [shape=record,label="{for.cond1.preheader: \l %indvars.iv6 = phi i64 [ 0, %entry.split ], [ %indvars.iv.next7, %for.end ]\l %0 = load %struct._IO_FILE*, %struct._IO_FILE** @stdout, align 8\l br label %for.body3\l}"];
|
|
Node0x5b5ee70 -> Node0x5b5ee20;
|
|
Node0x5b5ee20 [shape=record,label="{for.body3: \l %indvars.iv = phi i64 [ 0, %for.cond1.preheader ], [ %indvars.iv.next,\l... %for.inc ]\l %1 = phi %struct._IO_FILE* [ %0, %for.cond1.preheader ], [ %5, %for.inc ]\l %arrayidx5 = getelementptr inbounds [1536 x [1536 x float]], [1536 x [1536 x\l... float]]* @C, i64 0, i64 %indvars.iv6, i64 %indvars.iv\l %2 = load float, float* %arrayidx5, align 4\l %conv = fpext float %2 to double\l %call = tail call i32 (%struct._IO_FILE*, i8*, ...)\l... @fprintf(%struct._IO_FILE* %1, i8* getelementptr inbounds ([5 x i8], [5 x\l... i8]* @.str, i64 0, i64 0), double %conv) #2\l %3 = trunc i64 %indvars.iv to i32\l %rem = srem i32 %3, 80\l %cmp6 = icmp eq i32 %rem, 79\l br i1 %cmp6, label %if.then, label %for.inc\l}"];
|
|
Node0x5b5ee20 -> Node0x5b60d10;
|
|
Node0x5b5ee20 -> Node0x5b60d70;
|
|
Node0x5b60d10 [shape=record,label="{if.then: \l %4 = load %struct._IO_FILE*, %struct._IO_FILE** @stdout, align 8\l %fputc3 = tail call i32 @fputc(i32 10, %struct._IO_FILE* %4)\l br label %for.inc\l}"];
|
|
Node0x5b60d10 -> Node0x5b60d70;
|
|
Node0x5b60d70 [shape=record,label="{for.inc: \l %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1\l %5 = load %struct._IO_FILE*, %struct._IO_FILE** @stdout, align 8\l %exitcond = icmp ne i64 %indvars.iv.next, 1536\l br i1 %exitcond, label %for.body3, label %for.end\l}"];
|
|
Node0x5b60d70 -> Node0x5b5ee20[constraint=false];
|
|
Node0x5b60d70 -> Node0x5b60e10;
|
|
Node0x5b60e10 [shape=record,label="{for.end: \l %.lcssa = phi %struct._IO_FILE* [ %5, %for.inc ]\l %fputc = tail call i32 @fputc(i32 10, %struct._IO_FILE* %.lcssa)\l %indvars.iv.next7 = add nuw nsw i64 %indvars.iv6, 1\l %exitcond8 = icmp ne i64 %indvars.iv.next7, 1536\l br i1 %exitcond8, label %for.cond1.preheader, label %for.end12\l}"];
|
|
Node0x5b60e10 -> Node0x5b5ee70[constraint=false];
|
|
Node0x5b60e10 -> Node0x5b60e70;
|
|
Node0x5b60e70 [shape=record,label="{for.end12: \l ret void\l}"];
|
|
colorscheme = "paired12"
|
|
subgraph cluster_0x5b349a0 {
|
|
label = "";
|
|
style = solid;
|
|
color = 1
|
|
subgraph cluster_0x5b5c2c0 {
|
|
label = "Call instruction: %call = tail call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %1, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), double %conv) #2";
|
|
style = solid;
|
|
color = 6
|
|
subgraph cluster_0x5b5c240 {
|
|
label = "Call instruction: %call = tail call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %1, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), double %conv) #2";
|
|
style = solid;
|
|
color = 5
|
|
subgraph cluster_0x5b34a20 {
|
|
label = "Region can not profitably be optimized!";
|
|
style = solid;
|
|
color = 7
|
|
Node0x5b5ee20;
|
|
Node0x5b60d10;
|
|
}
|
|
Node0x5b60d70;
|
|
}
|
|
Node0x5b5ee70;
|
|
Node0x5b60e10;
|
|
}
|
|
Node0x5b5ee00;
|
|
Node0x5b5ee50;
|
|
Node0x5b60e70;
|
|
}
|
|
}
|