Coverage Report

Created: 2017-07-26 13:44

/home/travis/build/MoarVM/MoarVM/src/spesh/candidate.h
Line
Count
Source
1
/* A specialization candidate. */
2
struct MVMSpeshCandidate {
3
    /* The callsite we should have for a match. */
4
    MVMCallsite *cs;
5
6
    /* Length of the specialized bytecode in bytes. */
7
    MVMuint32 bytecode_size;
8
9
    /* The specialized bytecode. */
10
    MVMuint8 *bytecode;
11
12
    /* Frame handlers for this specialization. */
13
    MVMFrameHandler *handlers;
14
15
    /* Spesh slots, used to hold information for fast access. */
16
    MVMCollectable **spesh_slots;
17
18
    /* Number of spesh slots. */
19
    MVMuint32 num_spesh_slots;
20
21
    /* The number of deoptimization mappings we have. */
22
    MVMuint32 num_deopts;
23
24
    /* Deoptimization mappings. */
25
    MVMint32 *deopts;
26
27
    /* Number of inlines and inlines table; see graph.h for description of
28
     * the table format. */
29
    MVMint32 num_inlines;
30
    MVMSpeshInline *inlines;
31
32
    /* The list of local types (only set up if we do inlines). */
33
    MVMuint16 *local_types;
34
35
    /* The list of lexical types (only set up if we do inlines). */
36
    MVMuint16 *lexical_types;
37
38
    /* Number of locals the specialized code has (may be different from the
39
     * original frame thanks to inlining). */
40
    MVMuint16 num_locals;
41
42
    /* Number of lexicals the specialized code has. */
43
    MVMuint16 num_lexicals;
44
45
    /* Memory sizes to allocate for work/env, taking into account inlining. */
46
    MVMuint32 work_size;
47
    MVMuint32 env_size;
48
49
    /* Number of handlers. */
50
    MVMuint32 num_handlers;
51
52
    /* JIT-code structure */
53
    MVMJitCode *jitcode;
54
};
55
56
/* Functions for creating and clearing up specializations. */
57
void MVM_spesh_candidate_add(MVMThreadContext *tc, MVMSpeshPlanned *p);
58
void MVM_spesh_candidate_destroy(MVMThreadContext *tc, MVMSpeshCandidate *candidate);
59
60
/* Functions for getting effective (specialized or not) frame handlers. */
61
1.01M
MVM_STATIC_INLINE MVMFrameHandler * MVM_frame_effective_handlers(MVMFrame *f) {
62
1.01M
    MVMSpeshCandidate *spesh_cand = f->spesh_cand;
63
874k
    return spesh_cand ? spesh_cand->handlers : f->static_info->body.handlers;
64
1.01M
}
Unexecuted instantiation: sc.c:MVM_frame_effective_handlers
Unexecuted instantiation: MVMNull.c:MVM_frame_effective_handlers
Unexecuted instantiation: CPPStruct.c:MVM_frame_effective_handlers
Unexecuted instantiation: NativeRef.c:MVM_frame_effective_handlers
Unexecuted instantiation: MultiDimArray.c:MVM_frame_effective_handlers
Unexecuted instantiation: Decoder.c:MVM_frame_effective_handlers
Unexecuted instantiation: MVMSpeshLog.c:MVM_frame_effective_handlers
Unexecuted instantiation: 6model.c:MVM_frame_effective_handlers
Unexecuted instantiation: bootstrap.c:MVM_frame_effective_handlers
Unexecuted instantiation: MVMAsyncTask.c:MVM_frame_effective_handlers
Unexecuted instantiation: serialization.c:MVM_frame_effective_handlers
Unexecuted instantiation: compiler.c:MVM_frame_effective_handlers
Unexecuted instantiation: driver.c:MVM_frame_effective_handlers
Unexecuted instantiation: dump.c:MVM_frame_effective_handlers
Unexecuted instantiation: graph.c:MVM_frame_effective_handlers
Unexecuted instantiation: codegen.c:MVM_frame_effective_handlers
Unexecuted instantiation: candidate.c:MVM_frame_effective_handlers
Unexecuted instantiation: manipulate.c:MVM_frame_effective_handlers
Unexecuted instantiation: CPointer.c:MVM_frame_effective_handlers
Unexecuted instantiation: MVMCallCapture.c:MVM_frame_effective_handlers
Unexecuted instantiation: P6bigint.c:MVM_frame_effective_handlers
Unexecuted instantiation: NFA.c:MVM_frame_effective_handlers
Unexecuted instantiation: MVMException.c:MVM_frame_effective_handlers
Unexecuted instantiation: MVMDLLSym.c:MVM_frame_effective_handlers
Unexecuted instantiation: MVMMultiCache.c:MVM_frame_effective_handlers
Unexecuted instantiation: MVMContinuation.c:MVM_frame_effective_handlers
Unexecuted instantiation: NativeCall.c:MVM_frame_effective_handlers
Unexecuted instantiation: facts.c:MVM_frame_effective_handlers
Unexecuted instantiation: CStr.c:MVM_frame_effective_handlers
Unexecuted instantiation: CArray.c:MVM_frame_effective_handlers
Unexecuted instantiation: CStruct.c:MVM_frame_effective_handlers
Unexecuted instantiation: CUnion.c:MVM_frame_effective_handlers
Unexecuted instantiation: ReentrantMutex.c:MVM_frame_effective_handlers
Unexecuted instantiation: ConditionVariable.c:MVM_frame_effective_handlers
Unexecuted instantiation: Semaphore.c:MVM_frame_effective_handlers
Unexecuted instantiation: ConcBlockingQueue.c:MVM_frame_effective_handlers
Unexecuted instantiation: heapsnapshot.c:MVM_frame_effective_handlers
Unexecuted instantiation: unicode.c:MVM_frame_effective_handlers
Unexecuted instantiation: normalize.c:MVM_frame_effective_handlers
Unexecuted instantiation: latin1.c:MVM_frame_effective_handlers
Unexecuted instantiation: utf16.c:MVM_frame_effective_handlers
Unexecuted instantiation: windows1252.c:MVM_frame_effective_handlers
Unexecuted instantiation: bigintops.c:MVM_frame_effective_handlers
Unexecuted instantiation: instrument.c:MVM_frame_effective_handlers
Unexecuted instantiation: profile.c:MVM_frame_effective_handlers
Unexecuted instantiation: nfg.c:MVM_frame_effective_handlers
Unexecuted instantiation: telemeh.c:MVM_frame_effective_handlers
Unexecuted instantiation: crossthreadwrite.c:MVM_frame_effective_handlers
Unexecuted instantiation: line_coverage.c:MVM_frame_effective_handlers
Unexecuted instantiation: sys.c:MVM_frame_effective_handlers
Unexecuted instantiation: moar.c:MVM_frame_effective_handlers
Unexecuted instantiation: mmap.c:MVM_frame_effective_handlers
Unexecuted instantiation: time.c:MVM_frame_effective_handlers
Unexecuted instantiation: emit_posix_x64.c:MVM_frame_effective_handlers
Unexecuted instantiation: stats.c:MVM_frame_effective_handlers
Unexecuted instantiation: optimize.c:MVM_frame_effective_handlers
Unexecuted instantiation: deopt.c:MVM_frame_effective_handlers
Unexecuted instantiation: log.c:MVM_frame_effective_handlers
Unexecuted instantiation: threshold.c:MVM_frame_effective_handlers
Unexecuted instantiation: inline.c:MVM_frame_effective_handlers
Unexecuted instantiation: osr.c:MVM_frame_effective_handlers
Unexecuted instantiation: lookup.c:MVM_frame_effective_handlers
Unexecuted instantiation: worker.c:MVM_frame_effective_handlers
Unexecuted instantiation: Lexotic.c:MVM_frame_effective_handlers
Unexecuted instantiation: plan.c:MVM_frame_effective_handlers
Unexecuted instantiation: arg_guard.c:MVM_frame_effective_handlers
Unexecuted instantiation: compile.c:MVM_frame_effective_handlers
Unexecuted instantiation: decode_stream.c:MVM_frame_effective_handlers
Unexecuted instantiation: ascii.c:MVM_frame_effective_handlers
Unexecuted instantiation: parse_num.c:MVM_frame_effective_handlers
Unexecuted instantiation: utf8.c:MVM_frame_effective_handlers
Unexecuted instantiation: utf8_c8.c:MVM_frame_effective_handlers
Unexecuted instantiation: allocation.c:MVM_frame_effective_handlers
Unexecuted instantiation: nativecall.c:MVM_frame_effective_handlers
Unexecuted instantiation: nativecall_dyncall.c:MVM_frame_effective_handlers
Unexecuted instantiation: continuation.c:MVM_frame_effective_handlers
Unexecuted instantiation: intcache.c:MVM_frame_effective_handlers
Unexecuted instantiation: fixedsizealloc.c:MVM_frame_effective_handlers
Unexecuted instantiation: regionalloc.c:MVM_frame_effective_handlers
Unexecuted instantiation: config.c:MVM_frame_effective_handlers
Unexecuted instantiation: orchestrate.c:MVM_frame_effective_handlers
Unexecuted instantiation: ext.c:MVM_frame_effective_handlers
Unexecuted instantiation: worklist.c:MVM_frame_effective_handlers
Unexecuted instantiation: roots.c:MVM_frame_effective_handlers
Unexecuted instantiation: collect.c:MVM_frame_effective_handlers
Unexecuted instantiation: gen2.c:MVM_frame_effective_handlers
Unexecuted instantiation: wb.c:MVM_frame_effective_handlers
Unexecuted instantiation: objectid.c:MVM_frame_effective_handlers
Unexecuted instantiation: finalize.c:MVM_frame_effective_handlers
Unexecuted instantiation: debug.c:MVM_frame_effective_handlers
Unexecuted instantiation: validation.c:MVM_frame_effective_handlers
Unexecuted instantiation: args.c:MVM_frame_effective_handlers
exceptions.c:MVM_frame_effective_handlers
Line
Count
Source
61
1.01M
MVM_STATIC_INLINE MVMFrameHandler * MVM_frame_effective_handlers(MVMFrame *f) {
62
1.01M
    MVMSpeshCandidate *spesh_cand = f->spesh_cand;
63
874k
    return spesh_cand ? spesh_cand->handlers : f->static_info->body.handlers;
64
1.01M
}
Unexecuted instantiation: interp.c:MVM_frame_effective_handlers
Unexecuted instantiation: threadcontext.c:MVM_frame_effective_handlers
Unexecuted instantiation: compunit.c:MVM_frame_effective_handlers
Unexecuted instantiation: bytecode.c:MVM_frame_effective_handlers
Unexecuted instantiation: frame.c:MVM_frame_effective_handlers
Unexecuted instantiation: callstack.c:MVM_frame_effective_handlers
Unexecuted instantiation: io.c:MVM_frame_effective_handlers
Unexecuted instantiation: bytecodedump.c:MVM_frame_effective_handlers
Unexecuted instantiation: threads.c:MVM_frame_effective_handlers
Unexecuted instantiation: ops.c:MVM_frame_effective_handlers
Unexecuted instantiation: hll.c:MVM_frame_effective_handlers
Unexecuted instantiation: loadbytecode.c:MVM_frame_effective_handlers
Unexecuted instantiation: num.c:MVM_frame_effective_handlers
Unexecuted instantiation: coerce.c:MVM_frame_effective_handlers
Unexecuted instantiation: dll.c:MVM_frame_effective_handlers
Unexecuted instantiation: MVMStaticFrame.c:MVM_frame_effective_handlers
Unexecuted instantiation: MVMCFunction.c:MVM_frame_effective_handlers
Unexecuted instantiation: KnowHOWREPR.c:MVM_frame_effective_handlers
Unexecuted instantiation: KnowHOWAttributeREPR.c:MVM_frame_effective_handlers
Unexecuted instantiation: P6str.c:MVM_frame_effective_handlers
Unexecuted instantiation: P6opaque.c:MVM_frame_effective_handlers
Unexecuted instantiation: MVMCode.c:MVM_frame_effective_handlers
Unexecuted instantiation: MVMOSHandle.c:MVM_frame_effective_handlers
Unexecuted instantiation: MVMCompUnit.c:MVM_frame_effective_handlers
Unexecuted instantiation: MVMHash.c:MVM_frame_effective_handlers
Unexecuted instantiation: P6int.c:MVM_frame_effective_handlers
Unexecuted instantiation: P6num.c:MVM_frame_effective_handlers
Unexecuted instantiation: Uninstantiable.c:MVM_frame_effective_handlers
Unexecuted instantiation: HashAttrStore.c:MVM_frame_effective_handlers
Unexecuted instantiation: MVMThread.c:MVM_frame_effective_handlers
Unexecuted instantiation: MVMIter.c:MVM_frame_effective_handlers
Unexecuted instantiation: MVMContext.c:MVM_frame_effective_handlers
Unexecuted instantiation: SCRef.c:MVM_frame_effective_handlers
Unexecuted instantiation: signals.c:MVM_frame_effective_handlers
Unexecuted instantiation: eventloop.c:MVM_frame_effective_handlers
Unexecuted instantiation: syncfile.c:MVM_frame_effective_handlers
Unexecuted instantiation: syncsocket.c:MVM_frame_effective_handlers
Unexecuted instantiation: fileops.c:MVM_frame_effective_handlers
Unexecuted instantiation: dirops.c:MVM_frame_effective_handlers
Unexecuted instantiation: procops.c:MVM_frame_effective_handlers
Unexecuted instantiation: timers.c:MVM_frame_effective_handlers
Unexecuted instantiation: filewatchers.c:MVM_frame_effective_handlers
Unexecuted instantiation: callsite.c:MVM_frame_effective_handlers
Unexecuted instantiation: asyncsocket.c:MVM_frame_effective_handlers
Unexecuted instantiation: asyncsocketudp.c:MVM_frame_effective_handlers
Unexecuted instantiation: reprs.c:MVM_frame_effective_handlers
Unexecuted instantiation: reprconv.c:MVM_frame_effective_handlers
Unexecuted instantiation: containers.c:MVM_frame_effective_handlers
Unexecuted instantiation: parametric.c:MVM_frame_effective_handlers
Unexecuted instantiation: MVMString.c:MVM_frame_effective_handlers
Unexecuted instantiation: VMArray.c:MVM_frame_effective_handlers