class Interval;
void WriteToOutput(const Interval *I, ostream &o);
inline ostream &operator <<(ostream &o, const Interval *I) {
- WriteToOutput(I, o);
- return o;
+ WriteToOutput(I, o); return o;
+ }
+
+ // Stuff for printing out Dominator data structures...
+ class DominatorSet;
+ class ImmediateDominators;
+ class DominatorTree;
+ class DominanceFrontier;
+
+ void WriteToOutput(const DominatorSet &, ostream &o);
+ inline ostream &operator <<(ostream &o, const DominatorSet &DS) {
+ WriteToOutput(DS, o); return o;
+ }
+
+ void WriteToOutput(const ImmediateDominators &, ostream &o);
+ inline ostream &operator <<(ostream &o, const ImmediateDominators &ID) {
+ WriteToOutput(ID, o); return o;
+ }
+
+ void WriteToOutput(const DominatorTree &, ostream &o);
+ inline ostream &operator <<(ostream &o, const DominatorTree &DT) {
+ WriteToOutput(DT, o); return o;
+ }
+
+ void WriteToOutput(const DominanceFrontier &, ostream &o);
+ inline ostream &operator <<(ostream &o, const DominanceFrontier &DF) {
+ WriteToOutput(DF, o); return o;
}
}