Mark H Weaver
26d148066f
Merge remote-tracking branch 'origin/stable-2.0'
...
Conflicts:
configure.ac
libguile/deprecated.c
libguile/deprecated.h
libguile/filesys.h
libguile/fluids.c
libguile/fports.c
libguile/gc.c
libguile/guile.c
libguile/numbers.c
libguile/objcodes.c
libguile/r6rs-ports.c
libguile/smob.c
libguile/socket.c
libguile/threads.h
module/language/scheme/decompile-tree-il.scm
module/language/tree-il/peval.scm
test-suite/tests/syncase.test
2013-03-28 05:09:53 -04:00
Andy Wingo
19113f1ca7
allow case-lambda expressions with no clauses
...
* module/ice-9/psyntax-pp.scm:
* module/ice-9/psyntax.scm (case-lambda, case-lambda*): Allow 0
clauses.
* module/language/scheme/decompile-tree-il.scm (do-decompile):
(choose-output-names):
* module/language/tree-il.scm (unparse-tree-il):
(tree-il-fold, post-order!, pre-order!):
* module/language/tree-il/effects.scm (make-effects-analyzer):
* module/language/tree-il/cse.scm (cse):
* module/language/tree-il/debug.scm (verify-tree-il):
* module/language/tree-il/peval.scm (peval): Allow for lambda-body to be
#f.
* libguile/memoize.c (memoize):
* module/language/tree-il/canonicalize.scm (canonicalize!): Give a body
to empty case-lambda before evaluating it or compiling it,
respectively.
* test-suite/tests/optargs.test ("case-lambda", "case-lambda*"): Add
tests.
2013-03-09 11:16:31 +01:00
Mark H Weaver
e0c211bb2e
Merge remote-tracking branch 'origin/stable-2.0'
...
Conflicts:
GUILE-VERSION
libguile/posix.c
module/ice-9/eval.scm
test-suite/tests/cse.test
2013-01-07 17:23:26 -05:00
Ludovic Courtès
2c7b7e0f21
cse: Fix out-of-bounds access to the database.
...
Fixes <http://bugs.gnu.org/12883 >.
* module/language/tree-il/cse.scm (cse)[find-dominating-lexical]: Fix
computation of the last argument passed to `unroll'.
Patch by Stefan Israelsson Tampe <stefan.itampe@gmail.com>.
* test-suite/tests/cse.test ("cse")["http://bugs.gnu.org/12883 "]: New
test.
2012-11-21 23:51:16 +01:00
Andy Wingo
0dd7c54075
Merge remote-tracking branch 'origin/stable-2.0'
...
Conflicts:
libguile/deprecated.c
libguile/ports.c
libguile/ports.h
libguile/strports.c
test-suite/tests/cse.test
2012-06-22 13:18:02 +02:00
Andy Wingo
4d1ae11279
cse: expressions evaluated for effect do not provide predicates
...
* module/language/tree-il/cse.scm (cse): When trying to fold
conditionals, only look at entries in the database that were added in
test context.
* test-suite/tests/cse.test ("cse"): Add a test case.
2012-06-22 12:33:20 +02:00
Andy Wingo
74bbb99457
Merge remote-tracking branch 'origin/stable-2.0'
...
Conflicts:
module/language/tree-il/analyze.scm
module/language/tree-il/effects.scm
module/language/tree-il/fix-letrec.scm
module/language/tree-il/peval.scm
test-suite/tests/cse.test
test-suite/tests/peval.test
2012-05-21 19:20:27 +02:00
Andy Wingo
63216d80de
cse passes a lookup procedure to the effects analyzer
...
* module/language/tree-il/cse.scm (cse): Arrange to pass a lookup
procedure to compute-effects, for better effects analysis.
2012-05-15 17:23:06 +02:00
Andy Wingo
dc1ee62046
CSE in tail position
...
* module/language/tree-il/cse.scm (singly-valued-expression?, cse):
Allow CSE to propagate lexicals to tail positions, if the expression
is singly-valued.
2012-05-15 17:20:01 +02:00
Andy Wingo
1fb39dc55f
mvoe tree-il=? and tree-il-hash to tree-il.scm
...
* module/language/tree-il.scm (tree-il=?, tree-il-hash): Move these
helpers here, from cse.scm. Export them.
* module/language/tree-il/cse.scm (cse): Adapt accordingly.
2012-05-15 12:25:37 +02:00
Andy Wingo
9d8a10a94c
Merge remote-tracking branch 'origin/stable-2.0'
...
Conflicts:
test-suite/tests/cse.test
2012-04-26 23:40:57 +02:00
Andy Wingo
0ea5ba9ab9
Merge commit ' f66cbb99ee
'
2012-04-26 23:36:02 +02:00
Andy Wingo
f66cbb99ee
new pass: cse
...
* module/language/tree-il/cse.scm: New pass, some simple common
subexpression elimination with effects analysis.
* test-suite/tests/cse.test: New test.
* test-suite/Makefile.am:
* module/Makefile.am: Adapt.
2012-04-23 21:52:24 +02:00
Andy Wingo
73001b06f6
fix replacement of CSE with lexical-ref
...
* module/language/tree-il/cse.scm (cse): Fix dominator unrolling for
lexical propagation.
* test-suite/tests/cse.test ("cse"): Add test.
2012-04-23 21:52:24 +02:00
Andy Wingo
3db8f60977
cse hashing tweak
...
* module/language/tree-il/cse.scm (cse): Minor tweak to hash depth based
on time profile of compiling peval.scm.
2012-04-23 21:52:24 +02:00