1. 09 Feb, 2015 1 commit
    • Kevin Modzelewski's avatar
      Merge "intern codegen strings" change into keyword-params · 0ec4a8fa
      Kevin Modzelewski authored
      The InternedString change conflicted with Travis's keyword-params change,
      since the arg names were switched to InternedStrings.
      
      I decided to not intern the param names any more, and instead represent them
      as llvm::StringRef.  Another option would be to intern the builtin ones, even
      though there's no independent benefit to doing so, since that would let us use
      InternedStrings more generally.  Probably the "best" but most complicated would
      be to have the StringRef version and then an InternedString version as well
      that was constructed when needed.
      0ec4a8fa
  2. 07 Feb, 2015 1 commit
  3. 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
  4. 03 Feb, 2015 4 commits
    • Kevin Modzelewski's avatar
      Identify + fix codegen bug · d3ba142d
      Kevin Modzelewski authored
      In certain cases we wouldn't do well if we were sure that a type error
      would occur (ex indexing into what we know is None) -- we would error in
      codegen instead of generating the code to throw the error at runtime.
      
      (sneak in another travis.yml attempt)
      d3ba142d
    • Kevin Modzelewski's avatar
      whoops · 17fa11b0
      Kevin Modzelewski authored
      I'm sure there's a better way to test the travis build than committing to master,
      but why bother when this time will obviously work!
      17fa11b0
    • Kevin Modzelewski's avatar
      26f0e34d
    • Kevin Modzelewski's avatar
      Try to fix the Travis-CI build · da15429c
      Kevin Modzelewski authored
      Our previous travis build steps had a circular dependency between cmake and llvm:
      we need to run cmake to update llvm to our picked revision, but we need to be on
      our specific llvm revision in order to run cmake (newer LLVM's are incompatible
      with our build scripts).
      
      Break the dependency by manually calling git_svn_gotorev.py
      Hopefully this syntax works
      da15429c
  5. 02 Feb, 2015 7 commits
  6. 29 Jan, 2015 11 commits
  7. 28 Jan, 2015 14 commits
  8. 27 Jan, 2015 1 commit