diff --git a/CMakeLists.txt b/CMakeLists.txt
index c414c9509976d699070473e9766f3f1434edd207..c82497d948dfb5acbd7409c90619165c175afca4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,6 +2,10 @@ cmake_minimum_required (VERSION 2.6)
 project (perf)
 include_directories("../clan-0.8.0/osl/include")
 link_directories("/home/daniel/polyhedral_perforation/clan-0.8.0/osl/.libs")
+set(CMAKE_CXX_FLAGS "-g -Wall")
+
 add_executable(perf main.cpp)
 target_link_libraries(perf osl)
-set(CMAKE_CXX_FLAGS "-g -Wall")
+
+add_executable(info info.cpp)
+target_link_libraries(info osl)
diff --git a/info.cpp b/info.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..bcae4c333e25831f68610e3da5315a1cb77a09e9
--- /dev/null
+++ b/info.cpp
@@ -0,0 +1,23 @@
+#include <iostream>
+#include <osl/osl.h>
+
+int main(int argc, char *argv[]) {
+    if(argc != 2) {
+        std::cerr << "usage: <SCOP>\n";
+        return -1;
+    }
+
+    auto *fp = fopen(argv[1], "r");
+    if(!fp) {
+        std::cerr << "openscop read failed\n";
+        return -1;
+    }
+    auto scop = osl_scop_read(fp);
+    fclose(fp);
+
+    for(auto s = scop->statement; s; s = s->next) {
+        std::cout << s->domain->nb_output_dims << "\n";
+    }
+
+    return 0;
+}