Branches

stm-jit

View source
stm-jit
Author Commit Message Labels Comments Date
250+ commits behind default.
Armin Rigo
hg merge default
Ronny Pfannschmidt
introduce thread.exclusive_atomic
Armin Rigo
in-progress
Armin Rigo
Starting work on the x86 backend
Armin Rigo
Skip some tests that are "only" for optimization, and pass the others.
Armin Rigo
progress
Armin Rigo
Starting on stmrewrite.py.
Armin Rigo
Write a plain text explanation.
Armin Rigo
Update the test.
Armin Rigo
Start to draft the tests for the GcStmReviewerAssembler as
Armin Rigo
Now translation completes.
Armin Rigo
Translation of an example getting closer
Armin Rigo
in-progress
Armin Rigo
in-progress
Armin Rigo
Improve precision.
Armin Rigo
gc_load, stm_gc_load, gc_store: the most generic operations on GC objects,
Armin Rigo
finish llmodel support. XXX refactor...
Armin Rigo
in-progress. Missing tests :-(
Armin Rigo
in-progress
Armin Rigo
hg merge default
Armin Rigo
In-progress
Armin Rigo
Start a branch to work on the JIT support of STM.
Armin Rigo
hg merge default
Armin Rigo
Update docs.
Armin Rigo
Mention this as a rough edge.
Armin Rigo
Update.
Armin Rigo
Update docs.
Armin Rigo
Anther __builtin_except() to mark the slow path.
Armin Rigo
Bah.
Armin Rigo
Workaround.
Armin Rigo
hg merge default
Armin Rigo
Fix.
Armin Rigo
A failing test.
Armin Rigo
Tweak.
Armin Rigo
Kill a non-useful field.
Armin Rigo
Disable this useless-so-far computation
Armin Rigo
Tweak: it seems that 9 gives better results than both 7 or 11 (the
Armin Rigo
Fix for corner cases of non-properly-nested atomic blocks.
Armin Rigo
Dynamically shorten transactions if they start failing.
Armin Rigo
Change the default checkinterval to a value which ends up
Armin Rigo
Translation fixes
Armin Rigo
Add set_transaction_length here.
Armin Rigo
Tweaks in the main loop to not longer systematically call
Armin Rigo
should_break_transaction(): give a configurable length limit.
Armin Rigo
hg merge default
Armin Rigo
The next thing to re-optimize: withmethodcache
Armin Rigo
Remove the hand-waving uncertainty of gcsource, and instead
Armin Rigo
Some more stm_assert_locals
Armin Rigo
Re-add this. Needed because it's the start of a new transaction.
Armin Rigo
Add an XXX to be clear
Armin Rigo
hg merge default
Armin Rigo
Fixes.
Armin Rigo
Tentative. When a transaction finishes, save in the shadowstack which
Armin Rigo
In-progress: the goal is to change the GC so that after a collection
Armin Rigo
hg merge default
Armin Rigo
Fix the comment (not "transaction" but "translation"...)
Armin Rigo
Kill a potential big performance issue.
Armin Rigo
A notice about the word "inevitable".
Armin Rigo
Rewrite the "Parallelization" section.
Armin Rigo
Add reference.
Armin Rigo
hg merge default
Armin Rigo
Try to fix the tests, or kill them in case they don't make sense any more.
Armin Rigo
Fix for small translation targets
Armin Rigo
Move the import statement to be local.
Armin Rigo
Support for thread.atomic also for pypy without stm.
Armin Rigo
Adapt test_ztranslation.
Armin Rigo
Test fix
Armin Rigo
Adapt test_stmgcintf.*.
Armin Rigo
Remove the numerous prints, not captured when we run the file directly.
Armin Rigo
merge heads
Armin Rigo
Update the doc.
Armin Rigo
Add a direct way to run this particular test.
Armin Rigo
Bah.
Armin Rigo
Add an assert.
Armin Rigo
A better fix.
Armin Rigo
Fix. No clue how to write a test :-(
Armin Rigo
Test and simple fix.
Armin Rigo
Fix comments.
Armin Rigo
Tentatively add a 'transaction' module in pure Python.
Armin Rigo
hg merge default
Armin Rigo
Clarifications.
Armin Rigo
Complete
Armin Rigo
Starting to write some documentation.
Armin Rigo
Remove this outdated file
Armin Rigo
Missing line.
Armin Rigo
Ah, found a possibly acceptable solution. To be tried out in real life.
Armin Rigo
Temporary workaround: in a "with atomic" it is not allowed to
Armin Rigo
Tweaks.
Armin Rigo
Fix.
Armin Rigo
thread.atomic.
Armin Rigo
Fixes
Armin Rigo
Replace the few "return next_instr" with a reordering of the code.
Armin Rigo
Remove an obvious source of conflicts.
Armin Rigo
Tweaks to replace the GIL.
Armin Rigo
Save and restore the errno, like module/thread/gil.py does.
Armin Rigo
Revert again the introduction of '__pypy__.local'.
Armin Rigo
hg merge default
Armin Rigo
Fix.
Armin Rigo
Bah
Armin Rigo
Attempt to fix the hints
Armin Rigo
Missing.
Armin Rigo
Fix
Armin Rigo
Raising exceptions around the stm callback is not supported.
Armin Rigo
Minimal hack to add these kind of transactions into the PyPy interpreter.
Armin Rigo
Tweaks and comments.
Armin Rigo
Easy performance improvement.
Armin Rigo
Fish from the history stm_perform_transaction().
Armin Rigo
Fix fix fix. Good, now targetdemo2 passes (but still with only
Armin Rigo
Typos
Armin Rigo
Analyze statically which calls can eventually cause transaction breaks.
Armin Rigo
Implement the TransactionBreakAnalyzer, needed in this version of STM.
Armin Rigo
In-progress
Armin Rigo
fix fix fix
Armin Rigo
Intermediate check-in
Armin Rigo
Add a demo transaction target using the GIL.
Armin Rigo
Kill two more files.
Armin Rigo
hg merge default
Armin Rigo
This also makes no sense any more.
Armin Rigo
First, kill the 'transaction' module.
Armin Rigo
As per pypy-dev discussion: try a different model with threads
Armin Rigo
Add documentation for these options.
Armin Rigo
- Fix test.
Armin Rigo
Remove unused declaration again.
Armin Rigo
Bah.
Armin Rigo
Fix tests.
Armin Rigo
Fix test
Armin Rigo
Fix tests
Armin Rigo
Fix test.
Armin Rigo
Fix tests.
Armin Rigo
Comment.
Armin Rigo
Replace hacking around an llop with just a function fishing around
Armin Rigo
Fix the test.
Armin Rigo
Fixes
Armin Rigo
Fix rgc to support both STM and non-STM modes.
Armin Rigo
Add a direct low-level operation stm_is_enabled().
Armin Rigo
Reverse the order to avoid unexpected effects if someone calls
Armin Rigo
hg merge default
Armin Rigo
Re-enable the methodcache optimization. Found another trick
Armin Rigo
A default value for this attribute is really needed.
Armin Rigo
Disable again the ThreadLocal class.
Armin Rigo
Manually backout most of 133049a5ba84.
Armin Rigo
Remove the part of the test handling thread-locals
Armin Rigo
Keep the extra test from the previous backout.
Armin Rigo
Backed out changeset 4c6a625119f9
Armin Rigo
Copy the logic for thread-locals. The last new test is the one failing
Armin Rigo
Fix the first half of the test.
Armin Rigo
A failing test.
Armin Rigo
Start to write support code around the GC for getting at thread-local
Armin Rigo
Comment, and kill outdated method (see start_transaction() in
Armin Rigo
hg merge default
Armin Rigo
Start a ThreadLocal object. See comments.
Armin Rigo
hg merge default
Armin Rigo
Bah.
Armin Rigo
Minor tweak.
Armin Rigo
Comment.
Armin Rigo
Update docs
Armin Rigo
Use pthread_join() instead of a lock. This makes sure that the threads
Armin Rigo
hg merge default
Armin Rigo
Add an assert.
Armin Rigo
Argh, argh. Finally found the next bug.
Armin Rigo
More tests until failure found.
Armin Rigo
grumble
Armin Rigo
Debugging. Should be safe in module/transaction/, but better safe than
Armin Rigo
Ah bah.
Armin Rigo
Fixes.
Armin Rigo
Improve the tests.
Armin Rigo
More passing tests.
Armin Rigo
Improve testing before translation.
Armin Rigo
Add a passing test.
Armin Rigo
Fix test.
Armin Rigo
Tweak to make mt_global_turned_local and the tldict more similar.
Armin Rigo
Mark a point that is not done.
Armin Rigo
Documentation, documentation, documentation. It helps a lot
Armin Rigo
Fix.
Armin Rigo
Complete the tests and the code.
Armin Rigo
Fix test to run even if the working directory is different.
Armin Rigo
Test and fix.
Armin Rigo
Fix local.
Armin Rigo
Kill test
Armin Rigo
Fix test
Armin Rigo
Start to fix the 'transaction' module, mostly by killing code.
Armin Rigo
Fix the FakeStmOperations class.
Armin Rigo
Re-add rstm.thread_id().
Armin Rigo
Fix test.
Armin Rigo
Tests tests tests... and found one missing "return;" :-)
Armin Rigo
Next test
Armin Rigo
Start porting these tests as C code.
Armin Rigo
Start to re-enable test_stmgcintf.
Armin Rigo
Fix test
Armin Rigo
Ensure NEXT is cleared by C code after all.
Armin Rigo
Fix.
Armin Rigo
Progress...
Armin Rigo
Progress
Armin Rigo
Extra test.
Armin Rigo
In-progress
Armin Rigo
Start to refactor the RPython interface to be higher-level. This should
Armin Rigo
A failing test.
Armin Rigo
Move these too.
Armin Rigo
Fix.
Armin Rigo
Fix the test.
Armin Rigo
A failing test
Armin Rigo
A random change...
Armin Rigo
Better _freeze_, to make sure everything is clear during translation.
Armin Rigo
Fix epoll too.
Armin Rigo
Rename this method
Armin Rigo
Fix. See comment.
Armin Rigo
hg merge default
Armin Rigo
Add an essential assert. I think it is broken right now.
Armin Rigo
Print another message when we are leaving transactional mode.
Armin Rigo
Use __pypy__.local here.
Armin Rigo
Add '__pypy__.local', re-exposing either 'thread._local', or
Armin Rigo
Allow gc_identityhash and gc_id, too.
Armin Rigo
hg merge default
Armin Rigo
Add 'transaction.local' in the emulator too. (This is a complete
Armin Rigo
Thread-local data in the transaction module. See docstring for
Armin Rigo
Fix comment.
Armin Rigo
Disable the 'thread' module if 'transaction' is enabled.
Armin Rigo
hg merge default
Armin Rigo
stacklets are not compatible with stm right now.
Armin Rigo
hg merge default
Armin Rigo
Fix test.
Armin Rigo
Fix for tests.
Armin Rigo
Partial fix: don't record orecs when running in an inevitable
Armin Rigo
Bah.
Armin Rigo
Comment.
Armin Rigo
Play nicely with 'MALLOC_CHECK_', the checking done by glibc's malloc,
Armin Rigo
Allow the JIT operations too. At this point, if they are left in the
Armin Rigo
Comments and asserts.
Armin Rigo
Weakrefs again.
Armin Rigo
AddressStack.clear()
Armin Rigo
Optimize.
Armin Rigo
Fix the test of 1bb21a8ad460.
Armin Rigo
Fixes
Armin Rigo
A failing test.
Armin Rigo
Debugging.
Armin Rigo
Save and restore the root_stack_top explicitly with the help of C code.
Armin Rigo
Backed out changeset 93da8b4ece49
Armin Rigo
We really need to know if we're starting a new or restarting an aborted
Armin Rigo
hg merge default
Armin Rigo
Test and fix.
Armin Rigo
Complete the comment.
Armin Rigo
Fixes.
Armin Rigo
Fix the test.
Armin Rigo
A failing test
Armin Rigo
More asserts
Armin Rigo
Disable a couple of extra features when translating with
Armin Rigo
id(), hash(), and small refactors
Armin Rigo
Start to rewrite test_stmgc.py.
Armin Rigo
Fixes, enough to have 'targetdemo-c' pass.
Armin Rigo
Fixes
301 commits not shown.