1. 04 Feb, 2015 4 commits
    • Marius Wachtler's avatar
      552a3cfc
    • Marius Wachtler's avatar
      Use llvm::DenseSet/Map<InternedString> · 1f083974
      Marius Wachtler authored
      Speeds up the interpreter by about 10-15% when the higher tiers are disabled
      1f083974
    • Kevin Modzelewski's avatar
    • 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
  2. 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
  3. 02 Feb, 2015 7 commits
  4. 29 Jan, 2015 11 commits
  5. 28 Jan, 2015 14 commits