bigint-presentation-code.git
13 months agoadd --arbitrary flag master
Jacob Lifshay [Tue, 28 Feb 2023 06:37:07 +0000 (22:37 -0800)]
add --arbitrary flag

13 months agochange serde format for BigUint to use a hex string instead of an array of u32 chunks
Jacob Lifshay [Tue, 28 Feb 2023 06:35:56 +0000 (22:35 -0800)]
change serde format for BigUint to use a hex string instead of an array of u32 chunks

14 months agostart filling out register-allocator cli interface
Jacob Lifshay [Tue, 28 Feb 2023 04:57:43 +0000 (20:57 -0800)]
start filling out register-allocator cli interface

14 months agoadd rust code to CI
Jacob Lifshay [Sat, 25 Feb 2023 00:56:15 +0000 (16:56 -0800)]
add rust code to CI

14 months agoadd ssa_val_allocations
Jacob Lifshay [Fri, 17 Feb 2023 03:59:49 +0000 (19:59 -0800)]
add ssa_val_allocations

14 months agoProgRange<OverlappingIsEq> shouldn't be Eq
Jacob Lifshay [Fri, 17 Feb 2023 02:19:49 +0000 (18:19 -0800)]
ProgRange<OverlappingIsEq> shouldn't be Eq

Eq requires equality to be transitive, but ProgRange<OverlappingIsEq>
fails to be since 1..2 == 1..10 and 1..10 == 9..10 due to overlap but 1..2 != 9..10

14 months agowip
Jacob Lifshay [Thu, 16 Feb 2023 03:59:39 +0000 (19:59 -0800)]
wip

14 months agowip
Jacob Lifshay [Thu, 9 Feb 2023 01:09:51 +0000 (17:09 -0800)]
wip

14 months agowrap rest of IR indexes
Jacob Lifshay [Fri, 3 Feb 2023 07:01:05 +0000 (23:01 -0800)]
wrap rest of IR indexes

14 months agoclean up warnings
Jacob Lifshay [Thu, 2 Feb 2023 01:52:50 +0000 (17:52 -0800)]
clean up warnings

14 months agofn_new passes fuzzing afaict
Jacob Lifshay [Thu, 2 Feb 2023 01:43:48 +0000 (17:43 -0800)]
fn_new passes fuzzing afaict

14 months agomerge fuzzer package into workspace
Jacob Lifshay [Wed, 1 Feb 2023 23:45:38 +0000 (15:45 -0800)]
merge fuzzer package into workspace

15 months agonearly done writing code that generates fuzzing input for reg alloc
Jacob Lifshay [Sat, 28 Jan 2023 01:19:31 +0000 (17:19 -0800)]
nearly done writing code that generates fuzzing input for reg alloc

15 months agoLocSet now allows multiple reg_lens simultaneously
Jacob Lifshay [Fri, 27 Jan 2023 06:11:49 +0000 (22:11 -0800)]
LocSet now allows multiple reg_lens simultaneously

15 months agowip
Jacob Lifshay [Thu, 26 Jan 2023 02:05:29 +0000 (18:05 -0800)]
wip

15 months agostart adding fuzzing
Jacob Lifshay [Sat, 21 Jan 2023 01:32:17 +0000 (17:32 -0800)]
start adding fuzzing

15 months agoFunction verification should be complete, no tests yet
Jacob Lifshay [Fri, 20 Jan 2023 07:21:25 +0000 (23:21 -0800)]
Function verification should be complete, no tests yet

15 months agoworking on code
Jacob Lifshay [Thu, 19 Jan 2023 02:51:28 +0000 (18:51 -0800)]
working on code

15 months agonew ra wip
Jacob Lifshay [Tue, 17 Jan 2023 06:59:11 +0000 (22:59 -0800)]
new ra wip

15 months agowip adding register_allocator v3
Jacob Lifshay [Mon, 16 Jan 2023 07:04:32 +0000 (23:04 -0800)]
wip adding register_allocator v3

