aboutsummaryrefslogtreecommitdiff
path: root/cachelab-handout
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-07-22 11:12:18 +0000
committer_ov4 <ov4@ov4.org>2026-07-22 11:12:18 +0000
commitca5995eef44312d2694efcc37dbc799c04b091e3 (patch)
tree1c019f339f0f63d740b76f9ca956c82dc51d901b /cachelab-handout
parentbec2926ad814415235905d60cd6dab408225687c (diff)
use more tmp
Diffstat (limited to 'cachelab-handout')
-rw-r--r--cachelab-handout/.gitignore1
-rw-r--r--cachelab-handout/trans.c43
2 files changed, 17 insertions, 27 deletions
diff --git a/cachelab-handout/.gitignore b/cachelab-handout/.gitignore
index 50eaddd..41e23cf 100644
--- a/cachelab-handout/.gitignore
+++ b/cachelab-handout/.gitignore
@@ -4,3 +4,4 @@ csim_results
test-trans
trace.*
tracegen
+csim
diff --git a/cachelab-handout/trans.c b/cachelab-handout/trans.c
index db6f9d3..c69500c 100644
--- a/cachelab-handout/trans.c
+++ b/cachelab-handout/trans.c
@@ -22,41 +22,30 @@ int is_transpose(int M, int N, int A[N][M], int B[M][N]);
char transpose_submit_desc[] = "Transpose submission";
void transpose_submit(int M, int N, int A[N][M], int B[M][N])
{
-
- // FILE *fp = fopen("debug.log", "w");
- // if (fp == NULL) {
- // perror("lol");
- // return;
- // }
- // fprintf(fp, "address of A and B: %p %p\n", A, B);
- // fclose(fp);
-
-
- int i, j, tmp, i2, j2;
+ int i, j, tmp, i2;
+ int t0, t1, t2, t3;
const int blockSize = 4;
- // given N, M are multiples of blockSize
- // just to test
for (i = 0; i < N/blockSize; i++)
{
for (j = 0; j < M/blockSize; j++)
{
for (i2 = 0; i2 < blockSize; i2++)
{
- for (j2 = 0; j2 < blockSize; j2++)
- {
- tmp = A[i*blockSize + i2][j*blockSize + j2];
- B[j*blockSize + i2][i*blockSize + j2] = tmp;
- }
- }
- for (i2 = 0; i2 < blockSize; i2++)
- {
- for (j2 = i2+1; j2 < blockSize; j2++)
- {
- tmp = B[j*blockSize + i2][i*blockSize + j2];
- B[j*blockSize + i2][i*blockSize + j2] = B[j*blockSize + j2][i*blockSize + i2];
- B[j*blockSize + j2][i*blockSize + i2] = tmp;
- }
+ // for (j2 = 0; j2 < blockSize; j2++)
+ // {
+ // tmp = A[i*blockSize + i2][j*blockSize + j2];
+ // B[j*blockSize + j2][i*blockSize + i2] = tmp;
+ // }
+ t0 = tmp = A[i*blockSize + i2][j*blockSize + 0];
+ t1 = tmp = A[i*blockSize + i2][j*blockSize + 1];
+ t2 = tmp = A[i*blockSize + i2][j*blockSize + 2];
+ t3 = tmp = A[i*blockSize + i2][j*blockSize + 3];
+
+ B[j*blockSize + 0][i*blockSize + i2] = t0;
+ B[j*blockSize + 1][i*blockSize + i2] = t1;
+ B[j*blockSize + 2][i*blockSize + i2] = t2;
+ B[j*blockSize + 3][i*blockSize + i2] = t3;
}
}
}