Author: asl Date: Thu Nov 29 15:36:16 2007 New Revision: 44442 URL: http://llvm.org/viewvc/llvm-project?rev=44442&view=rev Log: Move second openmp expansion pass before llvm-convert. This allows us not to reinvent a wheel and rewrite all openmp lowering code at llvm side :)
Thanks to Wojciech Matyjewicz for inspiration :) Modified: llvm-gcc-4.2/trunk/gcc/passes.c llvm-gcc-4.2/trunk/gcc/tree-optimize.c llvm-gcc-4.2/trunk/gcc/tree-pass.h Modified: llvm-gcc-4.2/trunk/gcc/passes.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/passes.c?rev=44442&r1=44441&r2=44442&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/passes.c (original) +++ llvm-gcc-4.2/trunk/gcc/passes.c Thu Nov 29 15:36:16 2007 @@ -334,6 +334,11 @@ /* The root of the compilation pass tree, once constructed. */ struct tree_opt_pass *all_passes, *all_ipa_passes, *all_lowering_passes; +/* LLVM LOCAL begin */ +#ifdef ENABLE_LLVM +struct tree_opt_pass *all_extra_lowering_passes; +#endif +/* LLVM LOCAL end */ /* Iterate over the pass tree allocating dump file numbers. We want to do this depth first, and independent of whether the pass is @@ -511,6 +516,17 @@ NEXT_PASS (pass_rebuild_cgraph_edges); *p = NULL; + /* LLVM LOCAL begin */ +#ifdef ENABLE_LLVM + p = &all_extra_lowering_passes; + NEXT_PASS (pass_fixup_cfg); + NEXT_PASS (pass_init_datastructures); + NEXT_PASS (pass_expand_omp); + NEXT_PASS (pass_free_datastructures); + *p = NULL; +#endif + /* LLVM LOCAL end */ + p = &all_passes; NEXT_PASS (pass_fixup_cfg); NEXT_PASS (pass_init_datastructures); @@ -742,6 +758,13 @@ PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh | PROP_cfg); register_dump_files (all_lowering_passes, false, PROP_gimple_any); + /* LLVM LOCAL begin */ +#ifdef ENABLE_LLVM + register_dump_files (all_extra_lowering_passes, false, + PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh + | PROP_cfg); +#endif + /* LLVM LOCAL end */ register_dump_files (all_passes, false, PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh | PROP_cfg); Modified: llvm-gcc-4.2/trunk/gcc/tree-optimize.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/tree-optimize.c?rev=44442&r1=44441&r2=44442&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/tree-optimize.c (original) +++ llvm-gcc-4.2/trunk/gcc/tree-optimize.c Thu Nov 29 15:36:16 2007 @@ -473,6 +473,7 @@ /* Perform all tree transforms and optimizations. */ /* LLVM LOCAL begin */ #ifdef ENABLE_LLVM + execute_pass_list(all_extra_lowering_passes); llvm_emit_code_for_current_function(fndecl); #else execute_pass_list (all_passes); Modified: llvm-gcc-4.2/trunk/gcc/tree-pass.h URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/tree-pass.h?rev=44442&r1=44441&r2=44442&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/tree-pass.h (original) +++ llvm-gcc-4.2/trunk/gcc/tree-pass.h Thu Nov 29 15:36:16 2007 @@ -397,6 +397,11 @@ /* The root of the compilation pass tree, once constructed. */ extern struct tree_opt_pass *all_passes, *all_ipa_passes, *all_lowering_passes; +/* LLVM LOCAL begin */ +#ifdef ENABLE_LLVM +extern struct tree_opt_pass *all_extra_lowering_passes; +#endif +/* LLVM LOCAL end */ extern void execute_pass_list (struct tree_opt_pass *); extern void execute_ipa_pass_list (struct tree_opt_pass *); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits