]> git.mdlowis.com Git - proto/obnc.git/log
proto/obnc.git
2 years agofixed function call code generation
Michael D. Lowis [Wed, 12 Oct 2022 01:09:38 +0000 (21:09 -0400)]
fixed function call code generation

2 years agoMerge branch 'master' of mdlowis.com:~/git/proto/obnc
Michael D. Lowis [Tue, 11 Oct 2022 02:25:52 +0000 (22:25 -0400)]
Merge branch 'master' of mdlowis.com:~/git/proto/obnc

2 years agoadded function call syntax and ssa generation. Backend is segfaulting currently
Michael D. Lowis [Tue, 11 Oct 2022 02:25:33 +0000 (22:25 -0400)]
added function call syntax and ssa generation. Backend is segfaulting currently

2 years agoupdated TODO
Michael D. Lowis [Wed, 5 Oct 2022 16:04:04 +0000 (12:04 -0400)]
updated TODO

2 years agofixed record access
Michael D. Lowis [Wed, 5 Oct 2022 01:02:57 +0000 (21:02 -0400)]
fixed record access

2 years agorecord field access is working now
Michael D. Lowis [Sun, 2 Oct 2022 00:36:45 +0000 (20:36 -0400)]
record field access is working now

2 years agoadded type emitting code for records
Michael D. Lowis [Thu, 22 Sep 2022 01:50:03 +0000 (21:50 -0400)]
added type emitting code for records

2 years agonested array accesses appear to be working now. next up is records
Michael D. Lowis [Thu, 22 Sep 2022 01:07:02 +0000 (21:07 -0400)]
nested array accesses appear to be working now. next up is records

2 years agoflat array indexing is functioning. nested arrays are broken. this is...progress
Michael D. Lowis [Wed, 21 Sep 2022 18:18:22 +0000 (14:18 -0400)]
flat array indexing is functioning. nested arrays are broken. this is...progress

2 years agominor refactoring. still need to fix array indexing
Michael D. Lowis [Wed, 21 Sep 2022 00:40:06 +0000 (20:40 -0400)]
minor refactoring. still need to fix array indexing

2 years agofixed if statements
Michael D. Lowis [Wed, 21 Sep 2022 00:07:55 +0000 (20:07 -0400)]
fixed if statements

2 years agorefactores SSA nodes. almost back to functional...
Michael D. Lowis [Tue, 20 Sep 2022 20:29:53 +0000 (16:29 -0400)]
refactores SSA nodes. almost back to functional...

2 years agorenamed type field
Michael D. Lowis [Tue, 20 Sep 2022 16:23:53 +0000 (12:23 -0400)]
renamed type field

2 years agostarted properly implementing array indexing. hit some setbacks and need to rework...
Michael D. Lowis [Tue, 20 Sep 2022 15:50:44 +0000 (11:50 -0400)]
started properly implementing array indexing. hit some setbacks and need to rework the ssa data structures

3 years agoadded new test functions for net functionality to implement
Michael D. Lowis [Wed, 6 Jul 2022 11:49:16 +0000 (07:49 -0400)]
added new test functions for net functionality to implement

3 years agoimplemented if statements in code generator
Michael D. Lowis [Tue, 5 Jul 2022 03:03:19 +0000 (23:03 -0400)]
implemented if statements in code generator

3 years agofixed void return functions and reworked test file
Michael D. Lowis [Tue, 5 Jul 2022 01:14:31 +0000 (21:14 -0400)]
fixed void return functions and reworked test file

3 years agoemit symbols with the module name
Michael D. Lowis [Wed, 9 Mar 2022 02:51:09 +0000 (21:51 -0500)]
emit symbols with the module name

3 years agofixed up comparison operations of Reals
Michael D. Lowis [Tue, 8 Mar 2022 21:37:19 +0000 (16:37 -0500)]
fixed up comparison operations of Reals

3 years agofixed up loads and stores
Michael D. Lowis [Tue, 8 Mar 2022 21:18:31 +0000 (16:18 -0500)]
fixed up loads and stores

3 years agofixed up code generation for comparison operators (integer only right now)
Michael D. Lowis [Tue, 8 Mar 2022 19:24:44 +0000 (14:24 -0500)]
fixed up code generation for comparison operators (integer only right now)

