diff --git a/tinygrad/runtime/ops_clang.py b/tinygrad/runtime/ops_clang.py index 44d5fd3979..30a3446684 100644 --- a/tinygrad/runtime/ops_clang.py +++ b/tinygrad/runtime/ops_clang.py @@ -7,12 +7,12 @@ CLANG_PROGRAM_HEADER = '#include \n#include \n#define max(x class ClangCompiler(Compiler): compiler_opts = CompilerOptions("CLANG", supports_float4=False, has_local=False) - def render(self, name:str, uops) -> str: return uops_to_cstyle(CStyleLanguage(buffer_suffix=" restrict"), name, uops) + def render(self, name:str, uops) -> str: return CLANG_PROGRAM_HEADER + uops_to_cstyle(CStyleLanguage(buffer_suffix=" restrict"), name, uops) def compile(self, src:str) -> bytes: # TODO: remove file write. sadly clang doesn't like the use of /dev/stdout here with tempfile.NamedTemporaryFile(delete=True) as output_file: - subprocess.check_output(args=('clang -shared -march=native -O2 -Wall -Werror -x c -fPIC - -o '+ \ - str(output_file.name)).split(), input=(CLANG_PROGRAM_HEADER+src).encode('utf-8')) + subprocess.check_output(args=('clang -shared -march=native -O2 -Wall -Werror -x c -fPIC - -o '+ str(output_file.name)).split(), + input=src.encode('utf-8')) return pathlib.Path(output_file.name).read_bytes() class ClangProgram: