diff --git a/Android.mk b/Android.mk
index 09141b3..bccaf14 100644
--- a/Android.mk
+++ b/Android.mk
@@ -18,10 +18,10 @@
 swiftshader_root := $(LOCAL_PATH)
 
 # LLVM version for SwiftShader
-SWIFTSHADER_LLVM_VERSION ?= 3
+REACTOR_LLVM_VERSION ?= 3
 
 
-ifeq ($(SWIFTSHADER_LLVM_VERSION),3)
+ifeq ($(REACTOR_LLVM_VERSION),3)
 # Reactor with LLVM 3.0 doesn't support ARM.  Use Subzero as the Reactor JIT
 # back-end on ARM.
 ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm))
@@ -35,7 +35,7 @@
 swiftshader_requires_cxx11 := true
 endif
 
-ifeq ($(SWIFTSHADER_LLVM_VERSION),7)
+ifeq ($(REACTOR_LLVM_VERSION),7)
 swiftshader_requires_cxx11 := true
 endif
 
@@ -48,13 +48,13 @@
 
 
 # Check whether $(TARGET_ARCH) is supported.
-ifeq ($(SWIFTSHADER_LLVM_VERSION),3)
+ifeq ($(REACTOR_LLVM_VERSION),3)
 ifneq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64 arm))
 swiftshader_unsupported_build := true
 endif
 endif
 
-ifeq ($(SWIFTSHADER_LLVM_VERSION),7)
+ifeq ($(REACTOR_LLVM_VERSION),7)
 ifneq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64 arm arm64))
 swiftshader_unsupported_build := true
 endif
@@ -64,7 +64,7 @@
 ifneq ($(swiftshader_unsupported_build),true)
 include $(swiftshader_root)/src/Android.mk
 include $(swiftshader_root)/tests/unittests/Android.mk
-ifeq ($(SWIFTSHADER_LLVM_VERSION),3)
+ifeq ($(REACTOR_LLVM_VERSION),3)
 include $(swiftshader_root)/third_party/LLVM/Android.mk
 else
 include $(swiftshader_root)/third_party/llvm-7.0/Android.mk
diff --git a/CMakeLists.txt b/CMakeLists.txt
index babffbb..e526d33 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -73,7 +73,7 @@
 set(REACTOR_BACKEND DEFAULT_REACTOR_BACKEND CACHE STRING "JIT compiler back-end used by Reactor")
 set_property(CACHE REACTOR_BACKEND PROPERTY STRINGS LLVM Subzero)
 
-set(SWIFTSHADER_LLVM_VERSION "3" CACHE STRING "LLVM version used by Reactor")
+set(REACTOR_LLVM_VERSION "3" CACHE STRING "LLVM version used by Reactor")
 
 # LLVM disallows calling cmake . from the main LLVM dir, the reason is that
 # it builds header files that could overwrite the orignal ones. Here we
@@ -163,7 +163,7 @@
 set(OPENGL_DIR ${SOURCE_DIR}/OpenGL)
 set(OPENGL_COMPILER_DIR ${OPENGL_DIR}/compiler)
 set(VULKAN_DIR ${SOURCE_DIR}/Vulkan)
-if(SWIFTSHADER_LLVM_VERSION EQUAL 3)
+if(REACTOR_LLVM_VERSION EQUAL 3)
     set(LLVM_DIR ${CMAKE_SOURCE_DIR}/third_party/LLVM)
 else()
     set(LLVM_DIR ${CMAKE_SOURCE_DIR}/third_party/llvm-7.0/llvm)
@@ -265,9 +265,9 @@
 # LLVM
 ###########################################################
 
-add_definitions(-DSWIFTSHADER_LLVM_VERSION=${SWIFTSHADER_LLVM_VERSION})
+add_definitions(-DREACTOR_LLVM_VERSION=${REACTOR_LLVM_VERSION})
 
-if(SWIFTSHADER_LLVM_VERSION EQUAL 3)
+if(REACTOR_LLVM_VERSION EQUAL 3)
 
 set(LLVM_LIST
     ${LLVM_DIR}/lib/Analysis/AliasAnalysis.cpp
@@ -633,7 +633,7 @@
     ${LLVM_DIR}/lib/Target/X86
 )
 
