bigint-presentation-code.git
21 months agoadd ssa_val_allocations
Jacob Lifshay [Fri, 17 Feb 2023 03:59:49 +0000 (19:59 -0800)]
add ssa_val_allocations

21 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

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

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

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

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

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

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

21 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

21 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

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

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

22 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

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

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

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

22 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

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

22 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

23 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

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

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

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

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

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

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

23 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

23 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

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

23 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

23 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

23 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

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

23 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

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

23 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

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

23 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

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

2 years 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!

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

2 years 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

2 years 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

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

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

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

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

2 years 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

2 years 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

2 years 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!

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

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

2 years 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

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

2 years 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

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

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

2 years 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

2 years 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

2 years 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

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

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

2 years 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

2 years 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

2 years 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

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

2 years 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

2 years 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

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

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

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

2 years 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

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

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

2 years 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

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

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

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

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

2 years 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

2 years 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!

2 years 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

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

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

2 years 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

2 years 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

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

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

2 years 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

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

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

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

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

2 years 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

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

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

2 years agoformat code
Jacob Lifshay [Sat, 8 Oct 2022 00:31:47 +0000 (17:31 -0700)]
format code

2 years agoworking on toom_cook.py
Jacob Lifshay [Sat, 8 Oct 2022 00:23:09 +0000 (17:23 -0700)]
working on toom_cook.py

2 years agostarted working on toom_cook.py
Jacob Lifshay [Fri, 7 Oct 2022 04:08:08 +0000 (21:08 -0700)]
started working on toom_cook.py

2 years agoadd Matrix class
Jacob Lifshay [Thu, 6 Oct 2022 05:03:33 +0000 (22:03 -0700)]
add Matrix class