@@ -291,8 +291,8 @@ const __llvm_initialized = Ref(false)
291291 push! (preserved_gvs, LLVM. name (gvar))
292292 end
293293 end
294- if use_newpm && LLVM. version () >= v " 17"
295- run! (InternalizePass (InternalizePassOptions ( ; preserved_gvs) ), ir,
294+ if LLVM. version () >= v " 17"
295+ run! (InternalizePass (; preserved_gvs), ir,
296296 llvm_machine (job. config. target))
297297 else
298298 @dispose pm= ModulePassManager () begin
@@ -318,35 +318,17 @@ const __llvm_initialized = Ref(false)
318318 # which also need to happen _after_ regular optimization.
319319 # XXX : make these part of the optimizer pipeline?
320320 if has_deferred_jobs
321- if use_newpm
322- @dispose pb= NewPMPassBuilder () begin
323- add! (pb, NewPMFunctionPassManager ()) do fpm
324- add! (fpm, InstCombinePass ())
325- end
326- add! (pb, AlwaysInlinerPass ())
327- add! (pb, NewPMFunctionPassManager ()) do fpm
328- add! (fpm, SROAPass ())
329- add! (fpm, GVNPass ())
330- end
331- add! (pb, MergeFunctionsPass ())
332- run! (pb, ir, llvm_machine (job. config. target))
321+ @dispose pb= NewPMPassBuilder () begin
322+ add! (pb, NewPMFunctionPassManager ()) do fpm
323+ add! (fpm, InstCombinePass ())
333324 end
334- else
335- @dispose pm= ModulePassManager () begin
336- # inline and optimize the call to e deferred code. in particular we want
337- # to remove unnecessary alloca's created by pass-by-ref semantics.
338- instruction_combining! (pm)
339- always_inliner! (pm)
340- scalar_repl_aggregates_ssa! (pm)
341- promote_memory_to_register! (pm)
342- gvn! (pm)
343-
344- # merge duplicate functions, since each compilation invocation emits everything
345- # XXX : ideally we want to avoid emitting these in the first place
346- merge_functions! (pm)
347-
348- run! (pm, ir)
325+ add! (pb, AlwaysInlinerPass ())
326+ add! (pb, NewPMFunctionPassManager ()) do fpm
327+ add! (fpm, SROAPass ())
328+ add! (fpm, GVNPass ())
349329 end
330+ add! (pb, MergeFunctionsPass ())
331+ run! (pb, ir, llvm_machine (job. config. target))
350332 end
351333 end
352334 end
@@ -357,29 +339,13 @@ const __llvm_initialized = Ref(false)
357339
358340 if cleanup
359341 @timeit_debug to " clean-up" begin
360- if use_newpm
361- @dispose pb= NewPMPassBuilder () begin
362- add! (pb, RecomputeGlobalsAAPass ())
363- add! (pb, GlobalOptPass ())
364- add! (pb, GlobalDCEPass ())
365- add! (pb, StripDeadPrototypesPass ())
366- add! (pb, ConstantMergePass ())
367- run! (pb, ir, llvm_machine (job. config. target))
368- end
369- else
370- # we can only clean-up now, as optimization may lower or introduce calls to
371- # functions from the GPU runtime (e.g. julia.gc_alloc_obj -> gpu_gc_pool_alloc)
372- @dispose pm= ModulePassManager () begin
373- # eliminate all unused internal functions
374- global_optimizer! (pm)
375- global_dce! (pm)
376- strip_dead_prototypes! (pm)
377-
378- # merge constants (such as exception messages)
379- constant_merge! (pm)
380-
381- run! (pm, ir)
382- end
342+ @dispose pb= NewPMPassBuilder () begin
343+ add! (pb, RecomputeGlobalsAAPass ())
344+ add! (pb, GlobalOptPass ())
345+ add! (pb, GlobalDCEPass ())
346+ add! (pb, StripDeadPrototypesPass ())
347+ add! (pb, ConstantMergePass ())
348+ run! (pb, ir, llvm_machine (job. config. target))
383349 end
384350 end
385351 end
0 commit comments