-elseif(SWIFTSHADER_LLVM_VERSION EQUAL 7)
+elseif(REACTOR_LLVM_VERSION EQUAL 7)
 
 set(LLVM_LIST
     ${LLVM_DIR}/lib/Analysis/AliasAnalysis.cpp
@@ -1637,7 +1637,7 @@
     ${LLVM_CONFIG_DIR}/common/lib/Transforms/InstCombine
 )
 
-endif()  # SWIFTSHADER_LLVM_VERSION
+endif()  # REACTOR_LLVM_VERSION
 
 add_library(llvm STATIC ${LLVM_LIST})
 set_target_properties(llvm PROPERTIES
diff --git a/src/Android.mk b/src/Android.mk
index f9b30e0..9e06bea 100644
--- a/src/Android.mk
+++ b/src/Android.mk
@@ -17,7 +17,7 @@
 
 else
 
-ifeq ($(SWIFTSHADER_LLVM_VERSION),3)
+ifeq ($(REACTOR_LLVM_VERSION),3)
 COMMON_C_INCLUDES += \
 	$(LOCAL_PATH)/../third_party/LLVM/include
 else
@@ -156,7 +156,7 @@
 endif
 
 # Common LLVM defines
-COMMON_CFLAGS += -DSWIFTSHADER_LLVM_VERSION=$(SWIFTSHADER_LLVM_VERSION)
+COMMON_CFLAGS += -DREACTOR_LLVM_VERSION=$(REACTOR_LLVM_VERSION)
 
 # Common Subzero defines
 COMMON_CFLAGS += -DALLOW_DUMP=0 -DALLOW_TIMERS=0 -DALLOW_LLVM_CL=0 -DALLOW_LLVM_IR=0 -DALLOW_LLVM_IR_AS_INPUT=0 -DALLOW_MINIMAL_BUILD=0 -DALLOW_WASM=0 -DICE_THREAD_LOCAL_HACK=1
diff --git a/src/Reactor/LLVMReactor.cpp b/src/Reactor/LLVMReactor.cpp
index dac87a7..ca0c0ae 100644
--- a/src/Reactor/LLVMReactor.cpp
+++ b/src/Reactor/LLVMReactor.cpp
@@ -23,7 +23,7 @@
 #undef min
 #undef max
 
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 	#include "llvm/Analysis/LoopPass.h"
 	#include "llvm/Constants.h"
 	#include "llvm/Function.h"
@@ -103,7 +103,7 @@
 }
 #endif
 
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 namespace llvm
 {
 	extern bool JITEmitDebugInfo;
@@ -125,7 +125,7 @@
 
 	rr::MutexLock codegenMutex;
 
-#if SWIFTSHADER_LLVM_VERSION >= 7
+#if REACTOR_LLVM_VERSION >= 7
 	llvm::Value *lowerPAVG(llvm::Value *x, llvm::Value *y)
 	{
 		llvm::VectorType *ty = llvm::cast<llvm::VectorType>(x->getType());
@@ -441,12 +441,12 @@
 		return ret;
 	}
 #endif  // !defined(__i386__) && !defined(__x86_64__)
-#endif  // SWIFTSHADER_LLVM_VERSION >= 7
+#endif  // REACTOR_LLVM_VERSION >= 7
 }
 
 namespace rr
 {
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 	class LLVMReactorJIT
 	{
 	private:
@@ -804,7 +804,7 @@
 
 		llvm::InitializeNativeTarget();
 
-#if SWIFTSHADER_LLVM_VERSION >= 7
+#if REACTOR_LLVM_VERSION >= 7
 		llvm::InitializeNativeTargetAsmPrinter();
 		llvm::InitializeNativeTargetAsmParser();
 #endif
@@ -834,7 +834,7 @@
 		mattrs.push_back(CPUID::supportsSSE2()   ? "+sse2"   : "-sse2");
 		mattrs.push_back(CPUID::supportsSSE3()   ? "+sse3"   : "-sse3");
 		mattrs.push_back(CPUID::supportsSSSE3()  ? "+ssse3"  : "-ssse3");
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 		mattrs.push_back(CPUID::supportsSSE4_1() ? "+sse41"  : "-sse41");
 #else
 		mattrs.push_back(CPUID::supportsSSE4_1() ? "+sse4.1" : "-sse4.1");
@@ -848,7 +848,7 @@
 #endif
 #endif
 
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 		llvm::JITEmitDebugInfo = false;
 		llvm::UnsafeFPMath = true;
 		// llvm::NoInfsFPMath = true;
@@ -862,7 +862,7 @@
 
 		if(!::reactorJIT)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			::reactorJIT = new LLVMReactorJIT(arch, mattrs);
 #else
 			::reactorJIT = new LLVMReactorJIT(arch, mattrs, targetOpts);
@@ -875,7 +875,7 @@
 		{
 			::builder = new llvm::IRBuilder<>(*::context);
 
-			#if defined(_WIN32) && SWIFTSHADER_LLVM_VERSION < 7
+			#if defined(_WIN32) && REACTOR_LLVM_VERSION < 7
 				HMODULE CodeAnalyst = LoadLibrary("CAJitNtfyLib.dll");
 				if(CodeAnalyst)
 				{
@@ -914,7 +914,7 @@
 
 		if(false)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			std::string error;
 #else
 			std::error_code error;
@@ -930,7 +930,7 @@
 
 		if(false)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			std::string error;
 #else
 			std::error_code error;
@@ -941,7 +941,7 @@
 
 		LLVMRoutine *routine = ::reactorJIT->acquireRoutine(::function);
 
-#if defined(_WIN32) && SWIFTSHADER_LLVM_VERSION < 7
+#if defined(_WIN32) && REACTOR_LLVM_VERSION < 7
 		if(CodeAnalystLogJITCode)
 		{
 			CodeAnalystLogJITCode(routine->getEntry(), routine->getCodeSize(), name);
@@ -965,7 +965,7 @@
 
 		if(arraySize)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			declaration = new llvm::AllocaInst(T(type), V(Nucleus::createConstantInt(arraySize)));
 #else
 			declaration = new llvm::AllocaInst(T(type), 0, V(Nucleus::createConstantInt(arraySize)));
@@ -973,7 +973,7 @@
 		}
 		else
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			declaration = new llvm::AllocaInst(T(type), (llvm::Value*)nullptr);
 #else
 			declaration = new llvm::AllocaInst(T(type), 0, (llvm::Value*)nullptr);
@@ -1007,7 +1007,7 @@
 		::function = llvm::Function::Create(functionType, llvm::GlobalValue::InternalLinkage, "", ::module);
 		::function->setCallingConv(llvm::CallingConv::C);
 
-		#if defined(_WIN32) && SWIFTSHADER_LLVM_VERSION >= 7
+		#if defined(_WIN32) && REACTOR_LLVM_VERSION >= 7
 			// FIXME(capn):
 			// On Windows, stack memory is committed in increments of 4 kB pages, with the last page
 			// having a trap which allows the OS to grow the stack. For functions with a stack frame
@@ -6946,7 +6946,7 @@
 
 		RValue<Float> sqrtss(RValue<Float> val)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			llvm::Function *sqrtss = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::x86_sse_sqrt_ss);
 			Value *vector = Nucleus::createInsertElement(V(llvm::UndefValue::get(T(Float4::getType()))), val.value, 0);
 
@@ -6975,7 +6975,7 @@
 
 		RValue<Float4> sqrtps(RValue<Float4> val)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			llvm::Function *sqrtps = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::x86_sse_sqrt_ps);
 #else
 			llvm::Function *sqrtps = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::sqrt, {V(val.value)->getType()});
@@ -7044,7 +7044,7 @@
 
 		RValue<Int4> pabsd(RValue<Int4> x)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			llvm::Function *pabsd = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::x86_ssse3_pabs_d_128);
 
 			return RValue<Int4>(V(::builder->CreateCall(pabsd, ARGS(V(x.value)))));
