Commit Graph

133 Commits (3e485652feb276a51667843f9a95173f9c862425)

Author SHA1 Message Date
Björn Lindqvist 5782855343 compiler.cfg.*: more docs 2014-12-31 03:37:16 +01:00
Björn Lindqvist 0432b17409 compiler.cfg.*: refactoring away the compute-global-sets word 2014-12-31 03:37:16 +01:00
Björn Lindqvist 79d294e4bf compiler.cfg.*: docs and more tests 2014-12-31 03:37:16 +01:00
Björn Lindqvist 1bd4525ac6 compiler.cfg.stacks.local: refactoring making stack-changes and height-changes take and return stuff instead of using variables and the make building 2014-12-31 03:37:16 +01:00
Björn Lindqvist 24c9dbe160 compiler.cfg.stacks.height: these words are unused 2014-12-31 03:37:16 +01:00
Björn Lindqvist 2ccbcd6af6 compiler.cfg.*: more compiler docs 2014-12-31 03:37:16 +01:00
Björn Lindqvist e968c16139 compiler.cfg.stacks.finalize: initial docs 2014-12-31 03:37:16 +01:00
John Benediktsson c65877104e compiler: cleanup usings. 2014-12-13 16:10:21 -08:00
John Benediktsson 068ddd6c7b compiler: cleanup cfg passes to have stack effect ( cfg -- ) 2014-12-11 12:48:43 -08:00
Björn Lindqvist 628c87c5b1 compiler.cfg.utilities: adding connect-bbs and make-edges 2014-12-11 14:30:47 +01:00
Björn Lindqvist e5866dfa80 compiler.cfg.*: changed stack effect of needs-predecessors from ( cfg -- cfg') to ( cfg -- ) 2014-12-11 14:30:47 +01:00
Björn Lindqvist 5fe9ce4235 compiler.cfg: fix stack effect of cfg-changed and predecessors changed to ( cfg -- ) 2014-12-11 14:30:46 +01:00
Björn Lindqvist a0d4e9b417 compiler.cfg.stacks.uninitialized: this compiler pass isn't used anymore -- let's get rid of it 2014-12-11 14:30:46 +01:00
Björn Lindqvist c8a022423e compiler.cfg.utilities: move and rename the helper words block>cfg, insns>block and insns>cfg, they are useful to many testing vocabs 2014-11-22 17:31:38 -08:00
Doug Coleman 1ee9a8ea13 compiler.cfg.stacks.local: Have unit test load prettyprint implementation for ds-loc so that it always prints as "D 4". 2014-10-22 10:31:27 -07:00
Björn Lindqvist a617855aef Docs: fixing smaller help-lint nitpicks 2014-10-19 14:05:06 +02:00
Doug Coleman 4c6435934b compiler.cfg.stacks.vacant: Fix docs for word rename. 2014-09-08 17:48:22 -07:00
Björn Lindqvist ffacc8370d compiler.cfg.stacks.vacant: ##call instructions clear the set of overinitialized locations 2014-09-08 14:54:18 -07:00
Björn Lindqvist 9836d6a1d0 VM: move the stack scrubbing logic to call_frame_slot_visitor to avoid visiting the callstack twice
primitive_minor_gc() iterates the stack twice, first to scrub stack
locations, then to trace overinitialized ones and gc roots. By running
visit_callstack() before visit_stack_elements() you only need to do it
once.
2014-09-08 14:54:18 -07:00
Björn Lindqvist 46082d836a compiler.cfg.stacks.vacant: invert meaning of 0/1 for overinit:ed locs to make some logic simpler 2014-09-08 14:54:17 -07:00
Björn Lindqvist 70e4f2a8b7 compiler.cfg.instructions: added check-d and check-r slots to gc-map
the data is output from compiler.cfg.stacks.vacant in a reasonable
format but not yet used for code generation.
2014-09-08 14:54:17 -07:00
Björn Lindqvist ecead801c1 compiler.cfg.stacks.vacant: more docs and removed usage of byte-arrays 2014-09-08 14:54:17 -07:00
Björn Lindqvist ab5e629243 compiler.cfg.stacks.vacant: sub docs seeded with a stolen comment from uninitialized.factor 2014-09-08 14:54:17 -07:00
Björn Lindqvist 40ee3cdcbb compiler.cfg.stacks.vacant: fix usings and remove commented out code 2014-09-08 14:54:17 -07:00
Björn Lindqvist e961a03837 compiler.cfg.stacks.vacant: compiler pass replacing uninitialized for more accurate stack maps
This pass uses a better algorithm for keeping track of all stack
manipulations which means that the stack maps it assigns are much more
precise.
2014-09-08 14:54:17 -07:00
John Benediktsson 7609ab6eda compiler.cfg: fix some help-lint warnings. 2014-08-14 09:59:27 -07:00
Björn Lindqvist c6784020aa compiler.cfg.*: initial docs for dataflow analysis vocabs 2014-08-13 11:01:11 -07:00
Björn Lindqvist 769ca5550f compiler.cfg.*: docs for compiler words 2014-08-13 11:01:11 -07:00
Björn Lindqvist 1225abeeaf Docs: more compiler-related documentation 2014-08-13 11:01:10 -07:00
John Benediktsson bf473ec943 compiler.cfg: fix some docs. 2014-06-08 18:20:27 -07:00
Björn Lindqvist 280620c55f Docs: docs for compiler-related words 2014-06-08 11:48:31 -07:00
Björn Lindqvist 160df8b3f1 Docs: for compiler.cfg.* vocabs 2014-06-08 11:48:31 -07:00
Björn Lindqvist 395a490b90 Docs: documentation for stack-checker.* and compiler.* vocabs 2014-06-08 11:48:30 -07:00
Björn Lindqvist e2eebdec4d Docs: mostly fixes for doc errors found by help lint 2014-05-10 17:13:49 -07:00
Björn Lindqvist 0bb3e2397b Docs: more compiler documentation 2014-05-10 17:13:48 -07:00
Doug Coleman 6cca0ea468 compiler.cfg: Rename <##foo> to ##foo, in the low-level IR 2011-11-11 19:48:38 -08:00
Doug Coleman eb2a0c611b compiler.cfg: Change low-level IR constructors from ##foo to <##foo> 2011-11-06 23:02:46 -08:00
Doug Coleman f9257959fd Rename class to class-of 2011-10-24 06:47:42 -05:00
John Benediktsson 378786599d Cleanup lint warnings. 2011-10-14 11:47:24 -07:00
John Benediktsson 1987deb359 Fix M: stack effects. 2011-10-13 16:41:17 -07:00
Slava Pestov 5d6816d364 compiler.cfg.ssa: fixing test failures 2010-06-15 17:18:51 -04:00
Slava Pestov e86f434f26 Add GC maps to ##box, ##box-long-long, ##alien-invoke, ##alien-indirect and ##call-gc; remove ##gc-map instruction 2010-06-14 19:39:46 -04:00
Slava Pestov 806e54630a GC maps for more compact inline GC checks 2010-06-11 20:06:00 -04:00
Slava Pestov c211c3e84e FFI rewrite part 1: split up ##alien-invoke and friends into smaller instructions 2010-05-09 21:36:52 -04:00
Slava Pestov 428ba9fd0f compiler.cfg: fuse ##load-integer/##load-reference into ##replace to form ##replace-imm 2010-05-03 17:34:28 -04:00
Slava Pestov 95ff5ffe51 New GC checks work in progress 2010-05-03 17:34:16 -04:00
Slava Pestov 82fb1879af Debugging untagged fixnums 2010-05-03 17:34:02 -04:00
Daniel Ehrenberg 512fe14e4e Merge branch 'bags' of git://github.com/littledan/Factor
Conflicts:

	basis/compiler/cfg/ssa/construction/tdmsc/tdmsc.factor
	basis/furnace/auth/auth.factor
	basis/stack-checker/backend/backend.factor
2010-03-16 13:28:00 -04:00
Joe Groff 191ac353fd generalize stack effects so we can bootstrap with the stricter stack effect checking 2010-03-08 23:38:10 -08:00
Daniel Ehrenberg 7074979745 Moving new-sets to sets 2010-02-26 16:01:01 -05:00
Doug Coleman 8c1d202b4c Rename accumulator to collector, pusher to selector 2010-01-22 15:00:53 -06:00
Slava Pestov df4fb4a3ee Removing integers-as-sequences 2010-01-15 07:15:33 +13:00
Slava Pestov 0612bc6177 Factor source files should not be executable 2009-11-21 17:50:43 -06:00
Slava Pestov b4e36608da compiler.cfg: remove _gc instruction, it doesn't need to exist, and change GC checks to ensure that the right amount of space is available instead of blindly checking for 1Kb 2009-10-05 05:27:49 -05:00
Slava Pestov fd2f0a602d compiler.cfg.stacks.local: more accurate local replace set computation; optimizes out 'swap swap' 2009-08-19 22:00:21 -05:00
Daniel Ehrenberg 478b960560 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-14 20:11:54 -05:00
Daniel Ehrenberg 3cec74867d Improving write barrier elimination; change to compiler.cfg.utilities to support this 2009-08-14 19:41:41 -05:00
Doug Coleman 2ed4425b7a Merge branch 'master' of git://factorcode.org/git/factor
Conflicts:
	basis/calendar/calendar.factor
2009-08-13 19:40:02 -05:00
Doug Coleman 3f3d57032b Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places, minor refactoring 2009-08-13 19:21:44 -05:00
Daniel Ehrenberg d35e1eb76c Fixing write-barrier elimination; adding bb as a parameter to join-sets in dataflow analysis 2009-08-12 23:52:29 -05:00
Slava Pestov d0c393aa60 compiler.cfg: new system to track when results of analyses need to be recomputed (reverse post order, linear order, predecessors, dominance, loops). Passes can now call needs-predecessors, needs-dominance, needs-loops at the beginning, and cfg-changed, predecessors-changd at the end. Linearization order now takes loop nesting into account, and linear scan now uses linearization order instead of RPO. 2009-08-08 20:02:56 -05:00
Slava Pestov 4b7ba38aab compiler.cfg: virtual registers are integers now, and representations are stored off to the side. Fix bug in representation selection that would manifest if a value was used as a float and a fixnum in different branches; cannot globally unbox float in this case 2009-08-08 04:02:18 -05:00
Slava Pestov 725280d424 Split off the notion of a register representation from a register class 2009-08-07 17:44:50 -05:00
Slava Pestov d20d335447 compiler.cfg.stacks: more accurate deconcatenatization inserts fewer partially redundant ##peeks. 11% improvement on benchmark.beust2, 2% reduction in ##peek and ##replace instructions inserted 2009-08-03 07:08:28 -05:00
Slava Pestov 720bfe378f compiler.cfg.stacks.uninitialized: use bitand instead of min 2009-08-03 06:03:38 -05:00
Slava Pestov c1c8424605 Compiler speedups 2009-08-02 09:16:21 -05:00
Slava Pestov e1c7f7394a compiler.cfg: clean up unit tests using some new utilities 2009-08-02 03:49:25 -05:00
Slava Pestov 2d719534cf compiler.cfg.stacks: kill set now includes all locations eliminated as a result of stack height decrease; reduces number of ##replace instructions generated by 2% 2009-08-01 06:12:43 -05:00
Slava Pestov be363d1a5b compiler.cfg: Get inline GC checks working again, using a dataflow analysis to compute uninitialized stack locations in compiler.cfg.stacks.uninitialized. Re-enable intrinsics which use inline allocation 2009-07-30 09:19:44 -05:00
Slava Pestov 7590ad3574 compiler.cfg: introduce less temporaries when building CFG 2009-07-24 03:37:18 -05:00
Slava Pestov d947c61bd7 compiler.cfg.stacks: now performs online local DCN 2009-07-23 20:54:38 -05:00
Slava Pestov 6b25e99470 Add summary for heaps more vocabs 2009-02-16 21:05:13 -06:00
Slava Pestov 26f309d2ae Trying to make PEGs compile faster by reducing the number of low level IR nodes: merge functionality of #>r and #r> into #shuffle, and generate 1 node instead of 3 for calls to get-local 2008-11-11 18:46:31 -06:00
Slava Pestov 94a2bfa2ea Working on comparison operations, clearing out remaining dead wood 2008-10-21 03:20:48 -05:00
Slava Pestov e92f795a76 More work on intrinsics; memory allocation and slot access now expands correctly 2008-10-20 20:40:15 -05:00
Slava Pestov f092622fac CFG IR is now pure SSA 2008-10-20 01:56:28 -05:00
Slava Pestov 239578353f Simplifying vregs work in progress 2008-10-17 15:35:04 -05:00
Slava Pestov 68c9b22cef Don't need known-tag templates any more 2008-10-11 14:08:00 -05:00
Slava Pestov f979ae5b82 Expand slot accessors further to avoid having to use complex template decision 2008-10-11 14:05:15 -05:00
Slava Pestov cf46a832e7 Debugging register allocator and inline allocation 2008-10-08 23:42:53 -05:00
Slava Pestov 0e4e05d5cd Debugging new codegen 2008-10-08 03:51:44 -05:00
Slava Pestov 7b6d9c4c4f Debugging new codegen 2008-10-07 20:00:38 -05:00
Slava Pestov f436fd0c0f Merging in new codegen 2008-10-07 16:16:50 -05:00