I may just do that :). Thanks. Aldy
On Fri, Apr 30, 2021 at 6:10 PM Jeff Law <jeffreya...@gmail.com> wrote: > > > On 4/28/2021 11:12 AM, Aldy Hernandez wrote: > > This refactors the registry and the profitability code from the > > backwards threader into two separate classes. It cleans up the code, > > and makes it easier for alternate implementations to share code. > > > > Tested on x86-64 Linux. > > > > gcc/ChangeLog: > > > > * tree-ssa-threadbackward.c (class thread_jumps): Split out code > > from here... > > (class back_threader_registry): ...to here... > > (class back_threader_profitability): ...and here... > > (thread_jumps::thread_through_all_blocks): Remove argument. > > (back_threader_registry::back_threader_registry): New. > > (back_threader_registry::~back_threader_registry): New. > > (back_threader_registry::thread_through_all_blocks): New. > > (thread_jumps::profitable_jump_thread_path): Move from here... > > (back_threader_profitability::profitable_path_p): ...to here. > > (thread_jumps::find_taken_edge): New. > > (thread_jumps::convert_and_register_current_path): Move... > > (back_threader_registry::register_path): ...to here. > > (thread_jumps::register_jump_thread_path_if_profitable): Move... > > (thread_jumps::maybe_register_path): ...to here. > > (thread_jumps::handle_phi): Call find_taken_edge and > > maybe_register_path. > > (thread_jumps::handle_assignment): Same. > > (thread_jumps::fsm_find_control_statement_thread_paths): Remove > > tree argument to handle_phi and handle_assignment. > > (thread_jumps::find_jump_threads_backwards): Set m_name. Remove > > set of m_speed_p and m_max_threaded_paths. > > (pass_thread_jumps::execute): Remove second argument from > > find_jump_threads_backwards. > > (pass_early_thread_jumps::execute): Same. > > OK. And if you wanted to pull any of that code into its own file, > consider that pre-approved. > > jeff >