diff --git a/src/Pipeline/BUILD.gn b/src/Pipeline/BUILD.gn
index 998cb47..d579689 100644
--- a/src/Pipeline/BUILD.gn
+++ b/src/Pipeline/BUILD.gn
@@ -43,10 +43,10 @@
     "SpirvShaderArithmetic.cpp",
     "SpirvShaderControlFlow.cpp",
     "SpirvShaderDebugger.cpp",
-    "SpirvShaderEnumNames.cpp",
     "SpirvShaderGLSLstd450.cpp",
     "SpirvShaderGroup.cpp",
     "SpirvShaderImage.cpp",
+    "SpirvShaderInstructions.cpp",
     "SpirvShaderMemory.cpp",
     "SpirvShaderSampling.cpp",
     "SpirvShaderSpec.cpp",
diff --git a/src/Pipeline/CMakeLists.txt b/src/Pipeline/CMakeLists.txt
index 7b92eff..ba8c1f2 100644
--- a/src/Pipeline/CMakeLists.txt
+++ b/src/Pipeline/CMakeLists.txt
@@ -38,7 +38,6 @@
     SpirvShaderArithmetic.cpp
     SpirvShaderControlFlow.cpp
     SpirvShaderDebugger.cpp
-    SpirvShaderEnumNames.cpp
     SpirvShaderGLSLstd450.cpp
     SpirvShaderGroup.cpp
     SpirvShaderImage.cpp
diff --git a/src/Pipeline/SpirvShader.cpp b/src/Pipeline/SpirvShader.cpp
index 0c8ab83..581511c 100644
--- a/src/Pipeline/SpirvShader.cpp
+++ b/src/Pipeline/SpirvShader.cpp
@@ -483,7 +483,7 @@
 			case spv::OpFunctionParameter:
 				// These should have all been removed by preprocessing passes. If we see them here,
 				// our assumptions are wrong and we will probably generate wrong code.
-				UNREACHABLE("%s should have already been lowered.", OpcodeName(opcode).c_str());
+				UNREACHABLE("%s should have already been lowered.", OpcodeName(opcode));
 				break;
 
 			case spv::OpFunctionCall:
@@ -743,7 +743,7 @@
 			}
 
 			default:
-				UNSUPPORTED("%s", OpcodeName(opcode).c_str());
+				UNSUPPORTED("%s", OpcodeName(opcode));
 		}
 	}
 
@@ -987,7 +987,7 @@
 			return 1;
 
 		default:
-			UNREACHABLE("%s", OpcodeName(insn.opcode()).c_str());
+			UNREACHABLE("%s", OpcodeName(insn.opcode()));
 			return 0;
 	}
 }
@@ -1110,7 +1110,7 @@
 				d->InsideMatrix = true;
 				break;
 			default:
-				UNREACHABLE("%s", OpcodeName(type.definition.opcode()).c_str());
+				UNREACHABLE("%s", OpcodeName(type.definition.opcode()));
 		}
 	}
 }
@@ -1219,7 +1219,7 @@
 				break;
 			}
 			default:
-				UNREACHABLE("%s", OpcodeName(type.definition.opcode()).c_str());
+				UNREACHABLE("%s", OpcodeName(type.definition.opcode()));
 		}
 	}
 
@@ -1300,7 +1300,7 @@
 			}
 
 			default:
-				UNREACHABLE("%s", OpcodeName(type.opcode()).c_str());
+				UNREACHABLE("%s", OpcodeName(type.opcode()));
 		}
 	}
 
@@ -1346,7 +1346,7 @@
 			}
 
 			default:
-				UNREACHABLE("%s", OpcodeName(type.opcode()).c_str());
+				UNREACHABLE("%s", OpcodeName(type.opcode()));
 		}
 	}
 
@@ -2028,7 +2028,7 @@
 			return EmitArrayLength(insn, state);
 
 		default:
-			UNREACHABLE("%s", OpcodeName(opcode).c_str());
+			UNREACHABLE("%s", OpcodeName(opcode));
 			break;
 	}
 
@@ -2328,7 +2328,7 @@
 					v = ExchangeAtomic(Pointer<UInt>(&ptr.base[offset]), laneValue, memoryOrder);
 					break;
 				default:
-					UNREACHABLE("%s", OpcodeName(insn.opcode()).c_str());
+					UNREACHABLE("%s", OpcodeName(insn.opcode()));
 					break;
 			}
 			result = Insert(result, v, j);
