|
From: <ras...@us...> - 2003-10-29 16:07:57
|
Update of /cvsroot/chasm-interop/chasm/src/compilers
In directory sc8-pr-cvs1:/tmp/cvs-serv28643
Modified Files:
Cray.c
Log Message:
Modifications with Jarek during visit.
Index: Cray.c
===================================================================
RCS file: /cvsroot/chasm-interop/chasm/src/compilers/Cray.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** Cray.c 28 Oct 2003 20:51:55 -0000 1.11
--- Cray.c 29 Oct 2003 16:07:53 -0000 1.12
***************
*** 87,91 ****
dv->ptr_alloc = 0;
dv->p_or_a = 1;
! dv->a_contig = 1;
dv->dp_flag = 0;
--- 87,93 ----
dv->ptr_alloc = 0;
dv->p_or_a = 1;
!
! if (rank == 0) dv->a_contig = 0;
! else dv->a_contig = 1;
dv->dp_flag = 0;
***************
*** 93,96 ****
--- 95,104 ----
dv->kind_value = 0;
+ dv->unused_1 = 36; /* 40 for D1D */
+ dv->unused_2 = 0;
+ dv->unused_3 = 0;
+ dv->unused_4 = 0;
+ dv->unused_5 = 0;
+
switch (data_type) {
case F90_Integer1:
***************
*** 204,210 ****
int i;
dope_vec* dv = (dope_vec*) desc;
!
if (rank < 0 || rank > 7) return 1;
dv->base_addr = (long) base_addr;
for (i = 0; i < rank; i++) {
--- 212,222 ----
int i;
dope_vec* dv = (dope_vec*) desc;
!
if (rank < 0 || rank > 7) return 1;
+ dv->assoc = 1;
+ if (rank == 0) dv->a_contig = 0;
+ else dv->a_contig = 1;
+
dv->base_addr = (long) base_addr;
for (i = 0; i < rank; i++) {
***************
*** 343,346 ****
--- 355,361 ----
unsigned long size = 1L;
+ dope_vec* dv = (dope_vec*) desc;
+ if (rank < 1 || rank > dv->rank) return 0;
+
for (i = 0; i < rank; i++) {
size *= ((dope_vec*)desc)->dim[i].extent;
***************
*** 360,364 ****
long getArrayLowerBound_Cray(const void* desc, int rank, int dim)
{
! return((dope_vec*) desc)->dim[dim-1].lower_bound;
}
--- 375,382 ----
long getArrayLowerBound_Cray(const void* desc, int rank, int dim)
{
! dope_vec* dv = (dope_vec*) desc;
! if (rank < 1 || rank > dv->rank) return 0;
!
! return dv->dim[dim-1].lower_bound;
}
***************
*** 374,378 ****
unsigned long getArrayExtent_Cray(const void* desc, int rank, int dim)
{
! return ((dope_vec*) desc)->dim[dim-1].extent;
}
--- 392,399 ----
unsigned long getArrayExtent_Cray(const void* desc, int rank, int dim)
{
! dope_vec* dv = (dope_vec*) desc;
! if (rank < 1 || rank > dv->rank) return 0;
!
! return dv->dim[dim-1].extent;
}
***************
*** 389,392 ****
--- 410,415 ----
{
dope_vec* dv = (dope_vec*) desc;
+ if (rank < 1 || rank > dv->rank) return 0;
+
if (dv->max_len < 32) {
return dv->dim[dim-1].stride_mult;
***************
*** 405,408 ****
--- 428,433 ----
unsigned long getArrayDescSize_Cray(int rank)
{
+ if (rank < 0 || rank > 7) return 0;
+
return sizeof(dope_vec) - 3*(7-rank)*sizeof(long);
}
***************
*** 502,512 ****
strcpy(name + funsize + 1, mod_name);
strcpy(name + funsize + 1 + modsize, "_");
- } else {
- strcpy(name + funsize, "_");
}
! /* lower case -> name */
for (i = 0; i < namesize; i++) {
! if ((name[i] > 64) && (name[i] < 91)) name[i] += 32;
}
--- 527,536 ----
strcpy(name + funsize + 1, mod_name);
strcpy(name + funsize + 1 + modsize, "_");
}
! /* lower case -> the symbol name */
!
for (i = 0; i < namesize; i++) {
! if ((name[i] > 64) && (name[i] < 91)) name[i] += 32;
}
***************
*** 545,551 ****
printf(" unused_2 = %ld\n", dv->unused_2);
printf(" unused_3 = %ld\n", dv->unused_3);
for (i = 0; i < dv->rank; i++) {
! printf(" dim[%d] = LB:%ld, Ex:%ld, SM:%ld\n" , i, dv->dim[i].lower_bound,
dv->dim[i].extent, dv->dim[i].stride_mult);
}
--- 569,578 ----
printf(" unused_2 = %ld\n", dv->unused_2);
printf(" unused_3 = %ld\n", dv->unused_3);
+ printf(" unused_4 = %d\n" , dv->unused_1);
+ printf(" unused_5 = %ld\n", dv->unused_2);
for (i = 0; i < dv->rank; i++) {
! printf(" dim[%d] = LB:%ld, Ex:%ld, SM:%ld\n" , i,
! dv->dim[i].lower_bound,
dv->dim[i].extent, dv->dim[i].stride_mult);
}
***************
*** 573,576 ****
--- 600,671 ----
if (dv1->max_len != dv2->max_len ) return 0;
+ /***** debugging code ******/
+
+ i = 1;
+ if (dv1->assoc != dv2->assoc ) {
+ i = 0;
+ printf("Descriptors NOT Equal %d, %d\n", dv1->assoc, dv2->assoc);
+ }
+ if (dv1->ptr_alloc != dv2->ptr_alloc) {
+ i = 0;
+ printf("Descriptors NOT Equal %d, %d\n", dv1->ptr_alloc, dv2->ptr_alloc);
+ }
+ if (dv1->p_or_a != dv2->p_or_a ) {
+ i = 0;
+ printf("Descriptors NOT Equal %d, %d\n", dv1->p_or_a, dv2->p_or_a);
+ }
+ if (dv1->a_contig != dv2->a_contig ) {
+ i = 0;
+ printf("Descriptors NOT Equal %d, %d\n", dv1->a_contig, dv2->a_contig);
+ }
+ if (dv1->rank != dv2->rank ) {
+ i = 0;
+ printf("Descriptors NOT Equal %d, %d\n", dv1->rank, dv2->rank);
+ }
+
+ if (dv1->type_code != dv2->type_code ) {
+ i = 0;
+ printf("Descriptors NOT Equal %d, %d\n", dv1->type_code, dv2->type_code);
+ }
+ if (dv1->dp_flag != dv2->dp_flag ) {
+ i = 0;
+ printf("Descriptors NOT Equal %d, %d\n", dv1->dp_flag, dv2->dp_flag);
+ }
+ if (dv1->star_type != dv2->star_type ) {
+ i = 0;
+ printf("Descriptors NOT Equal %d, %d\n", dv1->star_type, dv2->star_type);
+ }
+ if (dv1->elem_size != dv2->elem_size ) {
+ i = 0;
+ printf("Descriptors NOT Equal %d, %d\n", dv1->elem_size, dv2->elem_size);
+ }
+ if (dv1->kind_value != dv2->kind_value) {
+ i = 0;
+ printf("Descriptors NOT Equal %d, %d\n", dv1->kind_value, dv2->kind_value);
+ }
+
+ if (dv1->unused_1 != dv2->unused_1) {
+ i = 0;
+ printf("Descriptors NOT Equal %d, %d\n", dv1->unused_1, dv2->unused_1);
+ }
+ if (dv1->unused_2 != dv2->unused_2) {
+ i = 0;
+ printf("Descriptors NOT Equal %d, %d\n", dv1->unused_2, dv2->unused_2);
+ }
+ if (dv1->unused_3 != dv2->unused_3) {
+ i = 0;
+ printf("Descriptors NOT Equal %d, %d\n", dv1->unused_3, dv2->unused_3);
+ }
+ if (dv1->unused_4 != dv2->unused_4) {
+ i = 0;
+ printf("Descriptors NOT Equal %d, %d\n", dv1->unused_4, dv2->unused_4);
+ }
+ if (dv1->unused_5 != dv2->unused_5) {
+ i = 0;
+ printf("Descriptors NOT Equal %d, %d\n", dv1->unused_5, dv2->unused_5);
+ }
+ if (i == 0) return 0;
+
+ /*******
if (dv1->assoc != dv2->assoc ) return 0;
if (dv1->ptr_alloc != dv2->ptr_alloc) return 0;
***************
*** 588,591 ****
--- 683,689 ----
if (dv1->unused_2 != dv2->unused_2) return 0;
if (dv1->unused_3 != dv2->unused_3) return 0;
+ if (dv1->unused_4 != dv2->unused_4) return 0;
+ if (dv1->unused_5 != dv2->unused_5) return 0;
+ ******/
for (i = 0; i < rank; i++) {
|