1
1
# LLVM IR optimization
2
2
3
- function optimize! (@nospecialize (job:: CompilerJob ), mod:: LLVM.Module ; opt_level= 1 )
3
+ function optimize! (@nospecialize (job:: CompilerJob ), mod:: LLVM.Module ; opt_level= 2 )
4
4
tm = llvm_machine (job. config. target)
5
5
6
6
global current_job
7
7
current_job = job
8
8
9
9
@dispose pb= NewPMPassBuilder () begin
10
- register! (pb, CPUFeaturesPass ())
11
- register! (pb, LowerPTLSPass ())
12
- register! (pb, LowerGCFramePass ())
10
+ register! (pb, GPULowerCPUFeaturesPass ())
11
+ register! (pb, GPULowerPTLSPass ())
12
+ register! (pb, GPULowerGCFramePass ())
13
13
register! (pb, AddKernelStatePass ())
14
14
register! (pb, LowerKernelStatePass ())
15
15
register! (pb, CleanupKernelStatePass ())
@@ -94,7 +94,7 @@ function buildEarlyOptimizerPipeline(mpm, @nospecialize(job::CompilerJob), opt_l
94
94
add! (fpm, LowerConstantIntrinsicsPass ())
95
95
end
96
96
end
97
- add! (mpm, CPUFeaturesPass ())
97
+ add! (mpm, GPULowerCPUFeaturesPass ())
98
98
if opt_level >= 1
99
99
add! (mpm, NewPMFunctionPassManager ()) do fpm
100
100
if opt_level >= 2
@@ -196,7 +196,7 @@ function buildIntrinsicLoweringPipeline(mpm, @nospecialize(job::CompilerJob), op
196
196
# lower GC intrinsics
197
197
if ! uses_julia_runtime (job)
198
198
add! (mpm, NewPMFunctionPassManager ()) do fpm
199
- add! (fpm, LowerGCFramePass ())
199
+ add! (fpm, GPULowerGCFramePass ())
200
200
end
201
201
end
202
202
@@ -217,7 +217,7 @@ function buildIntrinsicLoweringPipeline(mpm, @nospecialize(job::CompilerJob), op
217
217
add! (mpm, NewPMFunctionPassManager ()) do fpm
218
218
add! (fpm, ADCEPass ())
219
219
end
220
- add! (mpm, LowerPTLSPass ())
220
+ add! (mpm, GPULowerPTLSPass ())
221
221
end
222
222
223
223
add! (mpm, NewPMFunctionPassManager ()) do fpm
@@ -332,7 +332,7 @@ function cpu_features!(mod::LLVM.Module)
332
332
333
333
return changed
334
334
end
335
- CPUFeaturesPass () = NewPMModulePass (" GPULowerCPUFeatures" , cpu_features!)
335
+ GPULowerCPUFeaturesPass () = NewPMModulePass (" GPULowerCPUFeatures" , cpu_features!)
336
336
337
337
# lower object allocations to to PTX malloc
338
338
#
@@ -391,7 +391,7 @@ function lower_gc_frame!(fun::LLVM.Function)
391
391
392
392
return changed
393
393
end
394
- LowerGCFramePass () = NewPMFunctionPass (" GPULowerGCFrame" , lower_gc_frame!)
394
+ GPULowerGCFramePass () = NewPMFunctionPass (" GPULowerGCFrame" , lower_gc_frame!)
395
395
396
396
# lower the `julia.ptls_states` intrinsic by removing it, since it is GPU incompatible.
397
397
#
@@ -422,4 +422,4 @@ function lower_ptls!(mod::LLVM.Module)
422
422
423
423
return changed
424
424
end
425
- LowerPTLSPass () = NewPMModulePass (" GPULowerPTLS" , lower_ptls!)
425
+ GPULowerPTLSPass () = NewPMModulePass (" GPULowerPTLS" , lower_ptls!)
0 commit comments