forked from OSchip/llvm-project
[AMDGPU] When unifying metadata, add operands to named metadata individually
Differential Revision: https://reviews.llvm.org/D27725 llvm-svn: 290114
This commit is contained in:
parent
a01f4c3476
commit
980688cdaf
|
@ -100,7 +100,9 @@ namespace {
|
||||||
|
|
||||||
NamedMD->eraseFromParent();
|
NamedMD->eraseFromParent();
|
||||||
NamedMD = M.getOrInsertNamedMetadata(Name);
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -133,10 +135,10 @@ bool AMDGPUUnifyMetadata::runOnModule(Module &M) {
|
||||||
|
|
||||||
bool Changed = false;
|
bool Changed = false;
|
||||||
|
|
||||||
for (auto &I:Vers)
|
for (auto &I : Vers)
|
||||||
Changed |= unifyVersionMD(M, I, true);
|
Changed |= unifyVersionMD(M, I, true);
|
||||||
|
|
||||||
for (auto &I:Exts)
|
for (auto &I : Exts)
|
||||||
Changed |= unifyExtensionMD(M, I);
|
Changed |= unifyExtensionMD(M, I);
|
||||||
|
|
||||||
return Changed;
|
return Changed;
|
||||||
|
|
|
@ -4,23 +4,28 @@
|
||||||
; modules for records such as opencl.ocl.version, llvm.ident and similar.
|
; modules for records such as opencl.ocl.version, llvm.ident and similar.
|
||||||
|
|
||||||
; ALL-DAG: !opencl.ocl.version = !{![[OCL_VER:[0-9]+]]}
|
; ALL-DAG: !opencl.ocl.version = !{![[OCL_VER:[0-9]+]]}
|
||||||
; ALL-DAG: !llvm.ident = !{![[LLVM_IDENT:[0-9]+]]}
|
; ALL-DAG: !llvm.ident = !{![[LLVM_IDENT_0:[0-9]+]], ![[LLVM_IDENT_1:[0-9]+]]}
|
||||||
; ALL-DAG: !opencl.used.extensions = !{![[USED_EXT:[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: ![[OCL_VER]] = !{i32 1, i32 2}
|
||||||
; ALL-DAG: ![[LLVM_IDENT]] = !{!"clang version 4.0 "}
|
; ALL-DAG: ![[LLVM_IDENT_0]] = !{!"clang version 4.0"}
|
||||||
; ALL-DAG: ![[USED_EXT]] = !{!"cl_images", !"cl_khr_fp16", !"cl_doubles"}
|
; 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() {
|
define void @test() {
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
!opencl.ocl.version = !{!1, !0, !0, !0}
|
!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}
|
!opencl.used.extensions = !{!3, !3, !4, !5}
|
||||||
|
|
||||||
!0 = !{i32 2, i32 0}
|
!0 = !{i32 2, i32 0}
|
||||||
!1 = !{i32 1, i32 2}
|
!1 = !{i32 1, i32 2}
|
||||||
!2 = !{!"clang version 4.0 "}
|
!2 = !{!"clang version 4.0"}
|
||||||
!3 = !{!"cl_images", !"cl_khr_fp16"}
|
!3 = !{!"cl_images", !"cl_khr_fp16"}
|
||||||
!4 = !{!"cl_images", !"cl_doubles"}
|
!4 = !{!"cl_images", !"cl_doubles"}
|
||||||
!5 = !{}
|
!5 = !{}
|
||||||
|
!6 = !{!"clang version 4.0 (rLXXXXXX)"}
|
||||||
|
|
Loading…
Reference in New Issue