void prepareEntry(IRGS& env) { /* * We automatically hoist a load of the context to the beginning of every * region. The reason is that it's trivially CSEable, so we might as well * make it available everywhere. If nothing uses it, it'll just be DCE'd. */ ldCtx(env); }
void emitLateBoundCls(HTS& env) { auto const clss = curClass(env); if (!clss) { // no static context class, so this will raise an error interpOne(env, Type::Cls, 0); return; } auto const ctx = ldCtx(env); push(env, gen(env, LdClsCtx, ctx)); }