- See also
- mim::plug::clos
Dependencies
Operations related to longjmp
let %clos.BufPtr = %mem.Ptr0 I8;
axm %clos.alloc_jmpbuf: %mem.M 0 → [%mem.M 0, %clos.BufPtr];
axm %clos.setjmp: [%mem.M 0, %clos.BufPtr] → [%mem.M 0, I32];
axm %clos.longjmp: Cn [%mem.M 0, %clos.BufPtr, I32];
Closure Attribute
Used internally to classify the use of differen Lambdas. mim::plug::clos::ClosConvPrep places these attributes:
- ret: returning lambda
- freeBB: ordinary basic block (see mim::Lam::is_basicblock())
- fstclassBB: basic block that is passed around
- esc: lambda that escapes its parent scope
- bot: no special use
axm %clos.attr(returning, freeBB, fstclassBB, esc, bottom): {T: *} → T → T, normalize_clos;
Passes and Phases
Passes
axm %clos.clos_conv_prep_pass: %compile.Pass;
axm %clos.branch_clos_pass: %compile.Pass;
axm %clos.lower_typed_clos_prep_pass: %compile.Pass;
axm %clos.clos2sjlj_pass: %compile.Pass;
Phases
axm %clos.clos_conv_phase: %compile.Phase;
axm %clos.lower_typed_clos_phase: %compile.Phase;