Add dynamic cast for ir_loop
diff --git a/ir.h b/ir.h
index 4266dbc..fee23b2 100644
--- a/ir.h
+++ b/ir.h
@@ -54,6 +54,7 @@
    virtual class ir_variable *          as_variable()         { return NULL; }
    virtual class ir_dereference *       as_dereference()      { return NULL; }
    virtual class ir_rvalue *            as_rvalue()           { return NULL; }
+   virtual class ir_loop *              as_loop()             { return NULL; }
    /*@}*/
 
 protected:
@@ -302,6 +303,11 @@
       v->visit(this);
    }
 
+   virtual ir_loop *as_loop()
+   {
+      return this;
+   }
+
    /**
     * Get an iterator for the instructions of the loop body
     */