# Lab 6
Name: Lavkush Kumar
Roll No.: CS22B034
---
## Question 1
**C Code**
```c=
#include <stdio.h>
int main(){
int sum=0;
int arr[100];
for(int i=0;i<100;i++)
{
arr[i]=i;
sum+=arr[i];
}
return 0;
}
```
**O0 optimization-**
```assembly=
.file "test.c"
.option nopic
.attribute arch, "rv32i2p1"
.attribute unaligned_access, 0
.attribute stack_align, 16
.text
.globl __mulsi3
.align 2
.globl main
.type main, @function
main:
addi sp,sp,-432
sw ra,428(sp)
sw s0,424(sp)
addi s0,sp,432
sw zero,-20(s0)
sw zero,-24(s0)
j .L2
.L3:
lw a5,-24(s0)
slli a5,a5,2
addi a5,a5,-16
add a5,a5,s0
lw a5,-408(a5)
lw a1,-24(s0)
mv a0,a5
call __mulsi3
mv a5,a0
mv a4,a5
lw a5,-20(s0)
add a5,a5,a4
sw a5,-20(s0)
lw a5,-24(s0)
addi a5,a5,1
sw a5,-24(s0)
.L2:
lw a4,-24(s0)
li a5,99
ble a4,a5,.L3
li a5,0
mv a0,a5
lw ra,428(sp)
lw s0,424(sp)
addi sp,sp,432
jr ra
.size main, .-main
.ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 13.2.0"
```
**Observation:**
* Execution time : 2625002 nanosecond
* size : 709 bytes
---
**O1 optimization-**
```assembly=
.file "test.c"
.option nopic
.attribute arch, "rv32i2p1"
.attribute unaligned_access, 0
.attribute stack_align, 16
.text
.align 2
.globl main
.type main, @function
main:
a5,100
.L2:
addi a5,a5,-1
bne a5,zero,.L2
li a0,0
ret
.size main, .-main
.ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 13.2.0"
```
**Observation:**
* Execution time : 2467858 nanosecond
* size: 322 bytes
---
**O2 optimization-**
```assembly=
.file "test.c"
.option nopic
.attribute arch, "rv32i2p1"
.attribute unaligned_access, 0
.attribute stack_align, 16
.text
.section .text.startup,"ax",@progbits
.align 2
.globl main
.type main, @function
main:
li a0,0
ret
.size main, .-main
.ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 13.2.0"
```
**Observation:**
* Execution time : 2443121 nanosecond
* size: 313 bytes
**O3 optimization-**
```assembly=
.file "test.c"
.option nopic
.attribute arch, "rv32i2p1"
.attribute unaligned_access, 0
.attribute stack_align, 16
.text
.section .text.startup,"ax",@progbits
.align 2
.globl main
.type main, @function
main:
li a0,0
ret
.size main, .-main
.ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 13.2.0"
```
**Observation:**
* Execution time : 1962059 nanosecond
* size: 313 bytes
**Os optimization-**
```assembly=
.file "test.c"
.option nopic
.attribute arch, "rv32i2p1"
.attribute unaligned_access, 0
.attribute stack_align, 16
.text
.section .text.startup,"ax",@progbits
.align 2
.globl main
.type main, @function
main:
li a0,0
ret
.size main, .-main
.ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 13.2.0"
```
**Observation:**
* Execution time : 2344797 nanosecond
* size: 313 bytes
**Ofast optimization-**
```assembly=
.file "test.c"
.option nopic
.attribute arch, "rv32i2p1"
.attribute unaligned_access, 0
.attribute stack_align, 16
.text
.section .text.startup,"ax",@progbits
.align 2
.globl main
.type main, @function
main:
li a0,0
ret
.size main, .-main
.ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 13.2.0"
```
**Observation:**
* Execution time : 2956164 nanosecond
* size: 313 bytes