[all-commits] [llvm/llvm-project] 9552a3: add support for the SPV_KHR_linkonce_odr extension...

Vyacheslav Levytskyy via All-commits all-commits at lists.llvm.org
Thu Feb 15 02:30:29 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9552a396ed649e499bc4a370ab72ca6972e5b982
      https://github.com/llvm/llvm-project/commit/9552a396ed649e499bc4a370ab72ca6972e5b982
  Author: Vyacheslav Levytskyy <89994100+VyacheslavLevytskyy at users.noreply.github.com>
  Date:   2024-02-15 (Thu, 15 Feb 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
    M llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp
    M llvm/lib/Target/SPIRV/SPIRVSymbolicOperands.td
    M llvm/test/CodeGen/SPIRV/LinkOnceODR.ll
    A llvm/test/CodeGen/SPIRV/LinkOnceODRFun.ll

  Log Message:
  -----------
  add support for the SPV_KHR_linkonce_odr extension (#81512)

This PR adds support for the SPV_KHR_linkonce_odr extension and modifies
existing negative test with a positive check for the extension and
proper linkage type in case when the extension is enabled.

SPV_KHR_linkonce_odr adds a "LinkOnceODR" linkage type, allowing proper
translation of, for example, C++ templates classes merging during
linking from different modules and supporting any other cases when a
global variable/function must be merged with equivalent global
variable(s)/function(s) from other modules during the linking process.




More information about the All-commits mailing list