Changeset 12382 in project


Ignore:
Timestamp:
11/06/08 17:30:44 (12 years ago)
Author:
felix winkelmann
Message:

namespace fixes, moved u-o-pass before CPS conversion

Location:
chicken/branches/lfa
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • chicken/branches/lfa/TODO

    r12314 r12382  
    5656** compiler
    5757*** remove "custom-declare" + stuff?
     58*** lfa
     59**** trace-call
     60***** probably need to track known procedure values/lfa-lambdas
     61***** if op is lfa-lambda (how to obtain it is different question):
     62****** if lfa-lambda has type-env, merge with argtypes
     63****** if no change return lfa-lambda type (if set)
     64****** otherwise trace body, update/merge lfa-lambda type
     65****** call: if op has type, extend tenv for args with known sources
     66****** check op-plist for rewrite rules, matched by argtypes
     67****** mark result-var if op-plist is marked as predicate
     68****** remove call, if op-plist is marked as check and argtypes match (subtypes)
    5869
    5970** setup/install
  • chicken/branches/lfa/batch-driver.scm

    r12338 r12382  
    305305        (load-verbose #t) )
    306306      ;; rebind a-g-h to allow extensions in source files to use private-namespace.scm
    307       (fluid-let ((##sys#alias-global-hook ##sys#alias-global-hook))
    308         (for-each
    309          (lambda (f) (load (##sys#resolve-include-filename f #f #t)))
    310          extends) ) )
     307      (for-each
     308       (lambda (f) (load (##sys#resolve-include-filename f #f #t)))
     309       extends) )
    311310    (set! ##sys#features (delete #:compiler-extension ##sys#features eq?))
    312311
     
    558557                 (scan-toplevel-assignments (first (node-subexpressions node0))) )
    559558
     559               (let ((proc (user-optimization-pass)))
     560                 (when proc
     561                   (when verbose (printf "User optimization pass...~%~!"))
     562                   (begin-time)
     563                   (set! first-analysis #f)
     564                   (let ([db (analyze 'useropt node0)])
     565                     (print-db "analysis" '|0| db 0)
     566                     (end-time "pre-analysis (user)")
     567                     (begin-time)
     568                     (set! node0 (proc node0 db))
     569                     (end-time "user optimization pass")
     570                     (print-node "user optimization" 'x node0) )
     571                   (set! first-analysis #t) ) )
     572
    560573               (begin-time)
    561574               (let ([node1 (perform-cps-conversion node0)])
     
    574587                     (end-time "analysis")
    575588                     (print-db "analysis" '|4| db i)
    576 
    577589                     (when (memq 's debugging-chicken) (print-program-statistics db))
    578 
    579590                     (cond [progress
    580 
    581                             (let ((proc (user-optimization-pass)))
    582                               (when proc
    583                                 (when verbose (printf "User optimization pass...~%~!"))
    584                                 (set! node2 (proc node2 db)) ))
    585 
    586591                            (debugging 'p "optimization pass" i)
    587 
    588592                            (begin-time)
    589593                            (receive (node2 progress-flag)
     
    591595                              (end-time "optimization")
    592596                              (print-node "optimized-iteration" '|5| node2)
    593 
    594597                              (cond [progress-flag (loop (add1 i) node2 #t)]
    595598                                    [(not inline-substitutions-enabled)
  • chicken/branches/lfa/compiler.scm

    r12338 r12382  
    311311  make-random-name final-foreign-type real-name-table real-name set-real-name! safe-globals-flag
    312312  location-pointer-map literal-rewrite-hook inline-globally
    313   local-definitions export-variable variable-mark intrinsic?
     313  local-definitions export-variable variable-mark intrinsic? varnode?
    314314  undefine-shadowed-macros process-lambda-documentation emit-syntax-trace-info
    315315  generate-code make-variable-list make-argument-list generate-foreign-stubs foreign-type-declaration
  • chicken/branches/lfa/lfa.scm

    r12338 r12382  
    449449      (debugging 'x "tracing call" (node-class n))
    450450      ;...
    451       )
     451      (values '* #f te))
    452452    (trace node #f '())) )
    453453
     
    458458 (lambda (node db)
    459459   (debugging 'x "collecting lambdas ...")
    460    (let ((ll (collect-lambdas node)))
     460   (let ((ll (collect-lambdas node db)))
    461461     (debugging 'x "lfa trace ...")
    462462     (perform-lfa node db '() ll)
  • chicken/branches/lfa/optimizer.scm

    r12338 r12382  
    6060  topological-sort print-version print-usage initialize-analysis-database
    6161  expand-foreign-callback-lambda default-optimization-passes default-optimization-passes-when-trying-harder
    62   units-used-by-default words-per-flonum rewrite inline-locally
     62  units-used-by-default words-per-flonum rewrite inline-locally varnode?
    6363  parameter-limit eq-inline-operator optimizable-rest-argument-operators
    6464  membership-test-operators membership-unfold-limit valid-compiler-options valid-compiler-options-with-argument
Note: See TracChangeset for help on using the changeset viewer.