Commit Graph

179 Commits

Author SHA1 Message Date
Sasha Koshka a423d572ad Update some tests 2024-01-27 10:06:17 +00:00
Sasha Koshka 12ab7dd3e3 Updated control flow generation 2024-01-27 10:03:15 +00:00
Sasha Koshka b6da53afd6 Void functions/methods no longer request a value 2024-01-27 09:22:19 +00:00
Sasha Koshka c63e077f9a Made generic block generation routine 2024-01-27 09:18:41 +00:00
Sasha Koshka 75ec6a2ddc Made panic messages in expression-multiplex.go more informative 2024-01-27 09:15:39 +00:00
Sasha Koshka 8b45c91239 Add Val onto value expressions 2024-01-27 09:09:27 +00:00
Sasha Koshka 934af40e4b Update block generation routines 2024-01-27 09:06:17 +00:00
Sasha Koshka f827bfeb7a Add generateStatement routine 2024-01-27 08:53:29 +00:00
Sasha Koshka 32ce14f032 Renamed generateStatement to generateStatementVal 2024-01-27 08:49:25 +00:00
Sasha Koshka ac6a969ac9 Add generateExpression function 2024-01-27 08:48:00 +00:00
Sasha Koshka 07a4895b60 Rename expression source files 2024-01-27 08:40:02 +00:00
Sasha Koshka cfc894ff29 Rename generateExpression to generateExpressionVal 2024-01-27 08:39:05 +00:00
Sasha Koshka c2df4203bd Same thing for bit casts 2024-01-27 07:05:34 +00:00
Sasha Koshka 01a3ac2e1b Generator now no longer generates ineffectual value casts 2024-01-27 07:03:13 +00:00
Sasha Koshka 6fd0d600e2 Add more tests to generator 2024-01-27 01:00:07 +00:00
Sasha Koshka 4114b5c3aa Updated stuff to use the new routines in data.go 2024-01-26 05:35:47 +00:00
Sasha Koshka effebe5f64 More routines in data.go 2024-01-26 05:35:22 +00:00
Sasha Koshka cf201a08c6 Added a test case for a Writer interface
I really need to cut out a lot of the unnecessary IR that the
generator emits
2024-01-26 04:32:55 +00:00
Sasha Koshka 794c41766c Added a test case for casting slices to pointers 2024-01-26 04:21:30 +00:00
Sasha Koshka 8a6d4599d1 Fix conversion of slices to pointers 2024-01-26 04:07:58 +00:00
Sasha Koshka ea697c19dd Change the location at which defined IR types are wrapped
Defined IR types are wrapped in a TypeDefined by generateTypeNamed.
This causes them to be sent through GEP, which is necessary for
testing.
2024-01-25 22:57:52 +00:00
Sasha Koshka 4878c62531 Wrote test for getelementptr'ing into chained typedefs 2024-01-25 18:19:34 +00:00
Sasha Koshka 143aeb5236 Use TypeDefined in generator 2024-01-25 18:19:22 +00:00
Sasha Koshka 496ef09154 Add test for chained typedefs with different names 2024-01-25 17:56:20 +00:00
Sasha Koshka dae023b2af Fix duplicated pointer types 2024-01-25 07:36:51 +00:00
Sasha Koshka 3d94027c09 Added test to debug absurd behavior relating to type defs 2023-12-24 22:49:10 -05:00
Sasha Koshka 182b361237 Interface method calls no longer cause a segfault 2023-12-24 22:18:47 -05:00
Sasha Koshka b750fa3c77 Something was off with TestCompare 2023-12-24 21:45:47 -05:00
Sasha Koshka 47b3594bbf Fix code I probably wrote while high off my ass 2023-12-24 21:39:56 -05:00
Sasha Koshka 06df727f7f Empty struct literal values are initialized to zero 2023-12-23 17:25:27 -05:00
Sasha Koshka cd688c91af Added nil (zero initializer) literals 2023-12-21 23:33:38 -05:00
Sasha Koshka a9ff511496 Generator can produce link names 2023-12-20 03:05:27 -05:00
Sasha Koshka b220235a43 I forgor 2023-12-15 12:46:33 -05:00
Sasha Koshka e55d87d378 Fix comparison predicates 2023-12-15 12:40:43 -05:00
Sasha Koshka c4df65d189 Attempt to further fix interface assignment 2023-12-14 21:21:07 -05:00
Sasha Koshka f72bf533e0 Method calling now properly passes pointer instead of value 2023-12-14 01:23:34 -05:00
Sasha Koshka 6fa8adf871 generateAssignmentSource assigns interface methods to iface dest 2023-12-14 00:47:14 -05:00
Sasha Koshka 900e90d468 Add test for aforementioned issue 2023-12-07 17:14:37 -05:00
Sasha Koshka 4a981f3253 Augh 2023-12-07 04:03:28 -05:00
Sasha Koshka 6045ed6ee3 If/else branching is no longer... like how it was 2023-12-07 03:58:57 -05:00
Sasha Koshka c780668cd0 If/else generation will not attempt to overwrite branches 2023-12-07 03:54:01 -05:00
Sasha Koshka fb360c3398 Operands to IR binary instructions now have identifiers instead of names 2023-12-07 03:04:29 -05:00
Sasha Koshka 30c346c6b7 Generator alloca's variables when they are defined 2023-12-07 02:48:27 -05:00
Sasha Koshka 7d436290c4 Add some more test cases to the generator 2023-12-05 22:29:29 -05:00
Sasha Koshka e06fd099ce Fix bug with popping block managers off of the stack 2023-12-05 22:27:55 -05:00
Sasha Koshka ead5ed3222 Slice operations now load the data pointer 2023-12-05 15:35:17 -05:00
Sasha Koshka 8085da442b Revert slices back to having just two fields 2023-12-05 03:07:54 -05:00
Sasha Koshka 7f866d102d Fixed several cases where the generator would output invalid IR 2023-12-03 22:23:04 -05:00
Sasha Koshka e24b9b8f17 Generator passes method owner as pointer 2023-12-03 15:38:07 -05:00
Sasha Koshka 52ac569c06 Fix stale code 2023-12-02 23:42:54 -05:00
Sasha Koshka 7dbde0a1d7 Generator generates methods properly 2023-12-02 23:41:35 -05:00
Sasha Koshka a18d9ea0de Oops 2023-12-02 23:36:12 -05:00
Sasha Koshka 0045b35790 Generator now pierces pointers when accessing members as well 2023-12-02 23:35:22 -05:00
Sasha Koshka ffe873a3e4 String literals can be assigned to strings now 2023-12-02 22:45:22 -05:00
Sasha Koshka 3f88513dc1 That should be literally every feature 2023-12-02 21:45:15 -05:00
Sasha Koshka ea502dc2bb Created function for making slices 2023-12-02 04:21:10 -05:00
Sasha Koshka 31d5317dc8 Completed operations 2023-12-01 01:18:10 -05:00
Sasha Koshka 635add38e6 Made native target actually work 2023-11-30 17:16:55 -05:00
Sasha Koshka 6b2ed12c90 Operation stub part II 2023-11-30 15:44:30 -05:00
Sasha Koshka 4fa7848452 Add operation stub 2023-11-30 02:13:47 -05:00
Sasha Koshka 3fd00d56eb Added casting 2023-11-30 02:06:12 -05:00
Sasha Koshka df1bc20388 Added bit casts 2023-11-29 20:37:56 -05:00
Sasha Koshka ca401442b4 Generator properly uses subscript offset 2023-11-29 20:31:40 -05:00
Sasha Koshka 7cf4067167 Generator grabs slice type from proper place 2023-11-29 20:31:07 -05:00
Sasha Koshka 1cd972f50f Generator now adds null terminator to c-strings 2023-11-29 00:45:38 -05:00
Sasha Koshka 1d4bcb44a2 Reduce element type when generating string literal data 2023-11-29 00:21:58 -05:00
Sasha Koshka c709500d58 Facehoof 2023-11-29 00:13:54 -05:00
Sasha Koshka e92377bc95 Added string literals to generator 2023-11-29 00:01:35 -05:00
Sasha Koshka 19b8825f5b Add string literals to generator WIP 2023-11-28 01:15:12 -05:00
Sasha Koshka 85e77c36c6 This should have been way more commits 2023-11-26 04:02:22 -05:00
Sasha Koshka dc16a17271 Typedefs that are never referenced are never generated 2023-11-23 01:44:48 -05:00
Sasha Koshka 05b389dd3c Generator returns an LLVM module 2023-11-23 01:26:14 -05:00
Sasha Koshka 3b9ed0c35f Various fixes 2023-11-23 00:02:00 -05:00
Sasha Koshka 7690f683a4 Migrated generator to use new llvm code generation package 2023-11-22 20:37:37 -05:00
Sasha Koshka 54b693620e Generator WIP 2023-11-21 15:04:22 -05:00
Sasha Koshka ec78adf42d Functions/behaviors stub 2023-11-16 22:41:20 -05:00
Sasha Koshka 3a1d9e20c2 Add type generator 2023-11-16 22:04:56 -05:00
Sasha Koshka e501577555 Generator stub II 2023-11-16 15:52:28 -05:00
Sasha Koshka 1c6e485bf7 Generator stub 2023-11-14 02:49:55 -05:00