aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog-ira-reload
blob: 1354c4335ffd25170aededad7985f77d02df73fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
2009-10-22  Jeff Law <law@redhat.com>

	* reload1.c (finish_spills): Also try to re-allocate pseudos
	currently on the stack.

	* ira-lives.c (process_single_reg_class_operands): Update the 
	hard reg costs for all the hard registers desired by the single
	reg class operand.

2009-10-15  Jeff Law <law@redhat.com>

	* ira-reload.c (ira_bad_reload_regno): New function.
	(ira_bad_reload_regno_1): Likewise.
	* ira.h (ira_bad_reload_regno): Declare.
	* reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.

2009-10-13  Jeff Law <law@redhat.com>

	* ira-reload.c (no_uses_after_last_set): New bitmap.
	(identify_singleton_sets): Set it appropriately.
	(emit_localizing_stores): More aggressively replace a pseudo
	with its equivalent memory location.  Indicate that INSN
	should be deleted in certain cases.
	(localize_pseudos): Allocate and free no_uses_after_last_set.
	Fix SET/USE processing order for no_uses_after_last_set.
	If emit_localizing_stores requests an insn be deleted, do it.

2009-09-31  Jeff Law <law@redhat.com>

	* ira-reload.c (emit_localizing_loads): Attempt to replace the
	pseudo with its equivalent memory when safe and profitable.

2009-09-30  Jeff Law <law@redhat.com>

	* ira-reload.c (uses_before_set): Remove bitmap.
	(identify_singleton_uses): Corresponding changes.
	(localize_pseudos): Likewise.

	* ira-reload.c (emit_localizing_stores): Return whether or not the
	current insn needs to be rescanned by DF analyzer.
	Attempt to replace the pseudo with its equivalent memory.
	(localize_pseudos): Rescan as needed after emit_localizing_stores.

2009-09-25  Jeff Law <law@redhat.com>

	* ira-reload.c (identify_singleton_uses): Twiddles for using DF rather
	than note_stores/note_uses.
	(identify_singleton_sets, collect_loads): Likewise.
	(identify_singleton_uses_1): Remove.
	(collect_loads_1, emit_localizing_loads_1): Likewise.
	(emit_localizing_loads): Twiddles for using DF rather than
	note_stores/note_uses.  Return whether or not rescanning is needed.
	(rename_sets, emit_localizing_stores): Likewise.
	(localize_pseudos): Iterate over DF structures rather than using
	note_stores/note_uses.  Defer rescanning until we're finished with
	the current insn.

2009-09-24  Jeff Law <law@redhat.com>

	* ira-reload.c (emit_localizing_loads_1): Incrementally update DF.
	(emit_localizing_stores): Likewise.
	(create_new_allocno_for_spilling): Clear the hard register conflicts
	for the new allocno.
	(maybe_add_conflict): Handle hard register conflicts.
	(mark_conflicts): Renamed from mark_conflict.   Simplify slightly.
	(mark_uses): New.
	(live_uses, live_uses_1): Remove.
	(build_conflicts_for_new_allocnos): Simplify and use DF.

2009-09-22  Jeff Law <law@redhat.com>

	* ira-reload.c (build_conflicts_for_new_allocnos): Ignore debug
	insns.
	(localize_pseudos): Likewise.

2009-09-21  Jeff Law <law@redhat.com>

	* ira-reload.c (localize_pseudos): Add new argument to call to
	setup_reg_classes.
	(emit_localizing_stores): Remove unused variable.
	* reload1.c (reload): Pass in the right peudo register number
	to alter_reg.  Restore incorrectly removed initialization of
	tmp_pseudo_reg_arr.

	* NOTES: New file.

	* ira-reload.c: New file.
	* ira-int.h (reload_reload): Declare.
	* ira-color.c (sorted_allocnos): No longer static.
	* ira.c (ira): Call ira_reload.
	* Makefile.in (OBJS-common): Add ira-reload.o
	(ira-reload.o): Add dependencies

	* ira-color.c (setup_allocno_priorities): No longer static.
	* ira-int.h (setup_allocno_priorities): Declare

	* reload1.c (reg_max_ref_width): No longer static.
	(alter_reg): Likewise.
	(record_equivalences_for_reload): New function extracted from reload.
	(reload): Don't sort registers prior to calling alter_reg anymore.
	* reload.h (reg_max_ref_width): Declare.
	(alter_reg): Likewise.
	(record_equivalences_for_reload): Likewise.

2009-09-18  Jeff Law <law@redhat.com>
	
	* ira.c (expand_reg_info): No longer static.
	* ira-int.h (expand_reg_info): Declare.

	* ira-build.c (remove_from_all_conflicts): New function.
	(remove_allocno_conflicts): New function.
	* ira-int.h (remove_from_all_conflicts): Declare.

	2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
	* ira.c (ira_non_ordered_class_hard_regs): Define.
	(setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
	* ira-int.h (ira_non_ordered_class_hard_regs): Declare.
	* ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
	cost of unaligned hard regs when allocating multi-reg pseudos.

	* regstat.c (regstat_reallocate_ri): New function.
	* regs.h (regstat_reallocate_ri): Declare

	* ira-conflicts.c (print_allocno_conflicts): New function to print
	conflicts for a single allocno.
	(print_conflicts): Use print_allocno_conflicts.