Top Description Fields Constructors Methods
org.jruby.runtime.callsite

public Class ProfilingCachingCallSite

extends CachingCallSite
Class Inheritance
Imports
org.jruby.RubyClass, .RubyFixnum, .RubyModule, org.jruby.internal.runtime.AbstractIRMethod, org.jruby.internal.runtime.methods.DynamicMethod, .InterpretedIRMethod, .MixedModeIRMethod, org.jruby.ir.IRManager, .IRMethod, .IRScope, org.jruby.runtime.Block, .CallType, .ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.util.log.Logger, .LoggerFactory, java.util.concurrent.atomic.AtomicInteger

An interesting callsite in which we will look for monomorphic behavior in case we want to inline.

Field Summary

Modifier and TypeField and Description
private final long
private final IRScope
public static final Logger
private final AtomicInteger
Inherited from org.jruby.runtime.callsite.CachingCallSite:
builtinCachecache

Constructor Summary

AccessConstructor and Description
public
ProfilingCachingCallSite(CallType callType, String methodName, IRScope scope, long callSiteId)

Method Summary

Modifier and TypeMethod and Description
public IRubyObject
call(ThreadContext
the ThreadContext for the current thread
context
,
IRubyObject
the caller, for visibility checks
caller
,
IRubyObject
the target object to call against
self
,
long
the literal long value to pass
fixnum
)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Call the site's method against the target object, passing a literal long value.

public IRubyObject
call(ThreadContext
the ThreadContext for the current thread
context
,
IRubyObject
the caller, for visibility checks
caller
,
IRubyObject
the target object to call against
self
,
double
the literal double value to pass
flote
)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Call the site's method against the target object, passing a literal double value.

public IRubyObject
call(ThreadContext
the ThreadContext for the current thread
context
,
IRubyObject
the caller, for visibility checks
caller
,
IRubyObject
the target object to call against
self
,
IRubyObject...
the arguments to pass
args
)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Call the site's method against the target object passing arguments.

public IRubyObject
call(ThreadContext
the ThreadContext for the current thread
context
,
IRubyObject
the caller, for visibility checks
caller
,
IRubyObject
the target object to call against
self
,
IRubyObject[]
the arguments to pass
args
,
Block
the block argument to pass
block
)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Call the site's method against the target object passing one argument and a non-literal (block pass, &) block.

public IRubyObject
call(ThreadContext
the ThreadContext for the current thread
context
,
IRubyObject
the caller, for visibility checks
caller
,
IRubyObject
the target object to call against
self
)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Call the site's method against the target object passing no args.

public IRubyObject
call(ThreadContext
the ThreadContext for the current thread
context
,
IRubyObject
the caller, for visibility checks
caller
,
IRubyObject
the target object to call against
self
,
Block
the block argument to pass
block
)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Call the site's method against the target object passing no arguments and a non-literal (block pass, &) block.

public IRubyObject
call(ThreadContext
the ThreadContext for the current thread
context
,
IRubyObject
the caller, for visibility checks
caller
,
IRubyObject
the target object to call against
self
,
IRubyObject
the argument to pass
arg1
)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Call the site's method against the target object passing one argument.

public IRubyObject
call(ThreadContext
the ThreadContext for the current thread
context
,
IRubyObject
the caller, for visibility checks
caller
,
IRubyObject
the target object to call against
self
,
IRubyObject
the argument to pass
arg1
,
Block
the block argument to pass
block
)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Call the site's method against the target object passing one argument and a non-literal (block pass, &) block.

public IRubyObject
call(ThreadContext
the ThreadContext for the current thread
context
,
IRubyObject
the caller, for visibility checks
caller
,
IRubyObject
the target object to call against
self
,
IRubyObject
the first argument to pass
arg1
,
IRubyObject
the second argument to pass
arg2
)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Call the site's method against the target object passing two arguments.

