[dylan-lang/opendylan] 823ee0: [dfmc] Propagate not-inline to generated code.

GitHub <[email protected]>
Newsgroups gmane.comp.lang.dylan.gwydion.cvs
Message-ID <552a67e5576fe_7c2d3fd97ad2d2bc13723@hookshot-fe2-cp1-prd.iad.github.net.mail>
  Branch: refs/heads/master
  Home:   https://github.com/dylan-lang/opendylan
  Commit: 823ee0ee9e30011d3ef87cc737d0dfef7a238f84
      https://github.com/dylan-lang/opendylan/commit/823ee0ee9e30011d3ef87cc737d0dfef7a238f84
  Author: Bruce Mitchener <[email protected]>
  Date:   2015-04-12 (Sun, 12 Apr 2015)

  Changed paths:
    M documentation/release-notes/source/2015.1.rst
    M sources/dfmc/c-back-end/c-emit-object.dylan
    M sources/dfmc/llvm-back-end/llvm-emit-code.dylan
    M sources/lib/run-time/run-time.h

  Log Message:
  -----------
  [dfmc] Propagate not-inline to generated code.

When a function is flagged as not-inline in Dylan, it is useful for
that information to be passed along to C and LLVM to prevent it from
being inlined during code generation.

This is particularly useful in tests where you want to prevent the
compiler from optimizing away the thing that you're testing.

* sources/dfmc/llvm-back-end/llvm-emit-code.dylan
  (llvm-function-attributes): New.
  (emit-code): Get function attributes and pass them along to the
   <llvm-function>.

* sources/dfmc/c-back-end/c-emit-object.dylan
  (emit-lambda-interface-using-function): Pass not-inline along to
   the generated C function.

* sources/lib/run-time/run-time.h
  (OPEN_DYLAN_NO_INLINE): New portability macro.


  Commit: d3ffb97ac35cef6e5153439eeb858998ec9de758
      https://github.com/dylan-lang/opendylan/commit/d3ffb97ac35cef6e5153439eeb858998ec9de758
  Author: Bruce Mitchener <[email protected]>
  Date:   2015-04-12 (Sun, 12 Apr 2015)

  Changed paths:
    M sources/common-dylan/tests/classes.dylan

  Log Message:
  -----------
  [common-dylan,tests] Improve fp exception test reliability.

By using not-inline functions, we can be more sure that the compiler
(either Dylan or the underlying LLVM or C compilers) won't optimize
away key parts of these tests.

* sources/common-dylan/tests/classes.dylan
  (class-test <division-by-zero-error>
   class-test <arithmetic-overflow-error>
   class-test <arithmetic-underflow-error>):
     Extract key parts of the tests into not-inline functions.


  Commit: 7c8acc8347369d4336152e2640c407ea1e03b145
      https://github.com/dylan-lang/opendylan/commit/7c8acc8347369d4336152e2640c407ea1e03b145
  Author: Peter S. Housel <[email protected]>
  Date:   2015-04-12 (Sun, 12 Apr 2015)

  Changed paths:
    M documentation/release-notes/source/2015.1.rst
    M sources/common-dylan/tests/classes.dylan
    M sources/dfmc/c-back-end/c-emit-object.dylan
    M sources/dfmc/llvm-back-end/llvm-emit-code.dylan
    M sources/lib/run-time/run-time.h

  Log Message:
  -----------
  Merge pull request #879 from waywardmonkeys/propagate-not-inline-to-generated-code

Propagate not-inline to generated code


Compare: https://github.com/dylan-lang/opendylan/compare/4d5402c903ce...7c8acc834736

_______________________________________________
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.