aboutsummaryrefslogtreecommitdiff
path: root/gcc/lra-constraints.c
AgeCommit message (Collapse)AuthorFilesLines
2013-10-31lra-constraints (process_alt_operands): Use the result elimination register ↵Vladimir Makarov1-9/+18
for operand when matching constraints. 2013-10-31 Vladimir Makarov <vmakarov@redhat.com> * lra-constraints (process_alt_operands): Use the result elimination register for operand when matching constraints. From-SVN: r204267
2013-10-25re PR rtl-optimization/58759 (wrong code (segfaults) at -O2 on ↵Vladimir Makarov1-13/+3
x86_64-linux-gnu in 32-bit mode) 2013-10-25 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/58759 * lra-constraints.c (lra_constraints): Remove wrong condition to remove insn setting up an equivalent pseudo. 2013-10-25 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/58759 * gcc.target/i386/pr58759.c: New. From-SVN: r204080
2013-10-03lra-constraints.c (insert_move_for_subreg): New function extracted from ↵Wei Mi1-17/+99
simplify_operand_subreg. 2013-10-03 Wei Mi <wmi@google.com> * lra-constraints.c (insert_move_for_subreg): New function extracted from simplify_operand_subreg. (simplify_operand_subreg): Add reload for paradoxical subreg. From-SVN: r203169
2013-10-03lra-constraints.c (process_alt_operand): Calculate scratch_p and use it.Vladimir Makarov1-12/+18
2013-10-02 Vladimir Makarov <vmakarov@redhat.com> * lra-constraints.c (process_alt_operand): Calculate scratch_p and use it. Use smaller increase for scratch. Don't increase reject for early clobber scratch. * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns setting eliminated regs except setting fp from hfp. (lra_eliminate): Check lra_insn_recog_data on NULL. From-SVN: r203147
2013-09-18lra-constraints.c (need_for_all_save_p): Use macro ↵Vladimir Makarov1-1/+3
HARD_REGNO_CALL_PART_CLOBBERED. 2013-09-18 Vladimir Makarov <vmakarov@redhat.com> * lra-constraints.c (need_for_all_save_p): Use macro HARD_REGNO_CALL_PART_CLOBBERED. * lra-lives.c (check_pseudos_live_through_calls): Use the macro to set up pseudo conflict hard regs. From-SVN: r202721
2013-09-18re PR rtl-optimization/58438 (ICE: in check_rtl, at lra.c:2036)Vladimir Makarov1-4/+6
2013-09-18 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/58438 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop. * lra-constraints.c (undo_optional_reloads): Keep optional reloads from previous subpasses. 2013-09-18 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/58438 * g++.dg/pr58438.C: New test. From-SVN: r202714
2013-09-16re PR middle-end/58418 (wrong code at -O2 and -O3 on x86_64-linux-gnu (in ↵Vladimir Makarov1-35/+34
32-bit mode)) 2013-09-16 Vladimir Makarov <vmakarov@redhat.com> PR middle-end/58418 * lra-constraints.c (undo_optional_reloads): Consider all optional reload even if it did not get a hard reg. 2013-09-16 Vladimir Makarov <vmakarov@redhat.com> * gcc.target/i386/pr58418.c: New. From-SVN: r202630
2013-09-10lra.c (lra): Clear lra_optional_reload_pseudos before every constraint pass.Vladimir Makarov1-24/+48
2013-09-10 Vladimir Makarov <vmakarov@redhat.com> * lra.c (lra): Clear lra_optional_reload_pseudos before every constraint pass. * lra-constraints.c (curr_insn_transform): Switch on optional reloads. Check destination too to check move insn. (undo_optional_reloads): Add check that the original peudo did not changed its allocation and the optional reload was inherited on last inheritance pass. Break loop after deciding to keep optional reload. (lra_undo_inheritance): Add check that inherited pseudo still in memory. From-SVN: r202468
2013-09-09asan.c (asan_emit_stack_protection): Use gen_int_mode instead of GEN_INT.Richard Sandiford1-1/+3
gcc/ * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of GEN_INT. * builtins.c (expand_errno_check): Likewise. * dwarf2cfi.c (init_return_column_size): Likewise. * except.c (sjlj_mark_call_sites): Likewise. * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise. * lra-constraints.c (emit_inc): Likewise. * ree.c (combine_set_extension): Likewise. * regmove.c (fixup_match_2): Likewise. * reload1.c (inc_for_reload): Likewise. From-SVN: r202394
2013-08-08lra-constraints.c (emit_spill_move): Remove assert.Vladimir Makarov1-30/+122
2013-08-08 Vladimir Makarov <vmakarov@redhat.com> * lra-constraints.c (emit_spill_move): Remove assert. (process_alt_operands): Add more debugging output. Increase reject for spilling into memory. Decrease reject for reloading scratch. (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE. From-SVN: r201611
2013-08-02re PR rtl-optimization/58048 (internal compiler error: Max. number of ↵Vladimir Makarov1-1/+1
generated reload insns per insn is achieved (90)) 2013-08-02 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/58048 * lra-constraints.c (process_alt_operands): Don't check asm operand on register. 2013-08-02 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/58048 * gcc.target/i386/pr58048.c: New. From-SVN: r201454
2013-08-02re PR rtl-optimization/57963 (LRA S/390: esa mode failure memcpy-chk)Vladimir Makarov1-8/+41
2013-08-02 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/57963 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New. (lra_constraints): Use them. From-SVN: r201438
2013-07-25re PR rtl-optimization/57960 (S/390: LRA ICE building glibc)Vladimir Makarov1-1/+2
2013-07-25 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/57960 * lra-constraints.c (process_alt_operands): Use the right mode when checking strict_low. 2013-07-25 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/57960 * gcc.target/s390/pr57960.c: New. From-SVN: r201243
2013-07-21Fix typos.Ondřej Bílka1-1/+1
From-SVN: r201109
2013-07-11lra-constraints.c (curr_insn_transform): Switch off optional reloads.Vladimir Makarov1-1/+1
2013-07-10 Vladimir Makarov <vmakarov@redhat.com> * lra-constraints.c (curr_insn_transform): Switch off optional reloads. From-SVN: r200899
2013-07-05re PR rtl-optimization/55342 ([LRA,x86] Non-optimal code for simple loop ↵Vladimir Makarov1-2/+129
with LRA) 2013-07-05 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/55342 * lra-int.h (lra_subreg_reload_pseudos): New. * lra.c: Add undoing optional reloads to the block diagram. (lra_subreg_reload_pseudos): New. (lra_optional_reload_pseudos): Change comments. (lra): Init and clear lra_subreg_reload_pseudos. Clear lra_optional_reload_pseudos after undo transformations. * lra-assigns.c (pseudo_prefix_title): New. (lra_setup_reg_renumber): Use it. (spill_for): Ditto. Check subreg reload pseudos too. (assign_by_spills): Consider subreg reload pseudos too. * lra-constraints.c (simplify_operand_subreg): Use lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos. (curr_insn_transform): Recognize and do optional reloads. (undo_optional_reloads): New. (lra_undo_inheritance): Call undo_optional_reloads. 2013-07-05 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/55342 * gcc.target/i386/pr55342.c: New. From-SVN: r200723
2013-06-28lra-constraints.c (need_for_split_p): Check call used hard regs living ↵Vladimir Makarov1-1/+10
through calls. 2013-06-28 Vladimir Makarov <vmakarov@redhat.com> * lra-constraints.c (need_for_split_p): Check call used hard regs living through calls. From-SVN: r200553
2013-06-27lra-constraints.c (inherit_in_ebb): Process static hard regs too.Vladimir Makarov1-118/+126
2013-06-27 Vladimir Makarov <vmakarov@redhat.com> * lra-constraints.c (inherit_in_ebb): Process static hard regs too. Process OP_INOUT regs for splitting too. From-SVN: r200475
2013-06-08re PR rtl-optimization/57559 (S/390: ICE with lra)Vladimir Makarov1-9/+2
2013-06-08 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/57559 * lra-constraints.c (process_alt_operands): Don't discourage memory with known offset for offsetable memory constraint. * lra.c (lra_emit_add): Exchange y and z for 2-op add insn. 2013-06-08 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/57559 * gcc.target/s390/pr57559.c : New test. From-SVN: r199859
2013-06-06re PR rtl-optimization/57459 (LRA inheritance bug)Vladimir Makarov1-1/+1
2013-06-06 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/57459 * lra-constraints.c (update_ebb_live_info): Fix typo for operand type when setting live regs. 2013-06-06 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/57459 * gcc.target/i386/pr57459.c: New test. From-SVN: r199762
2013-05-24lra-constraints.c (emit_spill_move): Use smaller mode for mem-mem moves.Vladimir Makarov1-22/+56
2013-05-24 Vladimir Makarov <vmakarov@redhat.com> * lra-constraints.c (emit_spill_move): Use smaller mode for mem-mem moves. (check_and_process_move): Consider mem-reg moves for secondary too. (curr_insn_transform): Don't lose insns emitted before for secondary memory moves. (inherit_in_ebb): Mark defined reg. Add usage only if it is not a reg set up in the current insn. From-SVN: r199298
2013-05-07ira.c (update_equiv_regs): Add insn having equiv memory even if it is not ↵Vladimir Makarov1-24/+65
lhs of the insn. 2013-05-07 Vladimir Makarov <vmakarov@redhat.com> * ira.c (update_equiv_regs): Add insn having equiv memory even if it is not lhs of the insn. (setup_reg_equiv): Remove insn having equiv memory which it is not lhs of the insn. * lra-constraints.c (process_address): Try to improve generation code for address base + disp. (lra_constraints): Make correct the code for checking insn setting up backward equivalence. Remove insn only if it is in the init insn list. * lra-eliminations.c (update_reg_eliminate): Change return value. (lra_eliminate): Use the result. From-SVN: r198695
2013-05-02lra-constraints.c (process_alt_operands): Add checking alt number to choose ↵Vladimir Makarov1-1/+3
the best alternative. 2013-05-02 Vladimir Makarov <vmakarov@redhat.com> * lra-constraints.c (process_alt_operands): Add checking alt number to choose the best alternative. From-SVN: r198558
2013-05-01re PR target/57091 (ICE: in assign_by_spills, at lra-assigns.c:1268 with ↵Vladimir Makarov1-26/+17
-mcmodel=large and indirect call) 2013-05-01 Vladimir Makarov <vmakarov@redhat.com> PR target/57091 * lra-constraints.c (best_small_class_operands_num): Remove. (process_alt_operands): Remove small_class_operands_num. Take small classes operands into losers and only if the operand is not matched. Modify debugging output. (curr_insn_transform): Remove best_small_class_operands_num. Print insn name. 2013-05-01 Vladimir Makarov <vmakarov@redhat.com> PR target/57091 * gcc.target/i386/pr57091.c: New test. From-SVN: r198503
2013-04-29re PR target/57097 (ICE: in find_hard_regno_for, at lra-assigns.c:561 with ↵Vladimir Makarov1-5/+30
-O2 -fPIC -m32) 2013-04-29 Vladimir Makarov <vmakarov@redhat.com> PR target/57097 * lra-constraints.c (process_alt_operands): Discourage a bit more using memory for pseudos. Print cost dump for alternatives. Modify cost values for conflicts with early clobbers. (curr_insn_transform): Spill pseudos reassigned to NO_REGS. 2013-04-29 Vladimir Makarov <vmakarov@redhat.com> PR target/57097 * gcc.target/i386/pr57097.c: New test. From-SVN: r198432
2013-04-26rtl.h (struct rtx_def): Add comment for field jump.Vladimir Makarov1-51/+129
2013-04-26 Vladimir Makarov <vmakarov@redhat.com> * rtl.h (struct rtx_def): Add comment for field jump. (LRA_SUBREG_P): New macro. * recog.c (register_operand): Check LRA_SUBREG_P. * lra.c (lra): Add note at the end of RTL code. Align non-empty stack frame. * lra-spills.c (lra_spill): Align stack after spilling pseudos. (lra_final_code_change): Skip subreg change for operators. * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier if there are no operand changes. * lra-constraints.c (curr_insn_set): New. (match_reload): Set LRA_SUBREG_P. (emit_spill_move): Ditto. (check_and_process_move): Use curr_insn_set. Process only single set insns. Don't initialize sec_mem_p and change_p. (simplify_operand_subreg): Use LRA_SUBREG_P. (reg_in_class_p): New function. (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead of #ifdef. Add code to remove cycling. (process_address): Check EXTRA_CONSTRAINT_STR. Process even if non-null disp. Reload inner instead of disp when base and index are null. Try to put lo_sum into register. (EBB_PROBABILITY_CUTOFF): Redefine probability in percents. (check_and_process_move): Move code for move cost check to simple_move_p. Remove equiv_substitution. (simple_move_p): New function. (curr_insn_transform): Initialize sec_mem_p and change_p. Set up curr_insn_set. Call check_and_process_move only for single set insns. Use the new function. Move call of check_and_process_move after operand equiv substitution and address process. From-SVN: r198344
2013-04-24revert: rtl.h (struct rtx_def): ...Vladimir Makarov1-128/+53
2013-04-24 Vladimir Makarov <vmakarov@redhat.com> Revert: 2013-04-24 Vladimir Makarov <vmakarov@redhat.com> * rtl.h (struct rtx_def): ... From-SVN: r198266
2013-04-24re PR rtl-optimization/57046 (wrong code generated by gcc 4.8.0 on i686)Vladimir Makarov1-1/+10
2013-04-24 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimizations/57046 * lra-constraints (split_reg): Set up lra_risky_transformations_p for multi-reg splits. 2013-04-24 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimizations/57046 * gcc.target/i386/pr57046.c: New test. From-SVN: r198263
2013-04-24rtl.h (struct rtx_def): Add comment for field jump.Vladimir Makarov1-53/+128
2013-04-24 Vladimir Makarov <vmakarov@redhat.com> * rtl.h (struct rtx_def): Add comment for field jump. (LRA_SUBREG_P): New macro. * recog.c (register_operand): Check LRA_SUBREG_P. * lra.c (lra): Add note at the end of RTL code. Align non-empty stack frame. * lra-spills.c (lra_spill): Align stack after spilling pseudos. (lra_final_code_change): Skip subreg change for operators. * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier if there are no operand changes. * lra-constraints.c (curr_insn_set): New. (match_reload): Set LRA_SUBREG_P. (emit_spill_move): Ditto. (check_and_process_move): Use curr_insn_set. Process only single set insns. Don't initialize sec_mem_p and change_p. (simplify_operand_subreg): Use LRA_SUBREG_P. (reg_in_class_p): New function. (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead of #ifdef. Add code to remove cycling. (process_address): Check EXTRA_CONSTRAINT_STR. Process even if non-null disp. Reload inner instead of disp when base and index are null. Try to put lo_sum into register. (EBB_PROBABILITY_CUTOFF): Redefine probability in percents. (check_and_process_move): Move code for move cost check to simple_move_p. Remove equiv_substitution. (simple_move_p): New function. (curr_insn_transform): Initialize sec_mem_p and change_p. Set up curr_insn_set. Call check_and_process_move only for single set insns. Use the new function. Move call of check_and_process_move after operand equiv substitution and address process. From-SVN: r198252
2013-04-23lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p to check the ↵Shiva Chen1-3/+2
register content is equal or not. 2013-04-23 Shiva Chen <shiva0217@gmail.com> * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p to check the register content is equal or not. * lra-constraints.c (match_reload): Use lra_assign_reg_val to assign register content record. * lra-eliminations.c (update_reg_eliminate): Use lra_update_reg_val_offset to update register content offset. * lra-int.h (struct lra_reg): Add offset member. (lra_reg_val_equal_p): New static inline function. (lra_update_reg_val_offset): New static inline function. (lra_assign_reg_val): New static inline function. * lra.c (lra_create_new_reg): Use lra_assign_reg_val to assign register content record. (initialize_lra_reg_info_element): Initial offset to zero. From-SVN: r198204
2013-04-19re PR rtl-optimization/56847 ('-fpie' triggers - internal compiler error: in ↵Vladimir Makarov1-2/+9
gen_add2_insn, at optabs.c:4705) 2013-04-19 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/56847 * lra-constraints.c (process_alt_operands): Discourage alternative with non-matche doffsettable memory constraint fro memory with known offset. From-SVN: r198101
2013-02-22re PR inline-asm/56148 (inline asm matching constraint with different mode)Vladimir Makarov1-7/+15
2013-02-22 Vladimir Makarov <vmakarov@redhat.com> PR inline-asm/56148 * lra-constraints.c (process_alt_operands): Reload operand conflicting with earlier clobber only if no more other conflicting operands. From-SVN: r196223
2013-02-12re PR inline-asm/56148 (inline asm matching constraint with different mode)Vladimir Makarov1-20/+40
2013-02-12 Vladimir Makarov <vmakarov@redhat.com> PR inline-asm/56148 * lra-constraints.c (process_alt_operands): Match early clobber operand with itself. Check conflicts with earlyclobner only if the operand is not reloaded. Prefer to reload conflicting operand if earlyclobber and matching operands are the same. 2013-02-12 Vladimir Makarov <vmakarov@redhat.com> PR inline-asm/56148 * gcc.target/i386/pr56148.c: New test. From-SVN: r195988
2013-02-08re PR rtl-optimization/56246 (ICE in assign_by_spills, at lra-assigns.c:1262)Vladimir Makarov1-17/+19
2013-02-08 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/56246 * lra-constraints.c (simplify_operand_subreg): Try tor reuse reload pseudo. * lra.c (lra): Clear lra_optional_reload_pseudos only when all constraints are satisfied. 2013-02-08 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/56246 * gcc.target/i386/pr56246.c: New test. From-SVN: r195902
2013-02-08re PR rtl-optimization/56195 (Error: incorrect register `%rdi' used with `l' ↵Jakub Jelinek1-2/+14
suffix (at -O2)) PR rtl-optimization/56195 * lra-constraints.c (get_reload_reg): Don't reuse regs if they have smaller mode than requested, if they have wider mode than requested, try to return a SUBREG. * gcc.dg/torture/pr56195.c: New test. From-SVN: r195891
2013-02-07lra-constraints.c (process_alt_operands): Fix recently added comment.Vladimir Makarov1-4/+4
2013-02-07 Vladimir Makarov <vmakarov@redhat.com> * lra-constraints.c (process_alt_operands): Fix recently added comment. From-SVN: r195857
2013-02-07re PR rtl-optimization/56225 (ICE in lra-constraints.c when executing the ↵Vladimir Makarov1-1/+16
testsuite with -m32 -march=pentium3) 2013-02-07 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/56225 * lra-constraints.c (process_alt_operands): Check that reload hard reg can hold value for strict_low_part. 2013-02-07 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/56225 * gcc.target/i386/pr56225.c: New test. From-SVN: r195856
2013-01-30re PR rtl-optimization/56144 (ICE in get_reload_reg, at lra-constraints.c:421)Vladimir Makarov1-18/+20
2013-01-30 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/56144 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo for values with side effects. 2013-01-30 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/56144 * gcc.dg/pr56144.c: New. From-SVN: r195582
2013-01-24re PR inline-asm/55934 (LRA inline asm error recovery)Steven Bosscher1-4/+16
gcc/ PR inline-asm/55934 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms that have operands with impossible constraints. Add a FIXME for a speed-up opportunity. * lra-constraints.c (process_alt_operands): Verify that a class selected from constraints on asms is valid for the operand mode. (curr_insn_transform): Remove incorrect comment. testsuite/ PR inline-asm/55934 * gcc.target/i386/pr55934.c: New test. From-SVN: r195420
2013-01-20re PR target/55433 ([LRA] ICE on excessive reloads)Vladimir Makarov1-6/+17
2013-01-20 Vladimir Makarov <vmakarov@redhat.com> PR target/55433 * lra-constraints.c (curr_insn_transform): Don't reuse original insn for secondary memory move when memory mode should be different. From-SVN: r195322
2013-01-18re PR target/55433 ([LRA] ICE on excessive reloads)Vladimir Makarov1-18/+30
2013-01-18 Vladimir Makarov <vmakarov@redhat.com> PR target/55433 * lra-constraints.c (curr_insn_transform): Reuse original insn for secondary memory move. (inherit_reload_reg): Use rclass instead of cl for check_secondary_memory_needed_p. 2013-01-18 Vladimir Makarov <vmakarov@redhat.com> PR target/55433 * gcc.target/i386/pr55433.c: New. From-SVN: r195302
2013-01-10Update copyright years in gcc/Richard Sandiford1-2/+1
From-SVN: r195098
2013-01-09PR rtl-optimization/pr55829Vladimir Makarov1-14/+30
2013-01-09 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/pr55829 * lra-constraints.c (match_reload): Add code for absent output. (curr_insn_transform): Add code for reloads of matched inputs without output. 2013-01-09 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/pr55829 * gcc.target/i386/pr55829.c: New. From-SVN: r195057
2012-12-21re PR inline-asm/55775 (ICE when building pari)Vladimir Makarov1-23/+4
2012-12-21 Vladimir Makarov <vmakarov@redhat.com> PR middle-end/55775 * lra-assigns.c (improve_inheritance): Do nothing after LRA_MAX_INHERITANCE_PASSES pass. * lra-constraints.c (MAX_CONSTRAINT_ITERATION_NUMBER): Rename to LRA_MAX_CONSTRAINT_ITERATION_NUMBER. Move to lra-int.h. (MAX_INHERITANCE_PASSES): Rename to LRA_MAX_INHERITANCE_PASSES. Move to lra-int.h. * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Move from lra-constraints.c. (LRA_MAX_INHERITANCE_PASSES): Ditto. 2012-12-21 Vladimir Makarov <vmakarov@redhat.com> PR middle-end/55775 * gcc.target/i386/pr55775.c: New test. From-SVN: r194680
2012-12-11re PR rtl-optimization/55193 (ICE in in simplify_const_unary_operation, at ↵Jakub Jelinek1-4/+25
simplify-rtx.c:1659) PR rtl-optimization/55193 * lra-constraints.c (loc_equivalence_callback): New function. (lra_constraints): Call simplify_replace_fn_rtx instead of loc_equivalence_change_p on DEBUG_INSNs. From-SVN: r194405
2012-12-07re PR rtl-optimization/55141 (wrong code with -fno-split-wide-types)Vladimir Makarov1-1/+2
2012-12-07 Vladimir Makarov <vmakarov@redhat.com> testsuite/gcc.target/i386/pr55141.c * lra-constraints.c (lra_constraints): Use biggest mode for df_set_regs_ever_live. 2012-12-07 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/55141 * gcc.target/i386/pr55141.c: New. From-SVN: r194308
2012-11-29re PR middle-end/55456 (454.calculix in SPEC CPU 2006 is miscompiled)Vladimir Makarov1-3/+7
2012-11-29 Vladimir Makarov <vmakarov@redhat.com> PR middle-end/55456 * lra-int.h (lra_new_regno_start): New external. * lra.c (lra_new_regno_start): New global. (lra): Set up lra_new_regno_start. * lra-constraints.c (match_reload): Sync values only for original pseudos. From-SVN: r193948
2012-11-28re PR rtl-optimization/55512 (Various LRA ICEs with inline-asm)Vladimir Makarov1-1/+1
2012-11-28 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/55512 * lra-assigns.c (assign_by_spills): Assigned arbitrary hard regs to failed reload pseudos instead of changing asm pattern. * lra-constraints.c (MAX_CONSTRAINT_ITERATION_NUMBER): Increase value. 2012-11-28 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/55512 * gcc.target/i386/pr55512-[1234].c: New tests. From-SVN: r193901
2012-11-27rtl.h (debug_bb_n_slim, [...]): Remove prototypes.Steven Bosscher1-21/+16
* rtl.h (debug_bb_n_slim, debug_bb_slim, debug_insn_slim): Remove prototypes. (debug_rtl_slim): Rename to dump_rtl_slim. (print_value_slim): Rename to dump_value_slim. * ira.c (ira_update_equiv_info_by_shuffle_insn): Update print_value_slim user. * lra.c (lra_process_new_insns): Use dump_insn_slim to dump single insns. Use dump_rtl_slim for insn chains. * lra-constraints.c (get_reload_reg): Update print_value_slim user. (process_addr_reg): Likewise. (equiv_address_substitution): Likewise. (inherit_reload_reg): Likewise. Use dump_insn_slim to dump single insns. (check_and_process_move): Likewise. (lra_constraints): Likewise. (split_reg): Likewise. (update_ebb_live_info): Likewise. (remove_inheritance_pseudos): Likewise. * sched-vis.c: Don't include sched-int.h. Remove #ifdef INSN_SCHEDULING tests. (print_value_slim): Rename to dump_value_slim. Simplify a few cases using GET_RTX_NAME. (print_pattern): Do not handle UNSPEC and UNSPECV here, explain why. (print_insn): Reorganize code to be independent of INSN_SCHEDULING. Always print CALL_INSN patterns. Harmonize INSN_UID dumping template. Handle NOTE_INSN_CALL_ARG_LOCATION. (dump_rtl_slim): Copied from debug_rtl_slim. (debug_rtl_slim): Wrapper around dump_rtl_slim to stderr. * haifa-sched.c (schedule_insn): Update print_insn user. From-SVN: r193873
2012-11-26re PR target/55277 (ICE in assign_by_spills, at lra-assigns.c:1217)Vladimir Makarov1-1/+3
2012-11-26 Vladimir Makarov <vmakarov@redhat.com> PR target/55277 * gcc.target/i386/pr55227.c: New test. 2012-11-26 Vladimir Makarov <vmakarov@redhat.com> PR target/55277 * lra-constraints.c (in_class_p): Check reg class contents too. From-SVN: r193824