public IRubyObject
call(ThreadContext
the ThreadContext for the current thread
context
,
IRubyObject
the caller, for visibility checks
caller
,
IRubyObject
the target object to call against
self
,
IRubyObject
the first argument to pass
arg1
,
IRubyObject
the second argument to pass
arg2
,
Block
the block argument to pass
block
)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Call the site's method against the target object passing two arguments and a non-literal (block pass, &) block.

public IRubyObject
call(ThreadContext
the ThreadContext for the current thread
context
,
IRubyObject
the caller, for visibility checks
caller
,
IRubyObject
the target object to call against
self
,
IRubyObject
the first argument to pass
arg1
,
IRubyObject
the second argument to pass
arg2
,
IRubyObject
the third argument to pass
arg3
)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Call the site's method against the target object passing two arguments.

public IRubyObject
call(ThreadContext
the ThreadContext for the current thread
context
,
IRubyObject
the caller, for visibility checks
caller
,
IRubyObject
the target object to call against
self
,
IRubyObject
the first argument to pass
arg1
,
IRubyObject
the second argument to pass
arg2
,
IRubyObject
the third argument to pass
arg3
,
Block
the block argument to pass
block
)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Call the site's method against the target object passing three arguments and a non-literal (block pass, &) block.

private void
protected boolean
Inherited from org.jruby.runtime.callsite.CachingCallSite:
cacheAndCallcacheAndCallcacheAndCallcacheAndCallcacheAndCallcacheAndCallcacheAndCallcacheAndCallcacheAndCallcacheAndCallcallItercallItercallItercallItercallItercallVarargscallVarargscallVarargsIterfcallfcallfcallfcallfcallfcallfcallfcallfcallfcallfcallIterfcallIterfcallIterfcallIterfcallIterfcallVarargsfcallVarargsfcallVarargsItergetCachegetCachedClassIndexgetCachedMethodSerialgetClassgetMethodNameisBuiltinisBuiltinisOptimizableretrieveCacheretrieveCacheretrieveCachesetCache

Field Detail

callSiteIdback to summary
private final long callSiteId
hostScopeback to summary
private final IRScope hostScope
LOGback to summary
public static final Logger LOG
totalMonomorphicCallsback to summary
private final AtomicInteger totalMonomorphicCalls

Constructor Detail

ProfilingCachingCallSiteback to summary
public ProfilingCachingCallSite(CallType callType, String methodName, IRScope scope, long callSiteId)

Method Detail

callback to summary
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, long fixnum)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Doc from org.jruby.runtime.CallSite.call.

Call the site's method against the target object, passing a literal long value.

Parameters
context:ThreadContext

the ThreadContext for the current thread

caller:IRubyObject

the caller, for visibility checks

self:IRubyObject

the target object to call against

fixnum:long

the literal long value to pass

Returns:IRubyObject

the result of the call

Annotations
@Override
callback to summary
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, double flote)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Doc from org.jruby.runtime.CallSite.call.

Call the site's method against the target object, passing a literal double value.

Parameters
context:ThreadContext

the ThreadContext for the current thread

caller:IRubyObject

the caller, for visibility checks

self:IRubyObject

the target object to call against

flote:double

the literal double value to pass

Returns:IRubyObject

the result of the call

Annotations
@Override
callback to summary
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject... args)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Doc from org.jruby.runtime.CallSite.call.

Call the site's method against the target object passing arguments.

Parameters
context:ThreadContext

the ThreadContext for the current thread

caller:IRubyObject

the caller, for visibility checks

self:IRubyObject

the target object to call against

args:IRubyObject[]

the arguments to pass

Returns:IRubyObject

the result of the call

Annotations
@Override
callback to summary
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject[] args, Block block)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Doc from org.jruby.runtime.CallSite.call.

Call the site's method against the target object passing one argument and a non-literal (block pass, &) block.

Parameters
context:ThreadContext

the ThreadContext for the current thread

caller:IRubyObject

the caller, for visibility checks

self:IRubyObject

the target object to call against

args:IRubyObject[]

the arguments to pass

block:Block

the block argument to pass

Returns:IRubyObject

