1. 29 Aug, 2015 3 commits
  2. 28 Aug, 2015 3 commits
    • Kevin Modzelewski's avatar
      Micro-optimize calculateNumVRegs · d6edebb1
      Kevin Modzelewski authored
      I don't think it's that important overall but it seems to be a decent percentage
      of the time to enter the interpreter/bjit; this commit saves about 10% in a silly
      ubenchmark.
      d6edebb1
    • Kevin Modzelewski's avatar
      Rewrite some more typeCall cases · c070938c
      Kevin Modzelewski authored
      When we call a __new__ we know nothing about, we have no idea what __init__
      function we may or may not need to call.  So emit a call to a helper function
      that will take care of that for us, which isn't itself any faster but lets
      the rewrite succeed.
      c070938c
    • Marius Wachtler's avatar
      rewrite builtin hasattr · d5a166cb
      Marius Wachtler authored
      d5a166cb
  3. 27 Aug, 2015 6 commits
  4. 26 Aug, 2015 2 commits
  5. 25 Aug, 2015 14 commits
  6. 24 Aug, 2015 6 commits
  7. 22 Aug, 2015 6 commits
    • Kevin Modzelewski's avatar
      Merge pull request #857 from kmod/perf5 · 0fc53b70
      Kevin Modzelewski authored
      Reduce some codegen allocations
      0fc53b70
    • Kevin Modzelewski's avatar
      Merge pull request #856 from kmod/perf4 · d3fb236b
      Kevin Modzelewski authored
      Don't malloc-allocate rewriter lambdas
      d3fb236b
    • Kevin Modzelewski's avatar
      Add even more threading asserts · ceed3536
      Kevin Modzelewski authored
      ceed3536
    • Kevin Modzelewski's avatar
      Remove mallocs for our lambda passing · 841234f6
      Kevin Modzelewski authored
      This commit works by adding a SmallFunction class that behaves
      like std::function, but allocates its data inline rather than through
      a separate allocation.  It probably could have also worked by taking
      a custom allocator and using the new RegionAllocator.
      
      It adds a bit more restrictions than std::function does (the types
      caught by the closure have to be more "trivial" than std::function
      supports), so some of this change is marking some types as trivial,
      or copying data into a trivial format from things that aren't (ex SmallVector).
      841234f6
    • Kevin Modzelewski's avatar
      Store live_outs as a bitset · 9407f64a
      Kevin Modzelewski authored
      We were storing and passing them as std::unordered_map (and sometimes
      switching to std::vector).  But the set can only contain the integers
      0 through 15, so just represent it as a bitset.
      9407f64a
    • Kevin Modzelewski's avatar
      Reduce allocations in stackmap parsing · 896bc696
      Kevin Modzelewski authored
      Maybe a better overall approach is to not convert it out of its
      original flat format; we keep that original memory around anyway
      and I don't think it's that much faster to scan than our parsed
      version.
      
      But for now, optimize the current approach:
      - convert vector->SmallVector
      - call ensure since we usually know how many elements the vectors will have
      - use a StringMap instead of an unordered_map<std::string>
      896bc696