Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: jruby/jruby
base: 8d1f6d29c1dc
Choose a base ref
...
head repository: jruby/jruby
compare: 06304620bb01
Choose a head ref
  • 4 commits
  • 17 files changed
  • 1 contributor

Commits on Oct 6, 2014

  1. Cleanup some arbitrary contraints on REQUIRES_DYNSCOPE flag

    * Use 'DYNSCOPE_ELIMINATED' flag consistently to decide whether
      to push/pop scopes during interpretation.
    
    * Refactor 'unsafeScope' in IRScope and use it to decide whether
      we can only run a restricted set of passes on a scope.
    subbuss committed Oct 6, 2014
    Copy the full SHA
    a5a6787 View commit details
    Browse the repository at this point in the history
  2. Fix LiveVariableAnalysis for standalone runs on closures.

    * So far, LVA could only be initiated on methods -- in turn, nested
      closures would get LVA run on them.
    
    * However, in upcoming patches, we might end up running LVA on
      closures independently because of dependency issues. Rather than
      try to work around those, it is simpler to allow LVA to run on
      closures independently.
    
    * Fixed/pre-empted a possible crasher in LVA for nested clossures.
    subbuss committed Oct 6, 2014
    Copy the full SHA
    2689915 View commit details
    Browse the repository at this point in the history
  3. Add previouslyRun / invalidate options to DCE pass.

    * Base this on LVA state for the scope.
    * Can prevent useless duplicate runs in some scenarios.
    subbuss committed Oct 6, 2014
    Copy the full SHA
    43f3403 View commit details
    Browse the repository at this point in the history
  4. Allow dynscopes to be eliminated for block scopes as well.

    * So far, dynscopes were only being eliminated for method scopes
      and all blocks had a dynscope pushed/popped.
    
    * This patch enables this for blocks as well.
    
    * Required a whole bunch of changes.
      - Ensure that scope-flags are initialized before passes are run.
      - Split AddLocalVarLoadStoreInstructions into two pieces.
      - Use the 'ensureInstrsReady' pattern in InterpretedIRBlockBody
        to run necessary passes and figure out whether the scope can
        be fully eliminated, whether the parent's scope can be reused,
        or whether we need a full dynscope for this block.
      - Overall, there are some quick-and-dirty fixes in this patch
        to get things working. Cleanup will come in later patches.
    subbuss committed Oct 6, 2014
    Copy the full SHA
    0630462 View commit details
    Browse the repository at this point in the history