An error occurred fetching the project authors.
- 01 Jul, 2015 1 commit
-
-
Marius Wachtler authored
and make code ready for the new JIT tier.
-
- 26 Jun, 2015 1 commit
-
-
Kevin Modzelewski authored
-
- 23 Jun, 2015 1 commit
-
-
Kevin Modzelewski authored
It needs to reserve some special key values that the caller has to promise to never insert into the map. For integers that's -1 and -2... which we were using and then got some random data back.
-
- 22 Jun, 2015 1 commit
-
-
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.
-
- 20 Jun, 2015 4 commits
-
-
Kevin Modzelewski authored
Involves a couple changes: - have the rewriter treat certain callsites as non-mutations - add special cases for wrapperdescr objects
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
- if we try guarding after a mutation - if we use all of our scratch space Now, just set a "failed" flag internally and which prevents committing. The motivation for the first part is trying to get rewrite calls to tp_getattro; if the rewrite is from getattr then it will succeed, but if it comes from callattr then we will want to do some more guards after the tp_getattro. We could try to pass that state around, but for now just use the 'failed' approach.
-
Kevin Modzelewski authored
kind of hacky but I think it's ok for now.
-
- 18 Jun, 2015 5 commits
-
-
Travis Hance authored
-
Travis Hance authored
-
Travis Hance authored
-
Travis Hance authored
-
Marius Wachtler authored
- Reuse a register if it already contains the specified value - Generate LEA when beneficial --> Generated code is smaller and has same or better performance
-
- 24 Apr, 2015 1 commit
-
-
Kevin Modzelewski authored
This involves - special-casing their __get__ - adding some ability to rewrite calls to functions that take *args
-
- 20 Apr, 2015 1 commit
-
-
Marius Wachtler authored
We still need to generate the IR but if we can find, a cache file created for the exact same IR we will load it and skip instruction selection etc...
-
- 17 Mar, 2015 1 commit
-
-
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.
-
- 06 Mar, 2015 1 commit
-
-
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.
-
- 27 Feb, 2015 1 commit
-
-
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.
-
- 24 Feb, 2015 1 commit
-
-
Kevin Modzelewski authored
We didn't support "true" as the annotation for a while, so I think we were just lying about it. Now that we support true, I converted all of them to true except for a couple that are easy to see are false.
-
- 17 Feb, 2015 1 commit
-
-
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%)
-
- 12 Feb, 2015 2 commits
-
-
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.
-
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.
-
- 05 Feb, 2015 1 commit
-
-
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.
-
- 05 Jan, 2015 1 commit
-
-
Kevin Modzelewski authored
(update copyright notices)
-
- 16 Dec, 2014 1 commit
-
-
Kevin Modzelewski authored
We weren't able to exit if we had a thread running in the background, since we released the GIL at the end of the C level main() and the background thread would start running again after all the data structures had been torn down. Now, just keep holding the GIL as we exit.
-
- 07 Nov, 2014 1 commit
-
-
Kevin Modzelewski authored
-
- 29 Oct, 2014 5 commits
-
-
Travis Hance authored
-
Travis Hance authored
-
Travis Hance authored
-
Travis Hance authored
-
Travis Hance authored
-
- 17 Oct, 2014 2 commits
-
-
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).
-
Kevin Modzelewski authored
Will make it easier to initialize non-ic patchpoints that are coming up.
-
- 27 Aug, 2014 1 commit
-
-
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.
-
- 23 Aug, 2014 1 commit
-
-
Kevin Modzelewski authored
-
- 22 Aug, 2014 1 commit
-
-
Kevin Modzelewski authored
I'm not sure I like the current approach, but it seems to be working.
-
- 18 Aug, 2014 1 commit
-
-
Travis Hance authored
-
- 31 Jul, 2014 2 commits
-
-
Travis Hance authored
-
Travis Hance authored
-
- 30 May, 2014 1 commit
-
-
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.
-