From 16e9e4db37c79a997a2d92a61628a3937fc66ee4 Mon Sep 17 00:00:00 2001 From: George Hotz <72895+geohot@users.noreply.github.com> Date: Tue, 11 Feb 2025 10:08:45 +0800 Subject: [PATCH] make llvm opt the default (#9017) --- tinygrad/runtime/ops_llvm.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tinygrad/runtime/ops_llvm.py b/tinygrad/runtime/ops_llvm.py index cbcc663cf7..ba51ac076b 100644 --- a/tinygrad/runtime/ops_llvm.py +++ b/tinygrad/runtime/ops_llvm.py @@ -12,8 +12,8 @@ def expect(x, err, ret=None): return ret class LLVMCompiler(Compiler): - def __init__(self, host_arch:str, opt:bool): - for component in ['Target', 'TargetInfo', 'TargetMC', 'AsmPrinter']: getattr(llvm, f'LLVMInitialize{host_arch}{component}')() + def __init__(self, host_arch:str): + for component in ['Target', 'TargetInfo', 'TargetMC', 'AsmParser', 'AsmPrinter']: getattr(llvm, f'LLVMInitialize{host_arch}{component}')() triple = {'AArch64': b'aarch64', 'X86': b'x86_64'}[host_arch] + b'-none-unknown-elf' target = expect(llvm.LLVMGetTargetFromTriple(triple, ctypes.pointer(tgt:=llvm.LLVMTargetRef()), err:=cerr()), err, tgt) @@ -24,7 +24,7 @@ class LLVMCompiler(Compiler): llvm.LLVMCodeGenLevelDefault, llvm.LLVMRelocPIC, llvm.LLVMCodeModelDefault) self.pbo = llvm.LLVMCreatePassBuilderOptions() - if opt: + if (opt:=bool(getenv("LLVMOPT", "1"))): self.passes = b'default' llvm.LLVMPassBuilderOptionsSetLoopUnrolling(self.pbo, True) llvm.LLVMPassBuilderOptionsSetLoopVectorization(self.pbo, True) @@ -54,5 +54,5 @@ class LLVMCompiler(Compiler): class LLVMDevice(Compiled): def __init__(self, device:str): - compiler = LLVMCompiler({'arm64': 'AArch64', 'aarch64': 'AArch64', 'x86_64': 'X86', 'AMD64': 'X86'}[platform.machine()], bool(getenv("LLVMOPT"))) + compiler = LLVMCompiler({'arm64': 'AArch64', 'aarch64': 'AArch64', 'x86_64': 'X86', 'AMD64': 'X86'}[platform.machine()]) super().__init__(device, MallocAllocator, LLVMRenderer('win64cc' if sys.platform == 'win32' else None), compiler, CPUProgram)