bigint-presentation-code.git
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

2 years agoinitial commit
Jacob Lifshay [Thu, 6 Oct 2022 02:03:39 +0000 (19:03 -0700)]
initial commit