191 Commits

Author SHA1 Message Date
Ronald Caesar
5edb36df2a docs: Remove type from ssa_version_t
The variable type will be determine by the opcode, like OPCODE_ADD32.

Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-31 18:25:55 -04:00
Ronald Caesar
b424b3e2ee docs: Replace proxy instructions with OPCODE_DEF_EXTENSION
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-31 18:03:59 -04:00
Ronald Caesar
5aa4aca03a docs: Add support for more than three operands
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-29 19:45:04 -04:00
Ronald Caesar
c8c76a52a9 docs: Add constant bit flag to operands
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-29 18:17:23 -04:00
Ronald Caesar
81d0d57418 docs: Remove redundant ssa_version_t struct attribute
instruction[i] defines ssa_versions[i]. So it doesnt make sense to have
the attribite `defining_instruction_index`.

Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-29 17:44:12 -04:00
Ronald Caesar
723fb8326e docs: Replace { with OPCODE_END_BLOCK
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-29 08:24:13 -04:00
Ronald Caesar
78c1da03ba docs: Add proof of concept
Demonstrates how the SSSA model will work on a while loop. I plan to add
more examples to iron out the flaws of the model.

Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-28 08:58:59 -04:00
Ronald Caesar
76e3c92f35 docs: Make proxy opcode name shorter
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-27 19:16:05 -04:00
Ronald Caesar
b4ee3bf9bf docs: Remove flat ssa model
This model is designed for fast code execution speed which is something
we do not want. We care about compilation speed, so we will focus on
implementing the Structures SSA model.

Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-27 18:56:14 -04:00
Ronald Caesar
622d65490a docs: Fix incorrect types in proxy instruction example
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-27 18:52:42 -04:00
Ronald Caesar
f6083444d3 docs: Add proxy instruction design
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-27 18:48:04 -04:00
Ronald Caesar
0406767a3a docs: Add Control Instruction Design
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-27 14:34:00 -04:00
Ronald Caesar
c8aaded86f docs: Add section for handling void instructions
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-27 03:02:56 -04:00
Ronald Caesar
1ea02d4ba9 docs: Add docs for source_variable_t
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-27 02:39:20 -04:00
Ronald Caesar
15c7418b77 docs: Fix instruction design section formatting
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-27 02:34:44 -04:00
Ronald Caesar
97352e3259 docs: Add section for checking variable definitions
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-27 02:30:58 -04:00
Ronald Caesar
ad5983a59d docs: Add instruction design
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-27 02:18:23 -04:00
Ronald Caesar
34f40ce871 docs: Design instruction encoding
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-27 02:14:06 -04:00
Ronald Caesar
438474cfbc docs: Add variable design
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-27 02:04:43 -04:00
Ronald Caesar
63b7c6c069 doxs: Add missing line in Structured SSA example
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-26 21:54:59 -04:00
Ronald Caesar
51f8d747cc docs: Initial Structured SSA design
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-26 21:44:45 -04:00
Ronald Caesar
96e0ce0897 docs: Add terminal to basic_block_t
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-26 19:01:55 -04:00
Ronald Caesar
ea13b18928 docs: Add dominator tree to basic_block_t
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-26 17:51:39 -04:00
Ronald Caesar
b8929a7d6d docs: Add pred/succ for basic_block_t
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-26 17:51:31 -04:00
Ronald Caesar
5f23adb4b5 docs: Add dominance frontier to basic_block_t
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-26 13:28:44 -04:00
Ronald Caesar
743b843986 docs: Add basic_blocks array
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-26 13:18:25 -04:00
Ronald Caesar
144bafcfa7 docs: Add phi_nodes[]
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-26 00:22:41 -04:00
Ronald Caesar
6eb336441f docs: Add block_indices
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-25 23:46:16 -04:00
Ronald Caesar
690b2a4729 docs: Add phi attributes to basic_block_t
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-25 22:41:04 -04:00
Ronald Caesar
f5264b0eec docs: Add execution_count to basic_block_t
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-25 22:33:30 -04:00
Ronald Caesar
dc3a8b8fb8 docs: Initial basic block design
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-25 22:10:36 -04:00
Ronald Caesar
530287e29a docs: Add fixed width types to ssa_version_t
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-25 21:41:42 -04:00
Ronald Caesar
d31e6e6761 docs: Rename phi struct
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-25 21:24:02 -04:00
Ronald Caesar
36769a90e4 docs: Fix incorrect doc for bitfield src3
Src3 is 11 bits not 12.

Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-25 20:34:10 -04:00
Ronald Caesar
fb7ca4faa7 docs: Rework instruction bitfields
- Add bitfield src3
- Removed bitfield cs
- Remove bitfield wid
- Made bitfield opc 10 bits

Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-25 20:25:02 -04:00
Ronald Caesar
d4ace021d8 docs: Massive redesign of ssa instructions
1. Turns `instruction_t` from a struct into a uint64_t.
2. Remove Global Flags.
3. Add `large_instruction_t` for situations where definition, source1,
   and source2 are greater than 14 bits.

Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-25 18:47:10 -04:00
Ronald Caesar
780b884d35 docs: Aggressively packed instruction struct
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-25 02:53:06 -04:00
Ronald Caesar
752a708bd8 docs: Add extention bit to instruction flags
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-25 00:05:59 -04:00
Ronald Caesar
b56c6a63c7 docs: Design phi operands
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-24 23:28:49 -04:00
Ronald Caesar
bc26f1c09a docs: Remove instruction topology
Instructions are stored in a contiguous array. So having an intrusive
linked list doesn't really make sense, Basic blocks will be responsible
for indexing into the instructions array.

Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-24 22:32:06 -04:00
Ronald Caesar
e9651839a7 docs: Update constants design
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-24 11:36:33 -04:00
Ronald Caesar
807696d7b1 docs: Fix incorrect width bits statement
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-24 11:16:42 -04:00
Ronald Caesar
a2c92266cf docs: Design instruction flags
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-24 10:56:05 -04:00
Ronald Caesar
b8e38c5ba9 docs: Design constant struct
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-24 07:34:54 -04:00
Ronald Caesar
aba03bc3ac docs: Remove incorrect tagging system comment
The value of an operand is its index in the array ssa_versions[].

Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-24 00:49:03 -04:00
Ronald Caesar
01f1bf5252 docs: Add instuction struct size limit
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-24 00:44:37 -04:00
Ronald Caesar
ee8d950c32 docs: Design tagging system for operands
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-24 00:36:15 -04:00
Ronald Caesar
ea80aae01c docs: Design instructions struct
Also updated the variable docs to make things more clear.

Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-23 19:35:14 -04:00
Ronald Caesar
fa1eb7c9b7 docs: Design ssa version struct
Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-22 21:55:26 -04:00
Ronald Caesar
48c47bd5f8 docs: Remove design def-use chain todo comment.
Def-Use chains are required for SSA analysis, not construction. So
creating this will not be necessary any time soon.

Signed-off-by: Ronald Caesar <github43132@proton.me>
2025-12-22 19:54:50 -04:00