[PATCH] D23327: AMDGPU: Add runtime metadata for printf
Yaxun Liu via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 9 10:29:07 PDT 2016
yaxunl created this revision.
yaxunl added reviewers: nhaustov, arsenm.
yaxunl added subscribers: tstellarAMD, llvm-commits.
Herald added a reviewer: tstellarAMD.
Herald added subscribers: kzhuravl, arsenm.
https://reviews.llvm.org/D23327
Files:
lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
lib/Target/AMDGPU/AMDGPURuntimeMetadata.h
test/CodeGen/AMDGPU/runtime-metadata.ll
Index: test/CodeGen/AMDGPU/runtime-metadata.ll
===================================================================
--- test/CodeGen/AMDGPU/runtime-metadata.ll
+++ test/CodeGen/AMDGPU/runtime-metadata.ll
@@ -16,6 +16,12 @@
; CHECK-NEXT: .byte 0
; CHECK-NEXT: .byte 3
; CHECK-NEXT: .short 200
+; CHECK-NEXT: .byte 32
+; CHECK-NEXT: .long 10
+; CHECK-NEXT: .ascii "1:1:4:%d\\n"
+; CHECK-NEXT: .byte 32
+; CHECK-NEXT: .long 10
+; CHECK-NEXT: .ascii "2:1:8:%g\\n"
; CHECK-LABEL:{{^}}test_char:
; CHECK: .section .AMDGPU.runtime_metadata
@@ -1018,6 +1024,8 @@
ret void
}
+!llvm.printf.fmts = !{!100, !101}
+
!1 = !{i32 0}
!2 = !{!"none"}
!3 = !{!"int"}
@@ -1063,3 +1071,5 @@
!84 = !{!"clk_event_t"}
!opencl.ocl.version = !{!90}
!90 = !{i32 2, i32 0}
+!100 = !{!"1:1:4:%d\5Cn"}
+!101 = !{!"2:1:8:%g\5Cn"}
Index: lib/Target/AMDGPU/AMDGPURuntimeMetadata.h
===================================================================
--- lib/Target/AMDGPU/AMDGPURuntimeMetadata.h
+++ lib/Target/AMDGPU/AMDGPURuntimeMetadata.h
@@ -84,6 +84,7 @@
KeyFlatWorkGroupSizeLimits = 29, // Flat work group size limits
KeyMaxWorkGroupSize = 30, // Maximum work group size
KeyNoPartialWorkGroups = 31, // No partial work groups
+ KeyPrintfInfo = 32, // Prinf function call information
};
enum Language : uint8_t {
Index: lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
===================================================================
--- lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
+++ lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
@@ -799,6 +799,15 @@
}
}
}
+
+ if (auto MD = M.getNamedMetadata("llvm.printf.fmts")) {
+ for (unsigned I = 0; I < MD->getNumOperands(); ++I) {
+ auto Node = MD->getOperand(I);
+ if (Node->getNumOperands() > 0)
+ emitRuntimeMDStringValue(*OutStreamer, RuntimeMD::KeyPrintfInfo,
+ cast<MDString>(Node->getOperand(0))->getString());
+ }
+ }
}
static std::string getOCLTypeName(Type *Ty, bool Signed) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D23327.67369.patch
Type: text/x-patch
Size: 2039 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160809/9667d033/attachment.bin>
More information about the llvm-commits
mailing list