An error occurred fetching the project authors.
  1. 01 Jul, 2015 1 commit
  2. 26 Jun, 2015 1 commit
  3. 23 Jun, 2015 1 commit
  4. 22 Jun, 2015 1 commit
    • Kevin Modzelewski's avatar
      Add additional args-in-place check right before jumps · 4d4eeeab
      Kevin Modzelewski authored
      We would check that they're in the right place as part of
      restoreArgs (ie putting them in the right place), but then we
      would do some other work (loading the value to check, loading
      the constant) which could potentially spill registers.
      
      So add an additional check right before we emit the actual
      jump instruction.  I'm surprised this never failed.
      4d4eeeab
  5. 20 Jun, 2015 4 commits
  6. 18 Jun, 2015 5 commits
  7. 24 Apr, 2015 1 commit
  8. 20 Apr, 2015 1 commit
  9. 17 Mar, 2015 1 commit
    • Kevin Modzelewski's avatar
      Add scratch space to our runtime ics · 1a6b1e0c
      Kevin Modzelewski authored
      (scratch space is pre-allocated stack space since the IC can't
      allocate new space itself, in order to have unwinding work)
      
      Allocate a fixed amount (currently: 40 bytes) of extra stack space
      in our runtime ics.  This involves changing the function prologue+
      epilogue to do more rsp adjustment, and modifying the .eh_frame sections
      we generate.
      
      One tricky thing is that we currently use frame pointer elimination
      in our runtime ics, but the rest of the scratch space logic had assumed
      the scratch would be rbp-relative, which I had to convert to rsp-relative.
      1a6b1e0c
  10. 06 Mar, 2015 1 commit
    • Chris Toshok's avatar
      add a json test and get it running · 73186c03
      Chris Toshok authored
      there are a few areas where we fail (decimal usage, and formatting complex numbers)
      so those specific lines are commented out.
      
      The changes in src were necessary to get the test to run to completion with -n.
      Finally, we skip the test when -x is present because pypa doesn't parse unicode
      literals correctly.
      73186c03
  11. 27 Feb, 2015 1 commit
    • Chris Toshok's avatar
      reduce mallocs by using llvm::SmallVector in a lot of hot paths · 584e85e4
      Chris Toshok authored
      There were a lot of std::vectors in the rewriter and in the invoke
      machinery (callFunc and friends), and every std::vector usage involves
      a call to malloc (and free when is destroyed.)  we should be using
      llvm::SmallVector wherever we can in performance sensitive code, since it
      allows a configurable stack allocated buffer.  It reverts to malloc/free
      if you blow the buffer's capacity, but as long as things are tuned well,
      we can get a pretty significant speedup.
      
      There is more work to be done, but this change gets us ~3% on geomean.
      584e85e4
  12. 24 Feb, 2015 1 commit
  13. 17 Feb, 2015 1 commit
    • Marius Wachtler's avatar
      Don't emit duplicate attr guards · 6509deb8
      Marius Wachtler authored
      pyston (calibration)                      :    0.8s stock2: 0.8 (+2.5%)
      pyston interp2.py                         :    5.9s stock2: 6.2 (-4.5%)
      pyston raytrace.py                        :    6.9s stock2: 7.0 (-1.6%)
      pyston nbody.py                           :    9.8s stock2: 9.6 (+1.9%)
      pyston fannkuch.py                        :    7.0s stock2: 6.9 (+2.6%)
      pyston chaos.py                           :   20.6s stock2: 21.6 (-4.6%)
      pyston spectral_norm.py                   :   27.9s stock2: 34.2 (-18.6%)
      pyston fasta.py                           :   17.1s stock2: 17.8 (-4.5%)
      pyston pidigits.py                        :    4.4s stock2: 4.5 (-1.0%)
      pyston richards.py                        :   10.4s stock2: 10.2 (+2.2%)
      pyston deltablue.py                       :    2.2s stock2: 2.2 (-1.9%)
      pyston (geomean-0b9f)                     :    8.8s stock2: 9.1 (-3.2%)
      6509deb8
  14. 12 Feb, 2015 2 commits
    • Kevin Modzelewski's avatar
      Only rewrite IC slots that are not currently being executed · aff2d9a4
      Kevin Modzelewski authored
      Before, we tried to do it based on whether the rewrite we were
      adding was "compatible" with whatever was already in there.  But we
      weren't really doing this and there were a lot of limitations with this
      method anyway.
      aff2d9a4
    • Kevin Modzelewski's avatar
      Have rewrites keep track of how many stack frames are inside them · c3ab5278
      Kevin Modzelewski authored
      This is kind of hacky due to our method of first doing the rewrite,
      and then picking the slot to rewrite to.  This means that at the time
      that we create the rewrite, we don't know the exact location of the
      "num_inside" counter, so we have to go back at the end and rewrite it.
      
      We could also switch things to pick the rewrite slot first, but that
      is also complicated but perhaps more subtly, since during the course
      of the rewrite the chosen slot could have gotten rewritten!
      
      This changeset adds this functionality but doesn't use it for anything.
      c3ab5278
  15. 05 Feb, 2015 1 commit
    • Kevin Modzelewski's avatar
      Give CApiFunctions their own custom 'internal callable' · 874ea0ee
      Kevin Modzelewski authored
      The 'internal callable' (bad name, sorry) is what defines how
      the arguments get mapped to the parameters, and potentially also does
      rewriting.
      
      By providing a custom internal callable, we can make use of special knowledge
      about how C API functions work.  In particular, we can skip the allocation
      of the args + kwargs objects when we are calling an object with the METH_O
      signature.
      
      This patch includes rewriting support, though we don't currently allow
      rewriting CAPI functions as part of callattrs.
      874ea0ee
  16. 05 Jan, 2015 1 commit
  17. 16 Dec, 2014 1 commit
  18. 07 Nov, 2014 1 commit
  19. 29 Oct, 2014 5 commits
  20. 17 Oct, 2014 2 commits
    • Kevin Modzelewski's avatar
      Support frame introspection · 059ea8c2
      Kevin Modzelewski authored
      The approach in this changeset is to attach frame args
      to every call site via stackmap args.  We make sure that
      every callsite is a patchpoint, and serialize the symbol
      table into its arguments.
      
      In this patch, that is just used for supporting the locals()
      method.
      
      It's currently disabled since it has a hugely negative impact
      on performance (LLVM takes much longer to JIT with all the extra
      function arguments).
      059ea8c2
    • Kevin Modzelewski's avatar
      Change some of the low-level initialization of patchpoints · 06274389
      Kevin Modzelewski authored
      Will make it easier to initialize non-ic patchpoints that
      are coming up.
      06274389
  21. 27 Aug, 2014 1 commit
    • Kevin Modzelewski's avatar
      Basic metaclass support · 17cbc7ab
      Kevin Modzelewski authored
      We actually had most of the base support in place; this commit just adds
      the ability to specify a metaclass other than type_cls, and the ability
      to determine which metaclass to use when defining a new class.
      
      But just like how we have the base functionality to inherit from all the
      builtin types but haven't updated all the functions yet, I bet there
      are more places that assume the type of a class is always type_cls.
      17cbc7ab
  22. 23 Aug, 2014 1 commit
  23. 22 Aug, 2014 1 commit
  24. 18 Aug, 2014 1 commit
  25. 31 Jul, 2014 2 commits
  26. 30 May, 2014 1 commit
    • Kevin Modzelewski's avatar
      Basic inheritance functionality · 53c2fadd
      Kevin Modzelewski authored
      Python inheritance is remarkably complicated... this commit implements the basics.
      There are still a fair number of things that are unimplemented, and some things
      like inheriting from all the basic types haven't been added yet.
      53c2fadd