SPIRVModuleAnalysis collects module and external function registers (usually result of OpFunction) for use when emitting OpFunctionCall. This patch makes the mapping between the functions and registers using pointers (instead of name strings) to ensure anonymous functions and calls can be resolved properly.
New LIT test multiple-anonymous-functions.ll replaces the old internal-anonymous-function.ll. Additionally, OpenCL CTS spirv_new/function_pure_ptr test should pass now.
Typo coresponding