- 25 May, 2016 3 commits
-
-
Kevin Modzelewski authored
We were doing a "call bumpUse() early" optimization to free up registers when we can, but as a side-effect it looked to the refcounter like the reference was done being used.
-
Kevin Modzelewski authored
The problem is that we emit an llvm "unreachable" instruction, and then continue to emit other code, which fails the verifier. endBlock(DEAD) is supposed to be the right way to handle that, but there is some more work that would need to be done there to get that working properly. So just do the easy thing for now -- create a new BB so that it's ok to emit more code.
-
Kevin Modzelewski authored
PyObject_New: register the type if the type is not yet registered
-
- 24 May, 2016 5 commits
-
-
Marius Wachtler authored
-
Marius Wachtler authored
-
Kevin Modzelewski authored
str: use tp_as_sequence instead of tp_as_number
-
Marius Wachtler authored
string is special in that it is a c++ type which has tp_as_number and tp_as_sequence. This causes problems because when we fixup the slot dispatcher we will set the tp_as_number fields but not the tp_as_sequence because setting both can cause problems. Some extensions (e.g. numpy) require that we use the sq_* functions instead of nb_*. Therefore clear the tp_as_number fields (except nb_remainder which cpython has set too because it is not part of tp_as_sequence).
-
Marius Wachtler authored
BoxIteratorGeneric call PyIter_Next() lazily
-
- 23 May, 2016 17 commits
-
-
Marius Wachtler authored
update virtualenv to the one which always sets zip_safe=False
-
Marius Wachtler authored
-
Marius Wachtler authored
-
Marius Wachtler authored
We were fetching to eagerly which caused issues if the iterator got used for other stuff too
-
Kevin Modzelewski authored
Update test results
-
Kevin Modzelewski authored
Merge conflict between my pr that added the full test suite and Sun's that fixed one of the tests.
-
Kevin Modzelewski authored
Some work on the numpy test suite
-
Marius Wachtler authored
[WIP] Some minor numpy fixing.
-
Boxiang Sun authored
-
Marius Wachtler authored
binop: use PyNumber_* for user defined classes
-
Marius Wachtler authored
microptimization: mark _PyGC_generation0 as having a const address
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
I think it's most important that we do this for the first arg, since CPython won't end up increffing it either.
-
Kevin Modzelewski authored
Looked at all places it comes from and this looks safe (it's alive at least as long as the other arguments). We are now crashing on cpython_oldstyle_getattr_crash (a CPython crasher) but that's not really the fault of this change.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Merge refcounting into master
-
- 22 May, 2016 5 commits
-
-
Marius Wachtler authored
this is an advantage for _PyObject_GC_TRACK which before compiled to something like this: cmpq $-2, -16(%rdi) jne .LBB0_2 movq $-3, -16(%rdi) movq _PyGC_generation0(%rip), %rax movq %rax, -32(%rdi) movq _PyGC_generation0(%rip), %rax movq 8(%rax), %rax movq %rax, -24(%rdi) leaq -32(%rdi), %rcx movq %rcx, (%rax) movq _PyGC_generation0(%rip), %rax movq %rcx, 8(%rax) and now compiles to cmpq $-2, -16(%rdi) jne .LBB0_2 movq $-3, -16(%rdi) movq _PyGC_generation0(%rip), %rax movq %rax, -32(%rdi) movq 8(%rax), %rcx movq %rcx, -24(%rdi) leaq -32(%rdi), %rdx movq %rdx, (%rcx) movq %rdx, 8(%rax) notice that it had to load _PyGC_generation0 three times because the compiler had to assume that because of aliasing it got motified. (and this loads actually showed up in profiling as somewhat expensive)
-
Marius Wachtler authored
tuple: implement tp_as_sequence->sq_contains
-
Marius Wachtler authored
-
Marius Wachtler authored
this speeds up a simple numpy benchmark by about 10x.
-
Marius Wachtler authored
-
- 21 May, 2016 4 commits
-
-
Kevin Modzelewski authored
Some cleanup for the refcounting merge
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Marius Wachtler authored
enable sqlalchemy_smalltest
-
- 20 May, 2016 6 commits
-
-
Marius Wachtler authored
-
Marius Wachtler authored
I did not trigger this bug (also could not come up with a test) but just by inspecting the code I thought it's very suspicious. But I did remove the assert(!exc_state.is_reraise) assert because it got hit in a legitimate case, (c++ exception got rethrowen in the llvm tier, cought in our c++ code and rethrowen because of api mismatch. With no python code in between.)
-
Kevin Modzelewski authored
Reenable the 'extra' tests
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
I don't know what the reason is, but it's tripping up cffi's test suite.
-
Kevin Modzelewski authored
-