1. 21 May, 2016 3 commits
  2. 20 May, 2016 8 commits
  3. 19 May, 2016 21 commits
  4. 18 May, 2016 8 commits
    • Kevin Modzelewski's avatar
      Merge pull request #1176 from kmod/rearrange_and_call · 147549c9
      Kevin Modzelewski authored
      Make rearrangeArgs take a callback instead passing back values
      147549c9
    • Kevin Modzelewski's avatar
      Switch from our custom magic class to llvm::function_ref · 8201e339
      Kevin Modzelewski authored
      thanks Marius for the tip
      8201e339
    • Kevin Modzelewski's avatar
      Merge pull request #1178 from undingen/perf_refcounting · 02c0a74c
      Kevin Modzelewski authored
      add tuple free list and don't update boxed frame on exit when it's not used
      02c0a74c
    • 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
    • Boxiang Sun's avatar
      remove numpy submodule · d9659bc9
      Boxiang Sun authored
      d9659bc9