experimental c/c++ version of ir