- 30 Oct, 2014 1 commit
-
-
Kevin Modzelewski authored
Some small changes to simplify the generated IR.
-
- 29 Oct, 2014 15 commits
-
-
Kevin Modzelewski authored
Also make a note that the CPython development headers are necessary for running the tests.
-
Kevin Modzelewski authored
Fix typo in IOError format string
-
Joris Vankerschaver authored
This fixes an annoying typo introduced in cfe83db0.
-
Marius Wachtler authored
+ mark the alloc routines as no alias (=attribute(malloc)). This marks every alloc call as noalias in the IR. (While I felt somewhat frightened by the malloc attribute AFAIK the generated IR looks reasonable.) + inline the trivial Box constructor + fix dead allocs pass: we will now remove the useless list creation inside f2 in speculation_test.py
-
Kevin Modzelewski authored
Small improvements for file objects.
-
Joris Vankerschaver authored
-
Joris Vankerschaver authored
-
Joris Vankerschaver authored
-
Travis Hance authored
-
Travis Hance authored
-
Travis Hance authored
-
Travis Hance authored
-
Travis Hance authored
-
Travis Hance authored
-
Kevin Modzelewski authored
-
- 28 Oct, 2014 5 commits
-
-
Kevin Modzelewski authored
The code was already in but it was turned off due to the compile time regressions. The addition af kill flags seems to have fixed it. We now have the locals() method working and can start to implement other similar features.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
When emitting frame information, we pass all currently-live variable names. We clear dead register names at the end of every basic block, but for long basic blocks we can end up accumulating many temporary names (one per sub expression). This ends up hugely increasing the LLVM compilation times since we will pass hundreds of arguments to many different callsites. Now, we remove dead variable names as soon as they die. (Note: user-visible names are always live since they can always be seen by the locals() function.) This means that we pass many fewer values as frame arguments. A better solution will be to have a real bytecode language which encodes such liveness information, instead of mostly-having it and then discarding it.
-
Kevin Modzelewski authored
We currently specify execution state by the AST node that represents it, which means that we have to not reuse AST nodes. Previous to this patch, we were doing that, so this patch fixes those up. This patch isn't the cleanest since I think this whole approach will go away when we transition to a proper bytecode system.
-
Kevin Modzelewski authored
-
- 27 Oct, 2014 2 commits
-
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
- 17 Oct, 2014 4 commits
-
-
Kevin Modzelewski authored
-
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.
-
Kevin Modzelewski authored
-
- 16 Oct, 2014 3 commits
-
-
Kevin Modzelewski authored
Turned off for now; will need this for a later patch.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
- 15 Oct, 2014 1 commit
-
-
Kevin Modzelewski authored
Most code wants to have access to the basic types (INT, STR, etc) but doesn't need to know anything about what methods they support. Move the commonly-accessed parts of compvars.h into the always-included core/types.h, and remove almost all of the includes of compvars.h
-
- 10 Oct, 2014 1 commit
-
-
Kevin Modzelewski authored
Allow 64-bit constants. not sure how we didn't run into this before
-
- 09 Oct, 2014 3 commits
-
-
Kevin Modzelewski authored
With the LLVM patch, it seems like this works.
-
Kevin Modzelewski authored
Fix isAllocCall check
-
Kevin Modzelewski authored
If we allocate a callee-save register that the parent function had not also allocated, change its value, and then call a function that then unwinds, the unwinder would pass the new (incorrect) value of the callee save register to the next frame. We either need to - make sure callee-save registers are restored before any potentially-throwing callsite, or - make the unwinder able to restore these registers for us, potentially by writing our own exception unwinder. For now, the easiest thing to do is to disallow allocation of those registers. (I'm not even sure how much we allocate them at all at the moment.)
-
- 08 Oct, 2014 4 commits
-
-
Kevin Modzelewski authored
Closes PR #188
-
Jisyang Mwo authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Will get rid of it once it's merged upstream
-
- 04 Oct, 2014 1 commit
-
-
Marius Wachtler authored
-