1. 18 May, 2016 7 commits
    • Kevin Modzelewski's avatar
      Try making rearrangeArgs not a template · 82fccc6a
      Kevin Modzelewski authored
      My hunch is that code density is more important than avoiding
      ome of the `if (rewrite_args)` checks.
      
      Also add some hacks to get rid of the func-name-getter-as-lambda,
      so we don't need to templatize on that either.
      
      Results of this commit are kind of mixed:
      
             django_template3_10x.py            13.6s (2)            13.8s (2)  +1.4%
       sqlalchemy_imperative2_10x.py            18.8s (2)            19.0s (2)  +1.2%
                  pyxl_bench2_10x.py            10.7s (2)            10.1s (2)  -5.1%
                             geomean                14.0s                13.8s  -0.9%
      82fccc6a
    • Kevin Modzelewski's avatar
      Actually implement rearrangeArgumentsAndCall · 6e7da64d
      Kevin Modzelewski authored
      And add an optimization that in the fast paths, we don't incref any args.
      6e7da64d
    • Kevin Modzelewski's avatar
      Change rearrangeArgs to taking a callback · 1a5e6053
      Kevin Modzelewski authored
      This function is complicated because it has so many return values (out-parameters).
      It also returns a decent amount of information about what the caller has to do
      after it is done with the args (decref them, decref the rewritten ones, etc), and
      the contract was getting very complicated.  It also had some complicated rules
      about how the caller had to set up certain input arguments.
      
      I also tried adding some optimizations to it, where it would sometimes not incref all
      of the returned args; I tried continuing the current scheme by passing back some information
      about which args needed to be decref'd or not.  This was really messy and was also a
      perf hit.
      
      So instead, switch it to being callback-based.  I think this should clean it up quite a bit
      and also open up some room for more optimizations.
      
      This commit is just a refactor -- it changes the name to rearrangeArgumentsAndCall, which takes
      a "continuation" callback.  For now it just calls rearrangeArguments under the hood.
      1a5e6053
    • Kevin Modzelewski's avatar
    • Marius Wachtler's avatar
      Merge pull request #1175 from undingen/checkAndThrowCAPIException_size · 8b004563
      Marius Wachtler authored
      checkAndThrowCAPIException needs to do a 32bit comparison in some cases
      8b004563
    • Marius Wachtler's avatar
      enable cffi test · b1b66782
      Marius Wachtler authored
      b1b66782
    • Marius Wachtler's avatar
      checkAndThrowCAPIException needs to do a 32bit comparison in some cases · e1b5d9c9
      Marius Wachtler authored
      this should fix a very annoying rarely encountered issue...
      e1b5d9c9
  2. 17 May, 2016 2 commits
  3. 16 May, 2016 11 commits
  4. 14 May, 2016 4 commits
    • Kevin Modzelewski's avatar
      Some notes about defaults-changing · 31333266
      Kevin Modzelewski authored
      I was worried we were in trouble since we don't always pass an owned
      reference to any arguments filled via defaults, but for Python functions
      this is fine since we will end up creating our own reference to it.
      For builtin functions, we disallow changing defaults.
      31333266
    • Kevin Modzelewski's avatar
      Add a test for a case we put the decref too early · 6940f10b
      Kevin Modzelewski authored
      Not sure if it matters, but there are some cases that our
      refcounter will add decrefs earlier than CPython would, if it
      can prove that the variable won't end up getting used.
      
      One example is in:
      
      for i in foo():
        break
      
      The iterator object (`iter(foo())`) will not get used after the first
      call to next().  So our system will put the decref at the top of the loop.
      CPython will do the decref after the loop exits, like normal.
      6940f10b
    • Kevin Modzelewski's avatar
      Reenable -n tests for CI · 520c1192
      Kevin Modzelewski authored
      520c1192
    • Kevin Modzelewski's avatar
      Add a bunch more kill flags · 4f03c2d0
      Kevin Modzelewski authored
      and switch the llvm tier to use them instead of its own analysis
      4f03c2d0
  5. 13 May, 2016 4 commits
  6. 12 May, 2016 2 commits
  7. 11 May, 2016 8 commits
  8. 10 May, 2016 1 commit
  9. 09 May, 2016 1 commit