An error occurred fetching the project authors.
  1. 06 Apr, 2015 1 commit
  2. 26 Mar, 2015 2 commits
  3. 25 Mar, 2015 6 commits
  4. 24 Mar, 2015 1 commit
  5. 23 Mar, 2015 1 commit
  6. 21 Mar, 2015 1 commit
  7. 17 Mar, 2015 1 commit
    • Kevin Modzelewski's avatar
      Add scratch space to our runtime ics · 1a6b1e0c
      Kevin Modzelewski authored
      (scratch space is pre-allocated stack space since the IC can't
      allocate new space itself, in order to have unwinding work)
      
      Allocate a fixed amount (currently: 40 bytes) of extra stack space
      in our runtime ics.  This involves changing the function prologue+
      epilogue to do more rsp adjustment, and modifying the .eh_frame sections
      we generate.
      
      One tricky thing is that we currently use frame pointer elimination
      in our runtime ics, but the rest of the scratch space logic had assumed
      the scratch would be rbp-relative, which I had to convert to rsp-relative.
      1a6b1e0c
  8. 10 Mar, 2015 1 commit
    • Kevin Modzelewski's avatar
      Change some internal names to start with # and not ! · 7b3dc080
      Kevin Modzelewski authored
      I don't know how well this is followed in practice, but "!"
      is supposed to just be for irgen-specific names that should
      not make it to other tiers.  The closure and generator variables
      are more like part of the inter-tier contract, so I think make more
      sense as "#" names.
      7b3dc080
  9. 06 Mar, 2015 1 commit
    • Chris Toshok's avatar
      add a json test and get it running · 73186c03
      Chris Toshok authored
      there are a few areas where we fail (decimal usage, and formatting complex numbers)
      so those specific lines are commented out.
      
      The changes in src were necessary to get the test to run to completion with -n.
      Finally, we skip the test when -x is present because pypa doesn't parse unicode
      literals correctly.
      73186c03
  10. 25 Feb, 2015 3 commits
  11. 24 Feb, 2015 2 commits
    • Marius Wachtler's avatar
      Rebase llvm to r230300 · ef1acbdc
      Marius Wachtler authored
      Had to change the comdat handling otherwise the executable would crash on startup.
      Cause is that publicize is renaming symbols but keeps the old comdat around,
      the linker would then replace the implementation of the symbol with a call to 0.
      
      One may need to run 'make llvm_up' if you are using the cmake build and see a error,
      caused by debuginfo beeing renamed to debuginfodwarf.
      ef1acbdc
    • Kevin Modzelewski's avatar
      annotate.py improvements · c12f8723
      Kevin Modzelewski authored
      Annotate constants
      - functions
      - heap values
      
      Collapse nop regions
      c12f8723
  12. 22 Feb, 2015 1 commit
  13. 21 Feb, 2015 2 commits
  14. 14 Feb, 2015 3 commits
  15. 13 Feb, 2015 3 commits
  16. 11 Feb, 2015 1 commit
  17. 07 Feb, 2015 1 commit
  18. 04 Feb, 2015 1 commit
    • Kevin Modzelewski's avatar
      Intern most codegen strings · 325dbfeb
      Kevin Modzelewski authored
      Most importantly, intern all the strings we put into the AST* nodes.
      (the AST_Module* owns them)
      
      This should save us some memory, but it also improves performance pretty
      substantially since now we can do string comparisons very cheaply.  Performance
      of the interpreter tier is up by something like 30%, and JIT-compilation times
      are down as well (though not by as much as I was hoping).
      
      The overall effect on perf is more muted since we tier out of the interpreter
      pretty quickly; to see more benefit, we'll have to retune the OSR/reopt thresholds.
      
      For better or worse (mostly better IMO), the interned-ness is encoded in the type
      system, and things will not automatically convert between an InternedString and
      a std::string.  It means that this diff is quite large, but it also makes it a lot
      more clear where we are making our string copies or have other room for optimization.
      325dbfeb
  19. 02 Feb, 2015 1 commit
    • Kevin Modzelewski's avatar
      Basic (new) deopt support · 25ac9de4
      Kevin Modzelewski authored
      Old deopt worked by compiling two copies of every BB, one with
      speculations and one without, and stitching the two together.
      This has a number of issues:
      - doubles the amount of code LLVM has to jit
      - can't ever get back on the optimized path
      - doesn't support 'deopt if branch taken'
      - horrifically complex
      - doesn't support deopt from within try blocks
      
      We actually ran into that last issue (see test from previous commit).  So
      rather than wade in and try to fix old-deopt, just start switching to new-deopt.
      
      (new) deopt works by using the frame introspection features, gathering up all
      the locals, and passing them to the interpreter.
      25ac9de4
  20. 24 Jan, 2015 1 commit
    • Kevin Modzelewski's avatar
      Implement Python's name mangling · 636aca17
      Kevin Modzelewski authored
      ie names that begin with two underscores but don't end in two underscores have
      the classname added to them.
      
      Do this early on in the pipeline so that all the analyses operate post-mangling.
      
      The implementation is kind of hacky and I couldn't think of a good way to make it
      super systematic; there may be more cases I missed.
      636aca17
  21. 22 Jan, 2015 3 commits
  22. 21 Jan, 2015 3 commits