diff --git a/src/Pipeline/SpirvShader.hpp b/src/Pipeline/SpirvShader.hpp
index ef1a460..826aff3 100644
--- a/src/Pipeline/SpirvShader.hpp
+++ b/src/Pipeline/SpirvShader.hpp
@@ -1250,8 +1250,7 @@
 	void WriteCFGGraphVizDotFile(const char *path) const;
 
 	// OpcodeName() returns the name of the opcode op.
-	// If NDEBUG is defined, then OpcodeName() will only return the numerical code.
-	static std::string OpcodeName(spv::Op op);
+	static const char *OpcodeName(spv::Op op);
 	static std::memory_order MemoryOrder(spv::MemorySemanticsMask memorySemantics);
 
 	// IsStatement() returns true if the given opcode actually performs
diff --git a/src/Pipeline/SpirvShaderArithmetic.cpp b/src/Pipeline/SpirvShaderArithmetic.cpp
index e730505..61d7bcc 100644
--- a/src/Pipeline/SpirvShaderArithmetic.cpp
+++ b/src/Pipeline/SpirvShaderArithmetic.cpp
@@ -299,7 +299,7 @@
 				break;
 			}
 			default:
-				UNREACHABLE("%s", OpcodeName(insn.opcode()).c_str());
+				UNREACHABLE("%s", OpcodeName(insn.opcode()));
 		}
 	}
 
@@ -502,7 +502,7 @@
 				dst.move(i + lhsType.componentCount, CmpLT(lhs.UInt(i), rhs.UInt(i)) >> 31);
 				break;
 			default:
-				UNREACHABLE("%s", OpcodeName(insn.opcode()).c_str());
+				UNREACHABLE("%s", OpcodeName(insn.opcode()));
 		}
 	}
 
diff --git a/src/Pipeline/SpirvShaderControlFlow.cpp b/src/Pipeline/SpirvShaderControlFlow.cpp
index fbe96698..826d9ff 100644
--- a/src/Pipeline/SpirvShaderControlFlow.cpp
+++ b/src/Pipeline/SpirvShaderControlFlow.cpp
@@ -605,7 +605,7 @@
 
 			if(blockInsn.opcode() != wrapOpKill[insnNumber++])
 			{
-				UNIMPLEMENTED("b/141246700: Function block instruction %d : %s", insnNumber - 1, OpcodeName(blockInsn.opcode()).c_str());  // FIXME(b/141246700)
+				UNIMPLEMENTED("b/141246700: Function block instruction %d : %s", insnNumber - 1, OpcodeName(blockInsn.opcode()));  // FIXME(b/141246700)
 				return EmitResult::Continue;
 			}
 
diff --git a/src/Pipeline/SpirvShaderDebug.hpp b/src/Pipeline/SpirvShaderDebug.hpp
index 959c542..6aa0c7c 100644
--- a/src/Pipeline/SpirvShaderDebug.hpp
+++ b/src/Pipeline/SpirvShaderDebug.hpp
@@ -15,6 +15,8 @@
 #ifndef sw_SpirvShaderDebug_hpp
 #define sw_SpirvShaderDebug_hpp
 
+#include "SpirvShader.hpp"
+
 // Enable this to print verbose debug messages as each SPIR-V instructon is
 // executed. Very handy for performing text diffs when the thread count is
 // reduced to 1 and execution is deterministic.
diff --git a/src/Pipeline/SpirvShaderDebugger.cpp b/src/Pipeline/SpirvShaderDebugger.cpp
index c6e93c5..4120b1f 100644
--- a/src/Pipeline/SpirvShaderDebugger.cpp
+++ b/src/Pipeline/SpirvShaderDebugger.cpp
@@ -1991,7 +1991,7 @@
 	auto entryIt = entries.find(objId);
 	ASSERT_MSG(entryIt != entries.end(), "Missing shadow entry for object %%%d (%s)",
 	           (int)objId.value(),
-	           OpcodeName(state->debugger->shader->getObject(objId).opcode()).c_str());
+	           OpcodeName(state->debugger->shader->getObject(objId).opcode()));
 	auto &entry = entryIt->second;
 	auto data = &state->shadow[entry.offset];
 	return Memory{ data };
