- 13 Jul, 2015 12 commits
-
-
Marius Wachtler authored
I encountered this issue sometimes with the protobuf integration test.
-
Marius Wachtler authored
-
Marius Wachtler authored
this also adds support for calling 8 arg functions (=2 stack args)
-
Marius Wachtler authored
-
Kevin Modzelewski authored
rewrite some tp_call cases, and reduce calls to getTopPythonFrame
-
Kevin Modzelewski authored
use inline functions instead of casting function pointers
-
Kevin Modzelewski authored
Fewer mallocs
-
Kevin Modzelewski authored
interpreter: Don't GC allocate ASTInterpreter instances.
-
Kevin Modzelewski authored
Print out the last N lines of a failing test instead of first N
-
Kevin Modzelewski authored
And also bump N from 200->500
-
Kevin Modzelewski authored
Fix analysis_unittest after tiering changes
-
Kevin Modzelewski authored
It was failing an assert that doesn't get checked on travis-ci, which only tests release mode :/
-
- 12 Jul, 2015 5 commits
-
-
Marius Wachtler authored
GC allocating the huge number of large ASTInterpreter instances is slow, instead add a small wrapper object which gets GC allocated and notifies the ASTInterpreter.
-
Kevin Modzelewski authored
tiering refactoring
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
This was vistigial from the old llvm interpreter, where we it made a bit more sense. Now it's just weird, and caused the tiering logic to be spread into weird places. It was also the source of some bugs, since when we would deopt there's not really any relevant CompiledFunction that represents the deopt frame (this is why type speculation had to be temporarily disabled). So instead, make it so that the interpreter (and by extension, the baseline jit) work on the CLFunction directly, since the CompiledFunction didn't hold any relevant information anyway. This require a whole bunch of refactoring and API changes. This commit doesn't actually change any of the tiering decisions (I think), but should just make them clearer; the actual behavioral changes will be done in upcoming commits.
-
Kevin Modzelewski authored
Module-level code used to return void, but this causes some special-casing, so switch to having them return None. Also, CPython has their module code objects return None, so it's a small compatibility gain as well.
-
- 10 Jul, 2015 6 commits
-
-
Chris Toshok authored
-
Chris Toshok authored
use SmallVectors for some of the rewriter vectors (with enough size to keep additional mallocs from happening.)
-
Chris Toshok authored
the type casts we were using were causing bad things to happen with gcc builds (still not exactly sure why they aren't in clang builds), since we were casting from a function which expects arguments on the stack to a function type that doesn't. this manifests itself as rewrite_args changing from NULL to a small heap pointer on this line: ``` objmodel.cpp:4108 contained = callattrInternal1(rhs, contains_str, CLASS_ONLY, NULL, ArgPassSpec(1), lhs); ``` that is, the local variable rewrite_args is NULL before the call, and non-NULL after. The actual line that causes the pointer overwrite is in `bindObjIntoArgs`: ``` objmodel.cpp:3043 arg1 = bind_obj; ``` so I'm guessing that since we didn't push things onto the stack before the call to `callattrInternal`, we end up trampling over values in `compareInternal`'s frame.
-
Kevin Modzelewski authored
Specify older 'mock' version to unbreak sqlalchemy
-
Marius Wachtler authored
-
Kevin Modzelewski authored
Small fixes for the baseline JIT
-
- 09 Jul, 2015 8 commits
-
-
Kevin Modzelewski authored
Fix irgen bug for instancemethods
-
Kevin Modzelewski authored
We would try to statically-resolve their getattrs, but there's some special casing in the getattr logic for them. Which should be handled by moving the special-case to a proper tp_getattr, but for now just add the special-casing to "hasGenericGetattr" as well.
-
Marius Wachtler authored
-
Marius Wachtler authored
-
Marius Wachtler authored
-
Kevin Modzelewski authored
Refactor offset macros to use the C++ built-in instead.
-
Kevin Modzelewski authored
This causes us to do some unwinding which ends up showing up in the stats. We have the globals dict available, so just use that. Things are a bit complicated because we use "globals==NULL" to signify certain things, but the asserts seem to be panning out so I think it's ok.
-
Kevin Modzelewski authored
-
- 08 Jul, 2015 9 commits
-
-
Rudi Chen authored
-
Kevin Modzelewski authored
More small improvements
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
This probably doesn't matter that much since I don't think the function names get used during execution, but they get seen by tools/annotate.py
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
ie instead of generating the call to compare(AST_TYPE::Is), just directly do the pointer comparison in LLVM IR.
-
Kevin Modzelewski authored
For c extension classes that define it. This makes unicode-subscripting much faster.
-
Kevin Modzelewski authored
-