aboutsummaryrefslogtreecommitdiff
path: root/graphics/openshadinglanguage
diff options
context:
space:
mode:
authorTijl Coosemans <tijl@FreeBSD.org>2013-11-07 14:00:44 +0000
committerTijl Coosemans <tijl@FreeBSD.org>2013-11-07 14:00:44 +0000
commitb09d984b3e8c950ec20e63c94f58d2e7507ac4cf (patch)
tree86aaaae2ba5c48f078d8dfebfee7b90454172c64 /graphics/openshadinglanguage
parent1e2bf2c5d57e115acb946a6b16e47483d5a8a391 (diff)
downloadports-b09d984b3e8c950ec20e63c94f58d2e7507ac4cf.tar.gz
ports-b09d984b3e8c950ec20e63c94f58d2e7507ac4cf.zip
Notes
Diffstat (limited to 'graphics/openshadinglanguage')
-rw-r--r--graphics/openshadinglanguage/Makefile41
-rw-r--r--graphics/openshadinglanguage/files/patch-CMakeLists.txt86
-rw-r--r--graphics/openshadinglanguage/files/patch-cmake_platform.cmake12
-rw-r--r--graphics/openshadinglanguage/files/patch-liboslcomp__CMakeLists.txt9
-rw-r--r--graphics/openshadinglanguage/files/patch-liboslcomp__oslcomp.cpp20
-rw-r--r--graphics/openshadinglanguage/files/patch-liboslexec__CMakeLists.txt11
-rw-r--r--graphics/openshadinglanguage/files/patch-liboslexec__constfold.cpp42
-rw-r--r--graphics/openshadinglanguage/files/patch-liboslexec__dictionary.cpp11
-rw-r--r--graphics/openshadinglanguage/files/patch-liboslexec__llvm_gen.cpp11
-rw-r--r--graphics/openshadinglanguage/files/patch-liboslexec__llvm_instance.cpp11
-rw-r--r--graphics/openshadinglanguage/files/patch-liboslexec__llvm_ops.cpp13
-rw-r--r--graphics/openshadinglanguage/files/patch-liboslexec__runtimeoptimize.h32
12 files changed, 244 insertions, 55 deletions
diff --git a/graphics/openshadinglanguage/Makefile b/graphics/openshadinglanguage/Makefile
index 9f22b81497f7..3860727649fe 100644
--- a/graphics/openshadinglanguage/Makefile
+++ b/graphics/openshadinglanguage/Makefile
@@ -3,7 +3,7 @@
PORTNAME= openshadinglanguage
PORTVERSION= 1.3.3
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= graphics devel
MAINTAINER= FreeBSD@Shaneware.biz
@@ -11,12 +11,12 @@ COMMENT= Advanced shading language for production GI renderers
LICENSE= BSD
-BUILD_DEPENDS= llvm>=3.1:${PORTSDIR}/devel/llvm \
- flex>=2.5.37:${PORTSDIR}/textproc/flex
-LIB_DEPENDS= boost_thread:${PORTSDIR}/devel/boost-libs \
- IlmImf:${PORTSDIR}/graphics/OpenEXR \
- OpenImageIO:${PORTSDIR}/graphics/openimageio
-RUN_DEPENDS= llvm>=3.1:${PORTSDIR}/devel/llvm
+BUILD_DEPENDS= llvm-config33:${PORTSDIR}/devel/llvm33 \
+ clang33>=3.3_3:${PORTSDIR}/lang/clang33
+LIB_DEPENDS= libboost_thread.so:${PORTSDIR}/devel/boost-libs \
+ libIlmImf.so:${PORTSDIR}/graphics/OpenEXR \
+ libOpenImageIO.so:${PORTSDIR}/graphics/openimageio
+RUN_DEPENDS= llvm-config33:${PORTSDIR}/devel/llvm33
USE_GITHUB= yes
GH_ACCOUNT= imageworks
@@ -26,27 +26,30 @@ GH_COMMIT= 18671dc
WRKSRC= ${WRKDIR}/imageworks-OpenShadingLanguage-${GH_COMMIT}/src
-CMAKE_ARGS= -DFLEX_EXECUTABLE:STRING=${LOCALBASE}/bin/flex \
- -DUSE_TBB:BOOL=OFF
-CXXFLAGS+= -I${LOCALBASE}/include/flex
+CMAKE_ARGS= -DLLVM_CONFIG:STRING="${LOCALBASE}/bin/llvm-config33"
USE_LDCONFIG= yes
USES= bison cmake:outsource
-NO_STAGE= yes
-.include <bsd.port.pre.mk>
+.include <bsd.port.options.mk>
-.if ${OSVERSION} < 900000
-BUILD_DEPENDS+= clang:${PORTSDIR}/lang/clang
+.if ${ARCH} == i386 && ! ${MACHINE_CPU:Mi586}
+IGNORE= CPUTYPE must be i586 or higher in /etc/make.conf
.endif
-.if ${ARCH} == i386
-CFLAGS+= -march=i586
+.if ${OSVERSION} < 1000033
+BUILD_DEPENDS+= flex>=2.5.37:${PORTSDIR}/textproc/flex
+CMAKE_ARGS+= -DFLEX_EXECUTABLE:STRING=${LOCALBASE}/bin/flex
+CXXFLAGS+= -I${LOCALBASE}/include/flex
.endif
+post-patch:
+ @${REINPLACE_CMD} -e 's,/bin/bash,/bin/sh,' \
+ ${WRKSRC}/liboslexec/serialize-bc.bash
+
post-install:
.for LNAME in oslcomp oslexec oslquery testshade
- cd ${PREFIX}/lib && ${MV} -f lib${LNAME}.so lib${LNAME}.so.1
- cd ${PREFIX}/lib && ${LN} -sf lib${LNAME}.so.1 lib${LNAME}.so
+ ${MV} ${STAGEDIR}${PREFIX}/lib/lib${LNAME}.so ${STAGEDIR}${PREFIX}/lib/lib${LNAME}.so.1
+ ${LN} -s lib${LNAME}.so.1 ${STAGEDIR}${PREFIX}/lib/lib${LNAME}.so
.endfor
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/graphics/openshadinglanguage/files/patch-CMakeLists.txt b/graphics/openshadinglanguage/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..4964a159b8c3
--- /dev/null
+++ b/graphics/openshadinglanguage/files/patch-CMakeLists.txt
@@ -0,0 +1,86 @@
+--- CMakeLists.txt.orig 2013-07-12 01:01:18.000000000 +0200
++++ CMakeLists.txt 2013-11-05 21:12:26.000000000 +0100
+@@ -9,10 +9,8 @@
+ set (OSO_FILE_VERSION_MAJOR 1)
+ set (OSO_FILE_VERSION_MINOR 0)
+
+-cmake_minimum_required (VERSION 2.6)
+-if (NOT CMAKE_VERSION VERSION_LESS 2.8.4)
+- cmake_policy (SET CMP0017 NEW)
+-endif ()
++cmake_minimum_required (VERSION 2.8.7)
++cmake_policy (SET CMP0017 NEW)
+ set (CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE)
+ message (STATUS "Project source dir = ${PROJECT_SOURCE_DIR}")
+ message (STATUS "Project build dir = ${CMAKE_BINARY_DIR}")
+@@ -21,6 +19,8 @@
+ message (FATAL_ERROR "Not allowed to run in-source build!")
+ endif ()
+
++include (CheckCXXSymbolExists)
++
+ if (NOT CMAKE_BUILD_TYPE)
+ set (CMAKE_BUILD_TYPE "Release")
+ endif ()
+@@ -42,12 +42,11 @@
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ message (STATUS "Using gcc ${GCC_VERSION} as the compiler")
+ endif ()
+-if (NOT CMAKE_COMPILER_IS_CLANG)
+- string (REGEX MATCH clang CMAKE_COMPILER_IS_CLANG ${CMAKE_CXX_COMPILER})
+- if (CMAKE_COMPILER_IS_CLANG)
+- set (CMAKE_COMPILER_IS_CLANG 1)
+- message (STATUS "Using clang as the compiler")
+- endif ()
++
++message (STATUS "CMAKE_CXX_COMPILER_ID is ${CMAKE_CXX_COMPILER_ID}")
++if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
++ set (CMAKE_COMPILER_IS_CLANG 1)
++ message (STATUS "Using clang as the compiler")
+ endif ()
+
+ ## turn on more detailed warnings and consider warnings as errors
+@@ -121,6 +120,10 @@
+ endif ()
+ endif ()
+
++# Try to detect libc++, in which case we should force use of Boost
++# Wave (because that avoids a nonstandard g++ extension in the other
++# code path).
++check_cxx_symbol_exists(_LIBCPP_VERSION string OSL_SYSTEM_HAS_LIBCPP)
+
+ set (VERBOSE OFF CACHE BOOL "Print lots of messages while compiling")
+ set (BUILDSTATIC OFF CACHE BOOL "Build static library instead of shared")
+@@ -129,12 +132,16 @@
+ "Use an externally built shared library version of the pugixml library")
+ set (PUGIXML_HOME "" CACHE STRING "Hint about where to find external PugiXML library")
+ if (WIN32)
+- set (USE_BOOST_WAVE ON CACHE BOOL "Use Boost Wave as preprocessor")
+ set (USE_LLVM_BITCODE OFF CACHE BOOL "Generate embedded LLVM bitcode")
+ else ()
+- set (USE_BOOST_WAVE OFF CACHE BOOL "Use Boost Wave as preprocessor")
+ set (USE_LLVM_BITCODE ON CACHE BOOL "Generated embedded LLVM bitcode")
+ endif ()
++if (WIN32 OR OSL_SYSTEM_HAS_LIBCPP)
++ set (USE_BOOST_WAVE ON CACHE BOOL "Use Boost Wave as preprocessor")
++else ()
++ set (USE_BOOST_WAVE OFF CACHE BOOL "Use Boost Wave as preprocessor")
++endif ()
++
+ set (USE_PARTIO ON CACHE BOOL "Use Partio if found")
+
+ if (LLVM_NAMESPACE)
+@@ -149,6 +156,13 @@
+ add_definitions ("${EXTRA_CPP_DEFINITIONS}")
+ endif()
+
++if (USE_BOOST_WAVE)
++ add_definitions ("-DUSE_BOOST_WAVE")
++endif ()
++
++if (CMAKE_COMPILER_IS_CLANG AND OSL_SYSTEM_HAS_LIBCPP)
++ message (STATUS "Using libc++")
++endif ()
+
+ set (CMAKE_MODULE_PATH
+ "${PROJECT_SOURCE_DIR}/cmake/modules"
diff --git a/graphics/openshadinglanguage/files/patch-cmake_platform.cmake b/graphics/openshadinglanguage/files/patch-cmake_platform.cmake
deleted file mode 100644
index 5cfc64c1bf2f..000000000000
--- a/graphics/openshadinglanguage/files/patch-cmake_platform.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
---- ./cmake/platform.cmake.orig 2013-07-19 15:08:25.918110424 +0930
-+++ ./cmake/platform.cmake 2013-07-19 15:11:10.254109449 +0930
-@@ -32,6 +32,9 @@
- elseif (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
- set (platform "FreeBSD")
- set (CXXFLAGS "${CXXFLAGS} -DFREEBSD")
-+ if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i386")
-+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=i586")
-+ endif()
- else ()
- string (TOLOWER ${CMAKE_SYSTEM_NAME} platform)
- endif ()
diff --git a/graphics/openshadinglanguage/files/patch-liboslcomp__CMakeLists.txt b/graphics/openshadinglanguage/files/patch-liboslcomp__CMakeLists.txt
new file mode 100644
index 000000000000..23352762a228
--- /dev/null
+++ b/graphics/openshadinglanguage/files/patch-liboslcomp__CMakeLists.txt
@@ -0,0 +1,9 @@
+--- ./liboslcomp/CMakeLists.txt.orig 2013-07-12 08:31:18.000000000 +0930
++++ ./liboslcomp/CMakeLists.txt 2013-11-03 18:07:25.644118883 +1030
+@@ -29,6 +29,3 @@
+ INSTALL ( TARGETS oslcomp LIBRARY DESTINATION lib )
+ endif ()
+
+-IF ( USE_BOOST_WAVE )
+- ADD_DEFINITIONS ( -DUSE_BOOST_WAVE )
+-ENDIF ()
diff --git a/graphics/openshadinglanguage/files/patch-liboslcomp__oslcomp.cpp b/graphics/openshadinglanguage/files/patch-liboslcomp__oslcomp.cpp
new file mode 100644
index 000000000000..b055de1aad37
--- /dev/null
+++ b/graphics/openshadinglanguage/files/patch-liboslcomp__oslcomp.cpp
@@ -0,0 +1,20 @@
+--- ./liboslcomp/oslcomp.cpp.orig 2013-07-12 08:31:18.000000000 +0930
++++ ./liboslcomp/oslcomp.cpp 2013-11-03 18:07:25.646119281 +1030
+@@ -32,7 +32,7 @@
+ #include <fstream>
+ #include <cstdio>
+ #include <streambuf>
+-#ifdef __GNUC__
++#if defined(__GNUC__) && !defined(_LIBCPP_VERSION) && !defined(USE_BOOST_WAVE)
+ # include <ext/stdio_filebuf.h>
+ #endif
+ #include <cstdio>
+@@ -268,7 +268,7 @@
+ // std::cout << "cpp command:\n>" << cppcommand << "<\n";
+ FILE *cpppipe = popen (cppcommand.c_str(), "r");
+
+-#ifdef __GNUC__
++#if defined(__GNUC__) && !defined(_LIBCPP_VERSION)
+ __gnu_cxx::stdio_filebuf<char> fb (cpppipe, std::ios::in);
+ #else
+ std::filebuf fb (cpppipe);
diff --git a/graphics/openshadinglanguage/files/patch-liboslexec__CMakeLists.txt b/graphics/openshadinglanguage/files/patch-liboslexec__CMakeLists.txt
deleted file mode 100644
index a836cccb81ae..000000000000
--- a/graphics/openshadinglanguage/files/patch-liboslexec__CMakeLists.txt
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./liboslexec/CMakeLists.txt.orig 2013-02-15 11:22:42.000000000 +1030
-+++ ./liboslexec/CMakeLists.txt 2013-02-17 07:11:28.388647893 +1030
-@@ -95,7 +95,7 @@
- -I${Boost_INCLUDE_DIRS} -I${TBB_INCLUDES} -O3 -S -emit-llvm -o ${llvm_asm} ${llvm_src}
-
- COMMAND ${LLVM_DIRECTORY}/bin/llvm-as -f -o ${llvm_bc} ${llvm_asm}
-- COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/serialize-bc.bash ${llvm_bc} ${llvm_bc_cpp}
-+ COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/serialize-bc.bash ${llvm_bc} ${llvm_bc_cpp}
- MAIN_DEPENDENCY ${llvm_src}
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/serialize-bc.bash
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
diff --git a/graphics/openshadinglanguage/files/patch-liboslexec__constfold.cpp b/graphics/openshadinglanguage/files/patch-liboslexec__constfold.cpp
new file mode 100644
index 000000000000..32257b5a57f8
--- /dev/null
+++ b/graphics/openshadinglanguage/files/patch-liboslexec__constfold.cpp
@@ -0,0 +1,42 @@
+--- ./liboslexec/constfold.cpp.orig 2013-07-12 08:31:18.000000000 +0930
++++ ./liboslexec/constfold.cpp 2013-11-03 18:07:25.648118961 +1030
+@@ -882,19 +882,22 @@
+ {
+ Opcode &op (rop.inst()->ops()[opnum]);
+ // Symbol &R (*rop.inst()->argsymbol(op.firstarg()+0));
+- Symbol &Str (*rop.inst()->argsymbol(op.firstarg()+1));
+- Symbol &Results (*rop.inst()->argsymbol(op.firstarg()+2));
+- Symbol &Sep (*rop.inst()->argsymbol(op.firstarg()+3));
+- Symbol &Maxsplit (*rop.inst()->argsymbol(op.firstarg()+4));
+- if (Str.is_constant() && Sep.is_constant() && Maxsplit.is_constant()) {
++ Symbol &Str (*rop.opargsym (op, 1));
++ Symbol &Results (*rop.opargsym (op, 2));
++ Symbol *Sep (rop.opargsym (op, 3));
++ Symbol *Maxsplit (rop.opargsym (op, 4));
++ if (Str.is_constant() && (!Sep || Sep->is_constant()) &&
++ (!Maxsplit || Maxsplit->is_constant())) {
+ // The split string, separator string, and maxsplit are all constants.
+ // Compute the results with Strutil::split.
+ int resultslen = Results.typespec().arraylength();
+- int maxsplit = Imath::clamp (*(int *)Maxsplit.data(), 0, resultslen);
++ int maxsplit = Maxsplit ? *(int *)Maxsplit->data() : resultslen;
++ maxsplit = std::min (maxsplit, resultslen);
+ std::vector<std::string> splits;
++ ustring sep = Sep ? (*(ustring *)Sep->data()) : ustring("");
+ Strutil::split ((*(ustring *)Str.data()).string(), splits,
+- (*(ustring *)Sep.data()).string(), maxsplit);
+- int n = std::min (maxsplit, (int)splits.size());
++ sep.string(), maxsplit);
++ int n = std::min (std::max(0,maxsplit), (int)splits.size());
+ // Temporarily stash the index of the symbol holding results
+ int resultsarg = rop.inst()->args()[op.firstarg()+2];
+ // Turn the 'split' into a straight assignment of the return value...
+@@ -1337,7 +1340,7 @@
+ *(const float *)Y.data() == 2.0f) {
+ // Turn x^2 into x*x, even if x is not constant
+ static ustring kmul("mul");
+- op.reset (kmul, 2);
++ op.reset (kmul, 3);
+ rop.inst()->args()[op.firstarg()+2] = rop.inst()->args()[op.firstarg()+1];
+ return 1;
+ }
diff --git a/graphics/openshadinglanguage/files/patch-liboslexec__dictionary.cpp b/graphics/openshadinglanguage/files/patch-liboslexec__dictionary.cpp
new file mode 100644
index 000000000000..140cff69b567
--- /dev/null
+++ b/graphics/openshadinglanguage/files/patch-liboslexec__dictionary.cpp
@@ -0,0 +1,11 @@
+--- ./liboslexec/dictionary.cpp.orig 2013-07-12 08:31:18.000000000 +0930
++++ ./liboslexec/dictionary.cpp 2013-11-03 18:07:25.650119434 +1030
+@@ -50,7 +50,7 @@
+ namespace pvt { // OSL::pvt
+
+
+-#ifndef USE_EXTERNAL_PUGIXML
++#ifdef USING_OIIO_PUGI
+ namespace pugi = OIIO::pugi;
+ #endif
+
diff --git a/graphics/openshadinglanguage/files/patch-liboslexec__llvm_gen.cpp b/graphics/openshadinglanguage/files/patch-liboslexec__llvm_gen.cpp
new file mode 100644
index 000000000000..fded2ed86124
--- /dev/null
+++ b/graphics/openshadinglanguage/files/patch-liboslexec__llvm_gen.cpp
@@ -0,0 +1,11 @@
+--- ./liboslexec/llvm_gen.cpp.orig 2013-07-12 08:31:18.000000000 +0930
++++ ./liboslexec/llvm_gen.cpp 2013-11-03 18:07:25.652119256 +1030
+@@ -3310,7 +3310,7 @@
+ Symbol& Results = *rop.opargsym (op, 2);
+ DASSERT (R.typespec().is_int() && Str.typespec().is_string() &&
+ Results.typespec().is_array() &&
+- Results.typespec().simpletype() == TypeDesc::TypeString);
++ Results.typespec().is_string_based());
+
+ llvm::Value *args[5];
+ args[0] = rop.llvm_load_value (Str);
diff --git a/graphics/openshadinglanguage/files/patch-liboslexec__llvm_instance.cpp b/graphics/openshadinglanguage/files/patch-liboslexec__llvm_instance.cpp
new file mode 100644
index 000000000000..3808fd86d4d6
--- /dev/null
+++ b/graphics/openshadinglanguage/files/patch-liboslexec__llvm_instance.cpp
@@ -0,0 +1,11 @@
+--- ./liboslexec/llvm_instance.cpp.orig 2013-07-12 08:31:18.000000000 +0930
++++ ./liboslexec/llvm_instance.cpp 2013-11-03 18:07:25.654119237 +1030
+@@ -809,7 +809,7 @@
+ {
+ // Make a layer function: void layer_func(ShaderGlobals*, GroupData*)
+ // Note that the GroupData* is passed as a void*.
+- std::string unique_layer_name = Strutil::format ("%s_%d", inst()->layername().c_str(), inst()->id());
++ std::string unique_layer_name = Strutil::format ("%s_%d", inst()->layername(), inst()->id());
+
+ m_layer_func = llvm::cast<llvm::Function>(m_llvm_module->getOrInsertFunction(unique_layer_name,
+ llvm_type_void(), llvm_type_sg_ptr(),
diff --git a/graphics/openshadinglanguage/files/patch-liboslexec__llvm_ops.cpp b/graphics/openshadinglanguage/files/patch-liboslexec__llvm_ops.cpp
deleted file mode 100644
index d5d1ea974f91..000000000000
--- a/graphics/openshadinglanguage/files/patch-liboslexec__llvm_ops.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
---- ./liboslexec/llvm_ops.cpp.orig 2013-02-17 07:12:22.136610427 +1030
-+++ ./liboslexec/llvm_ops.cpp 2013-02-17 07:13:26.175610292 +1030
-@@ -127,8 +127,8 @@
-
- #if defined(__FreeBSD__)
- #include <sys/param.h>
--#if __FreeBSD_version < 803000
--// freebsd before 8.3 doesn't have log2f - use OIIO lib replacement
-+#if __FreeBSD_version < 802502
-+// freebsd before 8.2-STABLE doesn't have log2f - use OIIO lib replacement
- using OIIO::log2f;
- #endif
- #endif
diff --git a/graphics/openshadinglanguage/files/patch-liboslexec__runtimeoptimize.h b/graphics/openshadinglanguage/files/patch-liboslexec__runtimeoptimize.h
new file mode 100644
index 000000000000..a67b1b2d4494
--- /dev/null
+++ b/graphics/openshadinglanguage/files/patch-liboslexec__runtimeoptimize.h
@@ -0,0 +1,32 @@
+--- ./liboslexec/runtimeoptimize.h.orig 2013-07-12 08:31:18.000000000 +0930
++++ ./liboslexec/runtimeoptimize.h 2013-11-03 18:07:25.656119123 +1030
+@@ -345,7 +345,8 @@
+ /// Helper: return the ptr to the symbol that is the argnum-th
+ /// argument to the given op.
+ Symbol *opargsym (const Opcode &op, int argnum) {
+- return inst()->argsymbol (op.firstarg()+argnum);
++ return (argnum < op.nargs()) ?
++ inst()->argsymbol (op.firstarg()+argnum) : NULL;
+ }
+
+ /// Create an llvm function for the whole shader group, JIT it,
+@@ -826,7 +827,7 @@
+ ///
+ llvm::BasicBlock *llvm_exit_instance_block () {
+ if (! m_exit_instance_block) {
+- std::string name = Strutil::format ("%s_%d_exit_", inst()->layername().c_str(), inst()->id());
++ std::string name = Strutil::format ("%s_%d_exit_", inst()->layername(), inst()->id());
+ m_exit_instance_block = llvm_new_basic_block (name);
+ }
+ return m_exit_instance_block;
+@@ -887,8 +888,8 @@
+ int m_local_unknown_message_sent; ///< Non-const setmessage in this inst
+ std::vector<ustring> m_local_messages_sent; ///< Messages set in this inst
+ std::vector<int> m_bblockids; ///< Basic block IDs for each op
+- std::vector<bool> m_in_conditional; ///< Whether each op is in a cond
+- std::vector<bool> m_in_loop; ///< Whether each op is in a loop
++ std::vector<char> m_in_conditional; ///< Whether each op is in a cond
++ std::vector<char> m_in_loop; ///< Whether each op is in a loop
+ std::vector<int> m_layer_remap; ///< Remapping of layer ordering
+ std::set<int> m_layers_already_run; ///< List of layers run
+ int m_num_used_layers; ///< Number of layers actually used