@@ -7111,7 +7111,7 @@
 
 		RValue<UShort4> pavgw(RValue<UShort4> x, RValue<UShort4> y)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			llvm::Function *pavgw = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::x86_sse2_pavg_w);
 
 			return As<UShort4>(V(::builder->CreateCall2(pavgw, ARGS(V(x.value), V(y.value)))));
@@ -7122,7 +7122,7 @@
 
 		RValue<Short4> pmaxsw(RValue<Short4> x, RValue<Short4> y)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			llvm::Function *pmaxsw = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::x86_sse2_pmaxs_w);
 
 			return As<Short4>(V(::builder->CreateCall2(pmaxsw, ARGS(V(x.value), V(y.value)))));
@@ -7133,7 +7133,7 @@
 
 		RValue<Short4> pminsw(RValue<Short4> x, RValue<Short4> y)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			llvm::Function *pminsw = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::x86_sse2_pmins_w);
 
 			return As<Short4>(V(::builder->CreateCall2(pminsw, ARGS(V(x.value), V(y.value)))));
@@ -7144,7 +7144,7 @@
 
 		RValue<Short4> pcmpgtw(RValue<Short4> x, RValue<Short4> y)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			llvm::Function *pcmpgtw = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::x86_sse2_pcmpgt_w);
 
 			return As<Short4>(V(::builder->CreateCall2(pcmpgtw, ARGS(V(x.value), V(y.value)))));
