Package org.jruby.runtime.callsite
Class ProfilingCachingCallSite
java.lang.Object
org.jruby.runtime.CallSite
org.jruby.runtime.callsite.CachingCallSite
org.jruby.runtime.callsite.ProfilingCachingCallSite
An interesting callsite in which we will look for monomorphic behavior in case we want to inline.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final longprivate final IRScopestatic final Loggerprivate final AtomicIntegerFields inherited from class org.jruby.runtime.callsite.CachingCallSite
builtinCache, cacheFields inherited from class org.jruby.runtime.CallSite
callType, methodName -
Constructor Summary
ConstructorsConstructorDescriptionProfilingCachingCallSite(CallType callType, String methodName, IRScope scope, long callSiteId) -
Method Summary
Modifier and TypeMethodDescriptionprivate IRubyObjectcacheAndCall(IRubyObject caller, RubyClass selfType, Block block, IRubyObject[] args, ThreadContext context, IRubyObject self) private IRubyObjectcacheAndCall(IRubyObject caller, RubyClass selfType, Block block, ThreadContext context, IRubyObject self) private IRubyObjectcacheAndCall(IRubyObject caller, RubyClass selfType, Block block, ThreadContext context, IRubyObject self, IRubyObject arg) private IRubyObjectcacheAndCall(IRubyObject caller, RubyClass selfType, Block block, ThreadContext context, IRubyObject self, IRubyObject arg1, IRubyObject arg2) private IRubyObjectcacheAndCall(IRubyObject caller, RubyClass selfType, Block block, ThreadContext context, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3) private IRubyObjectcacheAndCall(IRubyObject caller, RubyClass selfType, IRubyObject[] args, ThreadContext context, IRubyObject self) private IRubyObjectcacheAndCall(IRubyObject caller, RubyClass selfType, ThreadContext context, IRubyObject self) protected IRubyObjectcacheAndCall(IRubyObject caller, RubyClass selfType, ThreadContext context, IRubyObject self, IRubyObject arg) protected IRubyObjectcacheAndCall(IRubyObject caller, RubyClass selfType, ThreadContext context, IRubyObject self, IRubyObject arg1, IRubyObject arg2) private IRubyObjectcacheAndCall(IRubyObject caller, RubyClass selfType, ThreadContext context, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3) call(ThreadContext context, IRubyObject caller, IRubyObject self) Call the site's method against the target object passing no args.call(ThreadContext context, IRubyObject caller, IRubyObject self, double flote) Call the site's method against the target object, passing a literal double value.call(ThreadContext context, IRubyObject caller, IRubyObject self, long fixnum) Call the site's method against the target object, passing a literal long value.call(ThreadContext context, IRubyObject caller, IRubyObject self, Block block) Call the site's method against the target object passing no arguments and a non-literal (block pass, &) block.call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1) Call the site's method against the target object passing one argument.call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject... args) Call the site's method against the target object passing arguments.call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject[] args, Block block) Call the site's method against the target object passing one argument and a non-literal (block pass, &) block.call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, Block block) Call the site's method against the target object passing one argument and a non-literal (block pass, &) block.call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2) Call the site's method against the target object passing two arguments.call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, Block block) Call the site's method against the target object passing two arguments and a non-literal (block pass, &) block.call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3) Call the site's method against the target object passing two arguments.call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3, Block block) Call the site's method against the target object passing three arguments and a non-literal (block pass, &) block.private voidinlineCheck(ThreadContext context, IRubyObject self, CacheEntry cache) protected booleanmethodMissing(DynamicMethod method, IRubyObject caller) Methods inherited from class org.jruby.runtime.callsite.CachingCallSite
callIter, callIter, callIter, callIter, callIter, callMethodMissing, callMethodMissing, callMethodMissing, callMethodMissing, callMethodMissing, callMethodMissing, callMethodMissing, callMethodMissing, callMethodMissing, callMethodMissing, callVarargs, callVarargs, callVarargsIter, getCache, getCachedClassIndex, getCachedMethodSerial, getClass, getMethodName, isBuiltin, isBuiltin, isOptimizable, retrieveCache, retrieveCache, retrieveCache, setCache
-
Field Details
-
LOG
-
totalMonomorphicCalls
-
hostScope
-
callSiteId
private final long callSiteId
-
-
Constructor Details
-
ProfilingCachingCallSite
-
-
Method Details
-
inlineCheck
-
methodMissing
- Overrides:
methodMissingin classCachingCallSite
-
call
Description copied from class:CallSiteCall the site's method against the target object, passing a literal long value.- Overrides:
callin classCachingCallSite- Parameters:
context- the ThreadContext for the current threadcaller- the caller, for visibility checksself- the target object to call againstfixnum- the literal long value to pass- Returns:
- the result of the call
-
call
Description copied from class:CallSiteCall the site's method against the target object, passing a literal double value.- Overrides:
callin classCachingCallSite- Parameters:
context- the ThreadContext for the current threadcaller- the caller, for visibility checksself- the target object to call againstflote- the literal double value to pass- Returns:
- the result of the call
-
call
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject... args) Description copied from class:CallSiteCall the site's method against the target object passing arguments.- Overrides:
callin classCachingCallSite- Parameters:
context- the ThreadContext for the current threadcaller- the caller, for visibility checksself- the target object to call againstargs- the arguments to pass- Returns:
- the result of the call
-
call
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject[] args, Block block) Description copied from class:CallSiteCall the site's method against the target object passing one argument and a non-literal (block pass, &) block.- Overrides:
callin classCachingCallSite- Parameters:
context- the ThreadContext for the current threadcaller- the caller, for visibility checksself- the target object to call againstargs- the arguments to passblock- the block argument to pass- Returns:
- the result of the call
-
call
Description copied from class:CallSiteCall the site's method against the target object passing no args.- Overrides:
callin classCachingCallSite- Parameters:
context- the ThreadContext for the current threadcaller- the caller, for visibility checksself- the target object to call against- Returns:
- the result of the call
-
call
Description copied from class:CallSiteCall the site's method against the target object passing no arguments and a non-literal (block pass, &) block.- Overrides:
callin classCachingCallSite- Parameters:
context- the ThreadContext for the current threadcaller- the caller, for visibility checksself- the target object to call againstblock- the block argument to pass- Returns:
- the result of the call
-
call
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1) Description copied from class:CallSiteCall the site's method against the target object passing one argument.- Overrides:
callin classCachingCallSite- Parameters:
context- the ThreadContext for the current threadcaller- the caller, for visibility checksself- the target object to call againstarg1- the argument to pass- Returns:
- the result of the call
-
call
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, Block block) Description copied from class:CallSiteCall the site's method against the target object passing one argument and a non-literal (block pass, &) block.- Overrides:
callin classCachingCallSite- Parameters:
context- the ThreadContext for the current threadcaller- the caller, for visibility checksself- the target object to call againstarg1- the argument to passblock- the block argument to pass- Returns:
- the result of the call
-
call
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2) Description copied from class:CallSiteCall the site's method against the target object passing two arguments.- Overrides:
callin classCachingCallSite- Parameters:
context- the ThreadContext for the current threadcaller- the caller, for visibility checksself- the target object to call againstarg1- the first argument to passarg2- the second argument to pass- Returns:
- the result of the call
-
call
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, Block block) Description copied from class:CallSiteCall the site's method against the target object passing two arguments and a non-literal (block pass, &) block.- Overrides:
callin classCachingCallSite- Parameters:
context- the ThreadContext for the current threadcaller- the caller, for visibility checksself- the target object to call againstarg1- the first argument to passarg2- the second argument to passblock- the block argument to pass- Returns:
- the result of the call
-
call
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3) Description copied from class:CallSiteCall the site's method against the target object passing two arguments.- Overrides:
callin classCachingCallSite- Parameters:
context- the ThreadContext for the current threadcaller- the caller, for visibility checksself- the target object to call againstarg1- the first argument to passarg2- the second argument to passarg3- the third argument to pass- Returns:
- the result of the call
-
call
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3, Block block) Description copied from class:CallSiteCall the site's method against the target object passing three arguments and a non-literal (block pass, &) block.- Overrides:
callin classCachingCallSite- Parameters:
context- the ThreadContext for the current threadcaller- the caller, for visibility checksself- the target object to call againstarg1- the first argument to passarg2- the second argument to passarg3- the third argument to passblock- the block argument to pass- Returns:
- the result of the call
-
cacheAndCall
private IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, Block block, IRubyObject[] args, ThreadContext context, IRubyObject self) -
cacheAndCall
private IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, IRubyObject[] args, ThreadContext context, IRubyObject self) -
cacheAndCall
private IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, ThreadContext context, IRubyObject self) -
cacheAndCall
private IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, Block block, ThreadContext context, IRubyObject self) -
cacheAndCall
protected IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, ThreadContext context, IRubyObject self, IRubyObject arg) - Overrides:
cacheAndCallin classCachingCallSite
-
cacheAndCall
private IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, Block block, ThreadContext context, IRubyObject self, IRubyObject arg) -
cacheAndCall
protected IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, ThreadContext context, IRubyObject self, IRubyObject arg1, IRubyObject arg2) - Overrides:
cacheAndCallin classCachingCallSite
-
cacheAndCall
private IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, Block block, ThreadContext context, IRubyObject self, IRubyObject arg1, IRubyObject arg2) -
cacheAndCall
private IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, ThreadContext context, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3) -
cacheAndCall
private IRubyObject cacheAndCall(IRubyObject caller, RubyClass selfType, Block block, ThreadContext context, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3)
-