Index: llvm/trunk/lib/Target/AMDGPU/AMDGPUUnifyMetadata.cpp =================================================================== --- llvm/trunk/lib/Target/AMDGPU/AMDGPUUnifyMetadata.cpp +++ llvm/trunk/lib/Target/AMDGPU/AMDGPUUnifyMetadata.cpp @@ -100,7 +100,9 @@ NamedMD->eraseFromParent(); NamedMD = M.getOrInsertNamedMetadata(Name); - NamedMD->addOperand(MDNode::get(M.getContext(), All)); + for (const auto &MD : All) + NamedMD->addOperand(MDNode::get(M.getContext(), MD)); + return true; } }; @@ -133,10 +135,10 @@ bool Changed = false; - for (auto &I:Vers) + for (auto &I : Vers) Changed |= unifyVersionMD(M, I, true); - for (auto &I:Exts) + for (auto &I : Exts) Changed |= unifyExtensionMD(M, I); return Changed; Index: llvm/trunk/test/CodeGen/AMDGPU/unify-metadata.ll =================================================================== --- llvm/trunk/test/CodeGen/AMDGPU/unify-metadata.ll +++ llvm/trunk/test/CodeGen/AMDGPU/unify-metadata.ll @@ -4,23 +4,28 @@ ; modules for records such as opencl.ocl.version, llvm.ident and similar. ; ALL-DAG: !opencl.ocl.version = !{![[OCL_VER:[0-9]+]]} -; ALL-DAG: !llvm.ident = !{![[LLVM_IDENT:[0-9]+]]} -; ALL-DAG: !opencl.used.extensions = !{![[USED_EXT:[0-9]+]]} +; ALL-DAG: !llvm.ident = !{![[LLVM_IDENT_0:[0-9]+]], ![[LLVM_IDENT_1:[0-9]+]]} +; ALL-DAG: !opencl.used.extensions = !{![[USED_EXT_0:[0-9]+]], ![[USED_EXT_1:[0-9]+]], ![[USED_EXT_2:[0-9]+]]} + ; ALL-DAG: ![[OCL_VER]] = !{i32 1, i32 2} -; ALL-DAG: ![[LLVM_IDENT]] = !{!"clang version 4.0 "} -; ALL-DAG: ![[USED_EXT]] = !{!"cl_images", !"cl_khr_fp16", !"cl_doubles"} +; ALL-DAG: ![[LLVM_IDENT_0]] = !{!"clang version 4.0"} +; ALL-DAG: ![[LLVM_IDENT_1]] = !{!"clang version 4.0 (rLXXXXXX)"} +; ALL-DAG: ![[USED_EXT_0]] = !{!"cl_images"} +; ALL-DAG: ![[USED_EXT_1]] = !{!"cl_khr_fp16"} +; ALL-DAG: ![[USED_EXT_2]] = !{!"cl_doubles"} define void @test() { ret void } !opencl.ocl.version = !{!1, !0, !0, !0} -!llvm.ident = !{!2, !2, !2, !2} +!llvm.ident = !{!2, !2, !2, !2, !6} !opencl.used.extensions = !{!3, !3, !4, !5} !0 = !{i32 2, i32 0} !1 = !{i32 1, i32 2} -!2 = !{!"clang version 4.0 "} +!2 = !{!"clang version 4.0"} !3 = !{!"cl_images", !"cl_khr_fp16"} !4 = !{!"cl_images", !"cl_doubles"} !5 = !{} +!6 = !{!"clang version 4.0 (rLXXXXXX)"}