Closed Bug 545094 Opened 14 years ago Closed 14 years ago

Post-verify compilation without GC support

Categories

(Tamarin Graveyard :: Baseline JIT (CodegenLIR), defect, P2)

defect

Tracking

(Not tracked)

VERIFIED WONTFIX
Q3 11 - Serrano

People

(Reporter: siwilkin, Assigned: siwilkin)

References

Details

Attachments

(2 files, 1 obsolete file)

User-Agent:       Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10
Build Identifier: 

As MMGc is not currently thread-safe, a background compiler must work within the following constraints:

1) It must not allocate managed objects (due to first-time resolutions, QCacheItem re-allocations, internal data-structure allocations, String interning etc..)

2) All managed objects that will be accessed during a compilation must be identified and made reachable from a GCRoot before compilation begins (i.e. during verification).

This turns out to be non-trivial.
The attached patch builds on bug 540487 to define a codegen framework which satisfies these constraints (but using base components that can also be used to create the current 'pipelined verify/jit' model and also a 'eager verify/deferred compile' model).

The attached patch contains a simple harness in MethodInfo::verify for running the new compiler within the context of a single thread. This is primarily to check the invariant of no allocations during codegen.

Enable features AVMFEATURE_SCANNER and AVMFEATURE_BACKGROUND_COMPILATION in a DEBUGGER build to perform the no-allocation testing.


Reproducible: Always
Attached patch Initial patchSplinter Review
Depends on: 540487
Blocks: 538185
Assignee: nobody → siwilkin
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Flags: flashplayer-qrb+
Priority: -- → P2
Target Milestone: --- → flash10.2
Previous version of this attachment was not flagged as a patch
Attachment #426767 - Attachment is obsolete: true
Blocks: 556837
Component: Virtual Machine → JIT Compiler (NanoJIT)
QA Contact: vm → nanojit
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → WONTFIX
Superseded by bug 600723
bulk verifying resolved !fixed issues
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: