Skip to content
Advertisement

What is the meaning of the prefix ‘Speculative’ and ‘Checked’ of Turbofan operators?

In the Turbofan IR, there are several operators whose name begins with ‘Speculative’ or ‘Checked’ (e.g. SpeculativeSafeIntegerAdd, CheckedInt32Add, CheckedFloat64ToInt32, …).

What is the meaning of those prefix?

Advertisement

Answer

“SpeculativeSafeIntegerAdd” means “type feedback suggests that this + adds small integers, but that assumption must be guarded with a type check”. It’s an intermediate-level node that will be lowered further eventually.

“CheckedInt32Add” performs an int32 addition, checks for overflow, and does a deopt on overflow.

For other operations, the meaning of the prefixes will be similar.

When in doubt, read the source to see when/how these operands are created, and how they are used/lowered later. (That’s what I do to answer questions like this.)

User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement