porting llvm to new top_level_scopes api
Merge branch 'master' into porting_llvm
porting and factoring spir + nvvm