Skip to content

Commit abfcb67

Browse files
committed
Use ArrayRefParameter
1 parent b661bd6 commit abfcb67

File tree

7 files changed

+44
-45
lines changed

7 files changed

+44
-45
lines changed

mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1386,9 +1386,9 @@ def ModuleFlagProfileSummaryDetailedAttr
13861386
A `#llvm.profile_summary` may contain several of it.
13871387
```mlir
13881388
llvm.module_flags [ ...
1389-
detailed_summary = [
1390-
#llvm.profile_summary_detailed<cut_off = 10000, min_count = 86427, num_counts = 1>,
1391-
#llvm.profile_summary_detailed<cut_off = 100000, min_count = 86427, num_counts = 1>
1389+
detailed_summary =
1390+
<cut_off = 10000, min_count = 86427, num_counts = 1>,
1391+
<cut_off = 100000, min_count = 86427, num_counts = 1>
13921392
```
13931393
}];
13941394
let parameters = (ins "uint32_t":$cut_off,
@@ -1409,10 +1409,10 @@ def ModuleFlagProfileSummaryAttr
14091409
num_counts = 3712, num_functions = 796,
14101410
is_partial_profile = 0 : i64,
14111411
partial_profile_ratio = 0.000000e+00 : f64,
1412-
detailed_summary = [
1413-
#llvm.profile_summary_detailed<cut_off = 10000, min_count = 86427, num_counts = 1>,
1414-
#llvm.profile_summary_detailed<cut_off = 100000, min_count = 86427, num_counts = 1>
1415-
]>>]
1412+
detailed_summary =
1413+
<cut_off = 10000, min_count = 86427, num_counts = 1>,
1414+
<cut_off = 100000, min_count = 86427, num_counts = 1>
1415+
>>]
14161416
```
14171417
}];
14181418
let parameters = (
@@ -1421,7 +1421,7 @@ def ModuleFlagProfileSummaryAttr
14211421
"uint64_t":$num_counts, "uint64_t":$num_functions,
14221422
OptionalParameter<"IntegerAttr">:$is_partial_profile,
14231423
OptionalParameter<"FloatAttr">:$partial_profile_ratio,
1424-
"ArrayAttr":$detailed_summary);
1424+
ArrayRefParameter<"ModuleFlagProfileSummaryDetailedAttr">:$detailed_summary);
14251425

14261426
let assemblyFormat = "`<` struct(params) `>`";
14271427
}

mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -346,9 +346,7 @@ static llvm::Metadata *convertModuleFlagProfileSummaryAttr(
346346
}
347347

348348
SmallVector<llvm::Metadata *> detailedEntries;
349-
for (auto detailedEntry :
350-
summaryAttr.getDetailedSummary()
351-
.getAsRange<ModuleFlagProfileSummaryDetailedAttr>()) {
349+
for (auto detailedEntry : summaryAttr.getDetailedSummary()) {
352350
SmallVector<llvm::Metadata *> tupleNodes{
353351
mdb.createConstant(llvm::ConstantInt::get(
354352
llvm::Type::getInt64Ty(context), detailedEntry.getCutOff())),

mlir/lib/Target/LLVMIR/ModuleImport.cpp

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -688,17 +688,19 @@ convertProfileSummaryModuleFlagValue(ModuleOp mlirModule,
688688
return failure();
689689
};
690690

691-
auto getSummary = [&](const llvm::MDOperand &summaryMD) -> ArrayAttr {
691+
auto getSummary = [&](const llvm::MDOperand &summaryMD,
692+
SmallVectorImpl<ModuleFlagProfileSummaryDetailedAttr>
693+
&detailedSummary) {
692694
auto *tupleEntry = getMDTuple(summaryMD);
693695
if (!tupleEntry)
694-
return nullptr;
696+
return false;
695697

696698
llvm::MDString *keyMD = dyn_cast<llvm::MDString>(tupleEntry->getOperand(0));
697699
if (!keyMD || keyMD->getString() != "DetailedSummary") {
698700
emitWarning(mlirModule.getLoc())
699701
<< "expected 'DetailedSummary' key: "
700702
<< diagMD(tupleEntry->getOperand(0), llvmModule);
701-
return nullptr;
703+
return false;
702704
}
703705

704706
llvm::MDTuple *entriesMD =
@@ -707,17 +709,16 @@ convertProfileSummaryModuleFlagValue(ModuleOp mlirModule,
707709
emitWarning(mlirModule.getLoc())
708710
<< "expected tuple value for 'DetailedSummary' key: "
709711
<< diagMD(tupleEntry->getOperand(1), llvmModule);
710-
return nullptr;
712+
return false;
711713
}
712714

713-
SmallVector<Attribute> detailedSummary;
714715
for (auto &&entry : entriesMD->operands()) {
715716
llvm::MDTuple *entryMD = dyn_cast<llvm::MDTuple>(entry);
716717
if (!entryMD || entryMD->getNumOperands() != 3) {
717718
emitWarning(mlirModule.getLoc())
718719
<< "'DetailedSummary' entry expects 3 operands: "
719720
<< diagMD(entry, llvmModule);
720-
return nullptr;
721+
return false;
721722
}
722723
llvm::ConstantAsMetadata *op0 =
723724
dyn_cast<llvm::ConstantAsMetadata>(entryMD->getOperand(0));
@@ -730,7 +731,7 @@ convertProfileSummaryModuleFlagValue(ModuleOp mlirModule,
730731
emitWarning(mlirModule.getLoc())
731732
<< "expected only integer entries in 'DetailedSummary': "
732733
<< diagMD(entry, llvmModule);
733-
return nullptr;
734+
return false;
734735
}
735736

736737
auto detaildSummaryEntry = ModuleFlagProfileSummaryDetailedAttr::get(
@@ -740,7 +741,7 @@ convertProfileSummaryModuleFlagValue(ModuleOp mlirModule,
740741
cast<llvm::ConstantInt>(op2->getValue())->getZExtValue());
741742
detailedSummary.push_back(detaildSummaryEntry);
742743
}
743-
return ArrayAttr::get(mlirModule->getContext(), detailedSummary);
744+
return true;
744745
};
745746

746747
// Build ModuleFlagProfileSummaryAttr by sequentially fetching elements in
@@ -787,8 +788,8 @@ convertProfileSummaryModuleFlagValue(ModuleOp mlirModule,
787788
summayIdx++;
788789

789790
// Handle detailed summary.
790-
ArrayAttr detailedSummary = getSummary(mdTuple->getOperand(summayIdx));
791-
if (!detailedSummary)
791+
SmallVector<ModuleFlagProfileSummaryDetailedAttr> detailedSummary;
792+
if (!getSummary(mdTuple->getOperand(summayIdx), detailedSummary))
792793
return nullptr;
793794

794795
// Build the final profile summary attribute.

mlir/test/Dialect/LLVMIR/invalid.mlir

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1814,10 +1814,10 @@ llvm.module_flags [#llvm.mlir.module_flag<error, "ProfileSummary",
18141814
num_counts = 3712, num_functions = 796,
18151815
is_partial_profile = 0 : i64,
18161816
partial_profile_ratio = 0.000000e+00 : f64,
1817-
detailed_summary = [
1818-
#llvm.profile_summary_detailed<cut_off = 10000, min_count = 86427, num_counts = 1>,
1819-
#llvm.profile_summary_detailed<cut_off = 100000, min_count = 86427, num_counts = 1>
1820-
]>>]
1817+
detailed_summary =
1818+
<cut_off = 10000, min_count = 86427, num_counts = 1>,
1819+
<cut_off = 100000, min_count = 86427, num_counts = 1>
1820+
>>]
18211821

18221822
// -----
18231823

mlir/test/Dialect/LLVMIR/module-roundtrip.mlir

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ module {
1818
num_counts = 3712, num_functions = 796,
1919
is_partial_profile = 0 : i64,
2020
partial_profile_ratio = 0.000000e+00 : f64,
21-
detailed_summary = [
22-
#llvm.profile_summary_detailed<cut_off = 10000, min_count = 86427, num_counts = 1>,
23-
#llvm.profile_summary_detailed<cut_off = 100000, min_count = 86427, num_counts = 1>
24-
]>>]
21+
detailed_summary =
22+
<cut_off = 10000, min_count = 86427, num_counts = 1>,
23+
<cut_off = 100000, min_count = 86427, num_counts = 1>
24+
>>]
2525
}
2626

2727
// CHECK: llvm.module_flags [
@@ -42,9 +42,9 @@ module {
4242
// CHECK-SAME: num_counts = 3712, num_functions = 796,
4343
// CHECK-SAME: is_partial_profile = 0 : i64,
4444
// CHECK-SAME: partial_profile_ratio = 0.000000e+00 : f64,
45-
// CHECK-SAME: detailed_summary = [
46-
// CHECK-SAME: #llvm.profile_summary_detailed<cut_off = 10000, min_count = 86427, num_counts = 1>,
47-
// CHECK-SAME: #llvm.profile_summary_detailed<cut_off = 100000, min_count = 86427, num_counts = 1>
48-
// CHECK-SAME: ]>>]
45+
// CHECK-SAME: detailed_summary =
46+
// CHECK-SAME: <cut_off = 10000, min_count = 86427, num_counts = 1>,
47+
// CHECK-SAME: <cut_off = 100000, min_count = 86427, num_counts = 1>
48+
// CHECK-SAME: >>]
4949

5050
llvm.module_flags []

mlir/test/Target/LLVMIR/Import/module-flags.ll

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,10 @@ declare void @to()
6262
; CHECK-SAME: max_count = 86427, max_internal_count = 86427, max_function_count = 4691,
6363
; CHECK-SAME: num_counts = 3712, num_functions = 796, is_partial_profile = 0 : i64,
6464
; CHECK-SAME: partial_profile_ratio = 0.000000e+00 : f64,
65-
; CHECK-SAME: detailed_summary = [
66-
; CHECK-SAME: #llvm.profile_summary_detailed<cut_off = 10000, min_count = 86427, num_counts = 1>,
67-
; CHECK-SAME: #llvm.profile_summary_detailed<cut_off = 100000, min_count = 86427, num_counts = 1>
68-
; CHECK-SAME: ]>>]
65+
; CHECK-SAME: detailed_summary =
66+
; CHECK-SAME: <cut_off = 10000, min_count = 86427, num_counts = 1>,
67+
; CHECK-SAME: <cut_off = 100000, min_count = 86427, num_counts = 1>
68+
; CHECK-SAME: >>]
6969

7070
; // -----
7171

@@ -91,7 +91,7 @@ declare void @to()
9191
; CHECK-SAME: #llvm.profile_summary<format = "InstrProf", total_count = 263646,
9292
; CHECK-SAME: max_count = 86427, max_internal_count = 86427, max_function_count = 4691,
9393
; CHECK-SAME: num_counts = 3712, num_functions = 796,
94-
; CHECK-SAME: detailed_summary = [
95-
; CHECK-SAME: #llvm.profile_summary_detailed<cut_off = 10000, min_count = 86427, num_counts = 1>,
96-
; CHECK-SAME: #llvm.profile_summary_detailed<cut_off = 100000, min_count = 86427, num_counts = 1>
97-
; CHECK-SAME: ]>>]
94+
; CHECK-SAME: detailed_summary =
95+
; CHECK-SAME: <cut_off = 10000, min_count = 86427, num_counts = 1>,
96+
; CHECK-SAME: <cut_off = 100000, min_count = 86427, num_counts = 1>
97+
; CHECK-SAME: >>]

mlir/test/Target/LLVMIR/llvmir.mlir

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2889,10 +2889,10 @@ llvm.module_flags [#llvm.mlir.module_flag<error, "ProfileSummary",
28892889
num_counts = 3712, num_functions = 796,
28902890
is_partial_profile = 0 : i64,
28912891
partial_profile_ratio = 0.000000e+00 : f64,
2892-
detailed_summary = [
2893-
#llvm.profile_summary_detailed<cut_off = 10000, min_count = 86427, num_counts = 1>,
2894-
#llvm.profile_summary_detailed<cut_off = 100000, min_count = 86427, num_counts = 1>
2895-
]>>]
2892+
detailed_summary =
2893+
<cut_off = 10000, min_count = 86427, num_counts = 1>,
2894+
<cut_off = 100000, min_count = 86427, num_counts = 1>
2895+
>>]
28962896

28972897
// CHECK: !llvm.module.flags = !{!0, !15}
28982898

0 commit comments

Comments
 (0)