@@ -7155,7 +7155,7 @@
 
 		RValue<Short4> pcmpeqw(RValue<Short4> x, RValue<Short4> y)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			llvm::Function *pcmpeqw = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::x86_sse2_pcmpeq_w);
 
 			return As<Short4>(V(::builder->CreateCall2(pcmpeqw, ARGS(V(x.value), V(y.value)))));
@@ -7166,7 +7166,7 @@
 
 		RValue<Byte8> pcmpgtb(RValue<SByte8> x, RValue<SByte8> y)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			llvm::Function *pcmpgtb = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::x86_sse2_pcmpgt_b);
 
 			return As<Byte8>(V(::builder->CreateCall2(pcmpgtb, ARGS(V(x.value), V(y.value)))));
@@ -7177,7 +7177,7 @@
 
 		RValue<Byte8> pcmpeqb(RValue<Byte8> x, RValue<Byte8> y)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			llvm::Function *pcmpeqb = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::x86_sse2_pcmpeq_b);
 
 			return As<Byte8>(V(::builder->CreateCall2(pcmpeqb, ARGS(V(x.value), V(y.value)))));
@@ -7317,7 +7317,7 @@
 
 		RValue<Int4> pmaxsd(RValue<Int4> x, RValue<Int4> y)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			llvm::Function *pmaxsd = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::x86_sse41_pmaxsd);
 
 			return RValue<Int4>(V(::builder->CreateCall2(pmaxsd, ARGS(V(x.value), V(y.value)))));
@@ -7328,7 +7328,7 @@
 
 		RValue<Int4> pminsd(RValue<Int4> x, RValue<Int4> y)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			llvm::Function *pminsd = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::x86_sse41_pminsd);
 
 			return RValue<Int4>(V(::builder->CreateCall2(pminsd, ARGS(V(x.value), V(y.value)))));
@@ -7339,7 +7339,7 @@
 
 		RValue<UInt4> pmaxud(RValue<UInt4> x, RValue<UInt4> y)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			llvm::Function *pmaxud = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::x86_sse41_pmaxud);
 
 			return RValue<UInt4>(V(::builder->CreateCall2(pmaxud, ARGS(V(x.value), V(y.value)))));
@@ -7350,7 +7350,7 @@
 
 		RValue<UInt4> pminud(RValue<UInt4> x, RValue<UInt4> y)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			llvm::Function *pminud = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::x86_sse41_pminud);
 
 			return RValue<UInt4>(V(::builder->CreateCall2(pminud, ARGS(V(x.value), V(y.value)))));
@@ -7417,7 +7417,7 @@
 
 		RValue<Int4> pmovzxbd(RValue<Byte16> x)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			llvm::Function *pmovzxbd = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::x86_sse41_pmovzxbd);
 
 			return RValue<Int4>(V(::builder->CreateCall(pmovzxbd, ARGS(V(x.value)))));
@@ -7428,7 +7428,7 @@
 
 		RValue<Int4> pmovsxbd(RValue<SByte16> x)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			llvm::Function *pmovsxbd = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::x86_sse41_pmovsxbd);
 
 			return RValue<Int4>(V(::builder->CreateCall(pmovsxbd, ARGS(V(x.value)))));
@@ -7439,7 +7439,7 @@
 
 		RValue<Int4> pmovzxwd(RValue<UShort8> x)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			llvm::Function *pmovzxwd = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::x86_sse41_pmovzxwd);
 
 			return RValue<Int4>(V(::builder->CreateCall(pmovzxwd, ARGS(V(x.value)))));
@@ -7450,7 +7450,7 @@
 
 		RValue<Int4> pmovsxwd(RValue<Short8> x)
 		{
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 			llvm::Function *pmovsxwd = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::x86_sse41_pmovsxwd);
 
 			return RValue<Int4>(V(::builder->CreateCall(pmovsxwd, ARGS(V(x.value)))));
diff --git a/src/Reactor/LLVMRoutine.cpp b/src/Reactor/LLVMRoutine.cpp
index 7f3fb18..a2f5eab 100644
--- a/src/Reactor/LLVMRoutine.cpp
+++ b/src/Reactor/LLVMRoutine.cpp
@@ -19,7 +19,7 @@
 
 namespace rr
 {
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 	LLVMRoutine::LLVMRoutine(int bufferSize) : bufferSize(bufferSize)
 	{
 		void *memory = allocateExecutable(bufferSize);
diff --git a/src/Reactor/LLVMRoutine.hpp b/src/Reactor/LLVMRoutine.hpp
index 06aaef6..52d7126 100644
--- a/src/Reactor/LLVMRoutine.hpp
+++ b/src/Reactor/LLVMRoutine.hpp
@@ -21,7 +21,7 @@
 
 namespace rr
 {
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 	class LLVMRoutineManager;
 
 	class LLVMRoutine : public Routine
@@ -76,7 +76,7 @@
 		LLVMReactorJIT *reactorJIT;
 		uint64_t moduleKey;
 	};
-#endif  // SWIFTSHADER_LLVM_VERSION < 7
+#endif  // REACTOR_LLVM_VERSION < 7
 }
 
 #endif   // rr_LLVMRoutine_hpp
diff --git a/src/Reactor/LLVMRoutineManager.cpp b/src/Reactor/LLVMRoutineManager.cpp
index 77a00cd..7b7a9b0 100644
--- a/src/Reactor/LLVMRoutineManager.cpp
+++ b/src/Reactor/LLVMRoutineManager.cpp
@@ -14,7 +14,7 @@
 
 #include "LLVMRoutineManager.hpp"
 
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 
 #include "LLVMRoutine.hpp"
 #include "llvm/Function.h"
@@ -149,4 +149,4 @@
 	}
 }
 
-#endif  // SWIFTSHADER_LLVM_VERSION < 7
+#endif  // REACTOR_LLVM_VERSION < 7
diff --git a/src/Reactor/LLVMRoutineManager.hpp b/src/Reactor/LLVMRoutineManager.hpp
index e96d85e..3363362 100644
--- a/src/Reactor/LLVMRoutineManager.hpp
+++ b/src/Reactor/LLVMRoutineManager.hpp
@@ -15,7 +15,7 @@
 #ifndef rr_LLVMRoutineManager_hpp
 #define rr_LLVMRoutineManager_hpp
 
-#if SWIFTSHADER_LLVM_VERSION < 7
+#if REACTOR_LLVM_VERSION < 7
 
 #include "llvm/ExecutionEngine/JITMemoryManager.h"
 #include "llvm/GlobalValue.h"
@@ -56,6 +56,6 @@
 	};
 }
 
-#endif  // SWIFTSHADER_LLVM_VERSION < 7
+#endif  // REACTOR_LLVM_VERSION < 7
 
 #endif   // rr_LLVMRoutineManager_hpp
