- 29 Oct, 2014 5 commits
-
-
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
-
- 02 Oct, 2014 2 commits
-
-
Kevin Modzelewski authored
Just let the rewrite continue but stop emitting any assembly, and then at the end abort the rewrite.
-
Kevin Modzelewski authored
fixes #169 - allow a negative step in xrange
-
- 01 Oct, 2014 2 commits
-
-
Daniel Agar authored
-
Daniel Agar authored
-
- 30 Sep, 2014 2 commits
-
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Previously it would always link against the system libstdc++; not sure how that was working. Also, put that in its own included makefile so that we can track the dependence on the configuration parameters (otherwise you would have to run a configuration manually to get this change).
-
- 29 Sep, 2014 1 commit
-
-
Kevin Modzelewski authored
-
- 25 Sep, 2014 1 commit
-
-
Daniel Agar authored
-
- 24 Sep, 2014 1 commit
-
-
Kevin Modzelewski authored
Make some things owned by the cf rather than using global registries, so that 1) we can eventually free the right things when we start freeing cf's, and 2) we can have a single ip->cf mapping instead of lots of ip->other things mappings. Also added some helper classes for making stack crawling easier.
-
- 23 Sep, 2014 2 commits
-
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-