Changeset 15495 in project for chicken


Ignore:
Timestamp:
08/15/09 15:09:56 (10 years ago)
Author:
felix winkelmann
Message:

assignment also marks lexically accessed variable as captured, not
only variable access (this broke tight code where a direct leaf call
did only assignments to a lexical variable, with subsequent
(non-boxed) access outside of the direct lambda).

(If you don't understand this - don't worry. In a few days, I will as well).

Location:
chicken/branches/inlining
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • chicken/branches/inlining/TODO

    r15323 r15495  
    66
    77** compiler
    8 *** inlining breaks (benchmarks/boyer):
    9     either we walk the inlined expr and have missing analysis results for renamed
    10     vars or we miss required copy-propagations (possible solution: mark renamed
    11     vars and add checks to all places where a non-existant analysis property may
    12     trigger an optimization)
    138*** pre-optimization
    149**** changes call-sites and makes them invalid for later pre-optimization
     
    112107*** write test file to trigger every type of warning (diff with result file in test-suite)
    113108*** add support for keyword arguments and check even length and available keywords
    114 
    115 ** libraries
    116 *** analyse usage statistics ("-debug v") of all core libraries
    117109
    118110
  • chicken/branches/inlining/benchmarks/cscbench.scm

    r15487 r15495  
    5454(define (compile-and-run file decls options coptions unsafe)
    5555  (with-output-to-file "bench.log" (cut print "\n==================" file) append:)
    56   (system* "~A ~A -v -no-warnings -heap-size 16m -output-file tmpfile.c -debug xopi ~A ~A 2>&1 >>bench.log"
     56  (system* "~A ~A -no-warnings -heap-size 16m -output-file tmpfile.c -debug xopi ~A ~A 2>&1 >>bench.log"
    5757           chicken file decls options)
    5858  (system* "~a ~a -s -I.. tmpfile.c -o tmpfile ../lib~achicken.a -lm"
  • chicken/branches/inlining/compiler.scm

    r15323 r15495  
    17091709             (unless (memq var localenv)
    17101710               (grow 1)
    1711                (cond ((memq var env) (put! db var 'captured #t))
     1711               (cond ((memq var env)
     1712                      (put! db var 'captured #t))
    17121713                     ((not (get db var 'global))
    17131714                      (put! db var 'global #t) ) ) ) ) )
     
    18061807                  (compiler-warning 'redef "redefinition of extended binding `~S'" var) ) )
    18071808               (put! db var 'potential-value val) )
    1808              (when (and (not (memq var localenv))
    1809                         (not (memq var env)) )
     1809             (unless (memq var localenv)
    18101810               (grow 1)
    1811                (put! db var 'global #t) )
     1811               (cond ((memq var env)
     1812                      (put! db var 'captured #t))
     1813                     ((not (get db var 'global))
     1814                      (put! db var 'global #t) ) ) )
    18121815             (assign var val (append localenv env) here)
    18131816             (unless toplevel-scope (put! db var 'assigned-locally #t))
Note: See TracChangeset for help on using the changeset viewer.