Skip to content

Commit c36d843

Browse files
authored
Wrap ExpandReductions pass (#388)
* Wrap ExpandReductions pass. * Add missing TOMLs. * Wrapper script improvements.
1 parent 7eb6d81 commit c36d843

File tree

15 files changed

+144
-561
lines changed

15 files changed

+144
-561
lines changed

deps/LLVMExtra/include/LLVMExtra.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ void LLVMAddSimpleLoopUnrollPass(LLVMPassManagerRef PM);
4444
void LLVMAddInductiveRangeCheckEliminationPass(LLVMPassManagerRef PM);
4545
#endif
4646
void LLVMAddSimpleLoopUnswitchLegacyPass(LLVMPassManagerRef PM);
47+
void LLVMAddExpandReductionsPass(LLVMPassManagerRef PM);
4748

4849

4950
// Infrastructure for writing LLVM passes in Julia

deps/LLVMExtra/lib/Core.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include <llvm/Analysis/PostDominators.h>
99
#include <llvm/Analysis/TargetLibraryInfo.h>
1010
#include <llvm/Analysis/TargetTransformInfo.h>
11+
#include <llvm/CodeGen/Passes.h>
1112
#include <llvm/ExecutionEngine/Orc/IRCompileLayer.h>
1213
#include <llvm/IR/Attributes.h>
1314
#include <llvm/IR/DebugInfo.h>
@@ -96,6 +97,10 @@ void LLVMAddSimpleLoopUnswitchLegacyPass(LLVMPassManagerRef PM) {
9697
unwrap(PM)->add(createSimpleLoopUnswitchLegacyPass());
9798
}
9899

100+
void LLVMAddExpandReductionsPass(LLVMPassManagerRef PM) {
101+
unwrap(PM)->add(createExpandReductionsPass());
102+
}
103+
99104
// Infrastructure for writing LLVM passes in Julia
100105

101106
typedef struct LLVMOpaquePass *LLVMPassRef;

lib/13/libLLVM.jl

Lines changed: 0 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -3976,30 +3976,6 @@ function LLVMInitializeTarget(R)
39763976
ccall((:LLVMInitializeTarget, libllvm), Cvoid, (LLVMPassRegistryRef,), R)
39773977
end
39783978

3979-
function LLVMInitializeX86AsmParser()
3980-
ccall((:LLVMInitializeX86AsmParser, libllvm), Cvoid, ())
3981-
end
3982-
3983-
function LLVMInitializeX86AsmPrinter()
3984-
ccall((:LLVMInitializeX86AsmPrinter, libllvm), Cvoid, ())
3985-
end
3986-
3987-
function LLVMInitializeX86Disassembler()
3988-
ccall((:LLVMInitializeX86Disassembler, libllvm), Cvoid, ())
3989-
end
3990-
3991-
function LLVMInitializeX86Target()
3992-
ccall((:LLVMInitializeX86Target, libllvm), Cvoid, ())
3993-
end
3994-
3995-
function LLVMInitializeX86TargetInfo()
3996-
ccall((:LLVMInitializeX86TargetInfo, libllvm), Cvoid, ())
3997-
end
3998-
3999-
function LLVMInitializeX86TargetMC()
4000-
ccall((:LLVMInitializeX86TargetMC, libllvm), Cvoid, ())
4001-
end
4002-
40033979
mutable struct LLVMOpaqueError end
40043980

40053981
const LLVMErrorRef = Ptr{LLVMOpaqueError}
@@ -4043,94 +4019,6 @@ mutable struct LLVMOpaqueTargetLibraryInfotData end
40434019

40444020
const LLVMTargetLibraryInfoRef = Ptr{LLVMOpaqueTargetLibraryInfotData}
40454021

4046-
function LLVMInitializeNVPTXTargetInfo()
4047-
ccall((:LLVMInitializeNVPTXTargetInfo, libllvm), Cvoid, ())
4048-
end
4049-
4050-
function LLVMInitializeAMDGPUTargetInfo()
4051-
ccall((:LLVMInitializeAMDGPUTargetInfo, libllvm), Cvoid, ())
4052-
end
4053-
4054-
function LLVMInitializeWebAssemblyTargetInfo()
4055-
ccall((:LLVMInitializeWebAssemblyTargetInfo, libllvm), Cvoid, ())
4056-
end
4057-
4058-
function LLVMInitializeBPFTargetInfo()
4059-
ccall((:LLVMInitializeBPFTargetInfo, libllvm), Cvoid, ())
4060-
end
4061-
4062-
function LLVMInitializeNVPTXTarget()
4063-
ccall((:LLVMInitializeNVPTXTarget, libllvm), Cvoid, ())
4064-
end
4065-
4066-
function LLVMInitializeAMDGPUTarget()
4067-
ccall((:LLVMInitializeAMDGPUTarget, libllvm), Cvoid, ())
4068-
end
4069-
4070-
function LLVMInitializeWebAssemblyTarget()
4071-
ccall((:LLVMInitializeWebAssemblyTarget, libllvm), Cvoid, ())
4072-
end
4073-
4074-
function LLVMInitializeBPFTarget()
4075-
ccall((:LLVMInitializeBPFTarget, libllvm), Cvoid, ())
4076-
end
4077-
4078-
function LLVMInitializeNVPTXTargetMC()
4079-
ccall((:LLVMInitializeNVPTXTargetMC, libllvm), Cvoid, ())
4080-
end
4081-
4082-
function LLVMInitializeAMDGPUTargetMC()
4083-
ccall((:LLVMInitializeAMDGPUTargetMC, libllvm), Cvoid, ())
4084-
end
4085-
4086-
function LLVMInitializeWebAssemblyTargetMC()
4087-
ccall((:LLVMInitializeWebAssemblyTargetMC, libllvm), Cvoid, ())
4088-
end
4089-
4090-
function LLVMInitializeBPFTargetMC()
4091-
ccall((:LLVMInitializeBPFTargetMC, libllvm), Cvoid, ())
4092-
end
4093-
4094-
function LLVMInitializeNVPTXAsmPrinter()
4095-
ccall((:LLVMInitializeNVPTXAsmPrinter, libllvm), Cvoid, ())
4096-
end
4097-
4098-
function LLVMInitializeAMDGPUAsmPrinter()
4099-
ccall((:LLVMInitializeAMDGPUAsmPrinter, libllvm), Cvoid, ())
4100-
end
4101-
4102-
function LLVMInitializeWebAssemblyAsmPrinter()
4103-
ccall((:LLVMInitializeWebAssemblyAsmPrinter, libllvm), Cvoid, ())
4104-
end
4105-
4106-
function LLVMInitializeBPFAsmPrinter()
4107-
ccall((:LLVMInitializeBPFAsmPrinter, libllvm), Cvoid, ())
4108-
end
4109-
4110-
function LLVMInitializeAMDGPUAsmParser()
4111-
ccall((:LLVMInitializeAMDGPUAsmParser, libllvm), Cvoid, ())
4112-
end
4113-
4114-
function LLVMInitializeWebAssemblyAsmParser()
4115-
ccall((:LLVMInitializeWebAssemblyAsmParser, libllvm), Cvoid, ())
4116-
end
4117-
4118-
function LLVMInitializeBPFAsmParser()
4119-
ccall((:LLVMInitializeBPFAsmParser, libllvm), Cvoid, ())
4120-
end
4121-
4122-
function LLVMInitializeAMDGPUDisassembler()
4123-
ccall((:LLVMInitializeAMDGPUDisassembler, libllvm), Cvoid, ())
4124-
end
4125-
4126-
function LLVMInitializeWebAssemblyDisassembler()
4127-
ccall((:LLVMInitializeWebAssemblyDisassembler, libllvm), Cvoid, ())
4128-
end
4129-
4130-
function LLVMInitializeBPFDisassembler()
4131-
ccall((:LLVMInitializeBPFDisassembler, libllvm), Cvoid, ())
4132-
end
4133-
41344022
function LLVMGetModuleDataLayout(M)
41354023
ccall((:LLVMGetModuleDataLayout, libllvm), LLVMTargetDataRef, (LLVMModuleRef,), M)
41364024
end
@@ -6249,34 +6137,6 @@ const LLVMDisassembler_Option_PrintLatency = 16
62496137

62506138
const LLVMErrorSuccess = 0
62516139

6252-
const LLVM_DEFAULT_TARGET_TRIPLE = "x86_64-linux-gnu"
6253-
6254-
const LLVM_ENABLE_THREADS = 1
6255-
6256-
const LLVM_HAS_ATOMICS = 1
6257-
6258-
const LLVM_HOST_TRIPLE = "x86_64-linux-gnu"
6259-
6260-
const LLVM_NATIVE_ASMPARSER = LLVMInitializeX86AsmParser
6261-
6262-
const LLVM_NATIVE_ASMPRINTER = LLVMInitializeX86AsmPrinter
6263-
6264-
const LLVM_NATIVE_DISASSEMBLER = LLVMInitializeX86Disassembler
6265-
6266-
const LLVM_NATIVE_TARGET = LLVMInitializeX86Target
6267-
6268-
const LLVM_NATIVE_TARGETINFO = LLVMInitializeX86TargetInfo
6269-
6270-
const LLVM_NATIVE_TARGETMC = LLVMInitializeX86TargetMC
6271-
6272-
const LLVM_ON_UNIX = 1
6273-
6274-
const LLVM_USE_INTEL_JITEVENTS = 1
6275-
6276-
const LLVM_USE_OPROFILE = 0
6277-
6278-
const LLVM_USE_PERF = 1
6279-
62806140
const LLVM_VERSION_MAJOR = 13
62816141

62826142
const LLVM_VERSION_MINOR = 0

lib/13/libLLVM_extra.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ function LLVMAddSimpleLoopUnswitchLegacyPass(PM)
6767
ccall((:LLVMAddSimpleLoopUnswitchLegacyPass, libLLVMExtra), Cvoid, (LLVMPassManagerRef,), PM)
6868
end
6969

70+
function LLVMAddExpandReductionsPass(PM)
71+
ccall((:LLVMAddExpandReductionsPass, libLLVMExtra), Cvoid, (LLVMPassManagerRef,), PM)
72+
end
73+
7074
mutable struct LLVMOpaquePass end
7175

7276
const LLVMPassRef = Ptr{LLVMOpaquePass}

lib/14/libLLVM.jl

Lines changed: 0 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -3996,30 +3996,6 @@ function LLVMInitializeTarget(R)
39963996
ccall((:LLVMInitializeTarget, libllvm), Cvoid, (LLVMPassRegistryRef,), R)
39973997
end
39983998

3999-
function LLVMInitializeX86AsmParser()
4000-
ccall((:LLVMInitializeX86AsmParser, libllvm), Cvoid, ())
4001-
end
4002-
4003-
function LLVMInitializeX86AsmPrinter()
4004-
ccall((:LLVMInitializeX86AsmPrinter, libllvm), Cvoid, ())
4005-
end
4006-
4007-
function LLVMInitializeX86Disassembler()
4008-
ccall((:LLVMInitializeX86Disassembler, libllvm), Cvoid, ())
4009-
end
4010-
4011-
function LLVMInitializeX86Target()
4012-
ccall((:LLVMInitializeX86Target, libllvm), Cvoid, ())
4013-
end
4014-
4015-
function LLVMInitializeX86TargetInfo()
4016-
ccall((:LLVMInitializeX86TargetInfo, libllvm), Cvoid, ())
4017-
end
4018-
4019-
function LLVMInitializeX86TargetMC()
4020-
ccall((:LLVMInitializeX86TargetMC, libllvm), Cvoid, ())
4021-
end
4022-
40233999
mutable struct LLVMOpaqueError end
40244000

40254001
const LLVMErrorRef = Ptr{LLVMOpaqueError}
@@ -4063,114 +4039,26 @@ mutable struct LLVMOpaqueTargetLibraryInfotData end
40634039

40644040
const LLVMTargetLibraryInfoRef = Ptr{LLVMOpaqueTargetLibraryInfotData}
40654041

4066-
function LLVMInitializeNVPTXTargetInfo()
4067-
ccall((:LLVMInitializeNVPTXTargetInfo, libllvm), Cvoid, ())
4068-
end
4069-
4070-
function LLVMInitializeAMDGPUTargetInfo()
4071-
ccall((:LLVMInitializeAMDGPUTargetInfo, libllvm), Cvoid, ())
4072-
end
4073-
4074-
function LLVMInitializeWebAssemblyTargetInfo()
4075-
ccall((:LLVMInitializeWebAssemblyTargetInfo, libllvm), Cvoid, ())
4076-
end
4077-
4078-
function LLVMInitializeBPFTargetInfo()
4079-
ccall((:LLVMInitializeBPFTargetInfo, libllvm), Cvoid, ())
4080-
end
4081-
40824042
function LLVMInitializeAVRTargetInfo()
40834043
ccall((:LLVMInitializeAVRTargetInfo, libllvm), Cvoid, ())
40844044
end
40854045

4086-
function LLVMInitializeNVPTXTarget()
4087-
ccall((:LLVMInitializeNVPTXTarget, libllvm), Cvoid, ())
4088-
end
4089-
4090-
function LLVMInitializeAMDGPUTarget()
4091-
ccall((:LLVMInitializeAMDGPUTarget, libllvm), Cvoid, ())
4092-
end
4093-
4094-
function LLVMInitializeWebAssemblyTarget()
4095-
ccall((:LLVMInitializeWebAssemblyTarget, libllvm), Cvoid, ())
4096-
end
4097-
4098-
function LLVMInitializeBPFTarget()
4099-
ccall((:LLVMInitializeBPFTarget, libllvm), Cvoid, ())
4100-
end
4101-
41024046
function LLVMInitializeAVRTarget()
41034047
ccall((:LLVMInitializeAVRTarget, libllvm), Cvoid, ())
41044048
end
41054049

4106-
function LLVMInitializeNVPTXTargetMC()
4107-
ccall((:LLVMInitializeNVPTXTargetMC, libllvm), Cvoid, ())
4108-
end
4109-
4110-
function LLVMInitializeAMDGPUTargetMC()
4111-
ccall((:LLVMInitializeAMDGPUTargetMC, libllvm), Cvoid, ())
4112-
end
4113-
4114-
function LLVMInitializeWebAssemblyTargetMC()
4115-
ccall((:LLVMInitializeWebAssemblyTargetMC, libllvm), Cvoid, ())
4116-
end
4117-
4118-
function LLVMInitializeBPFTargetMC()
4119-
ccall((:LLVMInitializeBPFTargetMC, libllvm), Cvoid, ())
4120-
end
4121-
41224050
function LLVMInitializeAVRTargetMC()
41234051
ccall((:LLVMInitializeAVRTargetMC, libllvm), Cvoid, ())
41244052
end
41254053

4126-
function LLVMInitializeNVPTXAsmPrinter()
4127-
ccall((:LLVMInitializeNVPTXAsmPrinter, libllvm), Cvoid, ())
4128-
end
4129-
4130-
function LLVMInitializeAMDGPUAsmPrinter()
4131-
ccall((:LLVMInitializeAMDGPUAsmPrinter, libllvm), Cvoid, ())
4132-
end
4133-
4134-
function LLVMInitializeWebAssemblyAsmPrinter()
4135-
ccall((:LLVMInitializeWebAssemblyAsmPrinter, libllvm), Cvoid, ())
4136-
end
4137-
4138-
function LLVMInitializeBPFAsmPrinter()
4139-
ccall((:LLVMInitializeBPFAsmPrinter, libllvm), Cvoid, ())
4140-
end
4141-
41424054
function LLVMInitializeAVRAsmPrinter()
41434055
ccall((:LLVMInitializeAVRAsmPrinter, libllvm), Cvoid, ())
41444056
end
41454057

4146-
function LLVMInitializeAMDGPUAsmParser()
4147-
ccall((:LLVMInitializeAMDGPUAsmParser, libllvm), Cvoid, ())
4148-
end
4149-
4150-
function LLVMInitializeWebAssemblyAsmParser()
4151-
ccall((:LLVMInitializeWebAssemblyAsmParser, libllvm), Cvoid, ())
4152-
end
4153-
4154-
function LLVMInitializeBPFAsmParser()
4155-
ccall((:LLVMInitializeBPFAsmParser, libllvm), Cvoid, ())
4156-
end
4157-
41584058
function LLVMInitializeAVRAsmParser()
41594059
ccall((:LLVMInitializeAVRAsmParser, libllvm), Cvoid, ())
41604060
end
41614061

4162-
function LLVMInitializeAMDGPUDisassembler()
4163-
ccall((:LLVMInitializeAMDGPUDisassembler, libllvm), Cvoid, ())
4164-
end
4165-
4166-
function LLVMInitializeWebAssemblyDisassembler()
4167-
ccall((:LLVMInitializeWebAssemblyDisassembler, libllvm), Cvoid, ())
4168-
end
4169-
4170-
function LLVMInitializeBPFDisassembler()
4171-
ccall((:LLVMInitializeBPFDisassembler, libllvm), Cvoid, ())
4172-
end
4173-
41744062
function LLVMInitializeAVRDisassembler()
41754063
ccall((:LLVMInitializeAVRDisassembler, libllvm), Cvoid, ())
41764064
end
@@ -6304,34 +6192,6 @@ const LLVMDisassembler_Option_PrintLatency = 16
63046192

63056193
const LLVMErrorSuccess = 0
63066194

6307-
const LLVM_DEFAULT_TARGET_TRIPLE = "x86_64-linux-gnu"
6308-
6309-
const LLVM_ENABLE_THREADS = 1
6310-
6311-
const LLVM_HAS_ATOMICS = 1
6312-
6313-
const LLVM_HOST_TRIPLE = "x86_64-linux-gnu"
6314-
6315-
const LLVM_NATIVE_ASMPARSER = LLVMInitializeX86AsmParser
6316-
6317-
const LLVM_NATIVE_ASMPRINTER = LLVMInitializeX86AsmPrinter
6318-
6319-
const LLVM_NATIVE_DISASSEMBLER = LLVMInitializeX86Disassembler
6320-
6321-
const LLVM_NATIVE_TARGET = LLVMInitializeX86Target
6322-
6323-
const LLVM_NATIVE_TARGETINFO = LLVMInitializeX86TargetInfo
6324-
6325-
const LLVM_NATIVE_TARGETMC = LLVMInitializeX86TargetMC
6326-
6327-
const LLVM_ON_UNIX = 1
6328-
6329-
const LLVM_USE_INTEL_JITEVENTS = 1
6330-
6331-
const LLVM_USE_OPROFILE = 0
6332-
6333-
const LLVM_USE_PERF = 1
6334-
63356195
const LLVM_VERSION_MAJOR = 14
63366196

63376197
const LLVM_VERSION_MINOR = 0

lib/14/libLLVM_extra.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ function LLVMAddSimpleLoopUnswitchLegacyPass(PM)
6767
ccall((:LLVMAddSimpleLoopUnswitchLegacyPass, libLLVMExtra), Cvoid, (LLVMPassManagerRef,), PM)
6868
end
6969

70+
function LLVMAddExpandReductionsPass(PM)
71+
ccall((:LLVMAddExpandReductionsPass, libLLVMExtra), Cvoid, (LLVMPassManagerRef,), PM)
72+
end
73+
7074
mutable struct LLVMOpaquePass end
7175

7276
const LLVMPassRef = Ptr{LLVMOpaquePass}

0 commit comments

Comments
 (0)