3 years agofixed null pointer issues but code generation is still wrong
Michael D. Lowis [Tue, 8 Mar 2022 16:21:06 +0000 (11:21 -0500)]
fixed null pointer issues but code generation is still wrong

3 years agoadded arg and return types to operations
Michael D. Lowis [Fri, 4 Mar 2022 21:46:14 +0000 (16:46 -0500)]
added arg and return types to operations

3 years agomore implementation of binary operations
Michael D. Lowis [Wed, 2 Mar 2022 22:08:31 +0000 (17:08 -0500)]
more implementation of binary operations

3 years agofixed return opcode handling
Michael D. Lowis [Wed, 2 Mar 2022 04:17:41 +0000 (23:17 -0500)]
fixed return opcode handling

3 years agoloads and stores are working now
Michael D. Lowis [Tue, 1 Mar 2022 22:05:57 +0000 (17:05 -0500)]
loads and stores are working now

3 years agoadded binop scaffolding
Michael D. Lowis [Tue, 1 Mar 2022 04:08:53 +0000 (23:08 -0500)]
added binop scaffolding

3 years agocheckpoint commit for coalescing constants into operations
Michael D. Lowis [Tue, 1 Mar 2022 02:08:13 +0000 (21:08 -0500)]
checkpoint commit for coalescing constants into operations

3 years agotypedefs, globals, and function defs working for llvm ir
Michael D. Lowis [Sat, 12 Feb 2022 01:52:06 +0000 (20:52 -0500)]
typedefs, globals, and function defs working for llvm ir

3 years agoadded some type generation code 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

3 years agoadded base type definitions for llvm ir
Michael D. Lowis [Tue, 8 Feb 2022 21:33:20 +0000 (16:33 -0500)]
added base type definitions for llvm ir

3 years agostarted implementing llvm assembly code generation
Michael D. Lowis [Tue, 8 Feb 2022 21:28:37 +0000 (16:28 -0500)]
started implementing llvm assembly code generation

3 years agofixup ssa variable versioning logic
Michael D. Lowis [Wed, 26 Jan 2022 21:46:30 +0000 (16:46 -0500)]
fixup ssa variable versioning logic

3 years agoadded recursive phi function handling. Still some bugs to work out...
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...

3 years agofixed code for handling returns from functions
Michael D. Lowis [Fri, 3 Dec 2021 20:54:06 +0000 (15:54 -0500)]
fixed code for handling returns from functions

3 years agoattempted to add in function blocks but return statements are not working at the...
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

3 years agoreporting if statements correctly now
Michael D. Lowis [Tue, 30 Nov 2021 22:10:27 +0000 (17:10 -0500)]
reporting if statements correctly now

3 years agoimplemented topological sort and fixed up plantuml graph dumping to use it. Next...
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

3 years agoupdated ssa printing logic to use bitset to avoid multiple visits
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

3 years agoadded bitset data structure for code generation usage
Michael D. Lowis [Mon, 29 Nov 2021 21:48:01 +0000 (16:48 -0500)]
added bitset data structure for code generation usage

3 years agoif statements are generating mostly-accurate graphs now. Need to prevent double visit...
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

3 years agostarted adding logic to print graphs
Michael D. Lowis [Tue, 27 Jul 2021 03:36:10 +0000 (23:36 -0400)]
started adding logic to print graphs

3 years agostart defining CFG links for blocks
Michael D. Lowis [Mon, 26 Jul 2021 21:01:47 +0000 (17:01 -0400)]
start defining CFG links for blocks

3 years agoadded basic phi function handling for straight line code. Next up is if statements
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

3 years agocheckpoint commit
Michael D. Lowis [Mon, 26 Jul 2021 04:06:47 +0000 (00:06 -0400)]
checkpoint commit

3 years agoimplemented basic ssa without phis. phis will come next
Michael D. Lowis [Sat, 24 Jul 2021 03:45:56 +0000 (23:45 -0400)]
implemented basic ssa without phis. phis will come next

3 years agostarted adding print functions for ssa basic blocks
Michael D. Lowis [Fri, 23 Jul 2021 20:56:52 +0000 (16:56 -0400)]
started adding print functions for ssa basic blocks

