aboutsummaryrefslogtreecommitdiff
path: root/Changelog.md
diff options
context:
space:
mode:
authorShinya Sato <shinnya.sato@gmail.com>2024-09-04 16:22:49 +0900
committerShinya Sato <shinnya.sato@gmail.com>2024-09-04 16:22:49 +0900
commit879cd2eb4adf850b943c3d109e49b543bed44fe7 (patch)
tree51254730c666b9e4db3499e49e70b1d36ca15f3e /Changelog.md
parent9bb15d48eb4cbe18d4b7eb99ed9889457a96caad (diff)
downloadinpla-879cd2eb4adf850b943c3d109e49b543bed44fe7.tar.gz
inpla-879cd2eb4adf850b943c3d109e49b543bed44fe7.zip
Update Changelog.md
Diffstat (limited to 'Changelog.md')
-rw-r--r--Changelog.md24
1 files changed, 12 insertions, 12 deletions
diff --git a/Changelog.md b/Changelog.md
index 704c572..dbd8984 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -21,11 +21,11 @@
compile(A(t1, t2, t3))
--> compile(t1, reg13) // t1 is compiled and the result is stored on reg[13]
compile(t2, reg14) // t2 is compiled and the result is stored on reg[14]
- compile(t3, reg15) // t3 is compiled and the result is stored on reg[15]
- MKAGENT ID_A reg16 // reg[16] := A
- LOADP reg13, 0, reg16 // reg[16].port[0] := reg13
- LOADP reg14, 1, reg16 // reg[16].port[1] := reg14
- LOADP reg15, 2, reg16 // reg[16].port[2] := reg15
+ compile(t3, reg15) // t3 is compiled and the result is stored on reg[15]
+ MKAGENT ID_A reg16 // reg[16] := A
+ LOADP reg13, 0, reg16 // reg[16].port[0] := reg13
+ LOADP reg14, 1, reg16 // reg[16].port[1] := reg14
+ LOADP reg15, 2, reg16 // reg[16].port[2] := reg15
```
The information in `reg13` is not used after connecting to the agent `A`. So, if `compile(t1, reg13)` is moved just before the connection operation, we can have more the chance of reusing the registers:
@@ -33,15 +33,15 @@
```
compile(A(t1,t2,t3))
--> MKAGENT ID_A reg16 // reg[16] := A
- compile(t1, reg13) // <-- it is moved to just before LOADP reg13,0,reg16
- LOADP reg13, 0, reg16 // reg[16].port[0] := reg13
- compile(t2, reg13) // reg13 is reused!
- LOADP reg13, 1, reg16 // reg[16].port[0] := reg13
- compile(t3, reg13) // reg13 is reused!
- LOADP reg13, 2, reg16 // reg[16].port[0] := reg13
+ compile(t1, reg13) // <-- it is moved to just before LOADP reg13,0,reg16
+ LOADP reg13, 0, reg16 // reg[16].port[0] := reg13
+ compile(t2, reg13) // reg13 is reused!
+ LOADP reg13, 1, reg16 // reg[16].port[0] := reg13
+ compile(t3, reg13) // reg13 is reused!
+ LOADP reg13, 2, reg16 // reg[16].port[0] := reg13
```
- As the above table shows, in some cases, such as with quicksort and merge sort, using this method will improve execution speed. In other cases, it will be slightly slower. This could be within the margin of error, but I will take this approach because we can expect an effect from using cache memory.
+ As the above table shows, in some cases, such as with quick sort and merge sort, using this method will improve execution speed. In other cases, it will be slightly slower. This could be within the margin of error, but I will take this approach because we can expect an effect from using cache memory.
- **Cleaning up unused definitions**: The following options are removed from `config.h` because they are no longer used. As a result, the source file `inpla.y` also becomes tidier: