From 8685e7cc4648c41c4b275ab71bc14a9f2a26eb2a Mon Sep 17 00:00:00 2001 From: Mamy Ratsimbazafy Date: Sun, 21 Jul 2024 01:37:14 +0200 Subject: [PATCH] upd(llvm): remove Pass Registry and initialization --- constantine/math_compiler/codegen_nvidia.nim | 1 - .../platforms/llvm/bindings/llvm_abi.nim | 26 ------------------- constantine/platforms/llvm/llvm.nim | 23 ---------------- constantine/platforms/type_ff.nim | 13 ---------- tests/gpu/t_nvidia_fp.nim | 1 - 5 files changed, 64 deletions(-) delete mode 100644 constantine/platforms/type_ff.nim diff --git a/constantine/math_compiler/codegen_nvidia.nim b/constantine/math_compiler/codegen_nvidia.nim index 72df96b49..f74bcd15f 100644 --- a/constantine/math_compiler/codegen_nvidia.nim +++ b/constantine/math_compiler/codegen_nvidia.nim @@ -169,7 +169,6 @@ proc codegenNvidiaPTX*(asy: Assembler_LLVM, sm: tuple[major, minor: int32]): str ## - https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#compute-capabilities ## ## This requires the following function to be called beforehand: - ## - initializePasses() ## - initializeFullNVPTXTarget() debug: doAssert asy.backend == bkNvidiaPTX diff --git a/constantine/platforms/llvm/bindings/llvm_abi.nim b/constantine/platforms/llvm/bindings/llvm_abi.nim index 4927c1357..596a91509 100644 --- a/constantine/platforms/llvm/bindings/llvm_abi.nim +++ b/constantine/platforms/llvm/bindings/llvm_abi.nim @@ -46,7 +46,6 @@ type PassManagerRef* = distinct pointer PassManagerBuilderRef* = distinct pointer PassBuilderOptionsRef* = distinct pointer - PassRegistryRef* = distinct pointer TypeRef* = distinct pointer ValueRef* = distinct pointer MetadataRef = distinct pointer @@ -239,31 +238,6 @@ proc createPassBuilderOptions*(): PassBuilderOptionsRef {.importc: "LLVMCreatePa proc dispose*(pbo: PassBuilderOptionsRef) {.importc: "LLVMDisposePassBuilderOptions".} proc runPasses(module: ModuleRef, passes: cstring, machine: TargetMachineRef, pbo: PassBuilderOptionsRef): ErrorRef {.used, importc: "LLVMRunPasses".} -# https://llvm.org/docs/doxygen/group__LLVMCInitialization.html -# header: "" - -{.push used.} -proc getGlobalPassRegistry(): PassRegistryRef {.importc: "LLVMGetGlobalPassRegistry".} - -proc initializeCore(registry: PassRegistryRef) {.importc: "LLVMInitializeCore".} -proc initializeTransformUtils(registry: PassRegistryRef) {.importc: "LLVMInitializeTransformUtils".} -proc initializeScalarOpts(registry: PassRegistryRef) {.importc: "LLVMInitializeScalarOpts".} -proc initializeVectorization(registry: PassRegistryRef) {.importc: "LLVMInitializeVectorization".} -proc initializeInstCombine(registry: PassRegistryRef) {.importc: "LLVMInitializeInstCombine".} -proc initializeIPO(registry: PassRegistryRef) {.importc: "LLVMInitializeIPO".} -proc initializeAnalysis(registry: PassRegistryRef) {.importc: "LLVMInitializeAnalysis".} -proc initializeIPA(registry: PassRegistryRef) {.importc: "LLVMInitializeIPA".} -proc initializeCodeGen(registry: PassRegistryRef) {.importc: "LLVMInitializeCodeGen".} -proc initializeTarget(registry: PassRegistryRef) {.importc: "LLVMInitializeTarget".} - -# Removed in LLVM 16 -# ------------------ -# proc initializeObjCARCOpts(registry: PassRegistryRef) {.importc: "LLVMInitializeObjCARCOpts".} -# proc initializeAggressiveInstCombiner(registry: PassRegistryRef) {.importc: "LLVMInitializeAggressiveInstCombiner".} -# proc initializeInstrumentation(registry: PassRegistryRef) {.importc: "LLVMInitializeInstrumentation".} - -{.pop.} - # https://llvm.org/doxygen/group__LLVMCTarget.html proc addTargetLibraryInfo*(tli: TargetLibraryInfoRef, pm: PassManagerRef) {.importc: "LLVMAddTargetLibraryInfo".} # There doesn't seem to be a way to instantiate TargetLibraryInfoRef :/ diff --git a/constantine/platforms/llvm/llvm.nim b/constantine/platforms/llvm/llvm.nim index 39e106f66..c064897bf 100644 --- a/constantine/platforms/llvm/llvm.nim +++ b/constantine/platforms/llvm/llvm.nim @@ -138,29 +138,6 @@ template emitToString*(t: TargetMachineRef, m: ModuleRef, codegen: CodeGenFileTy mb.dispose() emitted -# Target Machine -# ------------------------------------------------------------ - -proc initializePasses* = - let registry = getGlobalPassRegistry() - - registry.initializeCore() - registry.initializeTransformUtils() - registry.initializeScalarOpts() - registry.initializeVectorization() - registry.initializeInstCombine() - registry.initializeIPO() - registry.initializeAnalysis() - registry.initializeIPA() - registry.initializeCodeGen() - registry.initializeTarget() - - # Removed in LLVM 16 - # -------------------------------- - # registry.initializeObjCARCOpts() - # registry.initializeAggressiveInstCombiner() - # registry.initializeInstrumentation() - # Builder # ------------------------------------------------------------ diff --git a/constantine/platforms/type_ff.nim b/constantine/platforms/type_ff.nim deleted file mode 100644 index 8ce6fb327..000000000 --- a/constantine/platforms/type_ff.nim +++ /dev/null @@ -1,13 +0,0 @@ -# Constantine -# Copyright (c) 2018-2019 Status Research & Development GmbH -# Copyright (c) 2020-Present Mamy André-Ratsimbazafy -# Licensed and distributed under either of -# * MIT license (license terms in the root directory or at http://opensource.org/licenses/MIT). -# * Apache v2 license (license terms in the root directory or at http://www.apache.org/licenses/LICENSE-2.0). -# at your option. This file may not be copied, modified, or distributed except according to those terms. - -import - ./abstractions, - ../named/config_fields_and_curves - -# TODO: Keep internal and use bigint(Fp[Foo]) and bigint(Fr[Foo]) diff --git a/tests/gpu/t_nvidia_fp.nim b/tests/gpu/t_nvidia_fp.nim index e40a3c0ef..1384aa92d 100644 --- a/tests/gpu/t_nvidia_fp.nim +++ b/tests/gpu/t_nvidia_fp.nim @@ -58,7 +58,6 @@ proc genFieldMulPTX(asy: Assembler_LLVM, cm: CurveMetadata) = # Init LLVM # ------------------------- initializeFullNVPTXTarget() -initializePasses() # Init GPU # -------------------------