diff --git a/src/Pipeline/SpirvShaderEnumNames.cpp b/src/Pipeline/SpirvShaderEnumNames.cpp
deleted file mode 100644
index 7956995..0000000
--- a/src/Pipeline/SpirvShaderEnumNames.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2019 The SwiftShader Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// This file contains code used to aid debugging.
-
-#include "SpirvShader.hpp"
-
-#include "spirv-tools/libspirv.h"
-#include "spirv/unified1/spirv.h"
-
-namespace sw {
-
-std::string SpirvShader::OpcodeName(spv::Op op)
-{
-	return spvOpcodeString(static_cast<SpvOp>(op));
-}
-
-}  // namespace sw
diff --git a/src/Pipeline/SpirvShaderGroup.cpp b/src/Pipeline/SpirvShaderGroup.cpp
index 19e997f..3750b38 100644
--- a/src/Pipeline/SpirvShaderGroup.cpp
+++ b/src/Pipeline/SpirvShaderGroup.cpp
@@ -70,7 +70,7 @@
 				}
 				default:
 					UNSUPPORTED("EmitGroupNonUniform op: %s Group operation: %d",
-					            SpirvShader::OpcodeName(type.opcode()).c_str(), insn.word(4));
+					            SpirvShader::OpcodeName(type.opcode()), insn.word(4));
 			}
 		}
 	}
@@ -449,7 +449,7 @@
 			break;
 
 		default:
-			UNSUPPORTED("EmitGroupNonUniform op: %s", OpcodeName(type.opcode()).c_str());
+			UNSUPPORTED("EmitGroupNonUniform op: %s", OpcodeName(type.opcode()));
 	}
 	return EmitResult::Continue;
 }
diff --git a/src/Pipeline/SpirvShaderInstructions.cpp b/src/Pipeline/SpirvShaderInstructions.cpp
index 18cced1..02ce0d2 100644
--- a/src/Pipeline/SpirvShaderInstructions.cpp
+++ b/src/Pipeline/SpirvShaderInstructions.cpp
@@ -14,6 +14,8 @@
 
 #include "SpirvShader.hpp"
 
+#include "spirv-tools/libspirv.h"
+
 #include <spirv/unified1/spirv.hpp>
 
 #define CONCAT(a, b) a##b
@@ -45,6 +47,11 @@
 
 namespace sw {
 
+const char *SpirvShader::OpcodeName(spv::Op op)
+{
+	return spvOpcodeString(op);
+}
+
 bool SpirvShader::IsStatement(spv::Op op)
 {
 	switch(op)
diff --git a/src/Pipeline/SpirvShaderMemory.cpp b/src/Pipeline/SpirvShaderMemory.cpp
index ec82813..6722b0b 100644
--- a/src/Pipeline/SpirvShaderMemory.cpp
+++ b/src/Pipeline/SpirvShaderMemory.cpp
@@ -344,7 +344,7 @@
 			break;
 		}
 		default:
-			UNREACHABLE("%s", OpcodeName(type.opcode()).c_str());
+			UNREACHABLE("%s", OpcodeName(type.opcode()));
 	}
 }
 
diff --git a/src/Pipeline/SpirvShaderSpec.cpp b/src/Pipeline/SpirvShaderSpec.cpp
index fd96185..9225e9d 100644
--- a/src/Pipeline/SpirvShaderSpec.cpp
+++ b/src/Pipeline/SpirvShaderSpec.cpp
@@ -149,7 +149,7 @@
 			// Other spec constant ops are possible, but require capabilities that are
 			// not exposed in our Vulkan implementation (eg Kernel), so we should never
 			// get here for correct shaders.
-			UNSUPPORTED("EvalSpecConstantOp op: %s", OpcodeName(opcode).c_str());
+			UNSUPPORTED("EvalSpecConstantOp op: %s", OpcodeName(opcode));
 	}
 }
 
@@ -198,7 +198,7 @@
 				break;
 			}
 			default:
-				UNREACHABLE("EvalSpecConstantUnaryOp op: %s", OpcodeName(opcode).c_str());
+				UNREACHABLE("EvalSpecConstantUnaryOp op: %s", OpcodeName(opcode));
 		}
 	}
 }
@@ -306,7 +306,7 @@
 				v = static_cast<int32_t>(l) >= static_cast<int32_t>(r) ? ~0u : 0u;
 				break;
 			default:
-				UNREACHABLE("EvalSpecConstantBinaryOp op: %s", OpcodeName(opcode).c_str());
+				UNREACHABLE("EvalSpecConstantBinaryOp op: %s", OpcodeName(opcode));
 		}
 	}
 }
