1. 08 Aug, 2015 6 commits
    • Kevin Modzelewski's avatar
      Merge pull request #814 from kmod/throw_capis3 · fb2eef6e
      Kevin Modzelewski authored
      Be able to jit functions that throw CAPI exceptions
      fb2eef6e
    • Kevin Modzelewski's avatar
      8b122bfe
    • Kevin Modzelewski's avatar
      Templatize generator.next · 456384d8
      Kevin Modzelewski authored
      In theory should help with pyxl which throws a decent number
      of StopIterations from calling generator.next() directly, but
      pretty few of those calls actually make it into the llvm JIT
      to benefit from this.
      456384d8
    • Kevin Modzelewski's avatar
      Have the llvm tier be able to throw capi exceptions · 9789073f
      Kevin Modzelewski authored
      (Not enabled yet)
      9789073f
    • Kevin Modzelewski's avatar
      Change how the llvm jit passes exceptions between blocks · 2f7d52be
      Kevin Modzelewski authored
      Our IR doesn't explicitly represent the data transfer between an Invoke
      statement and its corresponding LandingPad.  We use a couple different
      techniques to pass it through: in the ast interpreter/bjit, we stash it
      into an interpreter-local variable and then pull it back out.  Previous
      to this change, in the LLVM tier we would pass it directly through
      an exception, using either the C++ or CAPI exception-passing mechanism.
      
      This works but is a pain, since it requires coordination between the invoke
      and the landingpad.  These live in different basic blocks, so we ended up
      having this other code that lives separate from the normal irgen that has
      to decide which exception style to use, and it has to respect certain
      restrictions within irgen (ie it has to be careful to not request CAPI
      exceptions for cases that we haven't added support for yet).
      
      This commit changes the approach so that the exception data is passed
      directly as LLVM Values, and its up to the Invoke to figure out how
      to get it into that form.  This adds a bit more complexity to the invoke,
      but it should make the interface easier to extend (such as in the next commit).
      2f7d52be
    • Kevin Modzelewski's avatar
      Fix the in-tree benchmarks · 31c96c0e
      Kevin Modzelewski authored
      Which piggy-back on the integration tests for getting their dependencies.
      31c96c0e
  2. 07 Aug, 2015 18 commits
  3. 06 Aug, 2015 10 commits
  4. 05 Aug, 2015 6 commits