Skip to content

Commit 133b83a

Browse files
authored
Backport #55407 to 1.11 (#55433)
1 parent 86a5aee commit 133b83a

File tree

4 files changed

+12
-63
lines changed

4 files changed

+12
-63
lines changed

src/codegen-stubs.c

-2
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,6 @@ JL_DLLEXPORT uint64_t jl_getUnwindInfo_fallback(uint64_t dwAddr)
107107
return 0;
108108
}
109109

110-
JL_DLLEXPORT void jl_build_newpm_pipeline_fallback(void *MPM, void *PB, void *config) UNAVAILABLE
111-
112110
JL_DLLEXPORT void jl_register_passbuilder_callbacks_fallback(void *PB) { }
113111

114112
#define MODULE_PASS(NAME, CLASS, CREATE_PASS) \

src/jl_exported_funcs.inc

-1
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,6 @@
553553
YY(jl_type_to_llvm) \
554554
YY(jl_getUnwindInfo) \
555555
YY(jl_get_libllvm) \
556-
YY(jl_build_newpm_pipeline) \
557556
YY(jl_register_passbuilder_callbacks) \
558557
YY(LLVMExtraMPMAddCPUFeaturesPass) \
559558
YY(LLVMExtraMPMAddRemoveNIPass) \

src/pipeline.cpp

+8-59
Original file line numberDiff line numberDiff line change
@@ -618,65 +618,6 @@ static void buildPipeline(ModulePassManager &MPM, PassBuilder *PB, OptimizationL
618618
MPM.addPass(AfterOptimizationMarkerPass());
619619
}
620620

621-
struct PipelineConfig {
622-
int Speedup;
623-
int Size;
624-
int lower_intrinsics;
625-
int dump_native;
626-
int external_use;
627-
int llvm_only;
628-
int always_inline;
629-
int enable_early_simplifications;
630-
int enable_early_optimizations;
631-
int enable_scalar_optimizations;
632-
int enable_loop_optimizations;
633-
int enable_vector_pipeline;
634-
int remove_ni;
635-
int cleanup;
636-
int warn_missed_transformations;
637-
};
638-
639-
extern "C" JL_DLLEXPORT_CODEGEN void jl_build_newpm_pipeline_impl(void *MPM, void *PB, PipelineConfig* config) JL_NOTSAFEPOINT
640-
{
641-
OptimizationLevel O;
642-
switch (config->Size) {
643-
case 1:
644-
O = OptimizationLevel::Os;
645-
break;
646-
default:
647-
O = OptimizationLevel::Oz;
648-
break;
649-
case 0:
650-
switch (config->Speedup) {
651-
case 0:
652-
O = OptimizationLevel::O0;
653-
break;
654-
case 1:
655-
O = OptimizationLevel::O1;
656-
break;
657-
case 2:
658-
O = OptimizationLevel::O2;
659-
break;
660-
default:
661-
O = OptimizationLevel::O3;
662-
break;
663-
}
664-
}
665-
buildPipeline(*reinterpret_cast<ModulePassManager*>(MPM), reinterpret_cast<PassBuilder*>(PB), O,
666-
OptimizationOptions{!!config->lower_intrinsics,
667-
!!config->dump_native,
668-
!!config->external_use,
669-
!!config->llvm_only,
670-
!!config->always_inline,
671-
!!config->enable_early_simplifications,
672-
!!config->enable_early_optimizations,
673-
!!config->enable_scalar_optimizations,
674-
!!config->enable_loop_optimizations,
675-
!!config->enable_vector_pipeline,
676-
!!config->remove_ni,
677-
!!config->cleanup,
678-
!!config->warn_missed_transformations});
679-
}
680621

681622
#undef JULIA_PASS
682623

@@ -862,6 +803,14 @@ static Optional<std::pair<OptimizationLevel, OptimizationOptions>> parseJuliaPip
862803
OPTION(dump_native),
863804
OPTION(external_use),
864805
OPTION(llvm_only),
806+
OPTION(always_inline),
807+
OPTION(enable_early_simplifications),
808+
OPTION(enable_early_optimizations),
809+
OPTION(enable_scalar_optimizations),
810+
OPTION(enable_loop_optimizations),
811+
OPTION(enable_vector_pipeline),
812+
OPTION(remove_ni),
813+
OPTION(cleanup),
865814
OPTION(warn_missed_transformations)
866815
#undef OPTION
867816
};

test/llvmpasses/parsing.ll

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
; COM: NewPM-only test, tests for ability to parse Julia passes
22

3-
; RUN: opt --opaque-pointers=0 --load-pass-plugin=libjulia-codegen%shlibext -passes='module(CPUFeatures,RemoveNI,JuliaMultiVersioning,RemoveJuliaAddrspaces,LowerPTLSPass,function(DemoteFloat16,CombineMulAdd,LateLowerGCFrame,FinalLowerGC,AllocOpt,PropagateJuliaAddrspaces,LowerExcHandlers,GCInvariantVerifier,loop(LowerSIMDLoop,JuliaLICM),GCInvariantVerifier<strong>,GCInvariantVerifier<no-strong>),LowerPTLSPass<imaging>,LowerPTLSPass<no-imaging>,JuliaMultiVersioning<external>,JuliaMultiVersioning<no-external>)' -S %s -o /dev/null
3+
; RUN: opt --load-pass-plugin=libjulia-codegen%shlibext -passes='module(CPUFeatures,RemoveNI,JuliaMultiVersioning,RemoveJuliaAddrspaces,LowerPTLSPass,function(DemoteFloat16,CombineMulAdd,LateLowerGCFrame,FinalLowerGC,AllocOpt,PropagateJuliaAddrspaces,LowerExcHandlers,GCInvariantVerifier,loop(LowerSIMDLoop,JuliaLICM),GCInvariantVerifier<strong>,GCInvariantVerifier<no-strong>),LowerPTLSPass<imaging>,LowerPTLSPass<no-imaging>,JuliaMultiVersioning<external>,JuliaMultiVersioning<no-external>)' -S %s -o /dev/null
4+
; RUN: opt --load-pass-plugin=libjulia-codegen%shlibext -passes="julia<level=3;llvm_only>" -S %s -o /dev/null
5+
; RUN: opt --load-pass-plugin=libjulia-codegen%shlibext -passes="julia<level=3;no_llvm_only>" -S %s -o /dev/null
6+
; RUN: opt --load-pass-plugin=libjulia-codegen%shlibext -passes="julia<level=3;no_enable_vector_pipeline>" -S %s -o /dev/null
47

58
define void @test() {
69
ret void

0 commit comments

Comments
 (0)