-
-
Notifications
You must be signed in to change notification settings - Fork 925
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
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
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 2cdb4af7a2f5
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 771fe3f2a8e9
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 3 commits
- 8 files changed
- 1 contributor
Commits on Oct 1, 2015
-
Configuration menu - View commit details
-
Copy full SHA for b228d42 - Browse repository at this point
Copy the full SHA b228d42View commit details -
Modify blocks to allow jitting like methods.
Lots of duplicated code here between jitting methods and jitting blocks but the logic is largely the same. MixedModeIRBlockBody, like the method equivalent, increments a counter until it reaches JIT threshold. It then forces the block to JIT and binds it into a CompiledIRBlockBody, which it uses from then on to execute the block. Things to do: * Clean up duplicated code paths and unify more JIT stuff for both blocks and methods. * Reduce indirection through MixedModeIRBlockBody. * More testing of various forms of blocks.
Configuration menu - View commit details
-
Copy full SHA for 318c853 - Browse repository at this point
Copy the full SHA 318c853View commit details -
Synchronize submission of code to JIT.
The old logic could trigger a method or block to JIT twice if two or more threads all got to that point at the same time. For methods, this just resulted in wasted work. For blocks, this appeared to cause some classloading and/or method handle lookup problems that manifested as NoSuchMethod errors and stack overflows in the compiled code, likely due to looking up the wrong method name in the wrong class. The synchronization probably slows down interpretation, since it fires for every call when JIT is enabled, so we will want to change to a lock-free mechanism. This is ok for now, though, since with JIT enabled both blocks and methods will eventually stop counting calls and go straight to the jitted body.
Configuration menu - View commit details
-
Copy full SHA for 771fe3f - Browse repository at this point
Copy the full SHA 771fe3fView commit details
There are no files selected for viewing