[llvm] r243546 - LowerBitSets: Add debugging output.
Peter Collingbourne
peter at pcc.me.uk
Wed Jul 29 11:12:37 PDT 2015
Author: pcc
Date: Wed Jul 29 13:12:36 2015
New Revision: 243546
URL: http://llvm.org/viewvc/llvm-project?rev=243546&view=rev
Log:
LowerBitSets: Add debugging output.
Differential Revision: http://reviews.llvm.org/D11583
Modified:
llvm/trunk/include/llvm/Transforms/IPO/LowerBitSets.h
llvm/trunk/lib/Transforms/IPO/LowerBitSets.cpp
Modified: llvm/trunk/include/llvm/Transforms/IPO/LowerBitSets.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Transforms/IPO/LowerBitSets.h?rev=243546&r1=243545&r2=243546&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Transforms/IPO/LowerBitSets.h (original)
+++ llvm/trunk/include/llvm/Transforms/IPO/LowerBitSets.h Wed Jul 29 13:12:36 2015
@@ -28,6 +28,7 @@ namespace llvm {
class DataLayout;
class GlobalVariable;
class Value;
+class raw_ostream;
struct BitSetInfo {
// The indices of the set bits in the bitset.
@@ -57,6 +58,8 @@ struct BitSetInfo {
bool containsValue(const DataLayout &DL,
const DenseMap<GlobalVariable *, uint64_t> &GlobalLayout,
Value *V, uint64_t COffset = 0) const;
+
+ void print(raw_ostream &OS) const;
};
struct BitSetBuilder {
Modified: llvm/trunk/lib/Transforms/IPO/LowerBitSets.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/LowerBitSets.cpp?rev=243546&r1=243545&r2=243546&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/IPO/LowerBitSets.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/LowerBitSets.cpp Wed Jul 29 13:12:36 2015
@@ -26,6 +26,8 @@
#include "llvm/IR/Module.h"
#include "llvm/IR/Operator.h"
#include "llvm/Pass.h"
+#include "llvm/Support/Debug.h"
+#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
using namespace llvm;
@@ -90,6 +92,22 @@ bool BitSetInfo::containsValue(
return false;
}
+void BitSetInfo::print(raw_ostream &OS) const {
+ OS << "offset " << ByteOffset << " size " << BitSize << " align "
+ << (1 << AlignLog2);
+
+ if (isAllOnes()) {
+ OS << " all-ones\n";
+ return;
+ }
+
+ OS << " { ";
+ for (uint64_t B : Bits)
+ OS << B << ' ';
+ OS << "}\n";
+ return;
+}
+
BitSetInfo BitSetBuilder::build() {
if (Min > Max)
Min = 0;
@@ -532,6 +550,10 @@ void LowerBitSets::buildBitSetsFromGloba
for (MDString *BS : BitSets) {
// Build the bitset.
BitSetInfo BSI = buildBitSet(BS, GlobalLayout);
+ DEBUG({
+ dbgs() << BS->getString() << ": ";
+ BSI.print(dbgs());
+ });
ByteArrayInfo *BAI = 0;
More information about the llvm-commits
mailing list