OSDN Git Service

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