]>
git.mdlowis.com Git - proto/obnc.git/log
Michael D. Lowis [Wed, 2 Mar 2022 22:08:31 +0000 (17:08 -0500)]
more implementation of binary operations
Michael D. Lowis [Wed, 2 Mar 2022 04:17:41 +0000 (23:17 -0500)]
fixed return opcode handling
Michael D. Lowis [Tue, 1 Mar 2022 22:05:57 +0000 (17:05 -0500)]
loads and stores are working now
Michael D. Lowis [Tue, 1 Mar 2022 04:08:53 +0000 (23:08 -0500)]
added binop scaffolding
Michael D. Lowis [Tue, 1 Mar 2022 02:08:13 +0000 (21:08 -0500)]
checkpoint commit for coalescing constants into operations
Michael D. Lowis [Sat, 12 Feb 2022 01:52:06 +0000 (20:52 -0500)]
typedefs, globals, and function defs working for llvm ir
Michael D. Lowis [Thu, 10 Feb 2022 21:50:07 +0000 (16:50 -0500)]
added some type generation code for llvm ir
Michael D. Lowis [Tue, 8 Feb 2022 21:33:20 +0000 (16:33 -0500)]
added base type definitions for llvm ir
Michael D. Lowis [Tue, 8 Feb 2022 21:28:37 +0000 (16:28 -0500)]
started implementing llvm assembly code generation
Michael D. Lowis [Wed, 26 Jan 2022 21:46:30 +0000 (16:46 -0500)]
fixup ssa variable versioning logic
Michael D. Lowis [Tue, 25 Jan 2022 21:44:12 +0000 (16:44 -0500)]
added recursive phi function handling. Still some bugs to work out...
Michael D. Lowis [Fri, 3 Dec 2021 20:54:06 +0000 (15:54 -0500)]
fixed code for handling returns from functions
Michael D. Lowis [Wed, 1 Dec 2021 21:38:14 +0000 (16:38 -0500)]
attempted to add in function blocks but return statements are not working at the moment
Michael D. Lowis [Tue, 30 Nov 2021 22:10:27 +0000 (17:10 -0500)]
reporting if statements correctly now
Michael D. Lowis [Tue, 30 Nov 2021 15:15:22 +0000 (10:15 -0500)]
implemented topological sort and fixed up plantuml graph dumping to use it. Next step is finishing SSA creation and printing for if statements
Michael D. Lowis [Tue, 30 Nov 2021 04:05:43 +0000 (23:05 -0500)]
updated ssa printing logic to use bitset to avoid multiple visits
Michael D. Lowis [Mon, 29 Nov 2021 21:48:01 +0000 (16:48 -0500)]
added bitset data structure for code generation usage
Michael D. Lowis [Tue, 27 Jul 2021 18:25:08 +0000 (14:25 -0400)]
if statements are generating mostly-accurate graphs now. Need to prevent double visitations and ensure the blocks are printed in an appropriate order
Michael D. Lowis [Tue, 27 Jul 2021 03:36:10 +0000 (23:36 -0400)]
started adding logic to print graphs
Michael D. Lowis [Mon, 26 Jul 2021 21:01:47 +0000 (17:01 -0400)]
start defining CFG links for blocks
Michael D. Lowis [Mon, 26 Jul 2021 18:34:55 +0000 (14:34 -0400)]
added basic phi function handling for straight line code. Next up is if statements
Michael D. Lowis [Mon, 26 Jul 2021 04:06:47 +0000 (00:06 -0400)]
checkpoint commit
Michael D. Lowis [Sat, 24 Jul 2021 03:45:56 +0000 (23:45 -0400)]
implemented basic ssa without phis. phis will come next
Michael D. Lowis [Fri, 23 Jul 2021 20:56:52 +0000 (16:56 -0400)]
started adding print functions for ssa basic blocks
Michael D. Lowis [Thu, 22 Jul 2021 02:20:45 +0000 (22:20 -0400)]
started implementing statement sequences
Michael D. Lowis [Wed, 21 Jul 2021 03:30:09 +0000 (23:30 -0400)]
constant folding working for new ssa form
Michael D. Lowis [Wed, 21 Jul 2021 02:51:47 +0000 (22:51 -0400)]
much scaffolding for SSA
Michael D. Lowis [Mon, 19 Jul 2021 20:55:16 +0000 (16:55 -0400)]
started modifying parser to generate ssa directly
Michael D. Lowis [Mon, 19 Jul 2021 20:37:45 +0000 (16:37 -0400)]
sketched out new ssa-based API
Michael D. Lowis [Mon, 19 Jul 2021 03:18:17 +0000 (23:18 -0400)]
removed distinction between unop and binop in API
Michael D. Lowis [Mon, 19 Jul 2021 02:07:31 +0000 (22:07 -0400)]
cleaned up module entries in the symbol file
Michael D. Lowis [Fri, 16 Jul 2021 20:56:07 +0000 (16:56 -0400)]
minor cleanup and update of TODO list
Michael D. Lowis [Fri, 16 Jul 2021 02:46:13 +0000 (22:46 -0400)]
added type cache output to symbol file
Michael D. Lowis [Thu, 15 Jul 2021 20:37:44 +0000 (16:37 -0400)]
reorganized file
Michael D. Lowis [Thu, 15 Jul 2021 20:36:35 +0000 (16:36 -0400)]
started writing rudimentary symbol export logic
Michael D. Lowis [Thu, 15 Jul 2021 20:07:07 +0000 (16:07 -0400)]
implemented first pass at module coped identifiers. Still need to add symbol file genration and loading
Michael D. Lowis [Wed, 14 Jul 2021 20:47:50 +0000 (16:47 -0400)]
sketched out strategy for module importing and aliasing as well as symbol resolution
Michael D. Lowis [Wed, 14 Jul 2021 17:14:07 +0000 (13:14 -0400)]
implemented function calls
Michael D. Lowis [Wed, 14 Jul 2021 14:41:59 +0000 (10:41 -0400)]
Got If statements and procedure definitions working. AST creation now self optimizes by performing constant folding, block coalescing and dead code removal during creation. This will result in less work for the optimizer.
Michael D. Lowis [Tue, 13 Jul 2021 20:57:25 +0000 (16:57 -0400)]
tweaked ast printing
Michael D. Lowis [Mon, 12 Jul 2021 20:52:37 +0000 (16:52 -0400)]
sketched out really rough logic for array indexing
Michael D. Lowis [Mon, 12 Jul 2021 17:54:51 +0000 (13:54 -0400)]
re-enabled variable and type declarations
Michael D. Lowis [Mon, 12 Jul 2021 17:04:27 +0000 (13:04 -0400)]
non-record type definitions are working now.
Michael D. Lowis [Mon, 12 Jul 2021 16:40:17 +0000 (12:40 -0400)]
got basic expression parsing back up and running. Verified using constant evaluation logic
Michael D. Lowis [Mon, 12 Jul 2021 16:11:02 +0000 (12:11 -0400)]
cleanup dead code from old architecture.
Michael D. Lowis [Mon, 12 Jul 2021 11:56:16 +0000 (07:56 -0400)]
added constant operations for binary operators
Michael D. Lowis [Fri, 9 Jul 2021 19:14:15 +0000 (15:14 -0400)]
unary constant operations are working
Michael D. Lowis [Wed, 7 Jul 2021 20:55:03 +0000 (16:55 -0400)]
started integrating AST generation. Null pointer making its way into printing or generation. haven't tracked it down yet
Michael D. Lowis [Tue, 6 Jul 2021 01:41:27 +0000 (21:41 -0400)]
push ast.c
Michael D. Lowis [Thu, 24 Jun 2021 20:25:42 +0000 (16:25 -0400)]
created ast.c
Michael D. Lowis [Wed, 23 Jun 2021 20:55:09 +0000 (16:55 -0400)]
added very basic AST definition. Considering ditching ssa-like IR for simpler AST format
Michael D. Lowis [Fri, 11 Jun 2021 20:45:40 +0000 (16:45 -0400)]
fixed up constants and constant unary ops
Michael D. Lowis [Thu, 10 Jun 2021 20:44:21 +0000 (16:44 -0400)]
commented out a bunch of code in preparation for IR overhaul
mike lowis [Thu, 10 Jun 2021 11:44:50 +0000 (07:44 -0400)]
attempted to flesh out ssa backend. Considering scrapping it and moving to a tree form instead...
mike lowis [Wed, 9 Jun 2021 11:45:35 +0000 (07:45 -0400)]
added new backend
mike lowis [Tue, 8 Jun 2021 11:33:19 +0000 (07:33 -0400)]
got rid of next pointer for Symbol type
Michael D. Lowis [Mon, 7 Jun 2021 20:44:27 +0000 (16:44 -0400)]
started sketching API for intermediate language implementation
Michael D. Lowis [Mon, 7 Jun 2021 16:19:16 +0000 (12:19 -0400)]
fixed up function calls
Michael D. Lowis [Mon, 7 Jun 2021 16:05:14 +0000 (12:05 -0400)]
fixed up code generation with new symbol table approach.
mike lowis [Mon, 7 Jun 2021 02:46:31 +0000 (22:46 -0400)]
reworked function definitions and scoping with new symbol table
mike lowis [Sat, 5 Jun 2021 02:42:45 +0000 (22:42 -0400)]
new symbol table functioning
Michael D. Lowis [Sat, 5 Jun 2021 01:53:56 +0000 (21:53 -0400)]
reworking symbol table...very broken
mike lowis [Tue, 1 Jun 2021 04:04:57 +0000 (00:04 -0400)]
checkpoint commit
Michael D. Lowis [Fri, 28 May 2021 18:21:26 +0000 (14:21 -0400)]
partial fix-up of array access. Need to generate index calculations
Michael D. Lowis [Fri, 28 May 2021 16:08:18 +0000 (12:08 -0400)]
moved TODO to dedicated file. removed offset from item type. Defined types for possible SSA form
Michael D. Lowis [Thu, 27 May 2021 19:55:05 +0000 (15:55 -0400)]
cleaned up record access code
mike lowis [Thu, 27 May 2021 01:31:37 +0000 (21:31 -0400)]
wrapped up initial record support
mike lowis [Wed, 26 May 2021 00:43:09 +0000 (20:43 -0400)]
implemented record types and record member access
mike lowis [Mon, 24 May 2021 02:22:58 +0000 (22:22 -0400)]
reworked field addition to records
Michael D. Lowis [Wed, 19 May 2021 15:56:11 +0000 (11:56 -0400)]
added some helpful info
mike lowis [Tue, 18 May 2021 11:44:20 +0000 (07:44 -0400)]
implemented alignment and size calculation on records and arrays. Also added a list of undefined behaviors in C to keep in mind.
Michael D. Lowis [Fri, 14 May 2021 21:01:56 +0000 (17:01 -0400)]
segfaults everywhere
Michael D. Lowis [Fri, 14 May 2021 20:23:50 +0000 (16:23 -0400)]
added export bit for fields
Michael D. Lowis [Fri, 14 May 2021 20:23:03 +0000 (16:23 -0400)]
initial record pass using symbols. Added a field type, should convert to using that over the symbol type when specifying record fields
Michael D. Lowis [Fri, 14 May 2021 13:00:58 +0000 (09:00 -0400)]
Merge branch 'master' of mdlowis.com:~/git/proto/obnc
mike lowis [Fri, 14 May 2021 01:50:53 +0000 (21:50 -0400)]
commented out broken stuff...really gotta get it working...
Michael D. Lowis [Wed, 12 May 2021 13:02:11 +0000 (09:02 -0400)]
Merge branch 'master' of mdlowis.com:~/git/proto/obnc
Michael D. Lowis [Wed, 12 May 2021 13:02:04 +0000 (09:02 -0400)]
minor cleanup
mike lowis [Wed, 12 May 2021 02:03:58 +0000 (22:03 -0400)]
added grammar rule for record fields. adding fields doesnt work yet though
Michael D. Lowis [Tue, 11 May 2021 18:03:47 +0000 (14:03 -0400)]
fully implemented first pass at array indexing with range checks
mike lowis [Tue, 11 May 2021 03:00:49 +0000 (23:00 -0400)]
added array temporaries but assignment is still busted
mike lowis [Tue, 11 May 2021 00:44:26 +0000 (20:44 -0400)]
added some error checking to array indexing
Michael D. Lowis [Fri, 7 May 2021 20:52:26 +0000 (16:52 -0400)]
started adding array indexing
mike lowis [Fri, 7 May 2021 03:51:15 +0000 (23:51 -0400)]
started implementing array subscripting
Michael D. Lowis [Thu, 6 May 2021 20:50:16 +0000 (16:50 -0400)]
functions and function calls fully working now
mike lowis [Thu, 6 May 2021 03:52:24 +0000 (23:52 -0400)]
function calls are almost working....
Michael D. Lowis [Wed, 5 May 2021 20:38:36 +0000 (16:38 -0400)]
removed dead code
Michael D. Lowis [Wed, 5 May 2021 16:35:35 +0000 (12:35 -0400)]
Added logic for parsing args and adding them to symbol table
Michael D. Lowis [Wed, 5 May 2021 14:03:58 +0000 (10:03 -0400)]
mostly fixed symbol table. Need to fix the procedure code generation
mike lowis [Wed, 5 May 2021 02:26:51 +0000 (22:26 -0400)]
partial overhaul of symbol table...
Michael D. Lowis [Tue, 4 May 2021 20:49:38 +0000 (16:49 -0400)]
restructured parser for readability
Michael D. Lowis [Tue, 4 May 2021 19:29:01 +0000 (15:29 -0400)]
started working on argument parsing
mike lowis [Tue, 4 May 2021 03:14:52 +0000 (23:14 -0400)]
Added declarations section to procedure declarations
mike lowis [Tue, 4 May 2021 02:48:53 +0000 (22:48 -0400)]
started parsing procedure declarations
mike lowis [Mon, 3 May 2021 03:20:43 +0000 (23:20 -0400)]
checkpoint commit
Michael D. Lowis [Fri, 30 Apr 2021 20:21:41 +0000 (16:21 -0400)]
reworked global generation to take into account export marker
Michael D. Lowis [Fri, 30 Apr 2021 14:25:47 +0000 (10:25 -0400)]
added array base type handling
Michael D. Lowis [Fri, 30 Apr 2021 13:13:54 +0000 (09:13 -0400)]
implemented code generation for if statements. Only the C backend for now
mike lowis [Fri, 30 Apr 2021 03:08:22 +0000 (23:08 -0400)]
cleaned up loops
Michael D. Lowis [Thu, 29 Apr 2021 17:59:24 +0000 (13:59 -0400)]
added parsing rules for array types