the result of the call

callback to summary
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Doc from org.jruby.runtime.CallSite.call.

Call the site's method against the target object passing no args.

Parameters
context:ThreadContext

the ThreadContext for the current thread

caller:IRubyObject

the caller, for visibility checks

self:IRubyObject

the target object to call against

Returns:IRubyObject

the result of the call

Annotations
@Override
callback to summary
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, Block block)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Doc from org.jruby.runtime.CallSite.call.

Call the site's method against the target object passing no arguments and a non-literal (block pass, &) block.

Parameters
context:ThreadContext

the ThreadContext for the current thread

caller:IRubyObject

the caller, for visibility checks

self:IRubyObject

the target object to call against

block:Block

the block argument to pass

Returns:IRubyObject

the result of the call

callback to summary
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Doc from org.jruby.runtime.CallSite.call.

Call the site's method against the target object passing one argument.

Parameters
context:ThreadContext

the ThreadContext for the current thread

caller:IRubyObject

the caller, for visibility checks

self:IRubyObject

the target object to call against

arg1:IRubyObject

the argument to pass

Returns:IRubyObject

the result of the call

Annotations
@Override
callback to summary
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, Block block)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Doc from org.jruby.runtime.CallSite.call.

Call the site's method against the target object passing one argument and a non-literal (block pass, &) block.

Parameters
context:ThreadContext

the ThreadContext for the current thread

caller:IRubyObject

the caller, for visibility checks

self:IRubyObject

the target object to call against

arg1:IRubyObject

the argument to pass

block:Block

the block argument to pass

Returns:IRubyObject

the result of the call

callback to summary
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Doc from org.jruby.runtime.CallSite.call.

Call the site's method against the target object passing two arguments.

Parameters
context:ThreadContext

the ThreadContext for the current thread

caller:IRubyObject

the caller, for visibility checks

self:IRubyObject

the target object to call against

arg1:IRubyObject

the first argument to pass

arg2:IRubyObject

the second argument to pass

Returns:IRubyObject

the result of the call

Annotations
@Override
callback to summary
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, Block block)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Doc from org.jruby.runtime.CallSite.call.

Call the site's method against the target object passing two arguments and a non-literal (block pass, &) block.

Parameters
context:ThreadContext

the ThreadContext for the current thread

caller:IRubyObject

the caller, for visibility checks

self:IRubyObject

the target object to call against

arg1:IRubyObject

the first argument to pass

arg2:IRubyObject

the second argument to pass

block:Block

the block argument to pass

Returns:IRubyObject

the result of the call

callback to summary
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Doc from org.jruby.runtime.CallSite.call.

Call the site's method against the target object passing two arguments.

Parameters
context:ThreadContext

the ThreadContext for the current thread

caller:IRubyObject

the caller, for visibility checks

self:IRubyObject

the target object to call against

arg1:IRubyObject

the first argument to pass

arg2:IRubyObject

the second argument to pass

arg3:IRubyObject

the third argument to pass

Returns:IRubyObject

the result of the call

Annotations
@Override
callback to summary
public IRubyObject call(ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3, Block block)

Overrides org.jruby.runtime.callsite.CachingCallSite.call.

Doc from org.jruby.runtime.CallSite.call.

Call the site's method against the target object passing three arguments and a non-literal (block pass, &) block.

Parameters
context:ThreadContext

the ThreadContext for the current thread

caller:IRubyObject

the caller, for visibility checks

self:IRubyObject

the target object to call against

arg1:IRubyObject

the first argument to pass

arg2:IRubyObject

the second argument to pass

arg3:IRubyObject

the third argument to pass

block:Block

the block argument to pass

Returns:IRubyObject

the result of the call

inlineCheckback to summary
private void inlineCheck(ThreadContext context, IRubyObject self, CacheEntry cache)
methodMissingback to summary
protected boolean methodMissing(DynamicMethod method, IRubyObject caller)

Overrides org.jruby.runtime.callsite.CachingCallSite.methodMissing.