Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SSA optimized gensyms #9729

Merged
merged 20 commits into from
Jan 30, 2015
Merged

SSA optimized gensyms #9729

merged 20 commits into from
Jan 30, 2015

Commits on Jan 25, 2015

  1. Configuration menu
    Copy the full SHA
    4e6e1f4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d52667b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    77d1394 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    df0e099 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    a89443f View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    192af7f View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    05d2171 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    cc19144 View commit details
    Browse the repository at this point in the history
  9. fix several more codegen issues

    1) rename id to idx, since lldb doesn't like the name id
    2) prevent back-propogation of Intrinsics.box type information
    3) use SAvalue location for unboxed values as well as boxed values
    4) mark a few more unboxed values (needed by 3)
    5) make Type{()} a bitstype (!!!)
    6) abstract the isGhost computation into type_is_ghost()
    7) don't try to specsig a non-typeinferred function. emit_var may get confused by the presence of unmarked Symbols with known types (from args)
    8) TODO: handle isGhost args correctly when their corresponding local variable is not a ghost
    vtjnash committed Jan 25, 2015
    Configuration menu
    Copy the full SHA
    6744e31 View commit details
    Browse the repository at this point in the history
  10. revert making Type{()} a bitstype since this cause ambiguity. also fi…

    …x emission of variables in dead code (having type Union())
    vtjnash committed Jan 25, 2015
    Configuration menu
    Copy the full SHA
    3f26600 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    6aaa56d View commit details
    Browse the repository at this point in the history
  12. trust that type-inference marked the arg type correctly

    this previously could be an issue if specsig was allowed on non-type-inferred functions.
    vtjnash committed Jan 25, 2015
    Configuration menu
    Copy the full SHA
    cee390d View commit details
    Browse the repository at this point in the history
  13. add gensym box cache and create a (symbol-like?) function for testing…

    … for (or (symbol?) (jlgensym?))
    vtjnash committed Jan 25, 2015
    Configuration menu
    Copy the full SHA
    c367be3 View commit details
    Browse the repository at this point in the history
  14. handle GenSym objects in interpreted code, correct issues with julia-…

    …syntax.scm handling of (jlgensym) objects, and use of (make-jlgensym) where possible, disable a test that this (temporarily) broke
    
    julia-syntax optimistically assumes many variables will be jlgensym-compatible. it is the responsiblity of branch assignment locations (such as if blocks) to handle this case appropriately, and only emit one assignment to the (jlgensym? dest) variable.
    
    the type-inference information for GenSym variables now may be just the count of the number of GenSym variable slots present in the function
    vtjnash committed Jan 25, 2015
    Configuration menu
    Copy the full SHA
    8d77889 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    bdb7609 View commit details
    Browse the repository at this point in the history
  16. fix massive performance regression caused by placing jlgensym in stat…

    …ement position, and cleanup of s/gensym/gensy/
    vtjnash committed Jan 25, 2015
    Configuration menu
    Copy the full SHA
    0dc1017 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    5732794 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    f259fe2 View commit details
    Browse the repository at this point in the history
  19. fix win32 build

    vtjnash committed Jan 25, 2015
    Configuration menu
    Copy the full SHA
    8b76d41 View commit details
    Browse the repository at this point in the history
  20. cleanup, per Jeff's comments

    vtjnash committed Jan 25, 2015
    Configuration menu
    Copy the full SHA
    d0fa2db View commit details
    Browse the repository at this point in the history