| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195098 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
hard_reg_class.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193012 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
Add ATTRIBUTE_UNUSED to parameters.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192993 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
| |
* 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
|