15 months agoremove redundant license file
Jacob Lifshay [Sun, 15 Jan 2023 21:36:40 +0000 (13:36 -0800)]
remove redundant license file

COPYING.LGPLv3 and LICENSE were exact copies of each other, remove
COPYING.LGPLv3 since we only need one copy of the license

15 months agoremove unused code
Jacob Lifshay [Tue, 10 Jan 2023 12:55:58 +0000 (04:55 -0800)]
remove unused code

15 months agoadd DisjointSets, a disjoint-set data structure
Jacob Lifshay [Fri, 6 Jan 2023 21:20:11 +0000 (13:20 -0800)]
add DisjointSets, a disjoint-set data structure

16 months agorearrange comments to make more sense
Jacob Lifshay [Fri, 16 Dec 2022 10:05:48 +0000 (02:05 -0800)]
rearrange comments to make more sense

16 months agooptimize LocSet.max_conflicts_with
Jacob Lifshay [Fri, 16 Dec 2022 10:03:51 +0000 (02:03 -0800)]
optimize LocSet.max_conflicts_with

16 months agoimport dataclasses instead of dataclass
Jacob Lifshay [Fri, 16 Dec 2022 10:03:18 +0000 (02:03 -0800)]
import dataclasses instead of dataclass

16 months agoattempt to speed up code
Jacob Lifshay [Fri, 16 Dec 2022 08:22:18 +0000 (00:22 -0800)]
attempt to speed up code

16 months agoregister_allocator works!
Jacob Lifshay [Fri, 16 Dec 2022 07:16:55 +0000 (23:16 -0800)]
register_allocator works!

16 months agoworking on code some more
Jacob Lifshay [Tue, 13 Dec 2022 10:38:58 +0000 (02:38 -0800)]
working on code some more

16 months agoworking on code
Jacob Lifshay [Tue, 13 Dec 2022 08:12:33 +0000 (00:12 -0800)]
working on code

16 months agocopy-merging works afaict! -- some tests still broken: out-of-date
Jacob Lifshay [Fri, 9 Dec 2022 08:06:41 +0000 (00:06 -0800)]
copy-merging works afaict! -- some tests still broken: out-of-date

tests not yet all updated for new register allocator results

16 months agoWIP: copy merging -- currently broken
Jacob Lifshay [Thu, 8 Dec 2022 08:45:05 +0000 (00:45 -0800)]
WIP: copy merging -- currently broken

currently not merging everything it should

16 months agorefactor preparing for copy merging
Jacob Lifshay [Thu, 8 Dec 2022 04:58:37 +0000 (20:58 -0800)]
refactor preparing for copy merging

16 months agochange InterferenceGraph edges to not imply interference
Jacob Lifshay [Tue, 6 Dec 2022 08:43:30 +0000 (00:43 -0800)]
change InterferenceGraph edges to not imply interference

nodes can be only copy-related but not interfering

16 months agoadd pack=true attribute to graphviz graph
Jacob Lifshay [Tue, 6 Dec 2022 07:21:49 +0000 (23:21 -0800)]
add pack=true attribute to graphviz graph

16 months agoadd dot graph output for interference graph
Jacob Lifshay [Tue, 6 Dec 2022 07:04:35 +0000 (23:04 -0800)]
add dot graph output for interference graph

16 months agoremove unused import
Jacob Lifshay [Fri, 2 Dec 2022 07:21:07 +0000 (23:21 -0800)]
remove unused import

16 months agoadd is_copy_related to interference graph edges
Jacob Lifshay [Fri, 2 Dec 2022 07:19:59 +0000 (23:19 -0800)]
add is_copy_related to interference graph edges

16 months agofinished __mergable_check
Jacob Lifshay [Fri, 2 Dec 2022 05:39:02 +0000 (21:39 -0800)]
finished __mergable_check

16 months agoworking on adding MergedSSAVal.__mergable_check that ensures copy
Jacob Lifshay [Thu, 1 Dec 2022 08:05:17 +0000 (00:05 -0800)]
working on adding MergedSSAVal.__mergable_check that ensures copy
merging won't merge things that are illegal to merge

17 months agofix generated assembly
Jacob Lifshay [Mon, 28 Nov 2022 07:58:13 +0000 (23:58 -0800)]
fix generated assembly

17 months agoTOOM-2 multiplication works for all sizes
Jacob Lifshay [Mon, 28 Nov 2022 07:41:18 +0000 (23:41 -0800)]
TOOM-2 multiplication works for all sizes

17 months agoadd general TOOM-2 test
Jacob Lifshay [Wed, 16 Nov 2022 06:58:14 +0000 (22:58 -0800)]
add general TOOM-2 test

17 months agoTOOM-2 256x256->512-bit [un]signed*[un]signed mul works!
Jacob Lifshay [Wed, 16 Nov 2022 05:03:47 +0000 (21:03 -0800)]
TOOM-2 256x256->512-bit [un]signed*[un]signed mul works!

17 months agoworking on code
Jacob Lifshay [Tue, 15 Nov 2022 08:11:21 +0000 (00:11 -0800)]
working on code

17 months agosimple_mul works with signed/unsigned mul; also made ir repr easier to read
Jacob Lifshay [Thu, 10 Nov 2022 07:59:00 +0000 (23:59 -0800)]
simple_mul works with signed/unsigned mul; also made ir repr easier to read

17 months agoworking on adding signed multiplication -- needed for toom-cook
Jacob Lifshay [Wed, 9 Nov 2022 08:31:47 +0000 (00:31 -0800)]
working on adding signed multiplication -- needed for toom-cook

17 months agoget LocSet hash working correctly
Jacob Lifshay [Wed, 9 Nov 2022 02:18:00 +0000 (18:18 -0800)]
get LocSet hash working correctly

17 months agoadd EvalOpValueRange
Jacob Lifshay [Tue, 8 Nov 2022 08:00:54 +0000 (00:00 -0800)]
add EvalOpValueRange

17 months agoadd forgotten setup.py develop
Jacob Lifshay [Tue, 8 Nov 2022 07:29:28 +0000 (23:29 -0800)]
add forgotten setup.py develop

17 months agoremove unused import
Jacob Lifshay [Tue, 8 Nov 2022 07:03:06 +0000 (23:03 -0800)]
remove unused import

17 months agorename compiler_ir2.py/register_allocator2.py to compiler_ir.py/register_allocator.py
Jacob Lifshay [Tue, 8 Nov 2022 07:00:11 +0000 (23:00 -0800)]
rename compiler_ir2.py/register_allocator2.py to compiler_ir.py/register_allocator.py

17 months agoremove old register allocator and compiler ir
Jacob Lifshay [Tue, 8 Nov 2022 06:55:51 +0000 (22:55 -0800)]
remove old register allocator and compiler ir

17 months agoregister allocation and simulation works for simple mul 192x192!
Jacob Lifshay [Tue, 8 Nov 2022 06:53:38 +0000 (22:53 -0800)]
register allocation and simulation works for simple mul 192x192!

17 months agoworking on code
Jacob Lifshay [Mon, 7 Nov 2022 10:54:55 +0000 (02:54 -0800)]
working on code

17 months agoregister_allocator2.py works!
Jacob Lifshay [Mon, 7 Nov 2022 08:23:59 +0000 (00:23 -0800)]
register_allocator2.py works!

17 months agoworking on code -- register_allocator2.py should work... still needs copy merging...
Jacob Lifshay [Mon, 7 Nov 2022 02:07:12 +0000 (18:07 -0800)]
working on code -- register_allocator2.py should work... still needs copy merging though

17 months agoworking on code
Jacob Lifshay [Sat, 5 Nov 2022 00:30:30 +0000 (17:30 -0700)]
working on code

