Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
ec537c2
Initial plan
Copilot Mar 14, 2026
738998b
Add BrightnessPerformanceTests: 4K parallel CPU is 2.57x faster than …
Copilot Mar 14, 2026
e23a0d3
Add MLIR scf.for/scf.parallel loop support with auto-parallelization …
Copilot Mar 14, 2026
ca7ec2d
Add GPU support plan document for MLIR-based parallel and GPU execution
Copilot Mar 14, 2026
5e0c29d
Address code review: rename test, fix scf.reduce, track induction var…
Copilot Mar 14, 2026
343fe60
Change to complexity-based parallelization (iterations × body instruc…
Copilot Mar 14, 2026
42d88e7
Fix review: use ComplexityThreshold constant in test messages
Copilot Mar 14, 2026
64107d8
Add optimized 5x5 blur performance tests with 4.6x faster execution v…
Copilot Mar 14, 2026
79c36d4
Fix unused parameter: test blur correctness across different image si…
Copilot Mar 14, 2026
b6ea06f
Cleanup and removal of a lot of useless code, we already know from th…
BenjaminNitschke Mar 14, 2026
8659cbe
Implement MLIR GPU dialect emission for high-complexity loops (Phase …
Copilot Mar 14, 2026
ce618cd
Fix AdjustBrightness Run to use Process method, update GpuSupportPlan…
Copilot Mar 14, 2026
b9cc86a
Implement working MLIR GPU execution with proper kernel syntax, memor…
Copilot Mar 14, 2026
cf191b6
Extract GpuBufferType constant, update GpuSupportPlan.md to reflect w…
Copilot Mar 14, 2026
dcfcf62
Fixed Color.strict and ImageProcessing.strict to use proper constrain…
BenjaminNitschke Mar 14, 2026
3cda0d5
Merge branch 'copilot/experiment-image-processing-parallelization' of…
BenjaminNitschke Mar 14, 2026
ca09104
Work in progress simplifying runner, it can just run a single .strict…
BenjaminNitschke Mar 15, 2026
bf52379
Fix BytecodeDeserializer to compile: restore TypeEntryData, fix Deser…
Copilot Mar 15, 2026
a484a8e
Fix tests: update BytecodeDecompiler/Deserializer tests for new API, …
Copilot Mar 15, 2026
18f4f52
Fix Runner.cs: restore constructor initialization, handle bytecode-lo…
Copilot Mar 15, 2026
dfca82d
Address code review: remove unused variable, make GetTypeNameFromEntr…
Copilot Mar 15, 2026
b9d037b
Refactoring Bytecode and Instruction classes, polymorphism can reduce…
BenjaminNitschke Mar 15, 2026
340c1ae
Instructions are all refactored and can be serialized and deserialized
BenjaminNitschke Mar 16, 2026
1987469
Strict.Bytecode compiles again, now gotta fix all the tests
BenjaminNitschke Mar 16, 2026
8554135
Trying to fix Strict.Bytecode.Tests, compiles mostly, but many tests …
BenjaminNitschke Mar 16, 2026
f2095c4
Just working on Runner and then removing unnecessary code
BenjaminNitschke Mar 17, 2026
13d0ea5
Another round of crazy refactoring, much more classes removed and cod…
BenjaminNitschke Mar 17, 2026
eb12309
Ongoing refactoring, taking the Runner and Strict Program angle for n…
BenjaminNitschke Mar 17, 2026
074078e
More refactoring on Runner, still not done, but most parts fit togeth…
BenjaminNitschke Mar 17, 2026
e8d28d4
Finished refactoring of Runner, Program, Bytecode and Optimizers proj…
BenjaminNitschke Mar 18, 2026
ff59caa
Added new entryPoint logic to BinaryExecutable and the compiler class…
BenjaminNitschke Mar 18, 2026
2dd99f9
Not the best fixes, bit of a mess to make bytecode and tests compile,…
BenjaminNitschke Mar 18, 2026
7ebac64
Initial plan
Copilot Mar 18, 2026
d7d1d85
Fix all tests in Strict.Compiler.Assembly.Tests and fix compiler erro…
Copilot Mar 18, 2026
996605d
Little bit of cleanup and lots of TODOs added
BenjaminNitschke Mar 18, 2026
81ba215
Cleanup of already fixed issues, Strict project looking mostly good, …
BenjaminNitschke Mar 18, 2026
5068f18
compiles, but many tests fail yo
BenjaminNitschke Mar 18, 2026
2382ac8
More fixes, tests work, but execution is wonky, .strictbinary is miss…
BenjaminNitschke Mar 18, 2026
36c4777
Mosts tests fixed, but some things are still strange, will fix a bit …
BenjaminNitschke Mar 18, 2026
d40908d
Reducded .bytecode a lot by removing common type names and method nam…
BenjaminNitschke Mar 18, 2026
ceabfab
Fixed all tests, now can refactor and cleanup the rest
BenjaminNitschke Mar 19, 2026
1332602
Some cleanup, lots of tests simplified and some unusable ones removed…
BenjaminNitschke Mar 19, 2026
5687a98
Initial plan
Copilot Mar 19, 2026
ea6f088
Refactor InstructionsCompiler: remove obsolete print helpers, add sha…
Copilot Mar 19, 2026
2267d6c
Clean up compiler API: remove duplicate code, make CompileForPlatform…
Copilot Mar 19, 2026
58f7ffe
Refactor InstructionsToAssemblyTests to use new public API
Copilot Mar 19, 2026
7a8e6b0
Refactor InstructionsToLlvmIrTests to use new public Compile API
Copilot Mar 19, 2026
6a6ded4
Refactor InstructionsToMlirTests to use public Compile API
Copilot Mar 19, 2026
da3a929
Refactor all compiler tests: use Compile(BinaryExecutable, Platform) …
Copilot Mar 19, 2026
e2c105c
Improve error message in BuildMethodInfo for missing precompiled methods
Copilot Mar 19, 2026
06fced1
Cleaned up a litte
BenjaminNitschke Mar 19, 2026
6f1aee2
Some cleanup, mostly works, but a few tests in Decompiler do nonsense…
BenjaminNitschke Mar 19, 2026
645716e
cleanup for Runner, CallFrame and VirtualMachine plus tests, also tri…
BenjaminNitschke Mar 19, 2026
0fa8080
Lots of refactoring and removal of stupid methods, DecompilerTests ar…
BenjaminNitschke Mar 20, 2026
6d8c99c
All tests pass again, cleanup next, then remaining TODOs
BenjaminNitschke Mar 20, 2026
cb61a48
All code issues fixed, all tests work, some TODOs tackled, performanc…
BenjaminNitschke Mar 20, 2026
d0c25f5
Minor Srict.Tests improvements and testing decompiler
BenjaminNitschke Mar 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -137,3 +137,4 @@ ipch/
*.llvm.mlir
*.obj
Examples/PureAdder
*.7z
Binary file removed Examples/SimpleCalculator.7z
Binary file not shown.
29 changes: 16 additions & 13 deletions ImageProcessing/AdjustBrightness.strict
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
has brightness Number
has brightness Number with value is not 0
constant testColor = Color(0, 0.1, 0.2)
Process(mutable image ColorImage) ColorImage
mutable testImage = ColorImage(Size(1, 1), (Color(0, 1, 2)))
AdjustBrightness(0).Process(testImage) is ColorImage(Size(1, 1), (Color(0, 1, 2)))
AdjustBrightness(5).Process(testImage) is ColorImage(Size(1, 1), (Color(5, 6, 7)))
if brightness is 0
return image
mutable testImage = ColorImage(Size(1, 1), (testColor))
AdjustBrightness(0.1).Process(testImage) is ColorImage(Size(1, 1), (Color(0.1, 0.2, 0.3)))
AdjustBrightness(0.9).Process(testImage) is ColorImage(Size(1, 1), (Color(0.9, 1, 1)))
for row, column in image.Size
GetBrightnessAdjustedColor(image.Colors(column * image.Size.Width + row))
GetBrightnessAdjustedColor(currentColor Color) Color
AdjustBrightness(0).GetBrightnessAdjustedColor(Color(0, 1, 2)) is Color(0, 1, 2)
AdjustBrightness(5).GetBrightnessAdjustedColor(Color(0, 0, 0)) is Color(5, 5, 5)
AdjustBrightness(-5).GetBrightnessAdjustedColor(Color(0, 0, 0)) is Color(0, 0, 0)
Color((currentColor.Red + brightness).Clamp(0, 255),
(currentColor.Green + brightness).Clamp(0, 255),
(currentColor.Blue + brightness).Clamp(0, 255))
image
GetBrightnessAdjustedColor(current Color) Color
AdjustBrightness(0.1).GetBrightnessAdjustedColor(testColor) is Color(0.1, 0.2, 0.3)
AdjustBrightness(0.9).GetBrightnessAdjustedColor(testColor) is Color(0.9, 1, 1)
AdjustBrightness(-0.1).GetBrightnessAdjustedColor(testColor) is Color(0, 0, 0)
Color(current.Red + brightness, current.Green + brightness, current.Blue + brightness)
Run
constant width = 1280
constant height = 720
mutable image = ColorImage(Size(width, height))
image = AdjustBrightness(0.1).Process(image)
8 changes: 4 additions & 4 deletions ImageProcessing/Color.strict
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
has Red Number
has Green Number
has Blue Number
has Alpha = 1
has Red Number with value >= 0 and value <= 1
has Green Number with value >= 0 and value <= 1
has Blue Number with value >= 0 and value <= 1
has Alpha = 1 with value >= 0 and value <= 1
Loading