================
@@ -187,6 +193,46 @@ MDNode *MetadataBuilder::BuildRootSignature() {
return MDNode::get(Ctx, GeneratedMetadata);
}
+MDNode *MetadataBuilder::BuildRootFlags(const RootFlags &Flags) {
+ IRBuilder<> Builder(Ctx);
+ return MDNode::get(Ctx, {
+ MDString::get(Ctx, "RootFlags"),
+ ConstantAsMetadata::get(
+
Builder.getInt32(llvm::to_underlying(Flags))),
+ });
+}
+
+MDNode *MetadataBuilder::BuildRootConstants(const RootConstants &Constants) {
+ IRBuilder<> Builder(Ctx);
+ return MDNode::get(
+ Ctx, {
+ MDString::get(Ctx, "RootConstants"),
+ ConstantAsMetadata::get(
+
Builder.getInt32(llvm::to_underlying(Constants.Visibility))),
+ ConstantAsMetadata::get(Builder.getInt32(Constants.Reg.Number)),
+ ConstantAsMetadata::get(Builder.getInt32(Constants.Space)),
+ ConstantAsMetadata::get(
+ Builder.getInt32(Constants.Num32BitConstants)),
+ });
+}
+
+MDNode *MetadataBuilder::BuildRootDescriptor(const RootDescriptor &Descriptor)
{
+ IRBuilder<> Builder(Ctx);
+ std::string Name;
+ llvm::raw_string_ostream OS(Name);
+ OS << "Root" << ClauseType(llvm::to_underlying(Descriptor.Type));
----------------
inbelic wrote:
Sounds good. I have a note for a clean-up to do define the stringifying
functions for the enums. Further, the pattern used here was propagated from
descriptor tables, so I will update the other uses accordingly.
https://github.com/llvm/llvm-project/pull/142010
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits