Vladimir Makarov wrote: > PR rtl-optimization/59036 > * ira-color.c (struct allocno_color_data): Add new members > first_thread_allocno, next_thread_allocno, thread_freq. > (sorted_copies): New static var. > (allocnos_conflict_by_live_ranges_p, copy_freq_compare_func): Move > up. > (allocno_thread_conflict_p, merge_threads) > (form_threads_from_copies, form_threads_from_bucket) > (form_threads_from_colorable_allocno, init_allocno_threads): New > functions. > (bucket_allocno_compare_func): Add comparison by thread frequency > and threads. > (add_allocno_to_ordered_bucket): Rename to > add_allocno_to_ordered_colorable_bucket. Remove parameter. > (push_only_colorable): Call form_threads_from_bucket. > (color_pass): Call init_allocno_threads. Use > consideration_allocno_bitmap instead of coloring_allocno_bitmap > for nuillify allocno color data. > (ira_initiate_assign, ira_finish_assign): Allocate/free > sorted_copies. > (coalesce_allocnos): Use static sorted copies.
Unfortunately, this patch causes cc1 for powerpc64-linux to crash for me even when compiling "int main () { return 0; }" with -O due to a memory corruption somewhere: <*free_lang_data> <visibility> <early_local_cleanups> <*free_inline_summary> <whole-program> <profile_estimate> <inline> <pure-const> <static-var>Assembling functions: main*** glibc detected *** ./cc1: corrupted double-linked list: 0x0000010035a3b4c0 *** ======= Backtrace: ========= /lib64/libc.so.6[0x80a284fe04] /lib64/libc.so.6[0x80a2850144] /lib64/libc.so.6[0x80a2852b18] ./cc1(_Z16empty_alloc_poolP14alloc_pool_def-0x1306f10)[0x10263bc8] ./cc1(_Z15free_alloc_poolP14alloc_pool_def-0x1306e90)[0x10263c58] ./cc1[0x103746cc] ./cc1(_Z13df_scan_allocP15bitmap_head_def-0x11fe808)[0x10374810] ./cc1[0x106189c8] ./cc1(_Z16execute_one_passP8opt_pass-0xe6ebe0)[0x1071e8e8] ./cc1(_Z17execute_pass_listP8opt_pass-0xe6e884)[0x1071ec54] ./cc1(_Z17execute_pass_listP8opt_pass-0xe6e83c)[0x1071ec9c] ./cc1[0x10335b98] ./cc1[0x103361c0] ./cc1(_Z7compilev-0x123a0ec)[0x1033713c] ./cc1(_Z25finalize_compilation_unitv-0x1239ea4)[0x10337394] ./cc1(_Z27c_write_global_declarationsv-0x1437034)[0x1012f044] ./cc1[0x10820814] ./cc1[0x10824334] ./cc1(_Z11toplev_mainiPPc-0xd7068c)[0x108245bc] ./cc1(main-0x5efa08)[0x10fec400] /lib64/libc.so.6[0x80a27ebcf8] /lib64/libc.so.6(__libc_start_main-0x184de0)[0x80a27ebef0] conftest.c: In function âmainâ: conftest.c:5:1: internal compiler error: Aborted } ^ 0x1081f99f crash_signal /home/uweigand/src/gcc/gcc/toplev.c:334 0x10263bc7 empty_alloc_pool(alloc_pool_def*) /home/uweigand/src/gcc/gcc/alloc-pool.c:206 0x10263c57 free_alloc_pool(alloc_pool_def*) /home/uweigand/src/gcc/gcc/alloc-pool.c:229 0x103746cb df_scan_free_internal /home/uweigand/src/gcc/gcc/df-scan.c:265 0x1037480f df_scan_alloc(bitmap_head_def*) /home/uweigand/src/gcc/gcc/df-scan.c:324 0x106189c7 do_reload /home/uweigand/src/gcc/gcc/ira.c:5470 0x106189c7 rest_of_handle_reload /home/uweigand/src/gcc/gcc/ira.c:5536 0x106189c7 execute /home/uweigand/src/gcc/gcc/ira.c:5565 Bye, Ulrich -- Dr. Ulrich Weigand GNU/Linux compilers and toolchain ulrich.weig...@de.ibm.com