[dylan-lang/opendylan] 7b7d56: Bug 7458: Factor out IEP call generation
GitHub <[email protected]>
| Newsgroups | gmane.comp.lang.dylan.gwydion.cvs |
|---|---|
| Message-ID | <551e1c40bb4b4_5eb73ff07d8eb2c067592@hookshot-fe2-cp1-prd.iad.github.net.mail> |
Branch: refs/heads/master
Home: https://github.com/dylan-lang/opendylan
Commit: 7b7d56f5093c1f6a6584af970c8579aa001c75f4
https://github.com/dylan-lang/opendylan/commit/7b7d56f5093c1f6a6584af970c8579aa001c75f4
Author: Peter S. Housel <[email protected]>
Date: 2015-04-02 (Thu, 02 Apr 2015)
Changed paths:
M sources/dfmc/llvm-back-end/llvm-back-end-types.dylan
M sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
M sources/dfmc/llvm-back-end/llvm-entry-points.dylan
M sources/dfmc/llvm-back-end/llvm-ops.dylan
Log Message:
-----------
Bug 7458: Factor out IEP call generation
* sources/dfmc/llvm-back-end/llvm-back-end-types.dylan
($object-pointer-undef): New "undef" constant.
* sources/dfmc/llvm-back-end/llvm-ops.dylan
(iep-function): New utility generic function.
(op--call-iep): New utility method for calling/invoking an IEP.
(op--call-error-iep): Update to use op--call-iep.
* sources/dfmc/llvm-back-end/llvm-entry-points.dylan
(entry-point xep, entry-point rest-xep, entry-point rest-key-xep,
entry-point rest-key-mep, entry-point single-method,
entry-point discriminate-on-argument): Update to use op--call-iep.
* sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
(emit-call on <simple-call> and <&iep>,
emit-call on <method-call> and <&iep>,
emit-call on <method-call>): Update to use op--call-iep.
Commit: 817b5fcd1baddeae0bf9c7ff5e92d025abec2fb3
https://github.com/dylan-lang/opendylan/commit/817b5fcd1baddeae0bf9c7ff5e92d025abec2fb3
Author: Peter S. Housel <[email protected]>
Date: 2015-04-02 (Thu, 02 Apr 2015)
Changed paths:
M sources/dfmc/llvm-back-end/llvm-back-end-types.dylan
M sources/dfmc/llvm-back-end/llvm-emit-code.dylan
M sources/dfmc/llvm-back-end/llvm-emit-debug.dylan
M sources/dfmc/llvm-back-end/llvm-entry-points.dylan
M sources/dfmc/llvm-back-end/llvm-ops.dylan
Log Message:
-----------
Bug 7458: Pass extra IEP arguments with a pointer
* sources/dfmc/llvm-back-end/llvm-back-end-types.dylan
(llvm-signature-types, llvm-dynamic-signature-types): Do not include
calling convention parameters.
(llvm-lambda-type): Add calling convention parameters here, along
with the extra parameters pointer when too many parameters are passed.
* sources/dfmc/llvm-back-end/llvm-emit-code.dylan
($extra-parameter-name): New constant.
(emit-code): Receive extra parameter values through a pointer argument,
retrieving them within the function prologue.
* sources/dfmc/llvm-back-end/llvm-emit-debug.dylan
(emit-lambda-dbg-function): Add the extra parameters pointer when too
many parameters are passed.
(llvm-signature-dbg-types, llvm-dynamic-signature-dbg-types): Do not
include calling convention parameters.
(llvm-dbg-pointer-to): New function for generating pointer type LLVM
metadata.
(llvm-reference-dbg-type): Make use of llvm-dbg-pointer-to.
* sources/dfmc/llvm-back-end/llvm-entry-points.dylan
(llvm-entry-point-info on <&lambda-xep>): Reference the rest-key-xep-n
entry point when the IEP has more than $entry-point-argument-count
arguments.
(llvm-entry-point-info on <&lambda-keyword-method-mep>): Reference the
rest-key-xep-n entry point when the IEP has more than
$entry-point-argument-count arguments.
(entry-point rest-key-xep-n, entry-point rest-key-mep-n): New versions
of the corresponding entry points that pass parameter values beyond
$entry-point-argument-count via a pointer to the stack-allocated
buffer.
(op--function-signature-properties): Accept dynamically-generated
IEP argument counts as well as fixed argument counts.
Commit: 59953574c3677d57d8af7d1b2110acce0989bb70
https://github.com/dylan-lang/opendylan/commit/59953574c3677d57d8af7d1b2110acce0989bb70
Author: Peter S. Housel <[email protected]>
Date: 2015-04-02 (Thu, 02 Apr 2015)
Changed paths:
M sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
Log Message:
-----------
Bug 7458: Fix <make-closure> code emission
* sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
(emit-computation on <make-closure>): Generate the proper type
for references to top-level methods with a dynamic signature,
and generate a proper return value.
Commit: 0b1a4511709be6db33db8ce8b367c1c4268e104e
https://github.com/dylan-lang/opendylan/commit/0b1a4511709be6db33db8ce8b367c1c4268e104e
Author: Peter S. Housel <[email protected]>
Date: 2015-04-02 (Thu, 02 Apr 2015)
Changed paths:
M sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
M sources/dfmc/llvm-linker/llvm-linker.dylan
Log Message:
-----------
Bug 7458: Fix local MV #rest merges and returns
* sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
(emit-local-merge-assignment): Fix determination of whether a
<llvm-global-mv> can have #rest values or not.
(do-emit-return on <llvm-local-mv>): Handle copying #rest values
from a <llvm-local-mv> into the global MV area.
* sources/dfmc/llvm-linker/llvm-linker.dylan
($object-extern-names): New constant listing objects that may be
referenced from within code generated for computations without
an entry in heap-referenced-objects.
(emit-code-externs): Generate extern references for objects when
needed.
Commit: 2e30772e0e305ac5f67cf1da909a8adf679a9722
https://github.com/dylan-lang/opendylan/commit/2e30772e0e305ac5f67cf1da909a8adf679a9722
Author: Peter S. Housel <[email protected]>
Date: 2015-04-02 (Thu, 02 Apr 2015)
Changed paths:
M sources/dfmc/llvm-back-end/llvm-primitives-machine-word.dylan
Log Message:
-----------
Bug 7458: Fix primitive-machine-word-unsigned-double-shift-right
* sources/dfmc/llvm-back-end/llvm-primitives-machine-word.dylan
(primitive primitive-machine-word-unsigned-double-shift-right): Return
the correct value. (Was returning the input rather than the shifted
result.)
Commit: 7da22d94fc94e81d6be9ce472ac559b03eb00cfc
https://github.com/dylan-lang/opendylan/commit/7da22d94fc94e81d6be9ce472ac559b03eb00cfc
Author: Peter S. Housel <[email protected]>
Date: 2015-04-02 (Thu, 02 Apr 2015)
Changed paths:
M sources/lib/variable-search/darwin-variable-value.dylan
M sources/lib/variable-search/unix-variable-value.dylan
Log Message:
-----------
Bug 7458: Fix variable-search raw type mismatches
* sources/lib/variable-search/darwin-variable-value.dylan
(variable-value): Fix treating <raw-machine-word> as a pointer.
* sources/lib/variable-search/unix-variable-value.dylan:
(variable-value): Fix treating <raw-machine-word> as a pointer.
Compare: https://github.com/dylan-lang/opendylan/compare/fc02731901d2...7da22d94fc94
_______________________________________________
chatter mailing list
[email protected]
https://lists.opendylan.org/mailman/listinfo/chatter