17 months agofix tied input-output equivalence checking
Jacob Lifshay [Thu, 3 Nov 2022 07:48:39 +0000 (00:48 -0700)]
fix tied input-output equivalence checking

17 months agoworking on code
Jacob Lifshay [Thu, 3 Nov 2022 07:38:58 +0000 (00:38 -0700)]
working on code

17 months agoworking on code
Jacob Lifshay [Wed, 2 Nov 2022 07:32:00 +0000 (00:32 -0700)]
working on code

17 months agoworking on refactoring register allocator to use new ir
Jacob Lifshay [Tue, 1 Nov 2022 06:26:53 +0000 (23:26 -0700)]
working on refactoring register allocator to use new ir

17 months agovalidate that tied outputs are equivalent to their corresponding input
Jacob Lifshay [Tue, 1 Nov 2022 01:51:36 +0000 (18:51 -0700)]
validate that tied outputs are equivalent to their corresponding input

17 months agoadd op.properties to repr tests
Jacob Lifshay [Tue, 1 Nov 2022 01:03:01 +0000 (18:03 -0700)]
add op.properties to repr tests

17 months agowrap line I forgot
Jacob Lifshay [Tue, 1 Nov 2022 00:51:02 +0000 (17:51 -0700)]
wrap line I forgot

17 months agoadd pre_ra_insert_copies
Jacob Lifshay [Tue, 1 Nov 2022 00:45:26 +0000 (17:45 -0700)]
add pre_ra_insert_copies

17 months agochange Op/Ty/SSAVal reprs to be easier to read
Jacob Lifshay [Tue, 1 Nov 2022 00:43:15 +0000 (17:43 -0700)]
change Op/Ty/SSAVal reprs to be easier to read

17 months agopre-ra simulation works with new ir
Jacob Lifshay [Mon, 31 Oct 2022 09:43:07 +0000 (02:43 -0700)]
pre-ra simulation works with new ir

17 months agoimplement more of new compiler ir
Jacob Lifshay [Sun, 30 Oct 2022 09:20:48 +0000 (02:20 -0700)]
implement more of new compiler ir

18 months agoworking on new ir
Jacob Lifshay [Sat, 29 Oct 2022 00:55:49 +0000 (17:55 -0700)]
working on new ir

18 months agoworking on rewriting compiler ir to fix reg alloc issues
Jacob Lifshay [Fri, 28 Oct 2022 09:24:23 +0000 (02:24 -0700)]
working on rewriting compiler ir to fix reg alloc issues

18 months agoWIP rewriting compiler IR so regalloc works correctly
Jacob Lifshay [Thu, 27 Oct 2022 08:02:11 +0000 (01:02 -0700)]
WIP rewriting compiler IR so regalloc works correctly

18 months agoadd BitSet classes
Jacob Lifshay [Thu, 27 Oct 2022 08:01:19 +0000 (01:01 -0700)]
add BitSet classes

18 months agoadd misc. stuff
Jacob Lifshay [Wed, 26 Oct 2022 05:30:46 +0000 (22:30 -0700)]
add misc. stuff

18 months agoremove unused code I forgot
Jacob Lifshay [Wed, 26 Oct 2022 03:01:39 +0000 (20:01 -0700)]
remove unused code I forgot

18 months ago192x192->384-bit O(n^2) mul works in SSA form, reg-alloc gives incorrect results...
Jacob Lifshay [Sun, 23 Oct 2022 07:25:43 +0000 (00:25 -0700)]
192x192->384-bit O(n^2) mul works in SSA form, reg-alloc gives incorrect results though

18 months agoadd Toom-2.5
Jacob Lifshay [Thu, 20 Oct 2022 07:17:52 +0000 (00:17 -0700)]
add Toom-2.5

18 months agoToomCookInstance works!
Jacob Lifshay [Thu, 20 Oct 2022 06:46:02 +0000 (23:46 -0700)]
ToomCookInstance works!

