summaryrefslogtreecommitdiffstats
path: root/gcc/lra-constraints.c
Commit message (Collapse)AuthorAgeFilesLines
...
* 2013-05-01 Vladimir Makarov <vmakarov@redhat.com>vmakarov2013-05-011-26/+17
| | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198503 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-04-29 Vladimir Makarov <vmakarov@redhat.com>vmakarov2013-04-291-5/+30
| | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198432 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-04-26 Vladimir Makarov <vmakarov@redhat.com>vmakarov2013-04-261-51/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198344 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>vmakarov2013-04-241-128/+53
| | | | | | | | | | Revert: 2013-04-24 Vladimir Makarov <vmakarov@redhat.com> * rtl.h (struct rtx_def): ... git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198266 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>vmakarov2013-04-241-1/+10
| | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198263 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>vmakarov2013-04-241-53/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198252 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-04-23 Shiva Chen <shiva0217@gmail.com>vmakarov2013-04-231-3/+2
| | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198204 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-04-19 Vladimir Makarov <vmakarov@redhat.com>vmakarov2013-04-191-2/+9
| | | | | | | | | | | PR rtl-optimization/56847 * lra-constraints.c (process_alt_operands): Discourage alternative with non-matche doffsettable memory constraint fro memory with known offset. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198101 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-02-22 Vladimir Makarov <vmakarov@redhat.com>vmakarov2013-02-221-7/+15
| | | | | | | | | | | PR inline-asm/56148 * lra-constraints.c (process_alt_operands): Reload operand conflicting with earlier clobber only if no more other conflicting operands. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196223 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-02-12 Vladimir Makarov <vmakarov@redhat.com>vmakarov2013-02-121-20/+40
| | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195988 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-02-08 Vladimir Makarov <vmakarov@redhat.com>vmakarov2013-02-081-17/+19
| | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195902 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/56195jakub2013-02-081-2/+14
| | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195891 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-02-07 Vladimir Makarov <vmakarov@redhat.com>vmakarov2013-02-071-4/+4
| | | | | | | | | * lra-constraints.c (process_alt_operands): Fix recently added comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195857 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-02-07 Vladimir Makarov <vmakarov@redhat.com>vmakarov2013-02-071-1/+16
| | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195856 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-01-30 Vladimir Makarov <vmakarov@redhat.com>vmakarov2013-01-301-18/+20
| | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195582 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/steven2013-01-241-4/+16
| | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195420 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-01-20 Vladimir Makarov <vmakarov@redhat.com>vmakarov2013-01-201-6/+17
| | | | | | | | | | | PR target/55433 * lra-constraints.c (curr_insn_transform): Don't reuse original insn for secondary memory move when memory mode should be different. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195322 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-01-18 Vladimir Makarov <vmakarov@redhat.com>vmakarov2013-01-181-18/+30
| | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195302 138bc75d-0d04-0410-961f-82ee72b054a4
* Update copyright years in gcc/rsandifo2013-01-101-2/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195098 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-01-09 Vladimir Makarov <vmakarov@redhat.com>vmakarov2013-01-091-14/+30
| | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195057 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-12-21 Vladimir Makarov <vmakarov@redhat.com>vmakarov2012-12-211-23/+4
| | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194680 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/55193jakub2012-12-111-4/+25
| | | | | | | | | * lra-constraints.c (loc_equivalence_callback): New function. (lra_constraints): Call simplify_replace_fn_rtx instead of loc_equivalence_change_p on DEBUG_INSNs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194405 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-12-07 Vladimir Makarov <vmakarov@redhat.com>vmakarov2012-12-071-1/+2
| | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194308 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-29 Vladimir Makarov <vmakarov@redhat.com>vmakarov2012-11-291-3/+7
| | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193948 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-28 Vladimir Makarov <vmakarov@redhat.com>vmakarov2012-11-281-1/+1
| | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193901 138bc75d-0d04-0410-961f-82ee72b054a4
* * rtl.h (debug_bb_n_slim, debug_bb_slim, debug_insn_slim): Removesteven2012-11-271-21/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193873 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-26 Vladimir Makarov <vmakarov@redhat.com>vmakarov2012-11-261-1/+3
| | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193824 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-22 Vladimir Makarov <vmakarov@redhat.com>vmakarov2012-11-231-2/+12
| | | | | | | | | | | | | | | | | | | | PR middle-end/55430 * lra.c: Move #include "hard-reg-set.h" before #include "rtl.h". (new_insn_reg): Update biggest_mode. (collect_non_operand_hard_regs): Check eliminable regs too. (initialize_lra_reg_info_element): Initialize biggest_mode. (add_regs_to_insn_regno_info): Ignore non-allocatable non-eliminable hard regs. (lra.c): Move setting lra_no_alloc_regs before init_insn_recog_data. * lra-constraints.c (simplify_operand_subreg): Add a comment. (lra_constraints): Ignore equivalent memory of regs occuring in paradoxical subregs. * lra-lives.c (lra_create_live_ranges): Add a comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193742 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-21 Vladimir Makarov <vmakarov@redhat.com>vmakarov2012-11-211-17/+34
| | | | | | | | | | PR rtl-optimization/55414 * lra-constraints.c (Index): New function. (lra_constraints): Check dead equiv init insns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193712 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-20 Vladimir Makarov <vmakarov@redhat.com>vmakarov2012-11-201-1/+1
| | | | | | | | | | PR rtl-optimization/55396 * lra-constraints.c (get_reload_reg): Change class if it is different from reg class. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193678 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-20 Uros Bizjak <ubizjak@gmail.com>uros2012-11-201-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/i386/i386.md (fix_trunc<MODEF:mode><SWI48:mode>_sse): Macroize insn from fix_trunc<mode>{si,di}_sse using SWI48 mode iterator. (peephole2 to avoid vector decoded forms): Macroize peephole2 using MODEF mode iterator. Use SWI48 mode iterator instead of SWI48x. 2012-11-20 Uros Bizjak <ubizjak@gmail.com> PR target/19398 * config/i386/i386.md (peephole2 to shorten x87->SSE reload sequences): Remove peephole2. * config/i386/i386.h (enum ix86_tune_indices) <IX86_TUNE_SHORTEN_X87_SSE>: Remove. * config/i386/i386.h (initial_ix86_tune_features): Update. 2012-11-20 Vladimir Makarov <vmakarov@redhat.com> PR target/19398 * lra-constraints.c (process_alt_operands): Discourage reloads through secodnary memory. testsuite/ChangeLog: 2012-11-20 Uros Bizjak <ubizjak@gmail.com> PR target/19398 * gcc.target/i386/pr19398.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193671 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-16 Vladimir Makarov <vmakarov@redhat.com>vmakarov2012-11-161-1/+20
| | | | | | | | | | | | | | | | PR rtl-optimization/55330 * lra-constraints.c (MAX_INHERITANCE_PASSES): New macro. (lra_inheritance, lra_undo_inheritance): Use it to limit number of the passes. 2012-11-16 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/55330 * gfortran.dg/pr55330.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193567 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-09 Vladimir Makarov <vmakarov@redhat.com>vmakarov2012-11-091-25/+15
| | | | | | | | | | | | | | | | | | | | | | PR tree-optimization/55154 * lra-int.h (LRA_LOSER_COST_FACTOR, LRA_MAX_REJECT): New macros. * lra.c (setup_operand_alternative): Use them. * lra-constraints.c (LOSER_COST_FACTOR, MAX_OVERALL_COST_BOUND): Remove. (process_alt_operands): Use LRA_LOSER_COST_FACTOR and LRA_MAX_REJECT. Accumulate reject instead of setting for non-const. (curr_insn_transform): Initialize best_losers and best_overall by INT_MAX. 2012-11-09 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/55154 * gcc.target/i386/pr55154.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193364 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-07 Vladimir Makarov <vmakarov@redhat.com>vmakarov2012-11-071-0/+18
| | | | | | | | | | | | | | | PR rtl-optimization/55122 * lra-constraints.c (match_reload): Sync values for dead input pseudos. 2012-11-07 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/55122 * gcc.dg/pr55122.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193310 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-05 Vladimir Makarov <vmakarov@redhat.com>vmakarov2012-11-051-5/+20
| | | | | | | | | | | | | | | PR rtl-optimization/55151 * lra-constraints.c (process_alt_operands): Permit putting reg value into memory. Increase reject for this case. 2012-11-05 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/55151 * gcc.dg/pr55151.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193170 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-02 Vladimir Makarov <vmakarov@redhat.com>vmakarov2012-11-021-7/+17
| | | | | | | | | | | | | | | | | PR middle-end/55130 * lra-constraints.c (debug_loc_equivalence_change_p): Rename to loc_equivalence_change_p. (lra_constraints): Check equiv_insn_bitmap for debug insn. Call loc_equivalence_change_p for non-transformed insn. 2012-11-02 Vladimir Makarov <vmakarov@redhat.com> PR middle-end/55150 * gcc.target/i386/pr55130.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193096 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-01 Vladimir Makarov <vmakarov@redhat.com>vmakarov2012-11-011-3/+14
| | | | | | | | | | | | | | | | | PR middle-end/55150 * lra-constraints.c (lra_constraints): Check only pseudos with equivalences. Add insns with equivalence pseudos. 2012-11-01 Vladimir Makarov <vmakarov@redhat.com> PR middle-end/55150 * gcc.dg/pr55150.c: Rename to gcc.dg/pr55150-1.c. * gcc.dg/pr55150-2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193065 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-31 Vladimir Makarov <vmakarov@redhat.com>vmakarov2012-10-311-1/+4
| | | | | | | | | | | | | | | | PR middle-end/55150 * lra-constraints.c (lra_constraints): Update debug insn info after equivalence change. 2012-10-31 Vladimir Makarov <vmakarov@redhat.com> PR middle-end/55150 * gcc.dg/pr55150.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193042 138bc75d-0d04-0410-961f-82ee72b054a4
* * lra-constraints.c (choose_split_class): Add ATTRIBUTE_UNUSED toamylaar2012-10-311-1/+2
| | | | | | | hard_reg_class. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193012 138bc75d-0d04-0410-961f-82ee72b054a4
* * lra-constrraints.c (check_secondary_memory_needed_p):amylaar2012-10-301-1/+2
| | | | | | | Add ATTRIBUTE_UNUSED to parameters. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192993 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2012-10-301-6/+1
| | | | | | | | | | | * defaults.h (SLOW_UNALIGNED_ACCESS): Provide default definition. * expmed.c (SLOW_UNALIGNED_ACCESS): Remove default definition. * expr.c (SLOW_UNALIGNED_ACCESS): Likewise. * lra-constraints.c (SLOW_UNALIGNED_ACCESS): Likewise. (simplify_operand_subreg): Don't check STRICT_ALIGNMENT here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192992 138bc75d-0d04-0410-961f-82ee72b054a4
* Remove trailing white spaceshjl2012-10-291-94/+94
| | | | | | | | | | | | | * lra-assigns.c: Remove trailing white spaces. * lra-coalesce.c: Likewise. * lra-constraints.c: Likewise. * lra-eliminations.c: Likewise. * lra-int.h: Likewise. * lra-spills.c: Likewise. * lra.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192966 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-28 Vladimir Makarov <vmakarov@redhat.com>vmakarov2012-10-291-5/+72
| | | | | | | | | | | | PR rtl-optimization/55106 * lra-constraints.c (skip_usage_debug_insns): New function. (check_secondary_memory_needed_p): Ditto. (inherit_reload_reg): Use the new functions. Improve debug output. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192904 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-28 Vladimir Makarov <vmakarov@redhat.com>vmakarov2012-10-281-3/+5
| | | | | | | | | | | | | | * rtl.h (struct rtx_def): Add a comment for member unchanging. * lra-int.h (LRA_TEMP_CLOBBER_P): New macro. (lra_hard_reg_substitution): Rename to lra_final_code_change. * lra-constraints.c (match_reload): Mark temporary clobbers. * lra-spill.c (lra_hard_reg_substitution): Rename to lra_final_code_change. Remove temporary clobbers. * lra.c (lra): Rename to lra_final_code_change. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192897 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2012-10-261-480/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR bootstrap/55049 * Makefile.in (rtlanal.o): Add dependency on addresses.h. * rtl.h (address_info): New structure. (strip_address_mutations, decompose_address, decompose_lea_address) (decompose_mem_address, update_address, get_index_scale) (get_index_code): Declare. * rtlanal.c: Include addresses.h. (strip_address_mutations, must_be_base_p, must_be_index_p) (set_address_segment, set_address_base, set_address_index) (set_address_disp, decompose_incdec_address, decompose_automod_address) (extract_plus_operands, baseness, decompose_normal_address) (decompose_address, decompose_lea_address, decompose_mem_address) (update_address, get_index_scale, get_index_code): New functions. * lra-constraints.c (strip_subreg): New function. (address, extract_loc_address_regs, extract_address_regs) (get_index_scale): Delete. (process_addr_reg): Apply strip_subreg to the location. (uses_hard_regs_p): Use decompose_mem_address. (valid_address_p, base_plus_disp_to_reg, can_add_disp_p) (equiv_address_substitution): Take an address_info rather than an address. Remove other arguments. Avoid using Pmode. (process_address): Use decompose_mem_address and decompose_lea_address. Update calls to above functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192837 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2012-10-261-6/+6
| | | | | | | | * lra-constraints.c (process_address): Tighten arguments to base_reg_class. Use simplify_gen_binary to generate PLUS rtxes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192836 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2012-10-261-8/+61
| | | | | | | | * lra-constraints.c (get_index_scale, can_add_disp_p): New functions. (equiv_address_substitution): Use them. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192835 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2012-10-261-34/+37
| | | | | | | | * lra-constraints.c (valid_address_p): New function, split out from... (process_address): ...here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192834 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2012-10-261-13/+39
| | | | | | | | * lra-constraints.c (process_address): Describe the kinds of address that we might see. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192833 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-25 Vladimir Makarov <vmakarov@redhat.com>vmakarov2012-10-261-2/+0
| | | | | | | | | | * lra-int.h (lra_assert): Redefine it gcc_checking_assert. * lra-constraints.c (check_and_process_move): Remove #if ENABLE_ASSERT_CHECKING. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192832 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud