Escope of otimization in LLVM

Hello LLVM Developer!

I’m a Brazilian developer and i want implement my register allocator to test in LLVM. But reading some books I noticed that there are different types of optimization scopes:

  • Local: Only in one basic block.

  • Regional: More than one basic block and smaller than one procedure.

  • Global: Full procedure.

  • Interprocedural: More than one procedure.

What is the scope in LLVM? Because this have a big influence in the Live Ranges and Interference Graph construction.

I believe to be global, but I’m not sure.

Sorry about my english.