[PATCH] D46095: [GlobalISel] Reporting rules covered as part of the InstructionSelect's debug-only printing
Roman Tereshin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 26 13:27:49 PDT 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rL330988: [GlobalISel] Reporting rules covered as part of the InstructionSelect's debug… (authored by rtereshin, committed by ).
Changed prior to commit:
https://reviews.llvm.org/D46095?vs=144039&id=144185#toc
Repository:
rL LLVM
https://reviews.llvm.org/D46095
Files:
llvm/trunk/include/llvm/Support/CodeGenCoverage.h
llvm/trunk/lib/CodeGen/GlobalISel/InstructionSelect.cpp
llvm/trunk/lib/Support/CodeGenCoverage.cpp
Index: llvm/trunk/lib/Support/CodeGenCoverage.cpp
===================================================================
--- llvm/trunk/lib/Support/CodeGenCoverage.cpp
+++ llvm/trunk/lib/Support/CodeGenCoverage.cpp
@@ -38,12 +38,17 @@
RuleCoverage[RuleID] = true;
}
-bool CodeGenCoverage::isCovered(uint64_t RuleID) {
+bool CodeGenCoverage::isCovered(uint64_t RuleID) const {
if (RuleCoverage.size() <= RuleID)
return false;
return RuleCoverage[RuleID];
}
+iterator_range<CodeGenCoverage::const_covered_iterator>
+CodeGenCoverage::covered() const {
+ return RuleCoverage.set_bits();
+}
+
bool CodeGenCoverage::parse(MemoryBuffer &Buffer, StringRef BackendName) {
const char *CurPtr = Buffer.getBufferStart();
Index: llvm/trunk/lib/CodeGen/GlobalISel/InstructionSelect.cpp
===================================================================
--- llvm/trunk/lib/CodeGen/GlobalISel/InstructionSelect.cpp
+++ llvm/trunk/lib/CodeGen/GlobalISel/InstructionSelect.cpp
@@ -218,6 +218,12 @@
auto &TLI = *MF.getSubtarget().getTargetLowering();
TLI.finalizeLowering(MF);
+ DEBUG({
+ dbgs() << "Rules covered by selecting function: " << MF.getName() << ":";
+ for (auto RuleID : CoverageInfo.covered())
+ dbgs() << " id" << RuleID;
+ dbgs() << "\n\n";
+ });
CoverageInfo.emit(CoveragePrefix,
MF.getSubtarget()
.getTargetLowering()
Index: llvm/trunk/include/llvm/Support/CodeGenCoverage.h
===================================================================
--- llvm/trunk/include/llvm/Support/CodeGenCoverage.h
+++ llvm/trunk/include/llvm/Support/CodeGenCoverage.h
@@ -23,15 +23,18 @@
BitVector RuleCoverage;
public:
+ using const_covered_iterator = BitVector::const_set_bits_iterator;
+
CodeGenCoverage();
void setCovered(uint64_t RuleID);
- bool isCovered(uint64_t RuleID);
+ bool isCovered(uint64_t RuleID) const;
+ iterator_range<const_covered_iterator> covered() const;
bool parse(MemoryBuffer &Buffer, StringRef BackendName);
bool emit(StringRef FilePrefix, StringRef BackendName) const;
void reset();
};
-} // end namespace llvm
+} // namespace llvm
#endif // ifndef LLVM_SUPPORT_CODEGENCOVERAGE_H
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D46095.144185.patch
Type: text/x-patch
Size: 2221 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180426/0236ef95/attachment.bin>
More information about the llvm-commits
mailing list