@@ -173,6 +173,10 @@ struct VisitorNest {
173173 void visitBinaryOperator (BinaryOperator &inst) {
174174 *out << " visiting BinaryOperator: " << inst << ' \n ' ;
175175 }
176+ void visitInst (Instruction &inst) {
177+ *out << " visiting llvm instruction: " << inst << ' \n ' ;
178+ }
179+
176180 VisitorResult visitUnaryInstruction (UnaryInstruction &inst) {
177181 *out << " visiting UnaryInstruction (pre): " << inst << ' \n ' ;
178182 return isa<LoadInst>(inst) ? VisitorResult::Stop : VisitorResult::Continue;
@@ -212,10 +216,10 @@ template <bool rpot> const Visitor<VisitorContainer> &getExampleVisitor() {
212216 });
213217 b.add (&VisitorNest::visitUnaryInstruction);
214218 b.add <xd::cpp::SetReadOp>([](VisitorNest &self, xd::cpp::SetReadOp &op) {
215- *self.out << " visiting SetReadOp: " << op << ' \n ' ;
216- return op.getType ()->isIntegerTy (1 ) ? VisitorResult::Stop
217- : VisitorResult::Continue;
218- });
219+ *self.out << " visiting SetReadOp: " << op << ' \n ' ;
220+ return op.getType ()->isIntegerTy (1 ) ? VisitorResult::Stop
221+ : VisitorResult::Continue;
222+ });
219223 b.addSet <xd::cpp::SetReadOp, xd::cpp::SetWriteOp>(
220224 [](VisitorNest &self, llvm::Instruction &op) {
221225 if (isa<xd::cpp::SetReadOp>(op)) {
@@ -224,11 +228,13 @@ template <bool rpot> const Visitor<VisitorContainer> &getExampleVisitor() {
224228 *self.out << " visiting SetWriteOp (set): " << op << ' \n ' ;
225229 }
226230 });
231+ b.addSet <xd::cpp::SetReadOp, xd::cpp::SetWriteOp>(
232+ &VisitorNest::visitInst);
227233 b.addSet (complexSet, [](VisitorNest &self, llvm::Instruction &op) {
228234 assert ((op.getOpcode () == Instruction::Ret ||
229235 (isa<IntrinsicInst>(&op) &&
230- cast<IntrinsicInst>(&op)->getIntrinsicID () ==
231- Intrinsic::umin)) &&
236+ cast<IntrinsicInst>(&op)->getIntrinsicID () ==
237+ Intrinsic::umin)) &&
232238 " Unexpected operation detected while visiting OpSet!" );
233239
234240 if (op.getOpcode () == Instruction::Ret) {
@@ -246,8 +252,8 @@ template <bool rpot> const Visitor<VisitorContainer> &getExampleVisitor() {
246252 b.add (&VisitorNest::visitBinaryOperator);
247253 b.nest <raw_ostream>([](VisitorBuilder<raw_ostream> &b) {
248254 b.add <xd::cpp::WriteOp>([](raw_ostream &out, xd::cpp::WriteOp &op) {
249- out << " visiting WriteOp: " << op << ' \n ' ;
250- });
255+ out << " visiting WriteOp: " << op << ' \n ' ;
256+ });
251257 b.add <xd::cpp::WriteVarArgOp>(
252258 [](raw_ostream &out, xd::cpp::WriteVarArgOp &op) {
253259 out << " visiting WriteVarArgOp: " << op << " :\n " ;
0 commit comments