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.
|