tools.memory: moving the code-block types to the vm vocab
							parent
							
								
									5a1cb3f81e
								
							
						
					
					
						commit
						515f7e5269
					
				| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
USING: arrays assocs kernel math memory namespaces parser sequences
 | 
			
		||||
tools.memory tools.memory.private tools.test tools.time ;
 | 
			
		||||
tools.memory tools.memory.private tools.test tools.time vm ;
 | 
			
		||||
IN: tools.memory.tests
 | 
			
		||||
 | 
			
		||||
{ } [ room. ] unit-test
 | 
			
		||||
| 
						 | 
				
			
			@ -16,13 +16,9 @@ IN: tools.memory.tests
 | 
			
		|||
    gc-events get [ space-reclaimed 0 < ] any?
 | 
			
		||||
] unit-test
 | 
			
		||||
 | 
			
		||||
{ +pic+ } [
 | 
			
		||||
    2 code-block-type
 | 
			
		||||
] unit-test
 | 
			
		||||
 | 
			
		||||
{ t t t } [
 | 
			
		||||
    get-code-blocks code-block-stats nip
 | 
			
		||||
    [ +unoptimized+ of 0 > ]
 | 
			
		||||
    [ +optimized+ of 0 > ]
 | 
			
		||||
    [ +pic+ of 0 > ] tri
 | 
			
		||||
    [ CODE-BLOCK-UNOPTIMIZED of 0 > ]
 | 
			
		||||
    [ CODE-BLOCK-OPTIMIZED of 0 > ]
 | 
			
		||||
    [ CODE-BLOCK-PIC of 0 > ] tri
 | 
			
		||||
] unit-test
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
! See http://factorcode.org/license.txt for BSD license.
 | 
			
		||||
USING: accessors arrays assocs binary-search classes classes.struct
 | 
			
		||||
combinators combinators.smart continuations fry grouping hashtables
 | 
			
		||||
hints io io.styles kernel layouts math math.order math.parser
 | 
			
		||||
hints io io.styles kernel layouts literals math math.order math.parser
 | 
			
		||||
math.statistics memory namespaces prettyprint sequences
 | 
			
		||||
sequences.generalizations sorting vm ;
 | 
			
		||||
IN: tools.memory
 | 
			
		||||
| 
						 | 
				
			
			@ -203,8 +203,6 @@ SYMBOL: gc-events
 | 
			
		|||
        { "Data compaction time:" [ PHASE-DATA-COMPACTION sum-phase-times ] }
 | 
			
		||||
    } object-table. ;
 | 
			
		||||
 | 
			
		||||
SINGLETONS: +unoptimized+ +optimized+ +pic+ ;
 | 
			
		||||
 | 
			
		||||
TUPLE: code-block
 | 
			
		||||
    { owner read-only }
 | 
			
		||||
    { parameters read-only }
 | 
			
		||||
| 
						 | 
				
			
			@ -217,15 +215,12 @@ TUPLE: code-blocks { blocks groups } { cache hashtable } ;
 | 
			
		|||
 | 
			
		||||
<PRIVATE
 | 
			
		||||
 | 
			
		||||
: code-block-type ( n -- type )
 | 
			
		||||
    { +unoptimized+ +optimized+ +pic+ } nth ;
 | 
			
		||||
 | 
			
		||||
: <code-block> ( seq -- code-block )
 | 
			
		||||
    6 firstn-unsafe {
 | 
			
		||||
        [ ]
 | 
			
		||||
        [ ]
 | 
			
		||||
        [ ]
 | 
			
		||||
        [ code-block-type ]
 | 
			
		||||
        [ ]
 | 
			
		||||
        [ ]
 | 
			
		||||
        [ tag-bits get shift ]
 | 
			
		||||
    } spread code-block boa ; inline
 | 
			
		||||
| 
						 | 
				
			
			@ -287,9 +282,9 @@ INSTANCE: code-blocks immutable-sequence
 | 
			
		|||
: code-block-table. ( counts sizes -- )
 | 
			
		||||
    [
 | 
			
		||||
        {
 | 
			
		||||
            { "Optimized code:" +optimized+ }
 | 
			
		||||
            { "Unoptimized code:" +unoptimized+ }
 | 
			
		||||
            { "Inline caches:" +pic+ }
 | 
			
		||||
            ${ "Optimized code:" CODE-BLOCK-OPTIMIZED }
 | 
			
		||||
            ${ "Unoptimized code:" CODE-BLOCK-UNOPTIMIZED }
 | 
			
		||||
            ${ "Inline caches:" CODE-BLOCK-PIC }
 | 
			
		||||
        }
 | 
			
		||||
    ] 2dip '[ _ _ code-block-table-row ] { } assoc>map
 | 
			
		||||
    simple-table. ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -110,3 +110,7 @@ STRUCT: gc-info
 | 
			
		|||
    { gc-root-count uint read-only }
 | 
			
		||||
    { derived-root-count uint read-only }
 | 
			
		||||
    { return-address-count uint read-only } ;
 | 
			
		||||
 | 
			
		||||
CONSTANT: CODE-BLOCK-UNOPTIMIZED 0
 | 
			
		||||
CONSTANT: CODE-BLOCK-OPTIMIZED 1
 | 
			
		||||
CONSTANT: CODE-BLOCK-PIC 2
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue