OSDN Git Service

* config/rs6000/rs6000.md (strlensi): Emit barrier after
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-03-17  David Edelsohn  <edelsohn@gnu.org>
2
3         * config/rs6000/rs6000.md (strlensi): Emit barrier after
4         unconditional jump.
5
6 2006-03-17  Paul Brook  <paul@codesourcery.com>
7
8         * doc/install.texi: Docuemnt --with-mode.
9         * config.gcc: Add --with-mode for arm*-*-*.
10         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
11
12 2006-03-17  J"orn Rennecke <joern.rennecke@st.com>
13
14         * sh.c (max_labelno_before_reorg): New variable.
15         (sh_reorg): Initialize it.
16         (find_barrier): Check max_labelno_before_reorg before using
17         label_to_alignment.  Take length of explicit alignment insns
18         into account.  When seeing a UNSPECV_CONST_END, return it.
19
20         * sh.c (fixup_mova): Set mode of affected label to QImode.
21         (untangle_mova): New function.
22         (find_barrier): Use it.  Check mode of label before decrementing
23         num_mova.
24         (sh_reorg): Likewise.
25         Set mode of all insns back to VOIDmode.
26
27         * sh.c (MOVA_LABELREF): New macro.
28         (mova_p, fixup_mova, sh_reorg): Use it.
29         (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
30         ADDR_DIFF_VEC matches mova.
31
32 2006-03-17  Steven Bosscher  <stevenb.gcc@gmail.com>
33
34         * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
35         with ATTRIBUTE_UNUSED.
36
37 2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
38
39         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
40         pointer, instead of assuming it is possible to derive the
41         correct args size from a call insn.
42
43 2006-03-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
44
45         * rtl.h (CONST_INT_P): Define.
46         * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
47         instead of GET_CODE(x) == CONST_INT.
48         (vax_rtx_costs): Likewise.
49         (vax_output_int_move): Likewise.
50         (vax_output_int_add): Likewise.
51         (legitimate_constant_address_p): Likewise.
52         (index_term_p): Likewise.
53         * config/vax/vax.h (PRINT_OPERAND): Likewise.
54         * config/vax/vax.md (and<mode>3): Likewise.
55         (ashrsi3): Likewise.
56         (extv): Likewise.
57         (movstricthi): Likewise.
58         (movstrictqi): Likewise.
59         (rotrsi3): Likewise.
60         (five unnamed insns): Likewise.
61
62 2006-03-16  Geoffrey Keating  <geoffk@apple.com>
63
64         * doc/tm.texi (SDB and DWARF): Add extra parameter to
65         ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
66         * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
67         * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
68         Pass to ASM_OUTPUT_DWARF_OFFSET.
69         * dwarf2out.c (debug_frame_section): New.
70         (output_call_frame_info): Use debug_frame_section.  Pass it to
71         dw2_asm_output_offset.
72         (output_die): Pass appropriate section to dw2_asm_output_offset.
73         (output_compilation_unit_header): Likewise.
74         (output_pubnames): Likewise.
75         (output_aranges): Likewise.
76         (enum dw_val_class): Break dw_val_class_lbl_offset into
77         dw_val_class_lineptr and dw_val_class_macptr.
78         (add_AT_lbl_offset): Delete.
79         (add_AT_lineptr): New.
80         (add_AT_macptr): New.
81         (AT_lbl): Expect a lineptr or macptr.
82         (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
83         (attr_checksum): Likewise.
84         (same_dw_val_p): Likewise.
85         (size_of_die): Likewise.
86         (value_format): Likewise.
87         (output_die): Likewise.
88         (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
89         add_AT_lbl_offset.
90         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
91         * config/i386/i386.c (x86_file_start): Call darwin_file_start.
92         * config/darwin-protos.h (darwin_file_start): New.
93         (darwin_asm_output_dwarf_offset): New.
94         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
95         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
96         darwin_file_start.
97         * config/darwin.c (darwin_emit_unwind_label): Don't output label
98         if not EH section; simplify.
99         (darwin_file_start): New.
100         (darwin_asm_output_dwarf_offset): New.
101         * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
102         mark as 'debug'.
103         (DEBUG_INFO_SECTION): Likewise.
104         (DEBUG_ABBREV_SECTION): Likewise.
105         (DEBUG_ARANGES_SECTION): Likewise.
106         (DEBUG_MACINFO_SECTION): Likewise.
107         (DEBUG_LINE_SECTION): Likewise.
108         (DEBUG_LOC_SECTION): Likewise.
109         (DEBUG_PUBNAMES_SECTION): Likewise.
110         (DEBUG_STR_SECTION): Likewise.
111         (DEBUG_RANGES_SECTION): Likewise.
112         (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
113         (ASM_OUTPUT_DWARF_OFFSET): New.
114
115 2006-03-16  Joseph S. Myers  <joseph@codesourcery.com>
116
117         * config.gcc (tm_defines): Always add to previous value rather
118         than replacing it.
119
120 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
121
122         * config/mips/predicates.md (splittable_const_int_operand): New,
123         split from move_operand.
124         (splittable_symbolic_operand): New.
125         (move_operand): Add commentary.  Use splittable_const_int_operand.
126         Inline mips_atomic_symbolic_constant_p.
127         * config/mips/mips.md: Add combine splitters for handling moves
128         of splittable_const_int_operands and splittable_symbolic_operands.
129         * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
130         (mips_split_symbol): Declare.
131         (mips_move_integer): Declare.
132         * config/mips/mips.c (mips_split_p): Make global.
133         (TARGET_MIN_ANCHOR_OFFSET): Override default.
134         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
135         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
136         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
137         (mips_offset_within_object_p): Handle block symbols.
138         (mips_atomic_symbolic_constant_p): Delete.
139         (mips_cannot_force_const_mem): Return false for constants that
140         mips_legitimize_move can handle.
141         (mips_use_blocks_for_constant_p): New function.
142         (mips_split_symbol): Make global.
143         (mips_move_integer): Likewise.  Add a temporary register argument.
144         (mips_legitimize_const_move): Use splittable_const_int_operand and
145         splittable_symbolic_operand.
146         (mips_use_anchors_for_symbol_p): New function.
147         * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
148         (mips_split_p): Declare.  
149
150 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
151
152         * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
153         (mips*-*-linux*): Likewise.
154
155 2006-03-16  Roger Sayle  <roger@eyesopen.com>
156             Daniel Speyer  <dspeyer@wam.umd.edu>
157
158         PR middle-end/18259
159         * tree-dump.c (dump_real): New function.
160         (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
161         * Makefile.in (REAL_H): New macro for dependencies on real.h.
162         (tree-dump.o): Add $(REAL_H) to the dependencies.
163
164 2006-03-16  Roger Sayle  <roger@eyesopen.com>
165
166         PR middle-end/21781
167         * real.c (real_from_string): If the mantissa is zero, don't bother
168         parsing the exponent as the result should always be zero.
169
170 2006-03-16  Andreas Krebbel  <krebbel1@de.ibm.com>
171
172         * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
173
174 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
175
176         * config/ia64/ia64.c (stops_p): Added explicit initialization.
177         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
178         ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
179         ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
180         ia64_sched_finish_global): New static functions to implement
181         hooks from gcc_target.sched.
182         (spec_check_no, max_uid, pending_data_specs): New static variables.
183         (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
184         ia64_spec_check_src_p): New static functions.
185         (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
186         (TARGET_SCHED_ADJUST_COST): Removed.
187         (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
188         TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
189         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
190         TARGET_SCHED_GEN_CHECK,
191         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
192         TARGET_SCHED_SET_SCHED_FLAGS): New macros.
193         (update_set_flags, group_barrier_needed, set_src_needs_barrier):
194         Fixed to handle speculation checks.
195         (rtx_needs_barrier): Fixed to handle speculative loads and
196         their checks.
197         (ia64_variable_issue): Added code to count speculative loads and their
198         checks.
199         (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
200         speculative loads.
201         (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
202         New enumerations.
203         (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
204         New constants.
205         (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
206         (ia64_reorg): Reset stops_p to NULL after it is freed.
207         * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
208         UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
209         (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
210         chk_a.
211         (data_speculative, control_speculative, check_load): New attributes.
212         (mov<mode>_advanced, mov<mode>_speculative,
213         mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
214         zero_extend<mode>di2_speculative,
215         zero_extend<mode>di2_speculative_advanced): New patterns for
216         data and control speculative loads.
217         (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
218         check loads.
219         (advanced_load_check_clr_<mode>, speculation_check_<mode>):
220         New pattern for data and control speculation checks.
221         (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
222         ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
223         reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
224         Auxiliary definitions for the patterns.
225         * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
226         1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
227         constraints.
228         (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
229         for speculation.
230         (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
231         * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
232         2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
233         New resource constraints.
234         (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
235         for speculation.
236         (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
237         * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
238         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
239         msched-in-control-spec, msched-ldc, msched-control-ldc,
240         msched-spec-verbose, msched-prefer-non-data-spec-insns,
241         msched-prefer-non-control-spec-insns,
242         msched-count-spec-in-critical-path): New flags to tune speculative
243         scheduling.
244         * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
245         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
246         msched-in-control-spec, msched-ldc, msched-control-ldc,
247         msched-spec-verbose, msched-prefer-non-data-spec-insns,
248         msched-prefer-non-control-spec-insns,
249         msched-count-spec-in-critical-path): Document new flags.
250
251 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
252
253         * target.h (struct spec_info_def): New opaque declaration.
254         (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
255         speculate_insn, needs_block_p, gen_check,
256         first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
257         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
258         TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
259         TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
260         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
261         TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
262         gcc_target.sched.
263         (TARGET_SCHED): Use new macros.
264         * rtl.h (copy_DEPS_LIST_list): New prototype.
265         * sched-int.h (struct sched_info): Change signature of new_ready field,
266         adjust all initializations. New fields: add_remove_insn,
267         begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
268         region_head_or_leaf_p.
269         (struct spec_info_def): New structure declaration.
270         (spec_info_t): New typedef.
271         (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
272         recovery_block, orig_pat.
273         (glat_start, glat_end): New variables declaraions.
274         (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
275         New access macros.
276         (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
277         DETACH_LIFE_INFO, USE_GLAT.
278         (enum SPEC_SCHED_FLAGS): New enumeration.
279         (NOTE_NOTE_BB_P): New macro.
280         (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
281         attach_life_info, debug_spec_status, check_reg_live): New functions.
282         (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
283         all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
284         sched-ebb.c
285         (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
286         * ddg.c (get_block_head_tail): Adjust all uses.
287         * modulo-sched.c (get_block_head_tail): Adjust all uses.
288         (sms_sched_info): Initialize new fields.
289         (contributes_to_priority): Removed.
290         * haifa-sched.c (params.h): New include.
291         (get_block_head_tail): Adjust all uses.
292         (ISSUE_POINTS): New macro.
293         (glat_start, glat_end): New global variables.
294         (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
295         nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
296         old_last_basic_block, before_recovery, current_sched_info_var,
297         rgn_n_insns, luid): New static variables.
298         (insn_cost1): New function.  Move logic from insn_cost to here.
299         (find_insn_reg_weight1): New function.  Move logic from
300         find_insn_reg_weight to here.
301         (reemit_notes, move_insn, max_issue): Change signature.
302         (move_insn1): Removed.
303         (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
304         extend_bb): New static functions to support extension of scheduler's
305         data structures.
306         (generate_recovery_code, process_insn_depend_be_in_spec,
307         begin_speculative_block, add_to_speculative_block,
308         init_before_recovery, create_recovery_block, create_check_block_twin,
309         fix_recovery_deps): New static functions to support
310         generation of recovery code.
311         (fix_jump_move, find_fallthru_edge, dump_new_block_header,
312         restore_bb_notes, move_block_after_check, move_succs): New static
313         functions to support ebb scheduling.
314         (init_glat, init_glat1, attach_life_info1, free_glat): New static
315         functions to support handling of register live information.
316         (associate_line_notes_with_blocks, change_pattern, speculate_insn,
317         sched_remove_insn, clear_priorities, calc_priorities, bb_note,
318         add_jump_dependencies): New static functions.
319         (check_cfg, has_edge_p, check_sched_flags): New static functions for
320         consistancy checking.
321         (debug_spec_status): New function to call from debugger.
322         (priority): Added code to handle speculation checks.
323         (rank_for_schedule): Added code to distinguish speculative instructions.
324         (schedule_insn): Added code to handle speculation checks.
325         (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
326         Fixed to handle ebbs.
327         (move_insn): Added code to handle ebb scheduling.
328         (max_issue): Added code to use ISSUE_POINTS of instructions.
329         (choose_ready): Added code to choose between speculative and
330         non-speculative instructions.
331         (schedule_block): Added code to handle ebb scheduling and scheduling of
332         speculative instructions.
333         (sched_init): Initialize new variables.
334         (sched_finish): Free new variables.  Print statistics.
335         (try_ready): Added code to handle speculative instructions.
336         * lists.c (copy_DEPS_LIST_list): New function.
337         * sched-deps.c (extend_dependency_caches): New function.  Move logic
338         from create_dependency_caches to here.
339         (get_dep_weak, ds_merge): Make global.
340         * genattr.c (main): Code to output prototype for
341         dfa_clear_single_insn_cache.
342         * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
343         (output_dfa_clean_insn_cache_func): Code to output
344         dfa_clear_single_insn_cache function.
345         * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
346         n_insns.
347         (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
348         Removed.
349         (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
350         New static variables.
351         (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
352         fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
353         struct sched_info.
354         (ebb_sched_info): Initialize new fields.
355         (get_block_head_tail): Adjust all uses.
356         (compute_jump_reg_dependencies): Fixed to use glat_start.
357         (schedule_ebb): Code to remove unreachable last block.
358         (schedule_ebbs): Added code to update register live information.
359         * sched-rgn.c (region_sched_info): Initialize new fields.
360         (get_block_head_tail): Adjust all uses.
361         (last_was_jump): Removed.  Adjust users.
362         (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
363         add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
364         Implement new hooks.
365         (check_dead_notes1): New static function.
366         (struct region): New fields: dont_calc_deps, has_real_ebb.
367         (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
368         (BB_TO_BLOCK): Fixed to handle EBBs.
369         (EBB_FIRST_BB, EBB_LAST_BB): New macros.
370         (ebb_head): New static variable.
371         (debug_regions, contributes_to_priority): Fixed to handle EBBs.
372         (find_single_block_regions, find_rgns, find_more_rgns): Initialize
373         new fields.
374         (compute_dom_prob_ps): New assertion.
375         (check_live_1, update_live_1): Fixed to work with glat_start instead of
376         global_live_at_start.
377         (init_ready_list): New assertions.
378         (can_schedule_ready_p): Split update code to begin_schedule_ready.
379         (new_ready): Add support for BEGIN_CONTROL speculation.
380         (schedule_insns): Fixed code that updates register live information
381         to handle EBBs.
382         (schedule_region): Fixed to handle EBBs.
383         (init_regions): Use extend_regions and check_dead_notes1.
384         * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
385         PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
386         * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
387         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
388         TARGET_SCHED_GEN_CHECK,
389         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
390         TARGET_SCHED_SET_SCHED_FLAGS): Document.
391         * doc/invoke.texi (max-sched-insn-conflict-delay,
392         sched-spec-prob-cutoff): Document.
393
394 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
395
396         * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
397         inter_tick, queue_index.
398         (struct sched_info): Change signature of init_ready_list field.
399         Adjust all initializations.
400         (RESOLVED_DEPS): New access macro.
401         (ready_add): Remove prototype.
402         (try_ready): Add prototype.
403         * sched-rgn.c (init_ready_list): Use try_ready.
404         (schedule_region): Initialize
405         current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
406         * sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
407         (init_ready_list): Use try_ready.
408         (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
409         * lists.c (remove_list_elem): Remove `static'.
410         (remove_free_INSN_LIST_elem): New function.
411         * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
412         * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
413         (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
414         New constants.
415         (readyp): New variable.
416         (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
417         change_queue_index, resolve_dep): New static functions.
418         (try_ready): New function.  Adjust callers in sched-rgn.c and
419         sched-ebb.c to use it instead of ready_add.
420         (clock_var): Move at the begining of file.
421         (rank_for_schedule): Fix typo.
422         (queue_insn): Add assertion.  Handle QUEUE_INDEX.
423         (ready_lastpos): Enforce assertion.
424         (ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
425         update all callers.
426         (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
427         (schedule_insn): Rewrite to use try_ready and resolve_dep.
428         (queue_to_ready): Use free_INSN_LIST_list.
429         (early_queue_to_ready): Fix typo.
430         (schedule_block): Init readyp.  Move init_ready_list call after the
431         initialization of clock_var.  Fix error in rejecting insn by
432         targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
433         that previously corrected INSN_TICKs.  Add code for handling
434         QUEUE_INDEX.
435         (set_priorities): Fix typo.
436         (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
437         Clarify comment and code that keeps current_sched_info->next_tail
438         non-null.
439
440 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
441
442         * sched-rgn.c (extend_rgns): New static function.
443         (find_rgns): Use it.
444         (gather_region_statistics, print_region_statistics): New static
445         functions.
446         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
447         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
448
449 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
450             Andrey Belevantsev <abel@ispras.ru>
451
452         * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
453         * lists.c (unused_deps_list): New variable.
454         (free_list): Add assertions to verify the proper distinguishing 
455         between INSN_LISTs and DEPS_LISTs.
456         (find_list_elem, remove_list_elem, remove_list_node): New static
457         functions.
458         (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
459         remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
460         remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
461         (alloc_INSN_LIST): Assert that the list we're working on is indeed
462         an INSN_LIST.
463         (free_INSN_LIST_node): Likewise.
464         * modulo-sched.c (current_sched_info): Initialize flags field.
465         * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
466         * rtl.def (DEPS_LIST): Define.
467         * rtl.h: Declare new functions from lists.c.
468         * sched-deps.c (spec_dependency_cache): New static variable.
469         (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
470         (add_dependence): Change return type to void.  Move the logic to ...
471         (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
472         (delete_all_dependences): Add comment about forward_dependency_cache.
473         Handle spec_dependency_cache.  Handle DEPS_LISTs.
474         (fixup_sched_groups): Clarify the change of priority of output
475         and anti dependencies.
476         (sched_analyze_2): Adjust add_dependence calls to create data
477         speculative dependence.
478         (add_forward_dependence): Renamed to add_forw_dep, change prototype.
479         Adjust all callers.  Handle DEPS_LISTS.
480         (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
481         presence of speculation.
482         (init_dependency_caches, free_dependency_caches):
483         Handle spec_dependency_cache.
484         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
485         estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
486         New static functions.
487         (add_or_update_back_dep, add_or_update_back_forw_dep,
488         add_back_forw_dep, delete_back_forw_dep): New functions.
489         * sched-int.h (ds_t, dw_t): New typedefs.
490         (struct sched_info): Add new field flags.
491         (struct haifa_insn_data): Add new bitfield has_internal_dep.
492         Prototype new sched-deps.c functions.
493         (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
494         (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
495         MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
496         BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
497         SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
498         SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
499         New constants.
500         (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
501         New enums.
502         * sched-rgn.c (current_sched_info): Initialize flags field.
503         (schedule_insns): Initialize current_sched_info before the sched_init
504         call.
505         * sched-ebb.c (current_sched_info): Initialize flags field.
506         (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
507         Call add_or_update_back_dep instead of add_dependence.
508         Create control speculative dependencies.
509         (schedule_insns): Initialize current_sched_info before the sched_init
510         call.
511
512 2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
513
514         * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
515         fs->signal_frame.
516         (sh_fallback_frame_state): Likewise.
517
518 2006-03-15  Geoffrey Keating  <geoffk@apple.com>
519
520         * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
521         Do switch on default_use_cxa_atexit.
522         (powerpc*-*-darwin*): Build crt2.o on powerpc.
523         * config/darwin-crt3.o: New.
524         * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
525         to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
526         (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
527         OS version.
528         * config/rs6000/t-darwin: Move crt2.o building to here.
529         * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
530         Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
531         of __cxa_atexit.
532
533 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
534
535         * config/vax/vax.c (nonindexed_address_p): Change logical negation
536         from '! xxx' to '!xxx' for coding-style conformance.
537         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
538         (EXTRA_CONSTRAINT): Likewise.
539         * config/vax/vax.md (four unnamed insns): Likewise.
540         
541 2006-03-15  Paul Brook  <paul@codesourcery.com>
542
543         * config/arm/arm.c (minipool_pad): New.
544         (add_minipool_forward_ref): Include pool alignment padding in address
545         calculation.
546         (push_minipool_fix): Set minipool_pad.
547         (minipool_pad): Ditto.
548
549 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
550
551         * config/vax/vax.c (split_quadword_operands): Use MEM_P()
552         instead of GET_CODE() == MEM and REG_P() instead of
553         GET_CODE() == REG.
554         (print_operand_address): Likewise.
555         (vax_address_cost): Likewise.
556         (vax_rtx_costs): Likewise.
557         (vax_notice_update_cc): Likewise.
558         (vax_output_int_add): Likewise.
559         (INDEX_REGISTER_P): Likewise.
560         (BASE_REGISTER_P): Likewise.
561         (nonindexed_address_p): Likewise.
562         (vax_mode_dependent_address_p): Likewise.
563         * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
564         (PRINT_OPERAND): Likewise.
565         * config/vax/vax.md (ashlsi3): Likewise.
566         (ashlsi3): Likewise.
567         (some more unnamed insns): Likewise.
568
569 2006-03-15  Kazu Hirata  <kazu@codesourcery.com>
570
571         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
572         iterator-style macro.
573         (mark_control_dependent_edges_necessary): Update the use of
574         EXECUTE_IF_CONTROL_DEPENDENT.
575
576 2006-03-15  J"orn Rennecke <joern.rennecke@st.com>
577
578         * config/sh/predicates.md (cache_address_operand): Special.
579         (ua_address_operand): Likewise.
580
581 2006-03-15  Zdenek Dvorak <dvorakz@suse.cz>
582
583         * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
584         loop notes.
585         * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
586
587 2006-03-15  Andreas Schwab  <schwab@suse.de>
588
589         * gensupport.c (identify_predicable_attribute): Don't free p_false
590         when it is still in use.
591
592 2006-03-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
593
594         * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
595         the default setting here.
596
597 2006-03-14  Steven Bosscher  <stevenb.gcc@gmail.com>
598
599         * tree-pass.h (pass_cfg): Remove.
600         * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
601         * passes.c (pass_cfg): Don't run it.
602
603 2006-03-14  Kazu Hirata  <kazu@codesourcery.com>
604
605         * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
606         * reg-stack.c (stack_regs_mentioned_data): Change the type to
607         VEC(char,heap) *.
608         (stack_regs_mentioned): Update the uses of
609         stack_regs_mentioned_data.  Don't access the array beyond its
610         end.
611         (reg_to_stack): Update the uses of stack_regs_mentioned_data.
612         Don't include gt-reg-stack.h.
613
614         * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
615         * system.h (UNALIGNED_WORD_ASM_OP): Poison.
616
617         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
618
619         PR middle-end/26684
620         * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
621         STACK_REGS.
622
623 2006-03-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
624
625         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
626
627 2006-03-14  Richard Guenther  <rguenther@suse.de>
628
629         PR tree-optimization/26672
630         * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
631         SSA form.
632
633 2006-03-14  Richard Guenther  <rguenther@suse.de>
634
635         PR tree-optimization/26667
636         * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
637         node for the callees.  Always allow inlining if it will shrink
638         the function size.
639
640 2006-03-14  Richard Guenther  <rguenther@suse.de>
641
642         PR middle-end/26659
643         * builtins.c (get_pointer_alignment): Prefer alignment
644         information from decls over that from types.
645
646 2006-03-14  Andrew Pinski  <pinskia@physics.uc.edu>
647
648         PR target/26657
649         * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
650
651 2006-03-14  Joseph S. Myers  <joseph@codesourcery.com>
652
653         * config/rs6000/rs6000.opt (mdlmzb): New option.
654         (msched-prolog, msched-epilog): Use Var not Mask.
655         * doc/invoke.texi (-mdlmzb): Document.
656         * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
657         MASK_SCHED_PROLOG.
658         (rs6000_override_options): Enable -mdlmzb for 405 and 440.
659         * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
660
661 2006-03-13  Uttam Pawar  <uttamp@us.ibm.com>
662
663         PR rtl-optimization/25739
664         * bt-load.c (augment_live_range): Free tos pointer.
665
666         * gensupport.c (identify_predicable_attribute): Free
667         p_false pointer.
668         * gcov.c (create_file_names): Free name pointer.
669
670 2006-03-13  Roger Sayle  <roger@eyesopen.com>
671
672         PR middle-end/26557
673         * stmt.c (emit_case_nodes): Handle the case where the index is a
674         CONST_INT, where the comparison mode is specified by the index type.
675
676 2006-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
677
678         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
679         is defined.
680
681 2006-03-13  Richard Sandiford  <richard@codesourcery.com>
682
683         * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
684         (*branch_fp_inverted): Likewise.
685
686 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
687
688         PR middle-end/25989
689         * omp-low.c (expand_omp_for_generic): Mark istart0
690         and iend0 as addressable.
691
692 2006-03-13  Jie Zhang  <jie.zhang@analog.com>
693
694         * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
695
696 2006-03-13  Jeff Law  <law@redhat.com>
697
698         * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
699         virtual operands are interesting.
700         (vrp_visit_stmt): Corresponding changes.
701
702 2006-03-13  Bernd Schmidt  <bernd.schmidt@analog.com>
703
704         * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
705         of RETS.
706         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
707         TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
708         * config/bfin/crti.S: Use it instead of __PIC__.
709         * config/bfin/crtn.S: Likewise.
710
711         * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
712         call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
713         not if flag_pic.
714         Lose 'G' modifier for call operand.
715         * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
716         recognize 'G' modifier.
717
718 2006-03-13  Eric Botcazou  <ebotcazou@adacore.com>
719
720         PR middle-end/18859
721         * gimplify.c (gimplify_switch_expr): Discard empty ranges.
722         * stmt.c (expand_case): Likewise.
723
724 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
725
726         PR rtl-optimization/26254
727         * loop-invariant.c (seq_insns_valid_p): New function.
728         (move_invariant_reg): Only emit new code if it is valid.
729
730 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
731
732         * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
733         Removed.
734         (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
735         (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
736         (commit_one_edge_insertion): Do not look for loop notes.
737
738 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
739
740         * jump.c (follow_jumps): Do not check for loop notes.  Move check for
741         flag_test_coverage out of loop.
742
743 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
744
745         * final.c (shorten_branches): Remove outdated comment, and turn
746         the if branch that guards it to continue.
747
748 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
749
750         * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
751         * cfgloop.h (struct loop): Remove unused fields.
752
753 2006-03-13  Kazu Hirata  <kazu@codesourcery.com>
754
755         * doc/invoke.texi (-fdump-rtl-loop): Remove.
756         (-dL, -fdump-rtl-loop2): Update the dump file names 
757
758         * doc/invoke.texi: Update dump file names.
759
760 2006-03-12  Steven Bosscher  <stevenb.gcc@gmail.com>
761
762         * predict.c (estimate_probability): Remove.
763         * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
764         * basic-block.h (estimate_probability): Remove prototype.
765         * passes.c (finish_optimization_passes): Dump branch prediction or
766         profiling heuristics to the .profile tree dump.
767         (init_optimization_passes): Unqueue pass_branch_prob.
768
769         * doc/invoke.texi (-fdump-rtl-bp): Remove.
770
771 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
772
773         * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
774         * rtl.h (LABEL_NEXTREF): Remove field accessor.
775
776 2006-03-11  Eric Botcazou  <ebotcazou@adacore.com>
777
778         * function.h (frame_offset_overflow): Declare.
779         * function.c (frame_offset_overflow): New function.
780         (assign_stack_local_1): Call it to detect that the offset overflows.
781         * cfgexpand.c (alloc_stack_frame_space): Likewise.
782
783 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
784
785         * config/sh/sh.c: Include alloc-pool.h.
786         (label_ref_list_pool): New alloc pool.
787         (label_ref_list_t): New type for lists of labels.
788         (struct pool_node): Make wend a label_ref_list_t.
789         (add_constant): Use the new type, eradicate LABEL_NEXTREF
790         references.
791         (dump_table): Likewise.
792         (sh_reorg): Set up the alloc pool before using add_constant and
793         dump_table, and destroy it when finishing.
794
795 2006-03-11  Richard Sandiford  <richard@codesourcery.com>
796
797         * config/mips/mips.c: Remove redundant comment.
798
799 2006-03-10  Jason Merrill  <jason@redhat.com>
800
801         PR c/26004
802         * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if 
803         the target was declared 'register'.
804
805 2006-03-10  Adam Nemet  <anemet@caviumnetworks.com>
806
807         * genpreds.c (write_insn_constraint_len): Change definition of
808         insn_constraint_len to return size_t to match the declaration.
809
810 2006-03-10  DJ Delorie  <dj@redhat.com>
811
812         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
813         start at zero.
814         (m32c_expand_insv): Fix test for an AND mask.
815
816 2006-03-10  Richard Guenther  <rguenther@suse.de>
817
818         PR middle-end/26565
819         * builtins.c (get_pointer_alignment): Handle component
820         references for field alignment.
821
822 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
823
824         * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
825         when building with libgloss.
826         (sh*elf): Implement --without-fp option.
827         (sh64-superh-linux*): Don't multilib. 
828
829 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
830
831         * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
832
833 2006-03-09  Andrew Pinski  <pinskia@physics.uc.edu>
834
835         * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
836         Set it when one of the replacement functions returned true.
837         Return TODO_cleanup_cfg if cfgchanged is true.
838         (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
839
840 2006-03-09  Adam Nemet  <anemet@caviumnetworks.com>
841
842         * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
843         instead of gen_lowpart.
844
845 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
846
847         * config/mips/mips-protos.h (mips_output_conditional_branch): Change
848         interface.
849         (mips_output_order_conditional_branch): Declare.
850         * config/mips/mips.h (MIPS_BRANCH): New macro.
851         * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
852         for the comparison.  Use gen_condjump.
853         (mips_output_conditional_branch): Rework interface to take the
854         asm templates for a direct branch and the inverse of a direct branch.
855         (mips_output_order_conditional_branch): New function.
856         (mips_builtin_branch_and_move): New function.
857         (mips_expand_builtin_compare): Use it.  Use VOIDmode for the
858         branch condition.  Use gen_single_cc as the condition for
859         __builtin_mips_upper_* or __builtin_mips_lower_*.
860         (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
861         Use VOIDmode for the branch condition.
862         * config/mips/predicates.md (order_operator): New predicate.
863         * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
864         (branch_fp): Rename to...
865         (*branch_fp): ...this.  Remove mode from comparison operator.
866         Use new mips_output_conditional_branch interface.
867         (branch_fp_inverted): Rename to...
868         (*branch_fp_inverted): ...this and update as for *branch_fp.
869         (*branch_zero<mode>): Rename to...
870         (*branch_order<mode>): ...this.  Remove mode from comparison operator.
871         Use mips_output_order_conditional_branch.  Only accept ordered
872         comparisons.  
873         (*branch_zero<mode>_inverted): Rename to...
874         (*branch_order<mode>_inverted): ...this and update as for
875         *branch_order<mode>.
876         (*branch_equality<mode>): Accept zero as the second operand to
877         the equality operator.  Use the new mips_output_conditional_branch
878         interface.
879         (*branch_equality<mode>_inverted): Likewise.
880         (condjump): New expander.
881         * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
882         operator.
883         * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
884         (bc1any2t, bc1any2f): Likewise.
885         (single_cc): New expander.
886         (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
887
888 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
889
890         * doc/md.texi: Update documentation of MIPS constraints.
891         * config/mips/constraints.md: New file.
892         * config/mips/mips.md: Include it.
893         * config/mips/mips.c (mips_char_to_class): Delete.
894         (override_options): Don't initialize mips_char_to_class.
895         * config/mips/mips.h (mips_char_to_class): Delete.
896         (REG_CLASS_FROM_LETTER): Delete.
897         (CONST_OK_FOR_LETTER_P): Delete.
898         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
899         (EXTRA_CONSTRAINT_Y): Delete.
900         (EXTRA_CONSTRAINT_STR): Delete.
901         (CONSTRAINT_LEN): Delete.
902         (EXTRA_MEMORY_CONSTRAINT): Delete.
903
904 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
905
906         * tree-cfg.c (move_block_to_fn): Remove the statements from the
907         original fn's eh regions.
908
909 2006-03-09  Eric Botcazou  <ebotcazou@adacore.com>
910
911         * fold-const.c (build_range_check): Make sure to use a valid type to
912         apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
913         transformation.
914
915         (range_predecessor): New static function.
916         (range_successor): Likewise.
917         (merge_ranges): Use them to compute predecessors and successors of
918         range bounds.
919
920 2006-03-09  Roger Sayle  <roger@eyesopen.com>
921
922         PR middle-end/26561
923         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
924         X op C3, consider whether C3 overflows towards +Inf or -Inf.
925
926 2006-03-08  DJ Delorie  <dj@redhat.com>
927
928         * config/m32c/addsub.md (addqi3): Disparage a0/a1.
929         (addpsi3): Expand to include memory operands.  Remove
930         reload-specific splits.
931         * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
932         (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
933         (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
934         (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
935         (shift1_qi, shift1_hi, insv): New.
936         * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
937         (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
938         cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
939         cond_to_int): New.
940         * config/m32c/m32c-protos.h: Update as needed.
941         * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
942         default the Rcr, Rcl, Raw, and Ral constraints.  Add Ra0 and Ra1.
943         Fail for unrecognized R* constraints.
944         (m32c_cannot_change_mode_class): Be more picky about pseudos.
945         (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
946         (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
947         Add Sp constraint.
948         (m32c_init_libfuncs): New.
949         (m32c_legitimate_address_p): Add debug wrapper.
950         (m32c_rtx_costs): New.
951         (m32c_address_cost): New.
952         (conversions): Add 'B' prefix.
953         (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
954         operands, or word regnames for QI operands.  'B' prints bit
955         position.
956         (m32c_expand_setmemhi): New.
957         (m32c_expand_movmemhi): New.
958         (m32c_expand_movstr): New.
959         (m32c_expand_cmpstr): New.
960         (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
961         (m32c_expand_neg_mulpsi3): Handle non-ints.
962         (m32c_cmp_flg_0): New.
963         (m32c_expand_movcc): New.
964         (m32c_expand_insv): New.
965         (m32c_scc_pattern): New.
966         * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS.  Take
967         a0/a1 out of SIregs.
968         (STORE_FLAG_VALUE): New.
969         * config/m32c/m32c.md: Add unspecs for string moves.  Define various mode and
970         code macros.
971         (no_insn): New.
972         * config/m32c/mov.md: Make constraints more liberal.
973         (zero_extendqihi2): Optimize r0/r1 case.
974         * config/m32c/muldiv.md (mulpsi3): Check for intvals.
975         * config/m32c/predicates.md (m32c_any_operand): New.
976         (m32c_nonimmediate_operand): New.
977         (m32c_hl_operand): New.
978         (m32c_r3_operand): New.
979         (ap_operand): New.
980         (ma_operand): New.
981         (memsym_operand): New.
982         (memimmed_operand): New.
983         (a_qi_operand): New.
984         (m32c_eqne_operator): New.
985         (m32c_1bit8_operand): New.
986         (m32c_1bit16_operand): New.
987         (m32c_1mask8_operand): New.
988         (m32c_1mask16_operand): New.
989         * config/m32c/blkmov.md: New file.
990         * config/m32c/t-m32c (MD_FILES): Add blkmov.
991
992 2006-03-08  Andreas Tobler  <a.tobler@schweiz.ch>
993
994         * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
995         unsigned to fix signed/unsigned comparison issue in
996         DWARF2_FRAME_REG_OUT.
997         (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
998         unsigned comparison issue in DWARF2_FRAME_REG_OUT.
999
1000         * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
1001         of ptr into the ENABLE_CHECKING section.
1002
1003 2006-03-08  Jeff Law  <law@redhat.com>
1004
1005         * tree-vrp.c (infer_value_range): Only count pointer uses
1006         and dereferences if -fdelete-null-pointer-checks is enabled.
1007
1008         * tree-vrp.c (find_assert_locations): Infer value ranges for
1009         single use pointers, but do not create ASSERT_EXPRs for them.
1010         When a non-null range is inferred for a pointer, backwards
1011         propagate that range to other equivalent pointers through the
1012         use-def chain.
1013
1014 2006-03-08  Paolo Bonzini  <bonzini@gnu.org>
1015
1016         PR bootstrap/26500
1017         * Makefile.in (dvi, html, install-info): Invoke the corresponding
1018         language hook targets.
1019         * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
1020         objcp/Make-lang.in: Create stub rules for dvi, html, install-info
1021         if language hook targets were missing.
1022
1023 2006-03-07  Zdenek Dvorak <dvorakz@suse.cz>
1024
1025         * tree-ssa-opfinalize.h: Removed.
1026         * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
1027         dependency.
1028         * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
1029         (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
1030         INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
1031         add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
1032         finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
1033         finalize_ssa_v_must_def_ops): New.
1034
1035 2006-03-07  Kenneth Zadeck <zadeck@naturalbridge.com>
1036
1037         * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
1038         block as parameter.
1039
1040 2006-03-07  Geoffrey Keating  <geoffk@apple.com>
1041
1042         * varasm.c (assemble_end_function): Say that 'fnname' is unused.
1043
1044         * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
1045         addresses with offsets; reorganize.
1046
1047         * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
1048         (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
1049         (expand_builtin_init_dwarf_reg_sizes): Likewise.
1050
1051 2006-03-08  David Billinghurst <David.Billinghurst@riotinto.com>
1052
1053         PR target/26588
1054         * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
1055
1056 2006-03-08  Ben Elliston  <bje@au.ibm.com>
1057
1058         * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
1059
1060 2006-03-07  Aldy Hernandez  <aldyh@redhat.com>
1061
1062         PR gomp/26238
1063         * doc/passes.texi (Tree-SSA passes): Document omp lowering and
1064         expansion.
1065
1066 2006-03-07  Richard Guenther  <rguenther@suse.de>
1067
1068         PR tree-optimization/26587
1069         * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
1070
1071 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
1072
1073         * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
1074
1075 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
1076
1077         * hooks.c (hook_bool_mode_rtx_true): New function.
1078         * hooks.h (hook_bool_mode_rtx_true): Declare.
1079         * toplev.c (compile_file): Call output_shared_constant_pool.
1080         * varasm.c (shared_constant_pool): New variable.
1081         (assemble_start_function, assemble_end_function): Remove arguments
1082         from call to output_constant_pool.
1083         (create_constant_pool): New function, split out from...
1084         (init_varasm_status): ...here.
1085         (force_const_mem): Choose between the shared and per-function constant
1086         pools.  Set current_function_uses_const_pool when reusing old entries
1087         as well as when creating new ones.
1088         (mark_constant): Ignore data argument.
1089         (mark_constants): Remove pool argument.
1090         (mark_constant_pool): Likewise.  Use current_function_uses_const_pool
1091         to decide whether the function uses a constant pool.
1092         (output_constant_pool_contents): New function, split out from...
1093         (output_constant_pool): ...here.
1094         (output_shared_constant_pool): New function.
1095         (init_varasm_once): Initialize shared_constant_pool.
1096         * output.h (output_constant_pool): Delete.
1097         (output_shared_constant_pool): Declare.
1098         * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
1099         * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
1100
1101 2006-03-06  Nick Clifton  <nickc@redhat.com>
1102
1103         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
1104         flag_strength_reduce.
1105
1106 2006-03-06  Ben Elliston  <bje@au.ibm.com>
1107
1108         * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
1109         x86_64-*-linux* configurations.
1110
1111         * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
1112         (LIBGCC2_WORDS_BIG_ENDIAN): Define.
1113
1114 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
1115
1116         * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
1117         Remove.
1118         * basic-block.h: Remove the extern for
1119         rediscover_loops_after_threading.
1120
1121         * cfgloop.c (cancel_loop): Make it static.
1122         * cfgloop.h: Remove the prototype for cancel_loop.
1123
1124         * flow.c (recompute_reg_usage): Make it static.
1125         * rtl.h: Remove the prototype for recompute_reg_usage.
1126
1127         * function.c (use_return_register): Make it static.
1128         * function.h: Remove the prototype.
1129
1130 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
1131
1132         * recog.c (volatile_mem_p, validate_change_maybe_volatile):
1133         Remove.
1134         * recog.h: Remove the prototype for
1135         validate_change_maybe_volatile.
1136
1137 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
1138
1139         * rtlanal.c (replace_reg): Remove.
1140         * rtl.h: Remove the prototype for replace_reg.
1141
1142 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
1143
1144         * regclass.c (reg_scan_update): Remove.
1145         (reg_scan_mark_refs): Remove the last argument.
1146         * rtl.h: Remove the prototype for reg_scan_update.
1147
1148 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
1149
1150         * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
1151         combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
1152         config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
1153         config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
1154         df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
1155         loop-invariant.c, omp-low.c, opts.c, passes.c,
1156         rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
1157         tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
1158         tree-ssa-structalias.c, tree-ssa-threadedge.c,
1159         tree-ssa-threadupdate.c, tree-vect-patterns.c,
1160         tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
1161         unwind-dw2.c: Fix comment typos.  Follow spelling conventions.
1162
1163 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
1164
1165         * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
1166         * dwarf2out.h: Remove the prototype for
1167         dwarf2out_add_library_unit_info.
1168
1169 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
1170
1171         * tree.c (add_var_to_bind_expr): Remove.
1172         * tree.h: Remove the prototype for add_var_to_bind_expr.
1173
1174 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
1175
1176         * regclass.c (n_non_fixed_regs): Remove.
1177         (init_reg_sets_1, globalize_reg): Remove all uses of
1178         n_non_fixed_regs.
1179         * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
1180
1181 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
1182
1183         * rtlanal.c (insns_safe_to_move_p): Remove.
1184         * rtl.h: Remove the prototype for insns_safe_to_move_p.
1185
1186 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
1187
1188         * expmed.c (expand_mult_add): Remove.
1189         * expr.h: Remove the prototype for expand_mult_add.
1190
1191 2006-03-04  Jakub Jelinek  <jakub@redhat.com>
1192
1193         * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
1194         and REG_SAVED_VAL_EXP constants.
1195         * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
1196         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
1197         Handle regs stored by value.
1198         (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
1199         (execute_cfa_program): Handle DW_CFA_val_offset,
1200         DW_CFA_val_offset_sf and DW_CFA_val_expression.
1201         (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
1202         value specially.  Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
1203         (uw_install_context_1): Handle target regs stored by value.
1204
1205 2006-03-03  Daniel Berlin  <dberlin@dberlin.org>
1206
1207         * tree-sra.c (tree_sra): Return todoflags;
1208         (generate_one_element): Set TODO_update_smt_usage if needed.
1209         (pass_sra): Remove TODO_update_smt_usage.
1210         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
1211         parameter.
1212         (tree_ssa_forward_propagate_single_use_vars): Return
1213         TODO_update_smt_usage if we need to update SMT usage.
1214         (pass_forwprop): Remove TODO_update_smt_usage.
1215         
1216 2006-03-03  Diego Novillo  <dnovillo@redhat.com>
1217
1218         * tree-ssa-operands.c: Tidy whitespace.  Fix spelling.
1219         (correct_use_link): Remove reference to get_stmt_operands.
1220         (update_stmt_operands): Likewise.
1221         (get_modify_expr_operands): New function factored out of
1222         parse_ssa_operands and get_expr_operands.
1223         Try to create V_MUST_DEFs for LHS by default.
1224         (get_expr_operands) <case MODIFY_EXPR>: Call
1225         get_modify_expr_operands.
1226         <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
1227         <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
1228         (parse_ssa_operands) <case MODIFY_EXPR>: Call
1229         get_modify_expr_operands.
1230
1231 2006-03-03  Kazu Hirata  <kazu@codesourcery.com>
1232
1233         * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
1234         * tree-flow.h: Remove the prototype for
1235         referenced_var_lookup_if_exists.
1236
1237 2006-03-03  Steve Ellcey  <sje@cup.hp.com>
1238
1239         PR rtl-optimization/26345
1240         PR target/19061
1241         * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
1242
1243 2006-03-03  Roger Sayle  <roger@eyesopen.com>
1244
1245         PR tree-optimization/26524
1246         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
1247         fold_convert to create a constant of the appropriate type.
1248
1249 2006-03-03  Richard Sandiford  <richard@codesourcery.com>
1250
1251         * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
1252         SYMBOL_REF_IN_BLOCK_P.
1253         * doc/rtl.texi: Likewise.  Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
1254         of SYMBOL_FLAG_IN_BLOCK.
1255         * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
1256         instead of SYMBOL_REF_IN_BLOCK_P.
1257         * explow.c (use_anchored_address): Likewise.
1258         * rtl.c (rtx_size): Likewise.
1259         * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
1260         instead of SYMBOL_FLAG_IN_BLOCK.
1261         (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
1262         SYMBOL_REF_IN_BLOCK_P.
1263         (assemble_variable): Likewise.
1264         (output_constant_def_contents): Likewise.
1265         (output_constant_pool): Likewise.
1266         (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
1267         instead of SYMBOL_FLAG_IN_BLOCK.
1268         * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
1269         SYMBOL_REF_IN_BLOCK_P.
1270         (SYMBOL_REF_BLOCK): Likewise.
1271         (SYMBOL_REF_OFFSET): Likewise.
1272         (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
1273         SYMBOL_REF_IN_BLOCK_P.
1274         (SYMBOL_FLAG_IN_BLOCK): Replace with...
1275         (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
1276         (SYMBOL_REF_IN_BLOCK_P): Replace with...
1277         (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
1278
1279 2006-03-03  Jakub Jelinek  <jakub@redhat.com>
1280
1281         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
1282
1283 2006-03-02  Roger Sayle  <roger@eyesopen.com>
1284
1285         * simplify-rtx.c (simplify_unary_operation): When simplifying
1286         (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
1287         that we perform the right shift in the appropriate mode, and
1288         then extend or truncate the result to requested mode.
1289
1290 2006-03-03  Zdenek Dvorak <dvorakz@suse.cz>
1291
1292         * gengtype.c (main): Handle double_int type.
1293         * tree.h (struct tree_int_cst): Make type of int_cst double_int.
1294         * double-int.c: New file.
1295         * double-int.h: New file.
1296         * system.h: Include doubleint.h.
1297         * Makefile.in (SYSTEM_H): Include double-int.h.
1298         (double-int.o): Add.
1299
1300 2006-03-03  Joseph S. Myers  <joseph@codesourcery.com>
1301
1302         PR bootstrap/26478
1303         * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
1304         copying over it.
1305
1306 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
1307
1308         * tree-vrp.c (remove_range_assertions): Do not update statements
1309         unnecessarily.
1310
1311 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
1312
1313         * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
1314         cleanup.
1315         * gcse.c (rest_of_handle_gcse): Ditto.
1316         * except.c (gate_handle_eh): Ditto.
1317         * cfgcleanup.c (rest_of_handle_jump2): Ditto.
1318         * basic-block.h (CLEANUP_PRE_LOOP): Remove.
1319
1320 2006-03-02  Eric Christopher  <echristo@apple.com>
1321
1322         * config/i386/i386.c (machopic_output_stub): Add indirection to
1323         jump.
1324
1325 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
1326
1327         * loop.c: Removed.
1328
1329 2006-03-02  David S. Miller  <davem@sunset.davemloft.net>
1330
1331         Sun Niagara specific optimizations.
1332         * config.gcc: Recognize niagara as target.
1333         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
1334         (TARGET_CPU_niagara): Define.
1335         (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
1336         (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
1337         (CPP_CPU_SPEC): Handle -mcpu=niagara.
1338         (ASM_CPU_SPEC): Likewise.
1339         (PROCESSOR_NIAGARA): New enum entry.
1340         (REGISTER_MOVE_COST): Handle Niagara.
1341         (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
1342         * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
1343         (sparc_override_options): Recognize "niagara", set appropriate
1344         default MASK_* values for it, and align functions to 32-bytes
1345         by default just like ULTRASPARC/ULTRASPARC3.
1346         (sparc_initialize_trampoline): Handle niagara like ultrasparc.
1347         (sparc64_initialize_trampoline): Likewise.
1348         (sparc_use_sched_lookahead): Use zero for niagara.
1349         (sparc_issue_rate): Use one for niagara.
1350         * config/sparc/niagara.md: New file.
1351         * config/sparc/sparc.md: Include it.
1352         * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
1353         ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
1354         when default cpu is niagara.
1355         (CPP_CPU_SPEC): Handle -mcpu=niagara.
1356         (ASM_CPU_SPEC): Likewise.
1357         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
1358         when default cpu is niagara.
1359         (ASM_CPU_SPEC): Handle -mcpu=niagara.
1360         * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
1361         just like v9/ultrasparc/ultrasparc3.
1362         * doc/invoke.texi: Add documentation for "niagara" and improve
1363         existing documentation for ultrasparc variants.
1364
1365 2006-03-02  Diego Novillo  <dnovillo@redhat.com>
1366
1367         * tree-ssa-operands.c (update_stmt_operands): Update documentation.
1368
1369 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
1370
1371         * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
1372         (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
1373         and say that only one is needed.
1374         * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
1375         * target.h (have_switchable_bss_sections): New hook.
1376         * explow.c (use_anchored_address): Check that the symbol is in a block.
1377         * varasm.c (tls_comm_section, comm_section, lcomm_section)
1378         (bss_noswitch_section): New variables.
1379         (get_unnamed_section): Add SECTION_UNNAMED to the flags.
1380         (get_noswitch_section): New function.
1381         (get_block_for_section): Allow SECT to be null.
1382         (unlikely_text_section_p): Use SECTION_STYLE.
1383         (bss_initializer_p): New function.
1384         (get_variable_section): Move earlier in file.  Take a new argument,
1385         prefer_noswitch_p.  Move bss checks from assemble_variable to here.
1386         Return one of the new *_sections in such cases.
1387         (get_block_for_decl): New function, extracting some logic from
1388         use_blocks_for_decl_p.
1389         (change_symbol_section): Remove in favor of...
1390         (change_symbol_block): ...this new function.
1391         (use_blocks_for_decl_p): Remove checks now performed by
1392         get_block_for_decl.
1393         (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
1394         (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
1395         (emit_local, emit_bss, emit_common): ...these new functions.
1396         Return true if the alignment was honored.
1397         (emit_tls_common): New function.
1398         (asm_emit_uninitialised): Delete.
1399         (assemble_variable_noswitch): New function, split out from...
1400         (assemble_variable): ...here.  Don't make decisions about common
1401         variables here.  Globalize all public decls that go into non-common
1402         sections.  Check whether SYMBOL_REF_BLOCK is null.
1403         (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
1404         (output_constant_pool): Likewise.
1405         (init_varasm_once): Initialize the new section variables.
1406         (have_global_bss_p): New function.
1407         (categorize_decl_for_section): Use bss_initializer_p.
1408         (switch_to_section): Use SECTION_STYLE.  Abort for SECTION_NOSWITCH.
1409         (place_block_symbol): Assert that the symbol must be in a block.
1410         * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
1411         (TARGET_INITIALIZER): Include it.
1412         * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
1413         * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
1414         (SECTION_MACH_DEP): Bump by two.
1415         (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
1416         (unnamed_section): Mention SECTION_UNNAMED in comment.
1417         (named_section): Likewise SECTION_NAMED.
1418         (noswitch_section_callback): New type.
1419         (noswitch_section): New structure.
1420         (section): Add a noswitch_section alternative.
1421         (SECTION_STYLE): New macro.
1422         (tls_comm_section, comm_section, lcomm_section): Declare.
1423         (bss_noswitch_section, have_global_bss_p): Declare.
1424         * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
1425         * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
1426         Override.
1427         * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
1428         * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
1429         Override.
1430
1431 2006-03-02  Daniel Berlin <dberlin@dberlin.org>
1432
1433         * gcc/tree-vrp.c (execute_vrp): Return value.
1434         * gcc/regrename.c (rest_of_handle_regrename): Ditto.
1435         * gcc/tree-into-ssa.c (rewrite_into_ssa): Ditto.
1436         * gcc/tree-complex.c (tree_lower_complex): Ditto.
1437         (tree_lower_complex_O0): Ditto.
1438         * gcc/tracer.c (rest_of_handle_tracer): Ditto.
1439         * gcc/postreload-gcse.c (rest_of_handle_gcse2): Ditto.
1440         * gcc/postreload.c (rest_of_handle_postreload): Ditto.
1441         * gcc/tree-tailcall.c (execute_tail_recursion): Ditto.
1442         (execute_tail_calls): Ditto.
1443         * gcc/tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
1444         * gcc/tree.h (init_function_for_compilation): Ditto.
1445         * gcc/ipa-cp.c (ipcp_driver): Ditto.
1446         * gcc/tree-scalar-evolution.c (scev_const_prop): Ditto.
1447         * gcc/tree-scalar-evolution.h (scev_const_prop): Ditto.
1448         * gcc/final.c (compute_alignments): Ditto.
1449         (rest_of_handle_final): Ditto.
1450         (rest_of_handle_shorten_branches): Ditto.
1451         (rest_of_clean_state): Ditto.
1452         * gcc/omp-low.c (execute_expand_omp): Ditto.
1453         (execute_lower_omp): Ditto.
1454         * gcc/tree-ssa-dse.c (tree_ssa_dse): Ditto.
1455         * gcc/ipa-reference.c (static_execute): Ditto.
1456         * gcc/tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
1457         * gcc/reorg.c (rest_of_handle_delay_slots): Ditto.
1458         (rest_of_handle_machine_reorg): Ditto.
1459         * gcc/cgraphunit.c (rebuild_cgraph_edges): Ditto.
1460         * gcc/flow.c (recompute_reg_usage): Ditto.
1461         (rest_of_handle_remove_death_notes): Ditto.
1462         (rest_of_handle_life): Ditto.
1463         (rest_of_handle_flow2): Ditto.
1464         * gcc/tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
1465         * gcc/tree-ssa-ccp.c (do_ssa_ccp): Ditto.
1466         (do_ssa_store_ccp): Ditto.
1467         (execute_fold_all_builtins): Ditto.
1468         * gcc/mode-switching.c (rest_of_handle_mode_switching): Ditto.
1469         * gcc/modulo-sched.c (rest_of_handle_sms): Ditto.
1470         * gcc/ipa-pure-const.c (static_execute): Ditto.
1471         * gcc/cse.c (rest_of_handle_cse): Ditto.
1472         (rest_of_handle_cse2): Ditto.
1473         * gcc/web.c (rest_of_handle_web): Ditto.
1474         * gcc/tree-stdarg.c (execute_optimize_stdarg): Ditto.
1475         * gcc/tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
1476         * gcc/tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
1477         * gcc/tree-nrv.c (tree_nrv): Ditto.
1478         (execute_return_slot_opt): Ditto.
1479         * gcc/tree-ssa-alias.c (compute_may_aliases): Ditto.
1480         (create_structure_vars): Ditto.
1481         * gcc/loop-init.c (rtl_loop_init): Ditto.
1482         (rtl_loop_done): Ditto.
1483         (rtl_move_loop_invariants): Ditto.
1484         (rtl_unswitch): Ditto.
1485         (rtl_unroll_and_peel_loops): Ditto.
1486         (rtl_doloop): Ditto.
1487         * gcc/gimple-low.c (lower_function_body): Ditto.
1488         (mark_used_blocks): Ditto.
1489         * gcc/tree-ssa-sink.c (execute_sink_code): Ditto.
1490         * gcc/ipa-inline.c (cgraph_decide_inlining): Ditto.
1491         (cgraph_early_inlining): Ditto.
1492         * gcc/global.c (rest_of_handle_global_alloc): Ditto.
1493         * gcc/jump.c (cleanup_barriers): Ditto.
1494         (purge_line_number_notes): Ditto.
1495         * gcc/ifcvt.c (rest_of_handle_if_conversion): Ditto.
1496         (rest_of_handle_if_after_reload): Ditto.
1497         * gcc/tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
1498         (tree_ssa_loop_im): Ditto.
1499         (tree_ssa_loop_unswitch): Ditto.
1500         (tree_vectorize): Ditto.
1501         (tree_linear_transform): Ditto.
1502         (tree_ssa_loop_ivcanon): Ditto.
1503         (tree_ssa_empty_loop): Ditto.
1504         (tree_ssa_loop_bounds): Ditto.
1505         (tree_complete_unroll): Ditto.
1506         (tree_ssa_loop_prefetch): Ditto.
1507         (tree_ssa_loop_ivopts): Ditto.
1508         (tree_ssa_loop_done): Ditto.
1509         * gcc/predict.c (tree_estimate_probability): Ditto.
1510         * gcc/recog.c (split_all_insns_noflow): Ditto.
1511         (rest_of_handle_peephole2): Ditto.
1512         (rest_of_handle_split_all_insns): Ditto.
1513         * gcc/tree-eh.c (lower_eh_constructs): Ditto.
1514         * gcc/regmove.c (rest_of_handle_regmove): Ditto.
1515         (rest_of_handle_stack_adjustments): Ditto.
1516         * gcc/local-alloc.c (rest_of_handle_local_alloc): Ditto.
1517         * gcc/function.c (instantiate_virtual_regs): Ditto.
1518         (init_function_for_compilation): Ditto.
1519         (rest_of_handle_check_leaf_regs): Ditto.
1520         * gcc/gcse.c (rest_of_handle_jump_bypass): Ditto.
1521         (rest_of_handle_gcse): Ditto.
1522         * gcc/ipa-type-escape.c (type_escape_execute): Ditto.
1523         * gcc/alias.c (rest_of_handle_cfg): Ditto.
1524         * gcc/tree-if-conv.c (main_tree_if_conversion): Ditto.
1525         * gcc/profile.c (rest_of_handle_branch_prob): Ditto.
1526         * gcc/tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
1527         * gcc/rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
1528         * gcc/bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
1529         * gcc/tree-dfa.c (find_referenced_vars): Ditto.
1530         * gcc/except.c (set_nothrow_function_flags): Ditto.
1531         (convert_to_eh_region_ranges): Ditto.
1532         (rest_of_handle_eh): Ditto.
1533         * gcc/emit-rtl.c (unshare_all_rtl): Ditto.
1534         (remove_unnecessary_notes): Ditto.
1535         * gcc/except.h (set_nothrow_function_flags): Ditto.
1536         (convert_to_eh_region_ranges): Ditto.
1537         * gcc/cfgexpand.c (tree_expand_cfg): Ditto.
1538         * gcc/tree-cfgcleanup.c (merge_phi_nodes): Ditto.
1539         * gcc/tree-ssa-pre.c (do_pre): Ditto.
1540         (execute_fre): Ditto.
1541         * gcc/cfgcleanup.c (rest_of_handle_jump): Ditto.
1542         (rest_of_handle_jump2): Ditto.
1543         * gcc/tree-sra.c (tree_sra): Ditto.
1544         * gcc/tree-mudflap.c (execute_mudflap_function_ops): Ditto.
1545         (execute_mudflap_function_decls): Ditto.
1546         * gcc/tree-ssa-copy.c (do_copy_prop): Ditto.
1547         (do_store_copy_prop): Ditto.
1548         * gcc/ipa-prop.h (ipcp_driver): Ditto.
1549         * gcc/cfglayout.c (insn_locators_initialize): Ditto.
1550         * gcc/tree-ssa-forwprop.c
1551         (tree_ssa_forward_propagate_single_use_vars): Ditto.
1552         * gcc/cfglayout.h (insn_locators_initialize): Ditto.
1553         * gcc/tree-ssa-dce.c (tree_ssa_dce): Ditto.
1554         * gcc/tree-ssa.c (execute_early_warn_uninitialized): Ditto.
1555         (execute_late_warn_uninitialized): Ditto.
1556         * gcc/rtl.h (cleanup_barriers): Ditto.
1557         (split_all_insns_noflow): Ditto.
1558         (purge_line_number_notes): Ditto.
1559         (unshare_all_rtl): Ditto.
1560         (remove_unnecessary_notes): Ditto.
1561         (recompute_reg_usage): Ditto.
1562         (variable_tracking_main): Ditto.
1563         * gcc/integrate.c (emit_initial_value_sets): Ditto.
1564         * gcc/integrate.h (emit_initial_value_sets): Ditto.
1565         * gcc/tree-optimize.c (execute_free_datastructures): Ditto
1566         (execute_free_cfg_annotations): Ditto.
1567         (execute_fixup_cfg): Ditto.
1568         (execute_cleanup_cfg_pre_ipa): Ditto.
1569         (execute_cleanup_cfg_post_optimizing): Ditto.
1570         (execute_init_datastructures): Ditto.
1571         * gcc/tree-object-size.c (compute_object_sizes): Ditto.
1572         * gcc/combine.c (rest_of_handle_combine): Ditto.
1573         * gcc/tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
1574         * gcc/bb-reorder.c (duplicate_computed_gotos): Ditto.
1575         (rest_of_handle_reorder_blocks): Ditto.
1576         (rest_of_handle_partition_blocks): Ditto.
1577         * gcc/var-tracking.c (variable_tracking_main): Ditto.
1578         * gcc/tree-profile.c (tree_profiling): Ditto.
1579         * gcc/tree-vect-generic.c (expand_vector_operations): Ditto.
1580         * gcc/reg-stack.c (rest_of_handle_stack_regs): Ditto.
1581         * gcc/sched-rgn.c (rest_of_handle_sched): Ditto.
1582         (rest_of_handle_sched2): Ditto.
1583         * gcc/basic-block.h (free_bb_insn): Ditto.
1584         * gcc/tree-ssa-structalias.c (ipa_pta_execute): Ditto.
1585         * gcc/tree-cfg.c (execute_build_cfg): Ditto.
1586         (remove_useless_stmts): Ditto.
1587         (split_critical_edges): Ditto.
1588         (execute_warn_function_return): Ditto.
1589         (execute_warn_function_noreturn): Ditto.
1590         * gcc/tree-ssa-reassoc.c (execute_reassoc): Ditto.
1591         * gcc/cfgrtl.c (free_bb_for_insn): Ditto.
1592         * gcc/passes.c (execute_one_pass): Run additional
1593         todos returned by execute function.
1594         * gcc/tree-pass.h (struct tree_opt_pass): Make execute
1595         return a value.
1596
1597 2006-03-02  Richard Guenther  <rguenther@suse.de>
1598
1599         * tree-ssa-alias.c (find_used_portions): Consider taking
1600         the address as making the variable not write-only.
1601
1602 2006-03-02  Nick Clifton  <nickc@redhat.com>
1603
1604         * config.gcc (default_use_cxa_atexit): Extend the description of
1605         this configure variable.  Set its default value to "yes" for
1606         Linux, NetBSD and ELF targets on the assumption that they will
1607         use C libraries with the __cxa_atexit function.
1608
1609 2006-03-02  Ben Elliston  <bje@au.ibm.com>
1610
1611         * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
1612         parameter as unused to suppress a build warning.
1613
1614 2006-03-02  Ben Elliston  <bje@au.ibm.com>
1615
1616         * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
1617         config/dfp-bit.c.
1618
1619 2006-03-01  Roger Sayle  <roger@eyesopen.com>
1620
1621         PR other/26489
1622         * gthr-posix.h (__gthrw2): Define to take three parameters, the
1623         declared name, the weak reference name, and the typeof name.
1624         (__gthrw): Avoid expanding the declared name suffix.
1625         (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
1626
1627 2006-03-01  Jakub Jelinek  <jakub@redhat.com>
1628
1629         * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
1630         from DWARF 3.
1631         (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
1632         DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
1633         DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
1634         DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
1635         DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
1636         (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
1637         (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
1638         DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
1639         (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
1640         DW_DS_leading_separate, DW_DS_trailing_separate): New.
1641         (DW_END_default, DW_END_big, DW_END_little): New.
1642         (DW_END_lo_user, DW_END_hi_user): Define.
1643         (DW_LNE_lo_user, DW_LNE_hi_user): Define.
1644         (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
1645         (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
1646         DW_LANG_D): New.
1647
1648 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
1649
1650         * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
1651         Update all users.
1652         * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
1653         Update all users.
1654         (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
1655         Update all users.
1656         * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
1657         Update all users.
1658         * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
1659         to 'symbol_mem_tag'.
1660         Update all users.
1661         * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
1662         rename.
1663
1664 2006-03-01  Roger Sayle  <roger@eyesopen.com>
1665
1666         * builtins.c (fold_builtin_copysign): Delete unreachable code.
1667
1668 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
1669
1670         PR target/25761
1671         * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
1672         MACHO_DYNAMIC_NO_PIC_P.
1673         (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
1674
1675 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
1676
1677         PR target/26389
1678         * config/darwin-protos.h (darwin_asm_output_anchor):
1679         Declare.
1680         * config/darwin-sections.def (cstring_section):
1681         Add SECTION_MERGE to the flags.
1682         (literal4_section): Likewise.
1683         (literal8_section): Likewise.
1684         (objc_selector_refs_section): Likewise.
1685         (objc_cls_refs_section): Likewise.
1686         * config/darwin.c (darwin_asm_output_anchor): New
1687         function.
1688         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
1689
1690 2006-03-01  Daniel Berlin  <dberlin@dberlin.org>
1691
1692         Fix PR tree-optimization/26443
1693         * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
1694         to todo and PROP_tmt_usage to properties_destroyed.
1695         * tree-ssa-ccp.c (pass_ccp): Ditto.
1696         (pass_store_ccp): Ditto.
1697         * tree-ssa-dom.c (pass_dominator): Ditto.
1698
1699 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
1700
1701         * tree-ssa-operands.c: Cleanup whitespace.
1702         (get_asm_expr_operands): Move before first invocation.
1703         (get_indirect_ref_operands): Likewise.
1704         (get_tmr_operands): Likewise.
1705         (get_call_expr_operands): Likewise.
1706         (append_def): Likewise.
1707         (append_use): Likewise.
1708         (append_v_may_def): Likewise.
1709         (append_v_must_def): Likewise.
1710         (add_call_clobber_ops): Likewise.
1711         (add_call_read_ops): Likewise.
1712         (add_stmt_operand): Likewise.
1713         (add_virtual_operand): Likewise.
1714         (build_ssa_operands): Likewise.
1715
1716 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
1717
1718         PR middle-end/26022
1719         Revert:
1720         PR middle-end/24437
1721         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
1722         with a call expr to ...
1723         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
1724
1725 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
1726
1727         * tree-vrp.c (extract_range_from_assert): Remove special
1728         handling for types with super-types.
1729
1730 2006-03-01  Ben Elliston  <bje@au.ibm.com>
1731
1732         * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
1733         and powerpc64-*-linux* configurations.
1734         * config/t-dfprules: New file.
1735
1736         * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
1737         Compile dfp-bit.c from the source directory using -DWIDTH and
1738         $DFP_CFLAGS to control the compilation of that file, rather than
1739         generating width-specific versions in the build directory.
1740         * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
1741         (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
1742
1743 2006-02-28  Zack Weinberg  <zackw@panix.com>
1744
1745         * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
1746         continues to work.
1747
1748 2006-02-28  Eric Christopher  <echristo@apple.com>
1749
1750         * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
1751         Set up IN_LIBGCC definition of TARGET_64BIT.
1752         * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
1753
1754 2006-02-28  Roger Sayle  <roger@eyesopen.com>
1755
1756         PR middle-end/14752
1757         * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
1758         BIT_XOR_EXPR, BIT_AND_EXPR>: Delete.  Let fold optimize these
1759         cases via the construction of "expr != 0".
1760
1761 2006-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
1762
1763         * alias.c (alias_invariant, alias_invariant_size): Remove.
1764         (record_base_value): Remove.
1765         (memrefs_conflict_p): Don't look at alias_invariant.
1766         (end_alias_analysis): Don't free it.
1767         * alias.h (record_base_value): Remove prototype.
1768
1769 2006-02-28  Paolo Bonzini  <bonzini@gnu.org>
1770             Adam Nemet  <anemet@caviumnetworks.com>
1771
1772         * rtl.h (truncated_to_mode): Declare it.
1773         (struct rtl_hooks): Add reg_truncated_to_mode hook.
1774         * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
1775         (RTL_HOOKS_INITIALIZER): Include it.
1776         * rtlhooks.c (reg_truncated_to_mode_general): New function.
1777         * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
1778         reg_truncated_to_mode.
1779         * rtlanal.c (truncated_to_mode): Define it.
1780         * simplify-rtx.c (simplify_unary_operation_1): Use it.
1781
1782 2006-02-28  Jeff Law  <law@redhat.com>
1783
1784         * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
1785         conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
1786         the range allowed by TYPE_PRECISION.
1787
1788         * tree.h (strct phi_arg_d): Remove unused NONZERO field.
1789
1790 2006-02-28  Dorit Nuzman  <dorit@il.ibm.com>
1791
1792         PR tree-optimization/26419
1793         * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
1794         values of n.
1795
1796 2006-02-27  Zack Weinberg  <zackw@panix.com>
1797
1798         * doc/md.texi: Fix typo in previous change.
1799
1800 2006-02-27  Kenneth Zadeck <zadeck@naturalbridge.com>
1801
1802         * df.c: Remove.
1803
1804 2006-02-27  Zack Weinberg  <zackw@panix.com>
1805
1806         * rtl.def (define_constraint, define_register_constraint)
1807         (define_memory_constraint, define_address_constraint): New MD forms.
1808         * gensupport.c (process_rtx): Put define_constraint etc on the
1809         predicate queue.
1810         * genpreds.c (process_define_predicate): Adjust comment.  Validate
1811         the name, and call validate_exp to validate the expression.
1812         (mark_mode_tests, write_extract_subexp): Can assume correct input.
1813         (write_predicate_expr): Likewise.  NAME argument no longer necessary;
1814         all callers changed.
1815         (validate_exp, needs_variable, struct constraint_data)
1816         (constraints_by_letter_table, first_constraint, last_constraint_ptr)
1817         (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
1818         (const_dbl_constraints, constraint_max_namelen)
1819         (have_register_constraints, have_memory_constraints)
1820         (have_address_constraints, have_address_constraints)
1821         (have_extra_constraints, have_const_int_constraints)
1822         (have_const_dbl_constraints, mangle, add_constraint)
1823         (process_define_constraint, process_define_register_constraint)
1824         (write_enum_constraint_num, write_lookup_constraint)
1825         (write_insn_constraint_len, write_regclass_for_constraint)
1826         (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
1827         (write_insn_extra_memory_constraint)
1828         (write_insn_extra_address_constraint)
1829         (write_satisfies_constraint_fns): New.
1830         (write_tm_preds_h): If we have new-style constraint definitions,
1831         prototype the functions generated from them, and define the
1832         old constraint interface (still used by generic code) in terms of
1833         those functions.
1834         (write_insn_preds_c): If we have new-style constraint definitions,
1835         generate all relevant functions from those definitions.
1836         (main): Handle define_constraint etc.
1837         * genoutput.c (struct constraint_data, indep_constraints)
1838         (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
1839         (mdep_constraint_len): New data structures and functions, defined
1840         #ifdef USE_MD_CONSTRAINTS.
1841         (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
1842         (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
1843         use new logic to validate operand constraints against constraint
1844         definitions.
1845         (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
1846         defined.
1847         * defaults.h: If none of the old-style constraint macros are
1848         defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
1849         old-style macros; and poison REG_CLASS_FROM_LETTER,
1850         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
1851         EXTRA_CONSTRAINT.
1852         * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
1853         * doc/md.texi: Document new constraint-definition mechanism and the
1854         C interface it provides.  Remove references to old mechanism
1855         elsewhere in the document.
1856         (Machine Constraints): Use pathnames relative to gcc directory,
1857         i.e. config/ARCH/FILE.  Change i386 section to refer to
1858         config/i386/predicates.md; update that section to match docstrings.
1859         * doc/tm.texi: Move all documentation of the old constraint-
1860         definition macros to their own section, clearly mark as obsolete.
1861
1862         * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
1863         (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
1864         definitions.
1865         * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
1866         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
1867         * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
1868         constraint strings.
1869         (splits and peepholes): Use satisfies_constraint_*.
1870         * config/i386/i386.c (memory_address_length)
1871         (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
1872
1873 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
1874
1875         * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
1876         scalar operation to be put back into the loop.
1877
1878 2006-02-27  Jakub Jelinek  <jakub@redhat.com>
1879
1880         PR other/26208
1881         * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
1882         (extract_cie_info): Handle S flag in augmentation string.
1883         (execute_cfa_program): If context->signal_frame, execute also
1884         fs->pc == context->ra instructions.
1885         (uw_frame_state_for): If context->signal_frame, don't subtract one
1886         from context->ra to find FDE.
1887         (uw_update_context_1): Set context->signal_frame to
1888         fs->signal_frame.
1889         (_Unwind_GetIPInfo): New function.
1890         * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
1891         * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
1892         of _Unwind_GetIP.
1893         * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
1894         * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
1895         * unwind-compat.c (_Unwind_GetIPInfo): New function.
1896         * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
1897         * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
1898         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
1899         * config/i386/linux-unwind.h (x86_fallback_frame_state,
1900         x86_64_fallback_frame_state): Set fs->signal_frame.
1901         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
1902         (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
1903         (frob_update_context): Likewise.  Workaround missing S flag in
1904         Linux 2.6.12 - 2.6.16 kernel vDSOs.
1905         * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
1906         Remove the psw_addr + 1 hack.
1907
1908 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
1909
1910         * tree-ssa-structalias.c (get_constraint_for): Move code to deal
1911         with aggregates here.
1912         (find_func_aliases): Remove code for &<aggregate> from here.
1913
1914 2006-02-26  Roger Sayle  <roger@eyesopen.com>
1915
1916         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold (~X & C) eq/ne 0 as
1917         (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
1918         Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
1919         as (X & C) ne/eq 0.
1920
1921 2006-02-26  Roger Sayle  <roger@eyesopen.com>
1922
1923         PR middle-end/19983
1924         * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
1925
1926 2006-02-26  Zdenek Dvorak <dvorakz@suse.cz>
1927
1928         * opts.c (decode_options): Do not handle flag_strength_reduce.
1929         (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
1930         and OPT_fstrength_reduce.
1931         * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
1932         flag_prefetch_loop_arrays for being nonzero.
1933         * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
1934         no-ops.
1935         (fprefetch-loop-arrays-rtl): Removed.
1936         (flag_prefetch_loop_arrays): Do not specify the value.
1937
1938         * doc/passes.texi: Update documentation of loop optimizer
1939         passes.
1940         * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
1941         -frerun-loop-opt): Remove.
1942
1943 2006-02-26  Richard Guenther  <rguenther@suse.de>
1944
1945         PR tree-optimization/26421
1946         * tree-ssa-alias.c (find_used_portions): Don't treat parameters
1947         in function calls that are ADDR_EXPRs as using the whole structure.
1948
1949 2006-02-26  Steven Bosscher  <stevenb.gcc@gmail.com>
1950
1951         * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
1952         * tree-pass.h (pass_loop_optimize): Remove.
1953         * passes.c (pass_loop_optimize): Never run it.
1954         * toplev.c (backend_init): Don't call init_loop.
1955         * opts.c (flag_loop_optimize_set): Remove.
1956         (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
1957         (common_handle_option) <OPT_floop_optimize>: Remove.  Don't disable
1958         the old RTL loop optimizer when profiling enabled.
1959         * predict.c (tree_estimate_probability): Always strip builtin_expect.
1960         * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
1961         pre-headers for the sake of the old RTL loop optimizer.
1962         * Makefile.in: Remove all references to loop.o.
1963
1964         * doc/invoke.texi: Remove all references to -floop-optimize
1965         and -frerun-loop-opt.
1966
1967 2006-02-26  Zack Weinberg  <zackw@panix.com>
1968
1969         * doc/md.texi (Machine Constraints): Refer to all files with paths
1970         relative to gcc directory (i.e. config/CPU/file).  Add missing
1971         @table @code ... @end table to M32C subsection.
1972
1973 2006-02-26  Roger Sayle  <roger@eyesopen.com>
1974
1975         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
1976         (X & 1) == 0.
1977         <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
1978
1979 2006-02-26  Roger Sayle  <roger@eyesopen.com>
1980             James A. Morrison  <phython@gcc.gnu.org>
1981
1982         PR middle-end/21137
1983         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold ((X>>C1)&C2) eq/ne 0,
1984         when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
1985         new constant C2<<C1, or as (X<0) or (X,false) depending upon the
1986         signedness of the shift operation.
1987
1988 2006-02-26  Dorit Nuzman  <dorit@il.ibm.com>
1989
1990         PR tree-optimization/26359
1991         * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
1992
1993 2006-02-25  Roger Sayle  <roger@eyesopen.com>
1994
1995         * simplify-rtx.c (simplify_relational_operation_1):  Simplify
1996         (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y.  Simplify (X^Y) == Y
1997         as X == 0, and some symmetry related transformations.
1998         Simplify (X^C1) == C2 as X == (C1^C2).  Split long comment line.
1999
2000 2006-02-25  Roger Sayle  <roger@eyesopen.com>
2001
2002         PR middle-end/23673
2003         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold (X^Y) == 0 as X == Y
2004         and (X^Y) != 0 as X != Y.  Fold (X^Y) == Y as X == 0, and some
2005         symmetry related transformations.  Fold (X^C1) == C2 as
2006         X == (C1^C2).
2007
2008 2006-02-25  Juergen Weigert  <jw@suse.de>
2009         Richard Guenther  <rguenther@suse.de>
2010
2011         * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
2012
2013 2006-02-24  Adam Nemet  <anemet@caviumnetworks.com>
2014
2015         * combine.c (gen_lowpart_or_truncate): Call
2016         simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
2017
2018 2006-02-24  Diego Novillo  <dnovillo@redhat.com>
2019
2020         * doc/invoke.texi: Move -fopenmp description to "Options for
2021         Code Generation".
2022         Remove reference to -lgomp.
2023
2024 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
2025
2026         * doc/install.texi: Require GNU tar version 1.14.
2027
2028 2006-02-24  Geoffrey Keating  <geoffk@apple.com>
2029
2030         * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
2031         * doc/invoke.texi (C++ Dialect Options): Document
2032         -fno-use-cxa-get-exception-ptr.
2033         * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
2034         * configure: Regenerate.
2035         * c.opt (fuse-cxa-get-exception-ptr): New.
2036         * c-opts.c (c_common_handle_option): Handle
2037         OPT_fuse_cxa_get_exception_ptr.
2038         * c-common.c (flag_use_cxa_atexit): Update documentation.
2039         (flag_use_cxa_get_exception_ptr): New.
2040         * c-common.h (flag_use_cxa_get_exception_ptr): New.
2041         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
2042         documentation.
2043         (C_COMMON_OVERRIDE_OPTIONS): New.
2044
2045 2006-02-24  Roger Sayle  <roger@eyesopen.com>
2046
2047         PR middle-end/24952
2048         * combine.c (try_combine): Explicitly check whether GET_CODE is
2049         a SET or a CLOBBER, instead on checking that it isn't a USE.
2050
2051 2006-02-24  Roger Sayle  <roger@eyesopen.com>
2052
2053         * fold-const.c (fold_comparison): New subroutine of fold_binary
2054         containing transformations common to both the equality and
2055         ordering relational operators, factored out of fold_binary.
2056         (fold_binary): Separate out the equality operators (EQ_EXPR
2057         and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
2058         LE_EXPR and GE_EXPR), calling fold_comparison to perform the
2059         transformations common to both.
2060         (fold_div_compare): Fix latent bugs in the previously unreachable
2061         LT_EXPR and GE_EXPR cases.
2062
2063 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
2064
2065         * config/rs6000/rs6000.c (rs6000_init_builtins): Change
2066         decl libname for clog to __clog on AIX.
2067
2068         * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
2069
2070 2006-02-24  Alan Modra  <amodra@bigpond.net.au>
2071
2072         PR target/26453
2073         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
2074         output traceback table for thunks.  Localise rs6000_stack_info call.
2075
2076 2006-02-23  Roger Sayle  <roger@eyesopen.com>
2077             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2078
2079         * gthr-posix.h (__gthrw): Fix typo in comment.
2080
2081 2006-02-23  Geoffrey Keating  <geoffk@apple.com>
2082
2083         * doc/cpp.texi (Character sets): Document that we do support
2084         input files to be in any character set.
2085
2086 2006-02-23  Jeff Law  <law@redhat.com>
2087
2088         * tree.h (PHI_ARG_NONZERO): Remove.
2089         * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
2090         (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
2091         node to the new node.
2092
2093         PR tree-optimization/26425
2094         * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
2095         min/max, then assume its varying.
2096
2097 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
2098
2099         PR rtl-optimization/26316
2100         * rtlanal.c (enum may_trap_p_flags): New.
2101         (may_trap_p_1): Take flags instead of unaligned_mems argument.  Ignore
2102         MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
2103         (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
2104         (may_trap_after_code_motion_p): New function.
2105         * loop-invariant.c (find_identical_invariants): Fix dump formating.
2106         (find_invariant_insn): Use may_trap_after_code_motion_p.
2107         * rtl.h (may_trap_after_code_motion_p): Declare.
2108
2109 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
2110
2111         * emit-rtl.c (immed_double_const): Cleanup.
2112
2113 2006-02-23  Daniel Berlin  <dberlin@dberlin.org>
2114
2115         Fix PR tree-optimization/26376
2116         * tree-ssa-structalias.c (find_func_aliases):  Use get_id_for_tree,
2117         remove assert.
2118
2119 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
2120
2121         PR middle-end/26412
2122         * gimplify.c (omp_add_variable): Guard variable size decl test with
2123         DECL_SIZE (decl) check.
2124
2125 2006-02-23  Richard Guenther  <rguenther@suse.de>
2126
2127         PR middle-end/26439
2128         * tree-ssa-structalias.c (find_func_aliases): Handle complex types
2129         like aggregate types.
2130
2131 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
2132
2133         * configure.ac: Add --with{,out}-long-double-128 configure option.
2134         (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
2135         * configure: Rebuilt.
2136         * config.in: Rebuilt.
2137         * doc/install.texi (Options specification): Document
2138         --with-long-double-128.
2139
2140         * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
2141         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
2142         * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
2143         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
2144
2145 2006-02-23  Aldy Hernandez  <aldyh@redhat.com>
2146
2147         * config/s390/s390.c (override_options): Handle
2148         TARGET_DEFAULT_LONG_DOUBLE_128.
2149
2150         * config/alpha/alpha.c (override_options): Handle
2151         TARGET_DEFAULT_LONG_DOUBLE_128.
2152
2153         * config/sparc/sparc.c (sparc_override_options): Handle
2154         TARGET_DEFAULT_LONG_DOUBLE_128.
2155
2156 2006-02-22  Daniel Jacobowitz  <dan@codesourcery.com>
2157
2158         * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
2159         (real-install-headers-tar, real-install-headers-cpio)
2160         (real-install-headers-cp): New targets.
2161
2162 2006-02-22  Richard Sandiford  <richard@codesourcery.com>
2163
2164         * tree.h (variable_section): Delete.
2165         * varasm.c (variable_section): Delete.
2166
2167 2006-02-22  Paolo Bonzini  <bonzini@gnu.org>
2168
2169         * install.texi: Add notes on install.texi2html.
2170         (Building in parallel): Do not use footnotes.
2171
2172 2006-02-21  Aldy Hernandez  <aldyh@redhat.com>
2173
2174         PR libgomp/26234
2175         * doc/install.texi (Configuration): Document --disable-libgomp.
2176
2177 2006-02-21  Geoffrey Keating  <geoffk@apple.com>
2178
2179         * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
2180
2181 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
2182
2183         * config/i386/sse.md (vec_extractv2df_1_sse): New.
2184         (vec_extractv2df_0_sse): New.
2185
2186 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
2187
2188         * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
2189         * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
2190         * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
2191         * dwarf2out.c (build_cfa_loc): New offset parameter.  Add it
2192         to the result of the expression.
2193         (def_cfa_1): Adjust.
2194         (frame_pointer_cfa_offset): Rename to...
2195         (frame_pointer_fb_offset): ... this.  Adjust all uses.
2196         (convert_cfa_to_loc_list): Rename to...
2197         (convert_cfa_to_fb_loc_list): ... this.  New offset parameter.
2198         Pass it on to build_cfa_loc.
2199         (compute_frame_pointer_to_cfa_displacement): Rename to...
2200         (compute_frame_pointer_to_fb_displacement): ... this.  New
2201         offset parameter.  Use it in computation.
2202         (gen_subprogram_die): Compute cfa_fb_offset with the new
2203         macro, and use it to compute the fb loc list and the
2204         displacement.
2205
2206 2006-02-21  Bernd Schmidt  <bernd.schmidt@analog.com>
2207
2208         * config/bfin/predicates.md (cc_operand): Delete predicate.  All uses
2209         replaced with register_operand.
2210         * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
2211         non-DREG is expensive.
2212         * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
2213         * config/bfin/bfin.md (movbi): Fix constraints and template for moves
2214         involving memory.
2215
2216 2006-02-21  Joseph S. Myers  <joseph@codesourcery.com>
2217
2218         * doc/install.texi2html: Use set -e.
2219
2220 2006-02-21  Richard Sandiford  <richard@codesourcery.com>
2221
2222         * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
2223         (ASM_OUTPUT_SHARED_LOCAL): Delete.
2224         * doc/invoke.texi (-fshared-data): Delete.
2225         * common.opt (fshared-data): Delete.
2226         * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
2227         (assemble_static_space): Remove #if 0 code.
2228         * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
2229         (ASM_OUTPUT_SHARED_LOCAL): Poison.
2230         * config/cris/cris.h: Remove FIXME.
2231
2232 2006-02-21  Paolo Bonzini  <bonzini@gnu.org>
2233
2234         * doc/sourcebuild.texi (Front End Directory): No more double-colon
2235         hooks.
2236
2237 2006-02-21  Jakub Jelinek  <jakub@redhat.com>
2238
2239         PR middle-end/26379
2240         * combine.c (simplify_shift_const_1): Disable nested shifts
2241         optimization for vector shifts.
2242
2243 2006-02-20  Roger Sayle  <roger@eyesopen.com>
2244
2245         PR tree-optimization/26361
2246         * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
2247         of unsigned integer types.
2248
2249 2006-02-20  Sebastian Pop  <pop@cri.ensmp.fr>
2250
2251         * tree-chrec.c (eq_evolutions_p): New.
2252         * tree-chrec.h (eq_evolutions_p): Declared.
2253         * tree-data-ref.c: Fix formatting.
2254         (datadep_stats, dependence_stats): New.
2255         (gcd): Moved...
2256         (print_direction_vector): New.
2257         (dump_data_dependence_relation): Use print_direction_vector.
2258         (object_analysis, create_data_ref): Handle COMPONENT_REF.
2259         (compute_subscript_distance): Static.
2260         (initialize_data_dependence_relation): Static.  Get the number
2261         of loops surrounding the references from the callers, and initialize
2262         DDR_SIZE_VECT to nb_loops.  Use both base_addr_differ_p and
2263         base_object_differ_p analyzers.
2264         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
2265         compute_overlap_steps_for_affine_1_2,
2266         analyze_subscript_affine_affine): Count the classified dependences.
2267         Print a message when a test failed.
2268         (can_use_analyze_subscript_affine_affine): New.
2269         (analyze_siv_subscript): Compute the data dependences on symbolic
2270         scevs that verify can_use_analyze_subscript_affine_affine.
2271         (chrec_steps_divide_constant_p): Returns true, false, or unknown.
2272         (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
2273         Handle symbolic scevs.
2274         (analyze_overlapping_iterations): Let symbolic affine scevs to be
2275         analyzed.
2276         (subscript_dependence_tester): Moved...
2277         (build_classic_dist_vector, build_classic_dir_vector): Don't use
2278         lambda_vector_clear on newly allocated vectors.  Get nb_loops from
2279         DDR_SIZE_VECT instead of getting it in parameter.
2280         (subscript_dependence_tester): ... here.  Take as a parameter
2281         loop_nest_depth.  Call build_classic_dist_vector and
2282         build_classic_dir_vector.
2283         (compute_affine_dependence): Update subscript_dependence_tester
2284         parameters.  Update datadep_stats counters.  Call
2285         compute_subscript_distance.
2286         (compute_self_dependence): Save the dist and dir vectors.  Call
2287         compute_subscript_distance.
2288         (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
2289         (compute_all_dependences): Reorder parameters as they were before
2290         conversion to VEC.  Pass nb_loops and loop_nest_depth.  Don't call
2291         compute_subscript_distance.  Update the use of
2292         compute_affine_dependence and initialize_data_dependence_relation.
2293         (find_data_references_in_loop): Handle COMPONENT_REF.
2294         (compute_data_dependences_for_loop): Initialize dependence_stats.
2295         Don't call build_classic_dist_vector and build_classic_dir_vector.
2296         Update the parameters of initialize_data_dependence_relation and
2297         compute_all_dependences.  Print the statistics from datadep_stats.
2298         (analyze_all_data_dependences): Static.  Not used until the pass for
2299         checking the data dependences is contributed.
2300         * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
2301         DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
2302         (initialize_data_dependence_relation, compute_affine_dependence,
2303         analyze_all_data_dependences, compute_subscript_distance): Removed.
2304         (print_direction_vector): New.
2305         * lambda.h (gcd): ... here.
2306         (lambda_vector_gcd): Moved here from gcd_vector.
2307         * lambda-code.c (gcd, gcd_vector): Removed.
2308         (lambda_compute_target_space): Use lambda_vector_gcd.  Fix formatting.
2309         * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
2310
2311 2006-02-20  Diego Novillo  <dnovillo@redhat.com>
2312
2313         * ipa-type-escape.c: Tidy some comments and white space.
2314         * tree-ssa-operands.c: Likewise.
2315
2316 2006-02-20  Andrew Pinski  <pinskia@physics.uc.edu>
2317
2318         PR tree-opt/25879
2319         * tree-pretty-print.c (debug_tree_chain): Walk the chains.
2320         (dump_decl_name): Do not walk the decl tree chains.
2321         * tree-pass.h (TDF_CHAIN): Remove.
2322
2323 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2324
2325         * Makefile.in (C): Remove
2326         (PROTO): Remove
2327         (.PHONY): Remove C and PROTO
2328
2329 2006-02-20  Roger Sayle  <roger@eyesopen.com>
2330
2331         PR middle-end/26236
2332         * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
2333         deprecated CHAR_TYPE tree code.
2334
2335 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
2336
2337         * configure.ac (target_list): Add install-info, dvi, html.
2338         * configure: Regenerate.
2339
2340         * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
2341         java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
2342         treelang/Make-lang.in: Do not use double-colon rules.
2343
2344 2006-02-20  Daniel Berlin  <dberlin@dberlin.org>
2345
2346         * tree.h (struct tree_memory_tag): Add is_used_alone member.
2347         (TMT_USED_ALONE): New macro.
2348         * tree-pass.h (PROP_tmt_usage): New property.
2349         (TODO_update_tmt_usage): New todo.
2350         * tree-ssa-alias.c (updating_used_alone): New variable.
2351         (recalculate_used_alone): New function.
2352         (compute_may_aliases): Set updating_used_alone, call
2353         recalculate_used_alone.
2354         * tree-sra.c (pass_sra): Note that this pass destroys
2355         PROP_tmt_usage, and add TODO_update_tmt_usage.
2356         * tree-ssa-forwprop.c (pass_forwprop): Ditto.
2357         * tree-flow.h (updating_used_alone): Prototype.
2358         (recalculate_used_alone): Ditto.
2359         * passes.c (execute_todo): Add code to set updating_used_alone,
2360         and call recalculate.
2361         * tree-ssa-operands.c (add_virtual_operand): Only append bare def
2362         for clobber if used alone, and add assert to verify used_alone
2363         status.
2364
2365 2006-02-20  Angel Nunez Mencias  <anunez@de.ibm.com>
2366
2367         * config/s390/s390.c (legitimize_pic_address): Assertions checking
2368         for non tls symbols added.
2369         (legitimize_address): Do nothing for PLUS expressions if one of the
2370         addends is a tls symbol reference.
2371
2372 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
2373
2374         PR bootstrap/25476
2375
2376         * Makefile.in (LDFLAGS): Define from autoconf substitution.
2377
2378         * Makefile.in (BOOTSTRAPPING): New.
2379         (quickstrap): New definition if BOOTSTRAPPING=yes.
2380
2381         * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
2382         * configure.ac: Substitute all_selected_languages with the languages
2383         that were configured.  For all the other variables except
2384         lang_specs_files, include all the languages in the tree.
2385         * configure: Regenerate.
2386
2387         * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
2388         if there is one.  Run the commands to run fixincludes in the same
2389         subshell.
2390
2391         * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
2392         * doc/install.texi: Document exact conventions for searching target tools.
2393         Document --with-build-time-tools.  Document toplevel bootstrap.  Document
2394         something more about building an Ada cross-compiler.  Don't list GNU Make
2395         requirements which affect all platforms.
2396
2397 2006-02-19  Roger Sayle  <roger@eyesopen.com>
2398
2399         PR middle-end/19543
2400         * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
2401         only equivalent if the have both the same mode and precision.
2402
2403 2006-02-20  Ben Elliston  <bje@au.ibm.com>
2404
2405         * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
2406
2407 2006-02-19  Roger Sayle  <roger@eyesopen.com>
2408             Steven Bosscher  <stevenb.gcc@gmail.com>
2409
2410         * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
2411         constant pool references to identify stack mode constants.
2412         * rtlanal.c (constant_pool_constant_p): New predicate to check
2413         whether operand is a floating point constant in the pool.
2414         * rtl.h (constant_pool_constant_p): Prototype here.
2415         * loop.c (scan_loop): Avoid hoisting constants from the constant
2416         pool on STACK_REGS targets.
2417         (load_mems): Likewise.
2418         * loop-invariant.c (get_inv_cost): Make hoisting constant pool
2419         loads into x87 registers expensive in terms of register pressure.
2420
2421 2006-02-19  Roger Sayle  <roger@eyesopen.com>
2422
2423         * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
2424         __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
2425
2426 2006-02-19  David Edelsohn  <edelsohn@gnu.org>
2427
2428         * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
2429         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
2430
2431 2006-02-19  Daniel Berlin  <dberlin@dberlin.org>
2432
2433         * doc/invoke.texi: Document -fipa-pta.
2434         * common.opt: Add ipa-pta option.
2435         * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
2436         (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
2437         (do_ds_constraint): Ditto.
2438         (get_constraint_for): Only add to referenced_vars if
2439         referenced_vars exists.
2440         (insert_into_field_list): Rewrite to do this unsorted.
2441         (insert_into_field_list_sorted): Rename old insert_into_field_list
2442         to this.
2443         (create_function_info_for): Use insert_into_field_list_sorted.
2444         (create_variable_info_for): Rewrite so it uses unsorted version,
2445         since the field list is sorted.
2446         (intra_create_variable_infos): Only add to referenced_vars if
2447         referenced_vars exists.
2448         (ipa_pta_execute): Init heapvars, and delete when done.
2449         * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
2450
2451 2006-02-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2452
2453         * doc/install.texi: Add missing `@samp'.
2454
2455 2006-02-18  Andrew Pinski <pinskia@physics.uc.edu>
2456
2457         * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
2458         Use the arguments.
2459
2460 2006-02-18  Mark Wielaard  <mark@klomp.org>
2461
2462         * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
2463         who added new 4.1 features, bug fixes and integration support.
2464
2465 2006-02-18  David Edelsohn  <edelsohn@gnu.org>
2466
2467         PR target/26350
2468         * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
2469         MEM for ABI_V4 pic.
2470
2471 2006-02-18  Richard Sandiford  <richard@codesourcery.com>
2472
2473         * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
2474         * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
2475         (copy_insn_1): Likewise.  Don't copy each field individually.
2476         Reindent.
2477         * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
2478         of RTX_SIZE.
2479         * reload1.c (eliminate_regs): Use shallow_copy_rtx.
2480         * rtl.c (rtx_size): Rename variable to...
2481         (rtx_code_size): ...this.
2482         (rtx_size): New function.
2483         (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
2484         (copy_rtx): Use shallow_copy_rtx.  Don't copy each field individually.
2485         Reindent.
2486         (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
2487         * rtl.h (rtx_code_size): New variable.
2488         (rtx_size): Change from a variable to a function.
2489         (RTX_SIZE): Rename to...
2490         (RTX_CODE_SIZE): ...this.
2491
2492         PR target/9703
2493         PR tree-optimization/17106
2494         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
2495         (Anchored Addresses): New section.
2496         * doc/invoke.texi (-fsection-anchors): Document.
2497         * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
2498         (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
2499         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
2500         * hooks.c (hook_bool_mode_rtx_false): New function.
2501         * hooks.h (hook_bool_mode_rtx_false): Declare.
2502         * gengtype.c (create_optional_field): New function.
2503         (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
2504         SYMBOL_REF_IN_BLOCK_P is true.
2505         * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
2506         (min_anchor_offset, max_anchor_offset): Likewise.
2507         (use_anchors_for_symbol_p): New hook.
2508         * toplev.c (compile_file): Call output_object_blocks.
2509         (target_supports_section_anchors_p): New function.
2510         (process_options): Check that -fsection-anchors is only used on
2511         targets that support it and when -funit-at-a-time is in effect.
2512         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
2513         if the decl doesn't have one.
2514         * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
2515         * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
2516         of force_const_mem through use_anchored_address.
2517         (expand_expr_constant): New function.
2518         (expand_expr_addr_expr_1): Call it.  Use the same modifier when
2519         calling expand_expr for INDIRECT_REF.
2520         (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
2521         for all modifiers except EXPAND_INITIALIZER.  Use expand_expr_constant.
2522         * expr.h (use_anchored_address): Declare.
2523         * loop-unroll.c: Don't declare rtx vectors here.
2524         * explow.c: Include output.h.
2525         (validize_mem): Call use_anchored_address.
2526         (use_anchored_address): New function.
2527         * common.opt (-fsection-anchors): New switch.
2528         * varasm.c (object_block_htab, anchor_labelno): New variables.
2529         (hash_section, object_block_entry_eq, object_block_entry_hash)
2530         (use_object_blocks_p, get_block_for_section, create_block_symbol)
2531         (use_blocks_for_decl_p, change_symbol_section): New functions.
2532         (get_variable_section): New function, split out from assemble_variable.
2533         (make_decl_rtl): Create a block symbol if use_object_blocks_p and
2534         use_blocks_for_decl_p say so.  Use change_symbol_section if the
2535         symbol has already been created.
2536         (assemble_variable_contents): New function, split out from...
2537         (assemble_variable): ...here.  Don't output any code for
2538         block symbols; just pass them to place_block_symbol.
2539         Use get_variable_section and assemble_variable_contents.
2540         (get_constant_alignment, get_constant_section, get_constant_size): New
2541         functions, split from output_constant_def_contents.
2542         (build_constant_desc): Create a block symbol if use_object_blocks_p
2543         says so.  Or into SYMBOL_REF_FLAGS.
2544         (assemble_constant_contents): New function, split from...
2545         (output_constant_def_contents): ...here.  Don't output any code
2546         for block symbols; just pass them to place_section_symbol.
2547         Use get_constant_section and get_constant_alignment.
2548         (force_const_mem): Create a block symbol if use_object_blocks_p and
2549         use_blocks_for_constant_p say so.  Or into SYMBOL_REF_FLAGS.
2550         (output_constant_pool_1): Add an explicit alignment argument.
2551         Don't switch sections here.
2552         (output_constant_pool): Adjust call to output_constant_pool_1.
2553         Switch sections here instead.  Don't output anything for block symbols;
2554         just pass them to place_block_symbol.
2555         (init_varasm_once): Initialize object_block_htab.
2556         (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
2557         (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
2558         (place_block_symbol, get_section_anchor, output_object_block)
2559         (output_object_block_htab, output_object_blocks): New functions.
2560         * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
2561         (TARGET_ASM_OUT): Include it.
2562         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
2563         (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
2564         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
2565         (TARGET_INITIALIZER): Include them.
2566         * rtl.c (rtl_check_failed_block_symbol): New function.
2567         * rtl.h: Include vec.h.  Declare heap and gc rtx vectors.
2568         (block_symbol, object_block): New structures.
2569         (rtx_def): Add a block_symbol field to the union.
2570         (BLOCK_SYMBOL_CHECK): New macro.
2571         (rtl_check_failed_block_symbol): Declare.
2572         (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
2573         (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
2574         (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
2575         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
2576         * output.h (output_section_symbols): Declare.
2577         (object_block): Name structure.
2578         (place_section_symbol, get_section_anchor, default_asm_output_anchor)
2579         (default_use_anchors_for_symbol_p): Declare.
2580         * Makefile.in (RTL_BASE_H): Add vec.h.
2581         (explow.o): Depend on output.h.
2582         * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
2583         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
2584         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
2585         (rs6000_use_blocks_for_constant_p): New function.
2586
2587 2006-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2588
2589         * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
2590
2591 2006-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
2592
2593         PR tree-opt/25680
2594         * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
2595         IMAGPART_EXPR.
2596
2597 2006-02-18  Diego Novillo  <dnovillo@redhat.com>
2598
2599         * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
2600         is_aliased.
2601         Update all users.
2602
2603 2006-02-18  Jakub Jelinek  <jakub@redhat.com>
2604
2605         PR middle-end/26334
2606         * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
2607         instead of DECL_REGISTER.
2608
2609 2006-02-18  Olivier Hainque  <hainque@adacore.com>
2610
2611         PR ada/13408
2612         * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
2613
2614 2006-02-18  Joseph S. Myers  <joseph@codesourcery.com>
2615
2616         PR target/24837
2617         * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
2618         * opth-gen.awk: Handle Var and InverseMask together.
2619         * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
2620         * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
2621         (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
2622         (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
2623         used together.
2624         (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
2625         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
2626         * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
2627         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
2628         LINUX_DYNAMIC_LINKER): Define.
2629         (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
2630         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
2631         TARGET_GLIBC.
2632         * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
2633         (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
2634         * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
2635         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
2636         (TARGET_C99_FUNCTIONS): Don't define.
2637         * config/i386/linux.h (DYNAMIC_LINKER): Rename to
2638         GLIBC_DYNAMIC_LINKER.
2639         (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
2640         * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
2641         GLIBC_DYNAMIC_LINKER64): Define.
2642         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
2643         LINUX_DYNAMIC_LINKER64.
2644         * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
2645         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
2646         * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
2647         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
2648         * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
2649         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
2650         * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
2651         GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
2652         UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
2653         (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
2654         and LINUX_DYNAMIC_LINKER32.
2655         * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
2656         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
2657         * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
2658         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
2659         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
2660         TARGET_GLIBC.
2661         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
2662         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
2663         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
2664         CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
2665         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
2666         (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
2667         (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
2668         * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
2669         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
2670         LINUX_DYNAMIC_LINKER): Define.
2671         (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
2672         * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
2673         GLIBC_DYNAMIC_LINKER64): Define.
2674         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
2675         LINUX_DYNAMIC_LINKER64.
2676         * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
2677         (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
2678         * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
2679         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
2680         LINUX_DYNAMIC_LINKER): Define.
2681         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
2682         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
2683         * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
2684         GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
2685         UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
2686         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
2687         (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
2688         (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
2689         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
2690         * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
2691         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
2692         * doc/invoke.texi (-muclibc): Remove caveat about supported
2693         targets.
2694
2695 2006-02-17  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
2696
2697         * doc/cpp.texi (__TIMESTAMP__): Document.
2698
2699 2006-02-17  Roger Sayle  <roger@eyesopen.com>
2700
2701         PR middle-end/25600
2702         * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
2703         C is one less than the width of X (and related transformations).
2704         * simplify-rtx.c (simplify_unary_operation_1): Transform
2705         (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
2706         depending on STORE_FLAG_VALUE, were C is one less then the
2707         width of X.
2708
2709 2006-02-17  Daniel Berlin  <dberlin@dberlin.org>
2710
2711         Fix PR tree-optimization/26341
2712         * tree-ssa-operands.c (add_virtual_operand): Remove assert
2713         about NAME_MEMORY_TAG's.
2714
2715 2006-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2716
2717         PR target/26255
2718         * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
2719         with hardware float support, and software float support.  Add fcpy
2720         alternative to hardware patterns.  Add alternatives to copy between
2721         general and floating-point registers to the 32-bit pattern.
2722         * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
2723         secondary reload to load a QI or HI mode constant into a floating
2724         point register.
2725         * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
2726         * pa64-regs.h (VALID_FP_MODE_P): Likewise.
2727
2728 2006-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
2729
2730         PR target/26272
2731         * config/rs6000/darwin.md (load_macho_picbase_si): Add
2732         pc to the pattern.
2733         (load_macho_picbase_di): Likewise.
2734
2735 2006-02-16  Jeff Law  <law@redhat.com>
2736
2737         * tree-vrp.c (set_value_range_to_nonnegative): New function.
2738         (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
2739         (ssa_name_nonzero_p): Likewise.
2740         (get_value_range): Return NULL if VRP is not running.
2741         (extract_range_from_expr): Fallback to tree_expr_XXX_p if
2742         VRP routines do not discover a range.
2743         (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
2744         * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
2745         * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
2746         (tree_expr_nonnegative_p): Similarly.
2747         * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
2748         (restore_nonzero_vars_to_original_value): Remove.
2749         (unsafe_associative_fp_binop): Remove.
2750         (tree_ssa_dominator_optimize): Remove initialization and
2751         finalization of nonzero_vars and nonzero_vars_stack.
2752         (dom_opt_initialize_block): No longer push marker on
2753         nonzero_vars_stack.
2754         (dom_opt_finalize_block): No longer call
2755         restore_nonzero_vars_to_original_value.
2756         (record_equivalences_from_phis): No longer look for
2757         nonzero PHI arguments.
2758         (cprop_into_successor_phis): No longer propagate nonzero
2759         property into PHI arguments.  Lose unused argument.  Caller
2760         updated.
2761         (record_equivalences_from_stmt): No longer record nonzero
2762         values for SSA_NAMEs.
2763         (lookup_avail_expr): No longer use nonzero_vars.
2764
2765         * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
2766         for sizetype when sizetype is unsigned.
2767
2768 2006-02-16  Denis Nagorny <denis_nagorny@linux.intel.com>
2769
2770         PR rtl-optimization/25603
2771         * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
2772         (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
2773         * reload1.c (choose_reload_regs): Added call of regno_clobbered_p
2774         with new meaning of SETS.
2775
2776 2006-02-16  Joseph S. Myers  <joseph@codesourcery.com>
2777
2778         PR target/20353
2779         PR target/24578
2780         PR target/24837
2781         * config/linux.opt: New file.
2782         * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
2783         LINUX_DYNAMIC_LINKER): Define.
2784         (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
2785         * config.gcc (*-*-linux*): Define extra_options.
2786         (*-*-*uclibc*): Define UCLIBC_DEFAULT.
2787         (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
2788         * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
2789         GLIBC_DYNAMIC_LINKER.
2790         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
2791         (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
2792         * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
2793         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
2794         * doc/invoke.texi (GNU/Linux Options): New section.
2795
2796 2006-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
2797
2798         * config/sparc/sparc.md (setjmp): Rewrite.
2799         (setjmp_32): Delete.
2800         (setjmp_64): Likewise.
2801
2802 2006-02-16  Daniel Berlin <dberlin@dberlin.org>
2803
2804         * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
2805          previous change.
2806
2807 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
2808
2809         * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
2810         read-write uses.
2811
2812 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
2813
2814         PR rtl-optimization/26296
2815         * Makefile.in (loop-invariant.c): Add except.h dependency.
2816         * loop-invariant.c: Include except.h.
2817         (find_invariant_insn): Ignore insns satisfying can_throw_internal.
2818
2819 2005-02-16  Paul Brook  <paul@codesourcery.com>
2820
2821         * reload1.c (emit_reload_insns): Invalidate dead input registers used
2822         for reloads.
2823
2824 2006-02-16  Bernd Schmidt  <bernd.schmidt@analog.com>
2825
2826         PR rtl-optimization/25636
2827         * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
2828         when deciding whether an insn is an initializing insn.
2829
2830 2006-02-15 Daniel Berlin  <dberlin@dberlin.org>
2831
2832         * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
2833         (tree_code_size): Ditto.
2834         * tree.h (struct tree_memory_tag): Remove parent_var.
2835         (struct tree_struct_field_tag): New.
2836         (SFT_OFFSET): New.
2837         (SFT_SIZE): New.
2838         (union tree_node): Add sft member.
2839         * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
2840         specially here.
2841         (create_sft): Add size and offset argument, set SFT_OFFSET and
2842         SFT_SIZE.
2843         (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
2844         * treestruct.def: Add TS_STRUCT_FIELD_TAG.
2845         * tree-flow-inline.h (get_subvar_at): Update for
2846         SFT_OFFSET/SFT_SIZE.
2847         (var_can_have_subvars): Ditto.
2848         (overlap_subvar): Ditto.
2849         * print-tree.c (print_node): Print out interesting things for
2850         SFT's.
2851         * tree-flow.h (struct subvar): Remove offset and size members.
2852         * tree-ssa-operands.c (get_expr_operands): Update for
2853         get_indirect_ref_operands changes.
2854         (get_indirect_ref_operands): Call add_virtual_operand instead of
2855         add_stmt_operand.  Only recurse on base var if requested.
2856         (access_can_touch_variable): New function.
2857         (add_stmt_operand): Split virtual operand handling into ...
2858         (add_virtual_operand): Here.  Add offset, size, and for_clobber
2859         arguments.  Prune alias sets.
2860         (add_call_clobber_ops): Call add_virtual_operand.
2861
2862 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
2863
2864         PR middle-end/26300
2865         * combine.c (make_extraction): Bail out if ORIG_POS is negative.
2866
2867         * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
2868         than TREE_CODE as index into omp_clause_num_ops array.
2869
2870 2006-02-15  Uttam Pawar  <uttamp@us.ibm.com>
2871
2872         PR rtl-optimization/26184
2873         * modulo-sched.c (generate_reg_moves): Free bitmap vector
2874         uses_of_defs.
2875         * modulo-sched.c (sms_schedule): Free g_arr pointer.
2876         * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
2877         must_precede, must_follow and tobe_scheduled.
2878
2879         PR other/26147
2880         * opts.c (common_handle_option): Free new_option pointer.
2881         * df-core.c (df_analyze): Free postorder pointer.
2882
2883 2006-02-15  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2884
2885         * Makefile.in: Fix the examples about the use of stamps
2886
2887 2006-02-15  Michael Matz  <matz@suse.de>
2888
2889         PR middle-end/22275
2890
2891         * stor-layout.c (layout_decl): Zero-width bitfields aren't
2892         influenced by maximum_field_alignment or DECL_PACKED.
2893         (update_alignment_for_field): Ditto.
2894         (place_field): Ditto.
2895         * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
2896         this behaviour.
2897
2898 2006-02-15  Paolo Bonzini  <bonzini@gnu.org>
2899
2900         * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
2901         (debug_flow_info): Pass it.
2902         * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
2903         * bb-reorder.c (reorder_basic_blocks): Likewise.
2904         * cfgcleanup.c (rest_of_handle_jump2): Likewise.
2905         * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
2906         * flow.c (life_analysis, recompute_reg_usage): Likewise.
2907         * gcse.c (gcse_main, bypass_jumps): Likewise.
2908         * ifcvt.c (rest_of_handle_if_conversion): Likewise.
2909         * local-alloc.c (rest_of_handle_local_alloc): Likewise.
2910         * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
2911         * profile.c (compute_branch_probabilities, branch_prob): Likewise.
2912         * rtl.h (dump_flow_info): Adjust prototype.
2913         * tracer.c (rest_of_handle_tracer, tracer): Likewise.
2914         * var-tracking.c (variable_tracking_main): Likewise.
2915         * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
2916         * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
2917         options.
2918
2919 2006-02-15  Marcin Dalecki <martin@dalecki.de>
2920
2921         * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
2922         construction.
2923
2924 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
2925
2926         PR tree-optimization/26209
2927         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
2928         * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
2929         eh edges.
2930         * tree-cfg.c (replace_uses_by): Do not alter cfg.
2931
2932 2006-02-14  Roger Sayle  <roger@eyesopen.com>
2933
2934         PR middle-end/23670
2935         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
2936         (X,Y) and the corresponding symmetry related transformations.
2937         (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
2938         (X,Y) and its symmetry related transformations.
2939
2940 2006-02-14  Roger Sayle  <roger@eyesopen.com>
2941
2942         * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
2943         and GEU.
2944
2945 2006-02-14  Adam Nemet  <anemet@caviumnetworks.com>
2946
2947         * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
2948
2949 2006-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2950
2951         PR bootstrap/26053
2952         * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
2953         support COMDAT group.
2954         * configure: Regenerate.
2955
2956 2006-02-14  Roger Sayle  <roger@eyesopen.com>
2957
2958         PR middle-end/26279
2959         PR middle-end/26280
2960         PR middle-end/26283
2961         * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
2962
2963 2006-02-14  Daniel Berlin  <dberlin@dberlin.org>
2964
2965         Fix PR tree-optimization/26260
2966
2967         * doc/invoke.texi (max-fields-for-field-sensitive): Document
2968         param.
2969         * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
2970         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
2971         * tree-ssa-structalias.c (create_variable_info_for): Use
2972         MAX_FIELDS_FOR_FIELD_SENSITIVE.
2973
2974 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
2975
2976         * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
2977         Document.
2978         * tree-ssa-loop-niter.c (number_of_iterations_ne,
2979         number_of_iterations_lt, number_of_iterations_cond): Remember the shape
2980         of the ending condition.
2981         * tree-ssa-loop-manip.c: Include params.h.
2982         (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
2983         tree_unroll_loop): New functions.
2984         * tree-pass.h (pass_loop_prefetch): Declare.
2985         * loop.c (rest_of_handle_loop_optimize): Test for
2986         -fprefetch-loop-arrays-rtl.
2987         * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
2988         * timevar.def (TV_TREE_PREFETCH): New timevar.
2989         * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
2990         pass_loop_prefetch): New.
2991         * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
2992         (cleanup_tree_cfg_loop): Call scev_reset.
2993         * common.opt (fprefetch-loop-arrays-rtl): Add.
2994         * tree-ssa-loop-prefetch.c: New file.
2995         * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
2996         (new_temp_expr_table): Initialize expr_vars.
2997         (free_temp_expr_table): Cleanup expr_vars.
2998         (check_replaceable, find_replaceable_in_bb): Prevent accumulating
2999         expressions from being merged into one.
3000         * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
3001         (struct tree_niter_desc): Add control, bound and cmp fields.
3002         (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
3003         Declare.
3004         * Makefile.in (tree-ssa-loop-prefetch.o): Add.
3005         (tree-cfgcleanup.o): Add SCEV_H dependency.
3006         (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
3007         * passes.c (init_optimization_passes): Add pass_loop_prefetch.
3008
3009 2006-02-14  Richard Guenther  <rguenther@suse.de>
3010
3011         PR tree-optimization/26258
3012         * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
3013         in PHI argument processing.
3014
3015 2006-02-13  Adam Nemet  <anemet@caviumnetworks.com>
3016
3017         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
3018         new expression in the requested machine mode.
3019
3020 2006-02-13  Roger Sayle  <roger@eyesopen.com>
3021
3022         * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
3023         directly, instead let do_compare_rtx_and_jump handle this for us.
3024         * expr.c (expand_expr_real_1): Likewise.
3025         * dojump.c (do_jump_by_parts_greater_rtx): Make static.  Move
3026         before do_jump_by_parts_greater.
3027         (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
3028         * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
3029
3030 2006-02-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3031
3032         * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
3033
3034 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
3035
3036         PR rtl-optimization/26235
3037         * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
3038         (invariant_expr_equal_p): Handle 'i' and 'n' formats.  Fail on unknown
3039         format.
3040
3041 2006-02-13  Jeff Law  <law@redhat.com>
3042
3043         * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
3044         TRUTH_XOR_EPR.
3045
3046 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
3047
3048         PR middle-end/26092
3049         * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
3050         twice if decl is a builtin.  When trying again, call get_callee_fndecl
3051         first to verify it is still a builtin.
3052
3053 2006-02-13  Geoffrey Keating  <geoffk@apple.com>
3054
3055         * dwarf2out.c (base_type_die): Don't add AT_name here.
3056         (subrange_type_die): Don't add AT_name here.
3057         (modified_type_die): Rearrange code flow.  Do add AT_name here.
3058
3059 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
3060
3061         PR rtl-optimization/26247
3062         PR rtl-optimization/26248
3063         * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
3064
3065 2006-02-13  Richard Sandiford  <richard@codesourcery.com>
3066
3067         * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
3068         * config/fixtfdi.c: Likewise.
3069         * config/fixunstfdi.c: Likewise.
3070         * config/floatditf.c: Likewise.
3071
3072 2006-02-13  Roger Sayle  <roger@eyesopen.com>
3073
3074         PR middle-end/24427
3075         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
3076         into (X,C2) if C1 is a subset of the bits of C2.  Transform
3077         (X&C1)|C2 into X|C2 if C1|C2 == ~0.  Canonicalize (X&C1)|C2 as
3078         (X&(C1&~C2))|C2.
3079         <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
3080
3081 2006-02-13  Josh Conner  <jconner@apple.com>
3082
3083         PR target/25376
3084         * varasm.c (function_section): Check for section name before
3085         calling select_section on targets that define
3086         USE_SELECT_SECTION_FOR_FUNCTIONS.  On other targets, use
3087         unlikely_text_section instead of hot_function_section if
3088         first_function_block_is_cold.
3089
3090 2006-02-13  J"orn Rennecke <joern.rennecke@st.com>
3091
3092         PR middle-end/25335
3093         * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
3094
3095 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
3096
3097         PR rtl-optimization/26222
3098         * function.c (assign_stack_temp_for_type): Do not reuse stack slots
3099         after tree->rtl expansion.
3100         * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
3101         before passing it to emit_move_insn.
3102
3103 2006-02-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3104
3105         * doc/invoke.texi (-Write-strings): Document that it is enabled by
3106         default.
3107         * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
3108         Clarify documentation.
3109         * c-common.h (warn_write_strings): Remove.
3110         * c-common.c (warn_write_strings): Likewise.
3111         * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
3112         default for C++.
3113
3114 2006-02-12  Roger Sayle  <roger@eyesopen.com>
3115
3116         PR middle-end/25724
3117         * dojump.c (do_jump): Call do_compare_rtx_and_jump.
3118         (do_jump_parts_zero_rtx): New function renamed from
3119         do_jump_parts_equality_rtx.  Made static.  Add a mode argument.
3120         (do_jump_parts_equality_rtx): New function split out from
3121         do_jump_parts_equality.  Old implementation renamed as above.
3122         Call do_jump_parts_zero_rtx if either operand is zero.
3123         (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
3124         do all of the heavy lifting.
3125         (do_compare_rtx_and_jump): Handle multi-word comparisons by
3126         calling either do_jump_by_parts_greater_rtx or
3127         do_jump_by_parts_equality_rtx.
3128         * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
3129         * expmed.c (do_cmp_and_jump): Now multi-word optimization has
3130         moved to do_compare_rtx_and_jump, call it directly.
3131         * stmt.c (do_jump_if_equal): Remove static prototype.  Add a
3132         mode argument.  Call do_compare_rtx_and_jump.
3133         (emit_case_nodes): Update calls to do_jump_if_equal.
3134
3135 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
3136
3137         PR rtl-optimization/26225
3138         * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
3139
3140 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
3141
3142         PR rtl-optimization/26232
3143         * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
3144
3145 2006-02-11  Jason Merrill  <jason@redhat.com>
3146
3147         PR tree-opt/24365
3148         * tree-inline.c (declare_return_variable): Just don't use the
3149         modify target if it's a gimple complex reg and the return slot
3150         isn't.
3151
3152 2006-02-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3153
3154         * doc/contrib.texi: Update my entry.
3155
3156 2006-02-10  Geoffrey Keating  <geoffk@apple.com>
3157
3158         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
3159
3160 2006-02-10  Diego Novillo  <dnovillo@redhat.com>
3161
3162         * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
3163         expensive.
3164
3165 2006-02-10  Zdenek Dvorak <dvorakz@suse.cz>
3166
3167         * doc/invoke.texi (-floop-optimize2): Removed.
3168         * toplev.c (process_options): Remove handling of flag_loop_optimize2.
3169         * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
3170         Test flag_branch_on_count_reg only if HAVE_doloop_end.
3171         * common.opt (floop-optimize2): Removed.
3172         (fmove-loop-invariants): Enabled by default.
3173
3174 2006-02-10  Sebastian Pop  <pop@cri.ensmp.fr>
3175
3176         * tree-if-conv.c (combine_blocks): Free the result of
3177         get_loop_exit_edges.
3178
3179 2006-02-10  Jeff Law  <law@redhat.com>
3180
3181         * fold-const.c (tree_expr_nonzero_p): Fix thinko.
3182
3183         PR tree-optimization/26213
3184         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
3185         loop trying to follow SSA_NAME_VALUE chains.
3186
3187 2006-02-10  Richard Guenther  <rguenther@suse.de>
3188
3189         * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
3190         deal with structures that end in implicitly variable sized arrays.
3191
3192 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
3193
3194         PR rtl-optimization/24762
3195         * df-scan.c (df_bb_refs_record): Record correct registers defined on
3196         eh edges.
3197
3198 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
3199
3200         * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
3201         (struct ivopts_data): Add regs_used field.
3202         (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
3203         (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
3204         instead of loop_data->regs_used;
3205         (free_loop_data): Do not free aux fields for loops.
3206         (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
3207         and tree_ssa_iv_optimize_finalize.
3208
3209 2006-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
3210
3211         * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
3212
3213 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
3214
3215         PR target/26141
3216         * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
3217         computing the effective result type.
3218
3219 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
3220
3221         PR inline-asm/16194
3222         * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
3223         (tree_overlaps_hard_reg_set): Declare.
3224         * stmt.c (decl_overlaps_hard_reg_set_p): Now static.  Change return
3225         type and signature to match function type expected by walk_tree.
3226         (tree_overlaps_hard_reg_set): New function.
3227         (decl_conflicts_with_clobbers_p): Rename to:
3228         (tree_conflicts_with_clobbers_p).  Take HARD_REG_SET * argument.
3229         Use tree_overlaps_hard_reg_set.  Changed caller.
3230         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
3231         decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
3232         * cris.c (cris_md_asm_clobbers): Likewise.
3233
3234 2006-02-09  Bernd Schmidt  <bernd.schmidt@analog.com>
3235
3236         * reload1.c (emit_input_reload_insns): Delete code that tries to
3237         inherit using find_equiv_reg.
3238
3239 2006-02-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3240
3241         * c-common.h (flag_const_strings): Don't declare.
3242         * c-common.c (flag_const_strings): Remove.
3243         * c.opt (fconst_strings): Remove.
3244         * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
3245         <OPT_Wwrite_strings>: Don't set flag_const_strings.
3246         (c_common_init_options): Don't set flag_const_strings.
3247         * doc/invoke.texi (-fno-const-strings): Remove documentation.
3248
3249 2006-02-09  Richard Earnshaw  <richard.earnshaw@arm.com>
3250
3251         * arm.md (tlobits_cbranch): New pattern.
3252         * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
3253         testing a single bit.
3254
3255 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
3256
3257         PR tree-opt/26179
3258         * tree-ssa-pre.c (create_component_ref_by_pieces):
3259         Handle RETURN_DECL like VAR_DECL.
3260
3261 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
3262
3263         PR middle-end/26134
3264         * fold-const.c (fold_indirect_ref_1): Fold
3265         "*(foo *)&complexfoo" to "__real__ complexfoo"
3266         and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
3267
3268 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
3269
3270         * tree-flow-inline.h (var_can_have_subvars):
3271         Volatile variables should not have subvariables.
3272
3273 2006-02-09  Diego Novillo  <dnovillo@redhat.com>
3274
3275         PR 26180
3276         * tree-vrp.c (vrp_int_const_binop): Detect overflow when
3277         multiplying unsigned values.
3278         Tidy comments.
3279
3280 2006-02-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
3281
3282         * config/sparc/sparc.c (tls_call_delay): Fix oversight.
3283
3284 2006-02-08  Jason Merrill  <jason@redhat.com>
3285
3286         PR c++/25979
3287         * tree.def: Elaborate on difference from MODIFY_EXPR.
3288         * doc/c-tree.texi (INIT_EXPR): Likewise.
3289         * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
3290         (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
3291         (gimplify_target_expr): Likewise.
3292         (gimplify_cond_expr): Remove target handling.
3293         (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
3294         (gimplify_expr): Clobber it here.
3295         (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
3296         Do return slot optimization if we have an INIT_EXPR.
3297
3298         PR tree-opt/24365
3299         * tree-inline.c (declare_return_variable): Also clear
3300         DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
3301
3302         PR c++/16405
3303         * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
3304
3305         PR middle-end/22439
3306         * gimplify.c (gimplify_one_sizepos): Fix typo.
3307
3308 2006-02-08  Jeff Law  <law@redhat.com>
3309
3310         PR tree-optimization/21417
3311         * tree-ssa-threadedge.c (thread_across_edge): Reject threading
3312         across a backedge if the control statement at the end of the
3313         block is data dependent on other statements in the same block.
3314         (record_temporary_equivalences_from_stmts): Remove over-conservative
3315         test for threading across backedges.
3316
3317         * tree-ssa-dce.c (remove_dead_statement): When removing a dead
3318         control statement, handle all three special cases in the same
3319         manner as they all have the same desired solution.  No longer
3320         special case edge flag updating when the post dominator is
3321         the exit block.
3322
3323 2006-02-08  Roger Sayle  <roger@eyesopen.com>
3324
3325         * tree.def (CHAR_TYPE): Remove.
3326         * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
3327         * dwarf2out.c (base_type_die, is_base_type): Likewise.
3328         (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
3329         (gen_string_type_die): Delete unreachable function.
3330
3331         * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
3332         * tree.c (build_int_cst_wide, type_contains_placeholder_1,
3333         type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
3334         * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
3335         * builtins.c (type_to_class): Likewise.
3336         * fold-const.c (fold_convert, build_range_check,
3337         merge_ranges): Likewise.
3338         * expr.c (count_type_elements): Likewise.
3339         * c-pretty-print.c (pp_c_type_specifier): Likewise.
3340         * stor-layout.c (layout_type): Likewise.
3341         * ipa-type-escape.c (type_to_consider): Likewise.
3342         * gimplify.c (omp_firstprivatize_type_sizes,
3343         gimplify_type_sizes): Likewise.
3344         * explow.c (promote_mode): Likewise.
3345         * tree-sra.c (is_sra_scalar_type): Likewise.
3346         * varasm.c (output_constant): Likewise.
3347         * tree-inline.c (remap_type_1): Likewise.
3348         * convert.c (convert_to_pointer, convert_to_real,
3349         convert_to_integer, convert_to_complex): Likewise.
3350
3351 2006-02-08  Daniel Berlin  <dberlin@dberlin.org>
3352
3353         * df-scan.c (df_def_record_1): A set destination may
3354         be a parallel regardless of mode.
3355
3356 2006-02-08  Roger Sayle  <roger@eyesopen.com>
3357
3358         PR target/22209
3359         * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
3360         * config/mips/_tilib.c: Remove.
3361         * config/fixtfdi.c: New libgcc source file.
3362         * config/fixunstfdi.c: New source file.
3363         * config/floatditf.c: New source file.
3364         * config/floatunditf.c: New souce file.
3365         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
3366         files above instead of config/mips/_tilib.c.
3367         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
3368
3369 2006-02-08  Jeff Law  <law@redhat.com>
3370
3371         PR tree-optimization/26169
3372         * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
3373         threading jumps.
3374
3375 2006-02-08  Zdenek Dvorak <dvorakz@suse.cz>
3376
3377         * df.h (DF_REG_SIZE): Return the length of the initialized
3378         part of the array.
3379
3380 2006-02-08  Nathan Sidwell  <nathan@codesourcery.com>
3381
3382         * gcc/config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
3383         __muldf3): Return a correctly signed zero.
3384
3385 2006-02-08  Paolo Bonzini  <bonzini@gnu.org>
3386
3387         * passes.c (register_one_dump_file): Accept the current properties
3388         instead of pass number.  Adjust call to dump_register.  Remove
3389         duplicated code.
3390         (register_dump_files): Now a wrapper around...
3391         (register_dump_files_1): ... this one.  Do not modify the pass
3392         structure.
3393         (next_pass_1): Cosmetic fix.
3394         (execute_todo): Keep second parameter only.  Use curr_properties
3395         instead of fetching it from the pass structure.  Check and set
3396         last_verified.
3397         (execute_one_pass): Handle TODO_set_props.  Use curr_properties