diff options
Diffstat (limited to 'gcc/ipa-str-reorg-instance-interleave.c')
-rw-r--r-- | gcc/ipa-str-reorg-instance-interleave.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/gcc/ipa-str-reorg-instance-interleave.c b/gcc/ipa-str-reorg-instance-interleave.c index d53d290f980..1d0213f1427 100644 --- a/gcc/ipa-str-reorg-instance-interleave.c +++ b/gcc/ipa-str-reorg-instance-interleave.c @@ -1913,6 +1913,7 @@ static bool is_array_access( tree); static unsigned int reorg_perf_qual ( Info *info) { + DEBUG_L("reorg_perf_qual:\n"); #if 1 // TBD use design in doc but mark ReorgTypes // (do_instance_interleave) that qualify instead of deleting them @@ -1926,17 +1927,6 @@ reorg_perf_qual ( Info *info) (*(info->reorg_type))[i].do_instance_interleave = true; } #else - - // This dom sequence is broken and I'm stalled on it. - // I used the sequence before but the upstream code (not - // my pass) is broken. - if ( dom_info_available_p ( CDI_DOMINATORS) ) - { - free_dominance_info ( CDI_DOMINATORS); - } - - calculate_dominance_info (CDI_DOMINATORS); - // We are doing a quick and dirty version of performance // qualification for testing purposes and possibly the // initial version of for the main branch. @@ -1962,7 +1952,15 @@ reorg_perf_qual ( Info *info) FOR_EACH_FUNCTION_WITH_GIMPLE_BODY ( node) { struct function *func = DECL_STRUCT_FUNCTION ( node->decl); // Ulgy GCC idiom with global pointer to current function. + // However, the dominace calculations other things need it. push_cfun ( func); + + if ( dom_info_available_p ( CDI_DOMINATORS) ) + { + free_dominance_info ( CDI_DOMINATORS); + } + calculate_dominance_info (CDI_DOMINATORS); + // TBD std::vector<perf_loop_info> loop_perf; loop_perf.reserve ( number_of_loops ( func)); |