ScopInfo: Make printing of ScopArrayInfo more similar to declarations in C

Memory references are now printed as follows:

           Old                          New
Scalars:   i64 MemRef_val[*]            i64 MemRef_val;
Arrays:    i64 MemRef_A[*][%m][%o][8]   i64 MemRef_A[*][%m][%o];

We do not print any more information about the element size in the type. Such
information has already been available in a comment after the scalar/array
declaration. It was redundant and did not match well with what people were used
from C.

llvm-svn: 252602
This commit is contained in:
Tobias Grosser 2015-11-10 14:02:54 +00:00
parent 4960df0db3
commit 4ea2e07a60
9 changed files with 30 additions and 26 deletions

View File

@ -214,8 +214,10 @@ isl_id *ScopArrayInfo::getBasePtrId() const { return isl_id_copy(Id); }
void ScopArrayInfo::dump() const { print(errs()); }
void ScopArrayInfo::print(raw_ostream &OS, bool SizeAsPwAff) const {
OS.indent(8) << *getElementType() << " " << getName() << "[*]";
for (unsigned u = 0; u < getNumberOfDimensions(); u++) {
OS.indent(8) << *getElementType() << " " << getName();
if (getNumberOfDimensions() > 0)
OS << "[*]";
for (unsigned u = 0; u + 1 < getNumberOfDimensions(); u++) {
OS << "[";
if (SizeAsPwAff)
@ -226,6 +228,8 @@ void ScopArrayInfo::print(raw_ostream &OS, bool SizeAsPwAff) const {
OS << "]";
}
OS << ";";
if (BasePtrOriginSAI)
OS << " [BasePtrOrigin: " << BasePtrOriginSAI->getName() << "]";

View File

@ -11,7 +11,7 @@
; CHECK: Arrays {
; CHECK: double MemRef_A[*][%m][%o][8] // Element size 8
; CHECK: double MemRef_A[*][%m][%o]; // Element size 8
; CHECK: }
; CHECK: [m, o, n] -> { Stmt_for_body6[i0, i1, i2] -> MemRef_A[3 + i0, i1, 7 + i2] };

View File

@ -13,15 +13,15 @@
; CHECK: }
;
; CHECK: Arrays {
; CHECK: i32** MemRef_A[*][8]
; CHECK: i32* MemRef_tmp3[*][8] [BasePtrOrigin: MemRef_A]
; CHECK: i32 MemRef_tmp5[*][4] [BasePtrOrigin: MemRef_tmp3]
; CHECK: i32** MemRef_A[*];
; CHECK: i32* MemRef_tmp3[*]; [BasePtrOrigin: MemRef_A]
; CHECK: i32 MemRef_tmp5[*]; [BasePtrOrigin: MemRef_tmp3]
; CHECK: }
;
; CHECK: Arrays (Bounds as pw_affs) {
; CHECK: i32** MemRef_A[*][ { [] -> [(8)] } ]
; CHECK: i32* MemRef_tmp3[*][ { [] -> [(8)] } ] [BasePtrOrigin: MemRef_A]
; CHECK: i32 MemRef_tmp5[*][ { [] -> [(4)] } ] [BasePtrOrigin: MemRef_tmp3]
; CHECK: i32** MemRef_A[*];
; CHECK: i32* MemRef_tmp3[*]; [BasePtrOrigin: MemRef_A]
; CHECK: i32 MemRef_tmp5[*]; [BasePtrOrigin: MemRef_tmp3]
; CHECK: }
;
; void f(int ***A) {

View File

@ -25,10 +25,10 @@
; CHECK-NOT: p5
; CHECK: Arrays {
; CHECK: double MemRef_A[*][(zext i32 %m to i64)][(zext i32 %o to i64)][8] // Element size 8
; CHECK: double MemRef_A[*][(zext i32 %m to i64)][(zext i32 %o to i64)]; // Element size 8
; CHECK: }
; CHECK: Arrays (Bounds as pw_affs) {
; CHECK: double MemRef_A[*][ [p_3] -> { [] -> [(p_3)] } ][ [p_4] -> { [] -> [(p_4)] } ][ { [] -> [(8)] } ] // Element size 8
; CHECK: double MemRef_A[*][ [p_3] -> { [] -> [(p_3)] } ][ [p_4] -> { [] -> [(p_4)] } ]; // Element size 8
; CHECK: }

View File

@ -15,15 +15,15 @@
; CHECK: Region: %bb1---%bb11
;
; CHECK: Arrays {
; CHECK: i32 MemRef_A[*][4]
; CHECK: i32 MemRef_x[*] [BasePtrOrigin: MemRef_A]
; CHECK: i32 MemRef_y__phi[*]
; CHECK: i32 MemRef_A[*];
; CHECK: i32 MemRef_x; [BasePtrOrigin: MemRef_A]
; CHECK: i32 MemRef_y__phi;
; CHECK: }
;
; CHECK: Arrays (Bounds as pw_affs) {
; CHECK: i32 MemRef_A[*][ { [] -> [(4)] } ]
; CHECK: i32 MemRef_x[*] [BasePtrOrigin: MemRef_A]
; CHECK: i32 MemRef_y__phi[*]
; CHECK: i32 MemRef_A[*];
; CHECK: i32 MemRef_x; [BasePtrOrigin: MemRef_A]
; CHECK: i32 MemRef_y__phi;
; CHECK: }
;
; CHECK: Stmt_bb2__TO__bb7

View File

@ -6,7 +6,7 @@
; CHECK-NOT: Memref_scalar
; SCALARS: float MemRef_scalar[*] // Element size 4
; SCALARS: float MemRef_scalar; // Element size 4
; SCALARS: ReadAccess := [Reduction Type: NONE] [Scalar: 1]
; SCALARS: { Stmt_stmt1[i0] -> MemRef_scalar[] };

View File

@ -4,9 +4,9 @@
; as it is used as a memory base pointer (%0) but also as a scalar (%out.addr.0.lcssa).
;
; CHECK: Arrays {
; CHECK-NEXT: float* MemRef_out[*] // Element size 0
; CHECK-NEXT: float* MemRef_out_addr_0_lcssa[*] // Element size 0
; CHECK-NEXT: float MemRef_out[*][4] // Element size 4
; CHECK-NEXT: float* MemRef_out; // Element size 0
; CHECK-NEXT: float* MemRef_out_addr_0_lcssa; // Element size 0
; CHECK-NEXT: float MemRef_out[*]; // Element size 4
; CHECK-NEXT: }
;
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"

View File

@ -30,13 +30,13 @@ return:
}
; CHECK: Arrays {
; CHECK: i64 MemRef_a[*][8]
; CHECK: i64 MemRef_val[*] [BasePtrOrigin: MemRef_a]
; CHECK: i64 MemRef_a[*];
; CHECK: i64 MemRef_val; [BasePtrOrigin: MemRef_a]
; CHECK: }
;
; CHECK: Arrays (Bounds as pw_affs) {
; CHECK: i64 MemRef_a[*][ { [] -> [(8)] } ]
; CHECK: i64 MemRef_val[*] [BasePtrOrigin: MemRef_a]
; CHECK: i64 MemRef_a[*];
; CHECK: i64 MemRef_val; [BasePtrOrigin: MemRef_a]
; CHECK: }
; CHECK: Stmt_S1

View File

@ -27,7 +27,7 @@ return: ; preds = %bb, %entry
; CHECK: Assumed Context:
; CHECK: { : }
; CHECK: Arrays {
; CHECK: i64 MemRef_a[*][8] // Element size 8
; CHECK: i64 MemRef_a[*]; // Element size 8
; CHECK: }
; CHECK: Stmt_bb