3 years agostarted implementing statement sequences
Michael D. Lowis [Thu, 22 Jul 2021 02:20:45 +0000 (22:20 -0400)]
started implementing statement sequences

3 years agoconstant folding working for new ssa form
Michael D. Lowis [Wed, 21 Jul 2021 03:30:09 +0000 (23:30 -0400)]
constant folding working for new ssa form

3 years agomuch scaffolding for SSA
Michael D. Lowis [Wed, 21 Jul 2021 02:51:47 +0000 (22:51 -0400)]
much scaffolding for SSA

3 years agostarted modifying parser to generate ssa directly graph
Michael D. Lowis [Mon, 19 Jul 2021 20:55:16 +0000 (16:55 -0400)]
started modifying parser to generate ssa directly

3 years agosketched out new ssa-based API
Michael D. Lowis [Mon, 19 Jul 2021 20:37:45 +0000 (16:37 -0400)]
sketched out new ssa-based API

3 years agoremoved distinction between unop and binop in API
Michael D. Lowis [Mon, 19 Jul 2021 03:18:17 +0000 (23:18 -0400)]
removed distinction between unop and binop in API

3 years agocleaned up module entries in the symbol file
Michael D. Lowis [Mon, 19 Jul 2021 02:07:31 +0000 (22:07 -0400)]
cleaned up module entries in the symbol file

3 years agominor cleanup and update of TODO list
Michael D. Lowis [Fri, 16 Jul 2021 20:56:07 +0000 (16:56 -0400)]
minor cleanup and update of TODO list

3 years agoadded type cache output to symbol file
Michael D. Lowis [Fri, 16 Jul 2021 02:46:13 +0000 (22:46 -0400)]
added type cache output to symbol file

3 years agoreorganized file
Michael D. Lowis [Thu, 15 Jul 2021 20:37:44 +0000 (16:37 -0400)]
reorganized file

3 years agostarted writing rudimentary symbol export logic
Michael D. Lowis [Thu, 15 Jul 2021 20:36:35 +0000 (16:36 -0400)]
started writing rudimentary symbol export logic

3 years agoimplemented first pass at module coped identifiers. Still need to add symbol file...
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

3 years agosketched out strategy for module importing and aliasing as well as symbol resolution
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

3 years agoimplemented function calls
Michael D. Lowis [Wed, 14 Jul 2021 17:14:07 +0000 (13:14 -0400)]
implemented function calls

3 years agoGot If statements and procedure definitions working. AST creation now self optimizes...
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.

3 years agotweaked ast printing
Michael D. Lowis [Tue, 13 Jul 2021 20:57:25 +0000 (16:57 -0400)]
tweaked ast printing

3 years agosketched out really rough logic for array indexing
Michael D. Lowis [Mon, 12 Jul 2021 20:52:37 +0000 (16:52 -0400)]
sketched out really rough logic for array indexing

3 years agore-enabled variable and type declarations
Michael D. Lowis [Mon, 12 Jul 2021 17:54:51 +0000 (13:54 -0400)]
re-enabled variable and type declarations

3 years agonon-record type definitions are working now.
Michael D. Lowis [Mon, 12 Jul 2021 17:04:27 +0000 (13:04 -0400)]
non-record type definitions are working now.

3 years agogot basic expression parsing back up and running. Verified using constant evaluation...
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

3 years agocleanup dead code from old architecture.
Michael D. Lowis [Mon, 12 Jul 2021 16:11:02 +0000 (12:11 -0400)]
cleanup dead code from old architecture.

3 years agoadded constant operations for binary operators
Michael D. Lowis [Mon, 12 Jul 2021 11:56:16 +0000 (07:56 -0400)]
added constant operations for binary operators

3 years agounary constant operations are working
Michael D. Lowis [Fri, 9 Jul 2021 19:14:15 +0000 (15:14 -0400)]
unary constant operations are working

3 years agostarted integrating AST generation. Null pointer making its way into printing or...
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

4 years agopush ast.c
Michael D. Lowis [Tue, 6 Jul 2021 01:41:27 +0000 (21:41 -0400)]
push ast.c

4 years agocreated ast.c
Michael D. Lowis [Thu, 24 Jun 2021 20:25:42 +0000 (16:25 -0400)]
created ast.c

