Open Bug 1866002 Opened 11 months ago Updated 6 months ago

Investigate adding common infrastructure for handling tagged pointers

Categories

(Core :: JavaScript: GC, task, P3)

task

Tracking

()

People

(Reporter: jonco, Unassigned)

References

(Blocks 1 open bug)

Details

Currently there are at least the following tagged pointer types which use the low bits of the pointer to store some extra information: jsid, GCCellPtr, CalleeToken, TaggedProto, wasm::AnyRef

We could perhaps common up the infrastructure for implementing these and make it easier to add new kinds of tagged pointer in the future. For example, we might add a base class and make our tracing and barrier code handle subtypes automatically.

Possibly the concrete tagged pointer type would have to provide a way to tell the GC the kind of pointer contained, or possibly these are rare enough that we could get away with working it out in other ways.

Blocks: sm-meta
Severity: -- → N/A
Priority: -- → P3

I wrote up a case study for one case where I couldn't figure out how to make the current machinery work cleanly for bug 1868857. I'll put up WIP patches there.

No longer blocks: sm-meta
You need to log in before you can comment on or make changes to this bug.