Skip to content

Commit

Permalink
upd(llvm): remove Pass Registry and initialization
Browse files Browse the repository at this point in the history
  • Loading branch information
mratsim committed Jul 20, 2024
1 parent 39c6aae commit 8685e7c
Show file tree
Hide file tree
Showing 5 changed files with 0 additions and 64 deletions.
1 change: 0 additions & 1 deletion constantine/math_compiler/codegen_nvidia.nim
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
26 changes: 0 additions & 26 deletions constantine/platforms/llvm/bindings/llvm_abi.nim
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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: "<llvm-c/Initialization.h>"

{.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 :/
Expand Down
23 changes: 0 additions & 23 deletions constantine/platforms/llvm/llvm.nim
Original file line number Diff line number Diff line change
Expand Up @@ -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
# ------------------------------------------------------------

Expand Down
13 changes: 0 additions & 13 deletions constantine/platforms/type_ff.nim

This file was deleted.

1 change: 0 additions & 1 deletion tests/gpu/t_nvidia_fp.nim
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ proc genFieldMulPTX(asy: Assembler_LLVM, cm: CurveMetadata) =
# Init LLVM
# -------------------------
initializeFullNVPTXTarget()
initializePasses()

# Init GPU
# -------------------------
Expand Down

0 comments on commit 8685e7c

Please sign in to comment.