[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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.