[dylan-lang/opendylan] b3fc64: Bug 7458: Refine MEP calling convention
GitHub <[email protected]>
| Newsgroups | gmane.comp.lang.dylan.gwydion.cvs |
|---|---|
| Message-ID | <54bf5608887e3_271b3f97bf6eb2c0119019@hookshot-fe1-cp1-prd.iad.github.net.mail> |
Branch: refs/heads/master
Home: https://github.com/dylan-lang/opendylan
Commit: b3fc64f4e056d82ee8b729b345d27badd67175ba
https://github.com/dylan-lang/opendylan/commit/b3fc64f4e056d82ee8b729b345d27badd67175ba
Author: Peter S. Housel <[email protected]>
Date: 2015-01-20 (Tue, 20 Jan 2015)
Changed paths:
M sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
M sources/dfmc/llvm-back-end/llvm-entry-points.dylan
Log Message:
-----------
Bug 7458: Refine MEP calling convention
* sources/dfmc/llvm-back-end/llvm-entry-points.dylan
(entry-point rest-key-xep): Fill in implementation.
(op--function-signature-properties): New emitter function for extracting
a <signature> and its properties from a <function> instance.
(op--process-keyword-optionals): New emitter function for defaulting and
processing keyword arguments into a local argument buffer.
(entry-point rest-key-mep): Change calling convention. Fill in
implementation.
(entry-point implicit-keyed-single-method,
entry-point explicit-keyed-single-method,
entry-point unrestricted-keyed-single-method): Change calling convention
of called MEPs.
* sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
(emit-call method on <method-call>): Change calling convention of
called MEPs. Check if the called method has an IEP only, and if so
call it using IEP calling conventions.
Commit: 6f9b3b9f51d9d87373f9d5b62f552d7d66f578e8
https://github.com/dylan-lang/opendylan/commit/6f9b3b9f51d9d87373f9d5b62f552d7d66f578e8
Author: Peter S. Housel <[email protected]>
Date: 2015-01-20 (Tue, 20 Jan 2015)
Changed paths:
M sources/dfmc/llvm-back-end/llvm-entry-points.dylan
Log Message:
-----------
Bug 7458: Implement the apply-mep entry point
* sources/dfmc/llvm-back-end/llvm-entry-points.dylan
(entry-point apply-mep): Implement apply-mep for cases where
argument shuffling (adding or removing values from the optionals
vector) does or does not need to be performed.
Commit: 9a6950e707daecaaec3e656e16468809f61fe298
https://github.com/dylan-lang/opendylan/commit/9a6950e707daecaaec3e656e16468809f61fe298
Author: Peter S. Housel <[email protected]>
Date: 2015-01-20 (Tue, 20 Jan 2015)
Changed paths:
M sources/dfmc/llvm-back-end/llvm-primitives-lambda.dylan
Log Message:
-----------
Bug 7458: Fix primitive-apply
* sources/dfmc/llvm-back-end/llvm-primitives-lambda.dylan
(primitive primitive-apply): Handle the arguments vector properly;
its final element contains a vector of arguments to be appended
after the other elements.
Commit: e6a0b9bea4e51d7206c5058cd39b283dbfa33a37
https://github.com/dylan-lang/opendylan/commit/e6a0b9bea4e51d7206c5058cd39b283dbfa33a37
Author: Peter S. Housel <[email protected]>
Date: 2015-01-20 (Tue, 20 Jan 2015)
Changed paths:
M sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
Log Message:
-----------
Bug 7458: Improve <method-apply> of known <keyword-method>s
* sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
(emit-call on <method-apply>): New method to directly call the
MEP of a known <keyword-method> rather than invoking the apply-mep
entry point.
Commit: dbbeb1162b470be2a4d0e4d135e1e5b9f08e8cec
https://github.com/dylan-lang/opendylan/commit/dbbeb1162b470be2a4d0e4d135e1e5b9f08e8cec
Author: Peter S. Housel <[email protected]>
Date: 2015-01-20 (Tue, 20 Jan 2015)
Changed paths:
M sources/app/llvm-runtime-generator/llvm-runtime-generator.dylan
Log Message:
-----------
Bug 7458: Fix emitting runtime primitives that do not return
* sources/app/llvm-runtime-generator/llvm-runtime-generator.dylan
(generate-runtime-primitive): Don't generate a return instruction if
the end of the runtime primitive is unreachable.
Commit: f9a3e20d7b883a3e6ea2c12b7df9ed946bd984d2
https://github.com/dylan-lang/opendylan/commit/f9a3e20d7b883a3e6ea2c12b7df9ed946bd984d2
Author: Peter S. Housel <[email protected]>
Date: 2015-01-20 (Tue, 20 Jan 2015)
Changed paths:
M sources/dfmc/llvm-back-end/llvm-mv.dylan
Log Message:
-----------
Bug 7458: Limit MV return values to the returned count
* sources/dfmc/llvm-back-end/llvm-mv.dylan
(op--mv-extract): Return #f for return value indices beyond the
returned value count.
Commit: d323565e7f936d27af24ed69b6734fb479081bca
https://github.com/dylan-lang/opendylan/commit/d323565e7f936d27af24ed69b6734fb479081bca
Author: Peter S. Housel <[email protected]>
Date: 2015-01-20 (Tue, 20 Jan 2015)
Changed paths:
M sources/dfmc/llvm-back-end/llvm-primitives-value-cell.dylan
Log Message:
-----------
Bug 7458: Fix value cell code generation
* sources/dfmc/llvm-back-end/llvm-primitives-value-cell.dylan
(op--make-closed-over-cell): Instantiate the correct value cell class
for single-float and double-float cells.
(op--get-closed-over-cell, op--set-closed-over-cell): Generate correct
access code for single-float and double-float cells.
Commit: 26f3cf15c719942ae3670fb09ae046fd8282d5d1
https://github.com/dylan-lang/opendylan/commit/26f3cf15c719942ae3670fb09ae046fd8282d5d1
Author: Peter S. Housel <[email protected]>
Date: 2015-01-20 (Tue, 20 Jan 2015)
Changed paths:
M sources/dfmc/llvm-back-end/llvm-entry-points.dylan
M sources/dfmc/llvm-back-end/llvm-primitives-lambda.dylan
Log Message:
-----------
Bug 7458: Do not pass stack-allocated vectors to tail calls
* sources/dfmc/llvm-back-end/llvm-entry-points.dylan
(entry-point rest-xep,
entry-point rest-key-xep): Change tail calls into ordinary calls.
(op--engine-node-call, op--chain-to-engine-entry-point): Add a
tail-call?: keyword argument for marking when it is safe to
perform a tail call.
(entry-point gf-xep): Mark final call as tail-call safe.
(entry-point general-engine-node-n): Change tail calls into ordinary
calls.
(entry-point implicit-keyed-single-method,
entry-point explicit-keyed-single-method): Change tail calls into ordinary
calls.
(entry-point cache-header, entry-point profiling-cache-header): Mark
final call as tail-call safe.
(entry-point discriminate-on-argument,
entry-point if-type-discriminator,
entry-point typecheck-discriminator,
entry-point monomorphic-by-class-discriminator): Mark final call as
tail-call safe.
* sources/dfmc/llvm-back-end/llvm-primitives-lambda.dylan
(primitive primitive-engine-node-apply-with-optionals): Mark
final call as tail-call safe.
Commit: 7f1b73e3a8202dbdce46b95df99d251e4ac9a352
https://github.com/dylan-lang/opendylan/commit/7f1b73e3a8202dbdce46b95df99d251e4ac9a352
Author: Peter S. Housel <[email protected]>
Date: 2015-01-20 (Tue, 20 Jan 2015)
Changed paths:
M sources/app/llvm-runtime-generator/llvm-runtime-generator-library.dylan
M sources/app/llvm-runtime-generator/llvm-runtime-generator.dylan
M sources/dfmc/llvm-back-end/llvm-back-end-library.dylan
M sources/dfmc/llvm-back-end/llvm-entry-points.dylan
Log Message:
-----------
Bug 7458: Build debug info for generated entry points
* sources/dfmc/llvm-back-end/llvm-entry-points.dylan
(llvm-emit-entry-point-dbg-function): New function emitting
debug metadata and emitting debug intrinsic calls for a given
generated entry-point instance.
(make-entry-point-dbg-function): New auxiliary function for
generating debug metadata for an entry point.
* sources/dfmc/llvm-back-end/llvm-back-end-library.dylan
(module dfmc-llvm-back-end): Export llvm-back-end-dbg-functions
and llvm-emit-entry-point-dbg-function for use by
llvm-runtime-generator.
* sources/app/llvm-runtime-generator/llvm-runtime-generator-library.dylan
(module llvm-runtime-generator): Reference llvm-debug.
* sources/app/llvm-runtime-generator/llvm-runtime-generator.dylan
($debug-producer): New constant.
(generate-runtime-entry-point): Receive debug file metadata. Call
llvm-emit-entry-point-dbg-function to emit debug info for the generated
entry-point.
(generate-runtime-entry-points): Receive debug file metadata and pass
it to generate-runtime-entry-point.
(generate-runtime): Create dummy debug source file metadata and
dummy debug compile unit metadata for use with generated functions,
and pass the debug file metadata to generate-runtime-entry-points.
Commit: ef93460d126be9e952c73a4732d6aceb343cc842
https://github.com/dylan-lang/opendylan/commit/ef93460d126be9e952c73a4732d6aceb343cc842
Author: Peter S. Housel <[email protected]>
Date: 2015-01-20 (Tue, 20 Jan 2015)
Changed paths:
M sources/app/llvm-runtime-generator/llvm-runtime-generator.dylan
M sources/dfmc/llvm-back-end/llvm-back-end-library.dylan
M sources/dfmc/llvm-back-end/llvm-primitives.dylan
Log Message:
-----------
Bug 7458: Build debug info for generated runtime primitives
* sources/dfmc/llvm-back-end/llvm-primitives.dylan
(llvm-emit-primitive-dbg-function): New function emitting
debug metadata and emitting debug intrinsic calls for a given
generated runtime primitive.
(make-primitive-dbg-function): New auxiliary function for
generating debug metadata for a primitive.
* sources/dfmc/llvm-back-end/llvm-back-end-library.dylan
(module dfmc-llvm-back-end): Export llvm-emit-primitive-dbg-function.
* sources/app/llvm-runtime-generator/llvm-runtime-generator.dylan
(generate-runtime-primitive): Receive debug file metadata. Call
llvm-emit-primitive-dbg-function to emit debug info for the generated
primitive.
(generate-runtime-primitives): Receive debug file metadata and pass
it to generate-runtime-primitive.
(generate-runtime): Pass debug file metadata to
generate-runtime-primitives.
Commit: a29c8e2d302f9f10797942aaebd00ff0d1276f62
https://github.com/dylan-lang/opendylan/commit/a29c8e2d302f9f10797942aaebd00ff0d1276f62
Author: Peter S. Housel <[email protected]>
Date: 2015-01-20 (Tue, 20 Jan 2015)
Changed paths:
M sources/dfmc/llvm-back-end/llvm-primitives-debug.dylan
Log Message:
-----------
Bug 7458: Implement primitive-debug-message
* sources/dfmc/llvm-back-end/llvm-primitives-debug.dylan
(op--inside-debugger?): New auxiliary function.
(primitive primitive-inside-debugger?): Implement using
op--inside-debugger?.
(primitive primitive-debug-message): Implement to invoke a
breakpoint when running under control of the debugger.
Commit: bebdfd6296da937034847908f8fcd0e36ec75c9c
https://github.com/dylan-lang/opendylan/commit/bebdfd6296da937034847908f8fcd0e36ec75c9c
Author: Peter S. Housel <[email protected]>
Date: 2015-01-20 (Tue, 20 Jan 2015)
Changed paths:
M sources/dfmc/llvm-back-end/llvm-emit-debug.dylan
Log Message:
-----------
Bug 7458: Compute debug info from dynamic signatures
* sources/dfmc/llvm-back-end/llvm-emit-debug.dylan
(emit-lambda-dbg-function): Compute the function type and debug
info function type from the signature spec when the signature
is unavailable.
(llvm-dynamic-signature-dbg-types): Compute debug info function
types from a signature spec.
Commit: 2f9bb99cb1b4536d96e7bf47abaf14ee2cd90627
https://github.com/dylan-lang/opendylan/commit/2f9bb99cb1b4536d96e7bf47abaf14ee2cd90627
Author: Peter S. Housel <[email protected]>
Date: 2015-01-20 (Tue, 20 Jan 2015)
Changed paths:
M sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
M sources/dfmc/llvm-back-end/llvm-emit-debug.dylan
Log Message:
-----------
Bug 7458: Improve local variable debug info generation
* sources/dfmc/llvm-back-end/llvm-emit-debug.dylan
(emit-dbg-local-variable): New auxiliary method for emitting
debug info intrinsic calls for a named <temporary>.
(llvm-reference-dbg-type on <type-estimate>,
llvm-reference-dbg-type on <type-estimate-raw>,
llvm-reference-dbg-type on <type-estimate-limited-instance>,
llvm-reference-dbg-type on <type-estimate-union>,
llvm-reference-dbg-type on <type-estimate-values>): New methods for
determining the proper debug info type for a given local variable
based on typist results.
* sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
(emit-result-assignment): Call emit-dbg-local-variable to
emit debug info for named <temporary> results.
(emit-computation on <loop>): Ensure that the call to computation-result
follows all of the inserted phi nodes in case it need needs to insert
instructions (such as calls to debug intrinsics).
Commit: 32ec5ccddbc4e50d8f6b2bc87f41ae9af1cf5161
https://github.com/dylan-lang/opendylan/commit/32ec5ccddbc4e50d8f6b2bc87f41ae9af1cf5161
Author: Peter S. Housel <[email protected]>
Date: 2015-01-20 (Tue, 20 Jan 2015)
Changed paths:
M sources/dfmc/llvm-back-end/llvm-emit-code.dylan
M sources/dfmc/llvm-back-end/llvm-emit-debug.dylan
Log Message:
-----------
Bug 7458: Add variable scope info to emitted debug info
* sources/dfmc/llvm-back-end/llvm-emit-debug.dylan
(emit-lambda-dbg-function): Call assign-computations-dbg-scope.
(*computation-dbg-scope-table*): New thread variable storing a map
between computations and their variable scope debug info.
(assign-computations-dbg-scope): New method to assign variable scopes
to a range of computations.
(assign-computation-dbg-scope on <computation>,
assign-computation-dbg-scope on <if>,
assign-computation-dbg-scope on <loop>,
assign-computation-dbg-scope on <block>,
assign-computation-dbg-scope on <unwind-protect>): New methods for
assigning variable scopes to computations and their descendents.
(op--scl): Place instructions within the appropriate variable scope.
Commit: 79353d1b2c47d06b2dab36fee0baacafd7db30ab
https://github.com/dylan-lang/opendylan/commit/79353d1b2c47d06b2dab36fee0baacafd7db30ab
Author: Peter S. Housel <[email protected]>
Date: 2015-01-20 (Tue, 20 Jan 2015)
Changed paths:
M sources/dfmc/llvm-back-end/llvm-mv.dylan
Log Message:
-----------
Bug 7458: Handle extracting single values from a #rest vector
* sources/dfmc/llvm-back-end/llvm-mv.dylan
(op--mv-extract): Read values from the #rest vector if the index
is beyond the number of fixed values.
Commit: 9ccce2accd93c92629ccdb5a00e7da51dfc97a15
https://github.com/dylan-lang/opendylan/commit/9ccce2accd93c92629ccdb5a00e7da51dfc97a15
Author: Peter S. Housel <[email protected]>
Date: 2015-01-20 (Tue, 20 Jan 2015)
Changed paths:
M sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
M sources/dfmc/llvm-back-end/llvm-emit-type-check.dylan
M sources/dfmc/modeling/objects.dylan
Log Message:
-----------
Bug 7458: Handle calling slot accessors from next-method
* sources/dfmc/modeling/objects.dylan
($dylan-system-subtype-bit-type-names): Assign a subtype bit for the
<engine-node> class.
* sources/dfmc/llvm-back-end/llvm-emit-type-check.dylan
(op--heap-object-subtype-mask): New auxiliary function for computing
subtype test bits.
(op--heap-object-subtype-bit-instance-cmp): Add a method for checking
against multiple classes simultaneously.
* sources/dfmc/llvm-back-end/llvm-emit-computation.dylan
(emit-call on <method-call>): Call <engine-node> (found in
next-method lists for slot accessors) using the same signature as
<keyword-method>.
Commit: 0209144a8c334d6021b1c23c63d7cfadd23cb8a5
https://github.com/dylan-lang/opendylan/commit/0209144a8c334d6021b1c23c63d7cfadd23cb8a5
Author: Peter S. Housel <[email protected]>
Date: 2015-01-20 (Tue, 20 Jan 2015)
Changed paths:
M sources/app/llvm-runtime-generator/llvm-runtime-c-header.dylan
Log Message:
-----------
Bug 7458: Generate proper C declarations for varargs primitives
* sources/app/llvm-runtime-generator/llvm-runtime-c-header.dylan
(print-primitive-c-function-declaration): Add "..." to C function
declarations for primitive functions when the rest? flag is set
in the primitive's signature.
Compare: https://github.com/dylan-lang/opendylan/compare/3d338cebe4f0...0209144a8c33
_______________________________________________
chatter mailing list
[email protected]
https://lists.opendylan.org/mailman/listinfo/chatter