18 months agomake Matrix support element types other than Fraction
Jacob Lifshay [Thu, 20 Oct 2022 03:23:14 +0000 (20:23 -0700)]
make Matrix support element types other than Fraction

18 months agofix warning
Jacob Lifshay [Wed, 19 Oct 2022 09:03:00 +0000 (02:03 -0700)]
fix warning

18 months agoworking on toom-cook multiplication
Jacob Lifshay [Wed, 19 Oct 2022 09:01:16 +0000 (02:01 -0700)]
working on toom-cook multiplication

18 months agogenerating assembly works
Jacob Lifshay [Wed, 19 Oct 2022 04:04:30 +0000 (21:04 -0700)]
generating assembly works

18 months agoworking on generating output assembly
Jacob Lifshay [Tue, 18 Oct 2022 07:36:02 +0000 (00:36 -0700)]
working on generating output assembly

18 months agoadd Fn class rather than global for generating op ids
Jacob Lifshay [Sat, 15 Oct 2022 00:13:26 +0000 (17:13 -0700)]
add Fn class rather than global for generating op ids

18 months agotry_allocate_registers_without_spilling works!
Jacob Lifshay [Fri, 14 Oct 2022 09:50:28 +0000 (02:50 -0700)]
try_allocate_registers_without_spilling works!

18 months agotest_op_set_to_list works
Jacob Lifshay [Fri, 14 Oct 2022 08:05:57 +0000 (01:05 -0700)]
test_op_set_to_list works

18 months agoadd FixedGPRRangeType
Jacob Lifshay [Fri, 14 Oct 2022 06:26:09 +0000 (23:26 -0700)]
add FixedGPRRangeType

18 months agofix test class name
Jacob Lifshay [Fri, 14 Oct 2022 06:10:53 +0000 (23:10 -0700)]
fix test class name

18 months agosplit compiler IR and register allocator out into their own files
Jacob Lifshay [Fri, 14 Oct 2022 06:09:38 +0000 (23:09 -0700)]
split compiler IR and register allocator out into their own files

18 months agotry_allocate_registers_without_spilling is completed, but untested
Jacob Lifshay [Fri, 14 Oct 2022 05:52:15 +0000 (22:52 -0700)]
try_allocate_registers_without_spilling is completed, but untested

18 months agoconstruct interference graph
Jacob Lifshay [Thu, 13 Oct 2022 03:34:41 +0000 (20:34 -0700)]
construct interference graph

18 months agofix typo
Jacob Lifshay [Thu, 13 Oct 2022 02:16:06 +0000 (19:16 -0700)]
fix typo

18 months agoadd test_toom_cook.py to make importing be tested in CI
Jacob Lifshay [Thu, 13 Oct 2022 02:13:07 +0000 (19:13 -0700)]
add test_toom_cook.py to make importing be tested in CI

18 months agofix running code
Jacob Lifshay [Thu, 13 Oct 2022 02:10:14 +0000 (19:10 -0700)]
fix running code

18 months agoremove plain_data Generic workaround
Jacob Lifshay [Thu, 13 Oct 2022 01:36:33 +0000 (18:36 -0700)]
remove plain_data Generic workaround

18 months agowork on switching algorithms
Jacob Lifshay [Wed, 12 Oct 2022 06:49:59 +0000 (23:49 -0700)]
work on switching algorithms

18 months agoworking on code
Jacob Lifshay [Tue, 11 Oct 2022 03:52:31 +0000 (20:52 -0700)]
working on code

18 months agochange SSAVal to link to defining Op
Jacob Lifshay [Mon, 10 Oct 2022 23:35:44 +0000 (16:35 -0700)]
change SSAVal to link to defining Op

18 months agoadd EqualitySets
Jacob Lifshay [Mon, 10 Oct 2022 22:38:21 +0000 (15:38 -0700)]
add EqualitySets

18 months agoadd equality constraints
Jacob Lifshay [Sat, 8 Oct 2022 00:34:41 +0000 (17:34 -0700)]
add equality constraints