Where are CBlocks translated into code?

I want to understand how CBlocks are translated into code? Does this happen at the C source code level? in the LLVM IR? or at runtime? Where can I see the algorithms that implement CBlocks?

I would imagine that the code in the CBlock is wrapped in some function that pulls in the enclosing scopes variables that are used.

Any help is appreciated.

Richard Catlin