4 years agoadded very basic AST definition. Considering ditching ssa-like IR for simpler AST...
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

4 years agofixed up constants and constant unary ops
Michael D. Lowis [Fri, 11 Jun 2021 20:45:40 +0000 (16:45 -0400)]
fixed up constants and constant unary ops

4 years agocommented out a bunch of code in preparation for IR overhaul
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

4 years agoattempted to flesh out ssa backend. Considering scrapping it and moving to a tree...
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...

4 years agoadded new backend
mike lowis [Wed, 9 Jun 2021 11:45:35 +0000 (07:45 -0400)]
added new backend

4 years agogot rid of next pointer for Symbol type
mike lowis [Tue, 8 Jun 2021 11:33:19 +0000 (07:33 -0400)]
got rid of next pointer for Symbol type

4 years agostarted sketching API for intermediate language implementation
Michael D. Lowis [Mon, 7 Jun 2021 20:44:27 +0000 (16:44 -0400)]
started sketching API for intermediate language implementation

4 years agofixed up function calls
Michael D. Lowis [Mon, 7 Jun 2021 16:19:16 +0000 (12:19 -0400)]
fixed up function calls

4 years agofixed up code generation with new symbol table approach.
Michael D. Lowis [Mon, 7 Jun 2021 16:05:14 +0000 (12:05 -0400)]
fixed up code generation with new symbol table approach.

4 years agoreworked function definitions and scoping with new symbol table
mike lowis [Mon, 7 Jun 2021 02:46:31 +0000 (22:46 -0400)]
reworked function definitions and scoping with new symbol table

4 years agonew symbol table functioning
mike lowis [Sat, 5 Jun 2021 02:42:45 +0000 (22:42 -0400)]
new symbol table functioning

4 years agoreworking symbol table...very broken
Michael D. Lowis [Sat, 5 Jun 2021 01:53:56 +0000 (21:53 -0400)]
reworking symbol table...very broken

4 years agocheckpoint commit
mike lowis [Tue, 1 Jun 2021 04:04:57 +0000 (00:04 -0400)]
checkpoint commit

4 years agopartial fix-up of array access. Need to generate index calculations
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

4 years agomoved TODO to dedicated file. removed offset from item type. Defined types for possib...
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

4 years agocleaned up record access code
Michael D. Lowis [Thu, 27 May 2021 19:55:05 +0000 (15:55 -0400)]
cleaned up record access code

4 years agowrapped up initial record support
mike lowis [Thu, 27 May 2021 01:31:37 +0000 (21:31 -0400)]
wrapped up initial record support

4 years agoimplemented record types and record member access
mike lowis [Wed, 26 May 2021 00:43:09 +0000 (20:43 -0400)]
implemented record types and record member access

4 years agoreworked field addition to records
mike lowis [Mon, 24 May 2021 02:22:58 +0000 (22:22 -0400)]
reworked field addition to records

4 years agoadded some helpful info
Michael D. Lowis [Wed, 19 May 2021 15:56:11 +0000 (11:56 -0400)]
added some helpful info

4 years agoimplemented alignment and size calculation on records and arrays. Also added a list...
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.

4 years agosegfaults everywhere
Michael D. Lowis [Fri, 14 May 2021 21:01:56 +0000 (17:01 -0400)]
segfaults everywhere

4 years agoadded export bit for fields
Michael D. Lowis [Fri, 14 May 2021 20:23:50 +0000 (16:23 -0400)]
added export bit for fields

4 years agoinitial record pass using symbols. Added a field type, should convert to using that...
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

4 years agoMerge branch 'master' of mdlowis.com:~/git/proto/obnc
Michael D. Lowis [Fri, 14 May 2021 13:00:58 +0000 (09:00 -0400)]
Merge branch 'master' of mdlowis.com:~/git/proto/obnc

4 years agocommented out broken stuff...really gotta get it working...
mike lowis [Fri, 14 May 2021 01:50:53 +0000 (21:50 -0400)]
commented out broken stuff...really gotta get it working...

4 years agoMerge branch 'master' of mdlowis.com:~/git/proto/obnc
Michael D. Lowis [Wed, 12 May 2021 13:02:11 +0000 (09:02 -0400)]
Merge branch 'master' of mdlowis.com:~/git/proto/obnc