OSDN Git Service

1051c70e7e0439c2f2c30bec92b006a0437ac1cb
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-12-14  Jeff Law  <law@redhat.com>
2
3         * tree-ssa-ccp.c (fold_stmt_r): DATA argument is now a pointer
4         to a structure containing state rather than a pointer to bool.
5         (case ARRAY_REF): New code to handle folding some array references.
6         (case ADDR_EXPR): Note when we are processing expressions found
7         within an ADDRE_EXPR.
8         (fold_stmt, fold_stmt_inplace): Pass in a structure to fold_stmt_r
9         for state variables rather than just a pointer to a boolean.
10         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
11         handling of constant string references.
12
13 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
14
15         * config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge.
16         ("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge.
17         ("*tstdi_cconly2", "*tstsi_cconly2"): Merge.
18         Move other tst* patterns to retain partial order.
19
20 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
21
22         * config/s390/s390.md ("d0", "1"): New mode attributes.
23         ("<shift>di3", "<shift>si3"): Merge.
24         ("*<shift>di3_and", "*<shift>si3_and"): Merge.
25         ("ashrdi3", "ashrsi3"): Merge.
26         ("*ashrdi3_cc", "*ashrsi3_cc"): Merge.
27         ("*ashrdi3_cc_and", "*ashrsi3_cc_and"): Merge.
28         ("*ashrdi3_cconly", "*ashrsi3_cconly"): Merge.
29         ("*ashrdi3_cconly_and", "*ashrsi3_cconly_and"): Merge.
30         ("*ashrdi3", "*ashrsi3"): Merge.
31         ("*ashrdi3_and", "*ashrsi3_and"): Merge.
32
33 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
34
35         * config/s390/s390.md ("extend<mode>di2", "extend<mode>si2"): Merge.
36         ("*extendqidi2_extimm", "*extendqisi2_extimm"): Merge.
37         ("*extendqidi2", "*extendqisi2") Merge.
38         ("*extendqidi2_short_displ", "*extendqisi2_short_displ"): Merge.
39         ("zero_extendhidi2", "zero_extendqidi2"): Merge.
40         ("*zero_extend<mode>di2_extimm", "*zero_extend<mode>si2_extimm"): Merge.
41         Move some patterns to retain partial ordering.
42
43 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
44
45         * config/s390/s390.md ("atype", "length"): Rewrite.
46         ("*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): Add mode.
47
48 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
49
50         * tree-ssa-operands.c (build_ssa_operands): Update leading comment.
51
52 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
53
54         * struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for
55         PARALLELs with a mode.
56
57 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
58
59         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of
60         cond_expr parameter.
61
62 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
63
64         * loop-unswitch.c (unswitch_loop): Free zero_bitmap before returning.
65
66 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
67
68         PR bootstrap/25397:
69
70         * struct-equiv.c (struct_equiv_init): Fix off-by-one error in clearing
71         of STACK_REGS bits.
72
73         * struct-euiv.c (rtx_equiv_p): Remove SUBREG case.
74
75 2005-12-14  Jakub Jelinek  <jakub@redhat.com>
76
77         PR target/25254
78         PR target/24188
79         * config/i386/i386.c (x86_64_elf_select_section): If DECL is not
80         DECL_P, call get_section rather than get_named_section.  Supply
81         section flags to it.
82
83 2005-12-14  Ben Elliston  <bje@au.ibm.com>
84
85         * c-common.c (c_common_truthvalue_conversion): Generalise warning
86         for addresses converted to booleans; not just function addresses.
87         * c-typeck.c (build_binary_op): Warn for address comparisons which
88         can never be NULL (eg. func == NULL or &var == NULL).
89         * common.opt (Walways-true): New option.
90         * c-opts.c (c_common_handle_option): Set it with -Wall.
91         * doc/invoke.texi: Document it.
92
93 2005-12-13  Paul Brook  <paul@codesourcery.com>
94
95         * config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2,
96         __floatunsidf, __floatunsisf, __floatunsixf): New functions.
97
98 2005-12-13  Nathan Sidwell  <nathan@codesourcery.com>
99
100         * config/mt/t-mt (crti.o, crtn.o): Add multilib options.
101         (EXTRA_MULTILIB_PARTS): Define.
102
103 2005-12-13  J"orn Rennecke <joern.rennecke@st.com>
104
105         PR rtl-optimization/20070 / part1
106         * flow.c (update_life_info): If PROP_POST_REGSTACK is set, call
107         count_or_remove_death_notes with kill == -1.
108         (mark_set_1): Don't add REG_DEAD / REG_UNUSED notes for stack
109         registers if PROP_POST_REGSTACK is set.
110         (mark_used_reg): Likewise.
111         (count_or_remove_death_notes): If kill is -1, don't remove REG_DEAD /
112         REG_UNUSED notes for stack regs.
113         * cfgcleanup.c (condjump_equiv_p): Change parameters and processing
114         to match rtx_equiv_p machinery.  Change caller.
115         (outgoing_edges_match): Likewise.
116         (try_crossjump_to_edge): Use struct_equiv_block_eq
117         instead of flow_find_cross_jump.
118         * basic-block.h (PROP_POST_REGSTACK, STRUCT_EQUIV_START): Define.
119         (STRUCT_EQUIV_RERUN, STRUCT_EQUIV_FINAL): Likewise.
120         (STRUCT_EQUIV_NEED_FULL_BLOCK, STRUCT_EQUIV_MATCH_JUMPS): Likewise.
121         (STRUCT_EQUIV_MAX_LOCAL): Likewise.
122         (struct struct_equiv_checkpoint, struct equiv_info): Likewise.
123         (insns_match_p): Update prototype.
124         (flow_find_cross_jump): Remove prototype.
125         (struct_equiv_block_eq, struct_equiv_init): Declare.
126         (rtx_equiv_p, condjump_equiv_p): Likewise.
127         * struct-equiv.c: Include reload.h.
128         (IMPOSSIBLE_MOVE_FACTOR): Define.
129         (assign_reg_reg_set, struct_equiv_make_checkpoint): New functions.
130         (struct_equiv_improve_checkpoint): Likewise.
131         (struct_equiv_restore_checkpoint, rtx_equiv_p): Likewise.
132         (set_dest_equiv_p, set_dest_addr_equiv_p, struct_equiv_init): Likewise.
133         (struct_equiv_merge, find_dying_input): Likewise.
134         (resolve_input_conflict, note_local_live): Likewise.
135         (death_notes_match_p): Change parameters and processing
136         to match rtx_equiv_p machinery.  Change caller.
137         (insns_match_p): Likewise.
138         (flow_find_cross_jump): Replace with:
139         (struct_equiv_block_eq).
140
141         Back out this change:
142         2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
143           * recog.c (verify_changes): Make it static.
144           * recog.h: Remove the corresponding prototype.
145
146 2005-12-13  J"orn Rennecke <joern.rennecke@st.com>
147
148         * rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point
149         values.
150
151 2005-12-13  Nathan Sidwell  <nathan@codesourcery.com>
152
153         * config/mt/t-mt (MULTILIB_OPTIONS): Add ms2
154         (MULTILIB_DIRNAMES): Add ms2.  Prefix ms1 dirs with 'ms1'.
155         * config/mt/mt.c (ms1_final_prescan): Use TARGET_MS2,
156         TARGET_MS1_64_001 appropriately.
157         (ms1_machine_reorg): Use TARGET_MS2.
158
159 2005-12-13  Jakub Jelinek  <jakub@redhat.com>
160
161         PR debug/25023
162         PR target/25293
163         * expr.c (emit_move_resolve_push): Handle PRE_MODIFY
164         and POST_MODIFY with CONST_INT adjustment equal to PUSH_ROUNDING.
165         Fix POST_INC/POST_DEC handling if PUSH_ROUNDING is not identity.
166         * config/i386/i386.md (pushhi2, pushqi2): Use pushl instead of pushw.
167         Set mode to SI, adjust constraints.
168         (pushhi2_rex64, pushqi2_rex64): Set mode to DI.
169         * config/i386/i386.h (PUSH_ROUNDING): Round up to 4 instead of 2 for
170         32-bit code.
171
172 2005-12-13  Carlos O'Donell <carlos@codesourcery.com>
173
174         * c-cppbuiltin.c (builtin_define_float_constants): Add
175         fp_cast parameter, pass to builtin_define_with_hex_fp_value.
176         Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__.
177         (builtin_define_with_hex_fp_value): Use fp_cast when building macro.
178         (c_cpp_builtins): If flag_single_precision_constant then set fp_cast
179         to "((double)%sL)" otherwise "%s".
180
181 2005-12-13  Paul Brook  <paul@codesourcery.com>
182
183         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=gnu for
184         apcs/atpcs.
185
186 2005-12-11 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
187
188         * tree-flow.h: Allow compilation with a C++ compiler.
189         (struct edge_prediction): Prefix all field names  with "ep_".
190         * predict.c (tree_predicted_by_p): Likewise for struct edge_prediction.
191         (tree_predict_edge, combine_predictions_for_bb): Likewise.
192         (remove_predictions_associated_with_edge): Likewise.
193         
194 2005-12-12  Jeff Law  <law@redhat.com>
195
196         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
197         reassociation code.
198         * passes.c (init_optimization_passes): Run reassociation again
199         after loop optimizations.
200
201 2005-12-12  Daniel Berlin  <dberlin@dberlin.org>
202
203         * tree-ssa-dom.c (thread_across_edge): Canonicalize condition
204         if necessary.
205         (optimize_stmt): Ditto.
206         (canonicalize_comparison): New function.
207         * tree-ssa-operands.c (swap_tree_operands): Make external.
208         (get_expr_operands): Stop auto-canonicalization.
209         * tree-ssa-reassoc.c: Rewrite.
210         (init_optimization_passes): 
211         * tree-flow.h (swap_tree_operands): Prototype.
212         * Makefile.in (tree-ssa-reassoc.o): Update dependencies.
213
214 2005-12-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
215
216         * pa.c (pa_output_function_epilogue): Set cfun->machine->in_nsubspa to
217         indicate function epilogue has been output.
218         (pa_asm_output_mi_thunk): Likewise.
219         (output_deferred_plabels): Put plabels in readonly data section when
220         not generating PIC code.
221         (som_output_text_section_asm_op): Use .NSUBSPA to output debug
222         information.  Add assert.
223         (som_output_comdat_data_section_asm_op): New function.
224         (pa_som_asm_init_sections): Use som_output_comdat_data_section_asm_op
225         instead of output_section_asm_op for COMDAT sections.
226
227 2005-12-12  J"orn Rennecke <joern.rennecke@st.com>
228
229         * cfgcleanup.c (condjump_equiv_p, try_crossjump_to_edge):
230         Fix whitespace in vincinity of to-be-installed changes.
231         * struct-equiv.c (merge_memattrs, death_notes_match_p): Fix whitespace.
232         (insns_match_p): Likewise.
233
234 2005-12-12  Nathan Sidwell  <nathan@codesourcery.com>
235
236         * config.gcc (ms1): Replace with ...
237         (mt): ... this.
238         * config/ms1: Rename to ...
239         * config/mt: ... here.  Rename ms1 files to mt.
240         * config/mt/mt.c: Adjust gt-mt.h #include.
241         * config/mt/t-mt (LIB1ASMSRCS, LIB2FUNCS_EXTRA): Adjust.
242         (crti.o, crtn.o): Adjust file names.
243
244 2005-12-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
245
246         * varray.h: Allow compilation with a C++ compiler.
247         (union varray_data_tag): Prefix all field names with "vdt_".
248         (VARRAY_CHAR, VARRAY_UCHAR, VARRAY_SHORT, VARRAY_USHORT,
249         VARRAY_INT, VARRAY_UINT, VARRAY_LONG, VARRAY_ULONG,
250         VARRAY_WIDE_INT, VARRAY_UWIDE_INT, VARRAY_GENERIC_PTR,
251         VARRAY_GENERIC_PTR_NOGC, VARRAY_CHAR_PTR, VARRAY_RTX,
252         VARRAY_RTVEC, VARRAY_TREE, VARRAY_BITMAP, VARRAY_REG, VARRAY_BB,
253         VARRAY_ELT_LIST, VARRAY_EDGE, VARRAY_TREE_PTR): Adjust definition.
254         (VARRAY_PUSH_CHAR, VARRAY_PUSH_UCHAR, VARRAY_PUSH_SHORT,
255         VARRAY_PUSH_USHORT, VARRAY_PUSH_INT, VARRAY_PUSH_UINT, 
256         VARRAY_PUSH_LONG, VARRAY_PUSH_ULONG, VARRAY_PUSH_WIDE_INT, 
257         VARRAY_PUSH_UWIDE_INT, VARRAY_PUSH_GENERIC_PTR, 
258         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_CHAR_PTR, 
259         VARRAY_PUSH_RTX, VARRAY_PUSH_RTVEC, VARRAY_PUSH_TREE, 
260         VARRAY_PUSH_BITMAP, VARRAY_PUSH_REG, VARRAY_PUSH_BB, 
261         VARRAY_PUSH_EDGE, VARRAY_PUSH_TREE_PTR): Likewise.
262         (VARRAY_TOP_CHAR, VARRAY_TOP_UCHAR, VARRAY_TOP_SHORT, 
263         VARRAY_TOP_USHORT, VARRAY_TOP_INT, VARRAY_TOP_UINT, 
264         VARRAY_TOP_LONG, VARRAY_TOP_ULONG, VARRAY_TOP_WIDE_INT, 
265         VARRAY_TOP_UWIDE_INT, VARRAY_TOP_GENERIC_PTR, 
266         VARRAY_TOP_GENERIC_PTR_NOGC, VARRAY_TOP_CHAR_PTR, VARRAY_TOP_RTX, 
267         VARRAY_TOP_RTVEC, VARRAY_TOP_TREE, VARRAY_TOP_BITMAP, 
268         VARRAY_TOP_REG, VARRAY_TOP_BB, VARRAY_TOP_EDGE, 
269         VARRAY_TOP_TREE_PTR): Likewise.
270         * varray.c (varray_grow): Likewise.
271         (varray_clear): Likewise.
272
273 2005-12-12  Alan Modra  <amodra@bigpond.net.au>
274
275         PR target/25299
276         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase
277         alignment to doubleword if the first field is a double array.
278         * config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define.
279
280 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
281
282         * tree-ssa-structalias.c (process_constraint): Remove code to
283         transform addressofs into scalar.
284         (create_variable_info_for): In whole-program IPA, globals don't
285         point to ANYTHING by default.
286
287 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
288
289         * timevar.def (TV_IPA_PTA): New.
290         * tree-pass.h (pass_ipa_pta): New
291         * tree-ssa-structalias.c: Include cgraph.h
292         (in_ipa_mode): New.
293         (predbitmap_obstack): New.
294         (EXECUTE_IF_IN_NONNULL_BITMAP): New.
295         (struct constraint_stats): Add num_edges.
296         (new_var_info): Don't call bitmap_clear.
297         (struct constraint_edge): Update docs.
298         (new_constraint_edge): Remove src param.
299         (struct constraint_graph): Add zero_weight_succs,
300         zero_weight_preds.  Update docs.
301         (constraint_expr_equal): Reformat.
302         (constraint_edge_equal): Update for removal of src.
303         (constraint_edge_less): Ditto.
304         (constraint_edge_vec_find): Ditto.
305         (erase_graph_self_edge): Update for removal of src and and zero
306         weight bitmap.
307         (clear_edges_for_node): Ditto.
308         (add_graph_edge): Ditto.
309         (get_graph_weights): Ditto.
310         (allocate_graph_weights): Ditto.
311         (merge_graph_nodes): Ditto.
312         (int_add_graph_edge): Ditto.
313         (valid_graph_edge): Ditto.
314         (valid_weighted_graph_edge): Ditto.
315         (build_constraint_graph): Ditto.
316         (scc_visit): Ditto.
317         (collapse_nodes): Ditto.
318         (process_unification_queue): Ditto.
319         (topo_visit): Ditto.
320         (solve_graph): Ditto.
321         (do_structure_copy): Ditto.
322         (perform_var_substitution): Ditto.
323         Init and release obstack.
324         (handle_ptr_arith): Try to resolve directly.
325         (find_func_aliases): Don't call update_alias_info here
326         Handle RETURN_EXPR, and CALL_EXPR's in IPA mode.
327         (do_sd_constraint): Add code for propagating faster.
328         Update.
329         (do_ds_constraint): Ditto.
330         (count_num_arguments): New function.
331         (create_function_info_for): Ditto.
332         (create_variable_info_for): Handle FUNCTION_DECL.
333         (intra_create_variable_infos): Use make_constraint_to_anything.
334         (init_alias_vars): Init obstacks here.
335         (need_to_solve): Handle zero weight graph changes.
336         (compute_points_to_sets): Call update_alias_info here.
337         (delete_points_to_sets): Free zero weight preds/succs here.
338         (gate_ipa_pta): New.
339         (ipa_pta_execute): New
340
341 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
342
343         * tree-ssa-structalias.c (var_anyoffset): Removed.
344         (anyoffset_tree): Ditto.
345         (anyoffset_id): Ditto.
346         (do_deref): Take vector of constraints, no return value.
347         Update to work on vector.                
348         (get_constraint_for): Ditto.
349         (get_constraint_for_component_ref): Ditto.
350         (do_structure_copy): Ditto.
351         (handle_ptr_arith): Ditto.
352         (find_func_aliases): Ditto.
353         (set_uids_in_ptset): Remove anyoffset handling.
354         (init_base_vars): Ditto.
355
356 2005-12-10  Mark Mitchell  <mark@codesourcery.com>
357
358         PR c++/25010
359         * ipa-inline.c (cgraph_clone_inlined_nodes): Do not assume that
360         DECL_EXTERNAL functions have no bodies.  Tidy.
361
362 2005-12-10  Andreas Schwab  <schwab@suse.de>
363
364         * except.c (switch_to_exception_section): Only define if
365         TARGET_UNWIND_INFO is not defined.
366
367 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
368
369         * config/darwin.h (HAS_INIT_SECTION): Remove definition.
370         (INIT_SECTION_ASM_OP): Restore empty definition from before 2005-12-07.
371
372 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
373
374         * output.h (init_section, fini_section): Delete.
375         * varasm.c (init_section, fini_section): Delete.
376         (init_varasm_once): Don't initialize them.
377         * doc/tm.texi (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Say that
378         there are no corresponding varasm.c variables.
379
380 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
381
382         * dwarf2out.c (default_eh_frame_section): Delete, moving handling
383         of EH_FRAME_SECTION_NAME into...
384         (switch_to_eh_frame_section): ...here.  Try to set eh_frame_section
385         if it is still null.
386         * except.c (default_exception_section): Delete, moving most
387         of the code to...
388         (switch_to_exception_section): ...this new function.  Set
389         exception_section if it is still null, then switch to it.
390         (output_function_exception_table): Use switch_to_exception_section.
391         * varasm.c (exception_section, eh_frame_section): Update comments.
392         (get_section): Hoist use of SECTION_NAMED.
393         (init_varasm_once): Don't set exception_section and eh_frame_section.
394         * output.h (default_exception_section): Delete.
395         (default_eh_frame_section): Delete.
396
397 2005-12-09  Bernd Schmidt  <bernd.schmidt@analog.com>
398
399         * config/bfin/bfin.c: Include "cgraph.h".
400         (bfin_load_pic_reg): Omit loading pic reg if in a local function.
401         Return the reg that holds the pointer to the GOT.
402         (bfin_expand_prologue): Use return value of bfin_load_pic_reg when
403         doing stack checking.
404
405 2005-12-09  Diego Novillo  <dnovillo@redhat.com>
406
407         * tree.c (recompute_tree_invariant_for_addr_expr): Rename from
408         recompute_tree_invarant_for_addr_expr.
409         Update uses everywhere.
410
411 2005-12-09  Aldy Hernandez  <aldyh@redhat.com>
412
413         * config/ms1/t-ms1 (MULTILIB_OPTIONS): Define.
414         (MULTILIB_DIRNAMES): Define.
415
416 2005-12-09  Ulrich Weigand  <uweigand@de.ibm.com>
417
418         PR target/25311
419         * config/s390/s390.c (struct s390_address): New field literal_pool.
420         (s390_decompose_address): Compute literal_pool field.  Do not 
421         assume register %r13 is always (and solely) used as pool base.
422         (s390_extra_constraint_str): Use literal_pool field.
423
424 2005-12-09  Thiemo Seufer  <ths@networkno.de>
425
426         * config/mips/mips.c (override_options): Don't allow too small
427         integers in FP registers.
428
429 2005-12-09  Ulrich Weigand  <uweigand@de.ibm.com>
430
431         * config/s390/s390.c (s390_function_ok_for_sibcall): Use
432         targetm.binds_local_p to check for local function calls.
433
434 2005-12-09  Alan Modra  <amodra@bigpond.net.au>
435
436         PR debug/24908
437         * dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that
438         call_used_regs can't be used to save reg in another reg.
439
440 2005-12-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
441             Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
442
443         * ipa-type-escape.c (analyze_variable): Use gcc_assert instead of
444         abort.
445         * except.c (output_ttype): Likewise.
446         * tree-object-size.c (collect_object_sizes_for): Likewise.
447         (check_for_plus_in_loops_1): Likewise.
448         (check_for_plus_in_loops): Likewise.
449         (compute_object_sizes): Use gcc_unreachable instead of abort.
450
451 2005-12-08  Nathan Sidwell  <nathan@codesourcery.com>
452
453         * config/ms1/ms1.md (UNSPEC_LOOP): New constant.
454         (loop_end, loop_init, doloop_end): New insns.
455         * config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New.
456         (SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust.
457         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
458         (REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust.
459         * config/ms1/ms1.c: #include basic-block.h
460         (struct machine_function): Add has_loops field.
461         (ms1_add_loop): New.
462         (MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New.
463         (struct loop_info, struct loop_work): New.
464         (ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers.
465         (ms1_reorg_loops): New loop optimization.
466         (ms1_machine_reorg): Call it.
467         * config/ms1/ms1-protos.h (ms1_add_loop): Declare.
468
469 2005-12-08  Zdenek Dvorak  <dvorakz@suse.cz>
470
471         PR tree-optimization/25248
472         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use
473         evolution_of_loop from the failed attempt.  Remove handling
474         of MULT_EXPR.
475
476 2005-12-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
477
478         * tree.h (DECL_EXTERNAL): Clarify documentation.
479
480 2005-12-08  Andreas Krebbel  <krebbel1@de.ibm.com>
481             Jakub Jelinek  <jakub@redhat.com>
482
483         PR target/25268
484         * config/s390/s390.c (s390_decompose_shift_count): Remove BITS
485         argument.  Don't drop outer ANDs.
486         (s390_extra_constraint_str, print_shift_count_operand): Adjust callers.
487         * config/s390/s390-protos.h (s390_decompose_shift_count): Adjust
488         prototype.
489         * config/s390/predicates.md (setmem_operand): Remove.
490         (shift_count_operand): Rename to...
491         (shift_count_or_setmem_operand): ... this.  Adjust
492         s390_decompose_shift_count caller.
493         * config/s390/s390.md (<shift>di3_31_and, <shift>di3_64_and,
494         ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and,
495         ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and,
496         <shift>si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and,
497         rotl<mode>3_and, setmem_long_and): New insns.
498         (<shift>di3_31, <shift>di3_64, ashrdi3_cc_31, ashrdi3_cconly_31,
499         ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64,
500         <shift>si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl<mode>3,
501         <shift>di3, ashrdi3): Use shift_count_or_setmem_operand instead
502         of shift_count_operand.
503         (setmem_long): Use shift_count_or_setmem_operand instead of
504         setmem_operand.
505
506 2005-12-08  Daniel Jacobowitz  <dan@codesourcery.com>  
507             Andreas Tobler  <a.tobler@schweiz.ch>
508
509         * Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable
510         tr expression.
511
512 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
513
514         * expr.c (force_operand): Use convert_to_mode for conversions.
515
516 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
517
518         * reload.h (reg_equiv_invariant): Declare.
519         * reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo
520         register also when reg_equiv_invariant[R] is set.
521
522 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
523             Andreas Tobler  <a.tobler@schweiz.ch>
524
525         * config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET.
526
527 2005-12-07  Daniel Berlin  <dberlin@dberlin.org>
528
529         * tree-ssa-pre.c (bitmap_set_and): New function.
530         (bitmap_set_and_compl): New function.
531         (bitmap_set_empty_p): New function.
532         (insert_extra_phis): New function.
533         (compute_avail): Use insert_extra_phis.
534
535 2005-12-07  Adrian Straetling  <straetling@de.ibm.com>
536
537         * config/s390/s390.c (s390_expand_atomic): New function.
538         Adjust comment of helper functions.
539         * config/s390/s390-protos.h (s390_expand_atomic): Declare.
540         * config/s390/s390.md ("ATOMIC"): New code macro.
541         ("atomic"): Corresponding new code attribute.
542         ("sync_lock_test_and_set[hq]i", 
543         "sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern.
544
545 2005-12-07  Adrian Straetling  <straetling@de.ibm.com>
546
547         * config/s390/s390.c (s390_expand_mask_and_shift, 
548         struct alignment_context, init_alignment_context, 
549         s390_expand_cs_hqi): New.
550         * config/s390/s390-protos.h (s390_expand_cs_hqi): Declare.
551         * config/s390/s390.md ("sync_compare_and_swaphi",
552         "sync_compare_and_swapqi"): New pattern.
553
554 2005-12-07  Daniel Berlin <dberlin@dberlin.org>
555
556         Fix PR tree-optimization/25291
557         * tree-ssa-operands.c (add_call_clobber_ops): Remove
558         redundant and crashing check.
559
560 2005-12-08  Alan Modra  <amodra@bigpond.net.au>
561
562         PR target/25212
563         * config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax
564         tests further when !strict && reload_in_progress.
565         (print_operand): Check that both operands of indexed address are regs.
566         (print_operand_address): Likewise.
567         * config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify.
568         (INT_REG_OK_FOR_BASE_P): Correct.
569
570 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
571
572         Preparation for PR rtl-optimization/20070 / part1
573         * basic-block.h (insns_match_p, flow_find_cross_jump): Declare.
574         * cfgcleanup.c (condjump_equiv_p): New function, broken out of
575         outgoing_edges_match.
576         (outgoing_edges_match): Use condjump_equiv_p.
577         (merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here
578         into..
579         * struct-equiv.c: New file.
580         (death_notes_match_p) New function, broken out of insns_match_p.
581         * Makefile.in (OBJS-common): Add struct-equiv.o.
582         (struct-equiv.o): New target.
583
584 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
585
586         * coretypes.h: Revert previous change.
587         * config/darwin.h: Revert previous reversion.
588         * config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2.
589
590 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
591
592         * coretypes.h (section): Provide dummy definition for target files.
593         * config/darwin.h: Revert previous change.
594
595 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
596
597         * doc/sourcebuild.texi (all.build, install-normal): Remove.
598         * configure.ac: Remove all.build and install-normal from target_list
599         * configure: Regenerate.
600         * Makefile.in (install): Don't depend on install-normal.
601
602 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
603
604         * Makefile.in: Document the use of stamps.
605
606 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
607
608         * doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
609         * Makefile.in: Add code to compute some dependencies on s-gtype
610         automatically.  Remove the declaration of those dependencies.
611
612 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
613
614         * gcc/reload.c (push_secondary_reload): Fix typo:
615         s/insn_constraint/scratch_constraint/.
616
617 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
618
619         * config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2.
620
621 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
622
623         * config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
624         (alpha_elf_select_rtx_section): Return the selected section rather
625         than emitting assembly code.
626         (alpha_write_linkage): Emit a ".link" directive directly and then
627         set in_section to NULL.
628         (vms_asm_out_constructor): Use switch_to_section.
629         (vms_asm_out_destructor): Likewise.
630         (unicosmk_output_common): Set in_section to NULL instead of calling
631         the dummy common_section function.
632         (unicosmk_text_section): Delete in favor of...
633         (unicosmk_output_text_section_asm_op): ...this new function.
634         (unicosmk_data_section): Delete in favor of...
635         (unicosmk_output_data_section_asm_op): ...this new function.
636         (unicosmk_init_sections): New function.
637         (unicosmk_output_deferred_case_vectors): Use switch_to_section.
638         (unicosmk_output_ssib): Set in_section to NULL instead of calling
639         the dummy ssib_section function.
640         (unicosmk_section_buf): Delete.
641         * config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
642         (unicosmk_data_section): Delete.
643         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
644         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
645         (SECTION_FUNCTION_TEMPLATE): Delete.
646         * config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
647         (READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
648         (common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
649         (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
650         (TARGET_ASM_INIT_SECTIONS): Define.
651         * config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
652         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
653         (link_section, literals_section): Delete.
654         (ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
655         set in_section to NULL.
656
657         * config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
658         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
659         (COMMON_SECTION): Delete.
660         (TARGET_ASM_INIT_SECTIONS): Define.
661         (ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
662         the dummy common_section function.
663         * config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
664         * config/arm/arm.c (get_jump_table_size): Use pointer comparison
665         between readonly_data_section and text_section to check whether
666         read-only data is being put in the text section.
667         (arm_output_function_epilogue): Use switch_to_section.
668         (arm_elf_asm_constructor): Likewise.
669         (thumb_call_via_reg): Replace call to in_text_section with
670         a comparison between in_section and text_section.
671         (arm_file_end): Use switch_to_section.
672         (aof_text_section): Delete in favor of...
673         (aof_output_text_section_asm_op): ...this new function.
674         (aof_data_section): Delete in favor of...
675         (aof_output_data_section_asm_op): ...this new function.
676         (aof_asm_init_sections): New function.
677         (zero_init_section): Moved from config/arm/aof.h.
678         (aof_dump_imports, aof_file_start): Use switch_to_section.
679         * config/arm/arm.h (thumb_call_via_label): Update comment.
680         * config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
681         (common_section): Delete.
682         * config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
683         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
684         global switch_to_section function instead of the old port-local one.
685         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
686         (SWITCH_TO_SECTION_FUNCTION): Delete.
687         (drectve_section): Redefine as a macro.
688         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
689         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
690         switch_to_section.
691
692         * config/avr/avr.c (progmem_section): New variable.
693         (avr_output_progmem_section_asm_op): New function.
694         (avr_asm_init_sections): New function.
695         (avr_output_addr_vec_elt): Use switch_to_section.
696         * config/avr/avr.h (progmem_section): Declare.
697         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
698         (READONLY_DATA_SECTION): Delete.
699         (TARGET_ASM_INIT_SECTIONS): Define.
700         (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
701         * config/avr/avr-protos.h (progmem_section): Delete.
702
703         * config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
704
705         * config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
706         (INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.
707
708         * config/darwin-sections.def: New file.
709         * config/darwin.c: Define all sections in darwin-sections.def.
710         (output_objc_section_asm_op, darwin_init_sections): New functions.
711         (machopic_output_indirection): Use switch_to_section.
712         (machopic_select_section): Return the selected section rather than
713         emitting assembly code.  Replace the static function table with
714         inline conditional expressions.  Update the tests of last_text_section
715         and move them into the FUNCTION_DECL block.
716         (machopic_select_rtx_section): Return the selected section rather than
717         emitting assembly code.
718         (machopic_asm_out_constructor, machopic_asm_out_destructor)
719         (darwin_file_end): Use switch_to_section.
720         * config/darwin.h: Use darwin-sections.def to declare sections.
721         (INIT_SECTION_ASM_OP): Remove empty definition.
722         (HAS_INIT_SECTION): Define this instead.
723         (SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
724         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
725         (TARGET_ASM_EH_FRAME_SECTION): Delete.
726         (TARGET_ASM_INIT_SECTIONS): Define.
727         * config/darwin-protos.h (darwin_init_sections): Declare.
728         (machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
729         (machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
730         (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
731         (constructor_section, destructor_section, mod_init_section): Delete.
732         (mod_term_section): Delete.
733         (darwin_exception_section, darwin_eh_frame_section): Delete.
734         (machopic_select_section): Return a section.
735         (machopic_select_rtx_section): Likewise.
736         (text_coal_section, text_unlikely_section, text_unlikely_coal_section)
737         (const_section, const_coal_section, const_data_section): Delete.
738         (const_data_coal_section, data_coal_section, cstring_section): Delete.
739         (literal4_section, literal8_section, constructor_section): Delete.
740         (mod_init_section, mod_term_section, destructor_section): Delete.
741         (objc_class_section, objc_meta_class_section, objc_category_section)
742         (objc_class_vars_section, objc_instance_vars_section): Delete.
743         (objc_cls_meth_section, objc_inst_meth_section): Delete.
744         (objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
745         (objc_selector_refs_section, objc_selector_fixup_section): Delete.
746         (objc_symbols_section, objc_module_info_section): Delete.
747         (objc_image_info_section, objc_protocol_section): Delete.
748         (objc_string_object_section, objc_constant_string_object_section)
749         (objc_class_names_section, objc_meth_var_names_section): Delete.
750         (objc_meth_var_types_section, objc_cls_refs_section): Delete.
751         (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
752         (machopic_symbol_stub_section, machopic_picsymbol_stub_section)
753         (darwin_exception_section, darwin_eh_frame_section): Delete.
754         * config/t-darwin (darwin.o): Depend on config/darwin-sections.def.
755
756         * config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
757         (frv_asm_out_destructor): Likewise.
758         * config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
759         (SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
760         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
761         get_named_section.
762         (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
763         * config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
764         (data_section): Delete.
765
766         * config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
767         (DRECTVE_SECTION_FUNCTION): Delete.
768         (drectve_section): Redefine as a macro that sets in_section after
769         emitting the directive.
770         (SWITCH_TO_SECTION_FUNCTION): Delete.
771         * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
772         in_text_section with comparison between in_section and text_section.
773         * config/i386/i386.c (x86_64_elf_select_section): Return the section
774         rather than emitting assembly code.  Use get_named_section.
775         (x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
776         get_named_section.
777         (machopic_output_stub): Use switch_to_section.
778         * config/i386/nwld.c (nwld_named_section_asm_out_constructor)
779         (nwld_named_section_asm_out_destructor): Use get_section and
780         switch_to_section.
781
782         * config/ia64/ia64.c (ia64_select_rtx_section): Return the section
783         rather than emitting assembly code.
784         (ia64_rwreloc_select_section): Likewise.
785         (ia64_rwreloc_select_rtx_section): Likewise.
786         * config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
787         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
788         switch_to_section.
789         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
790         (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.
791
792         * config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
793         section rather than emitting assembly code.
794         (iq2000_select_section): Likewise.
795         * config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
796         (sbss_section): Delete.
797
798         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
799         and get_named_section.
800         * config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.
801
802         * config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
803         (SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
804         (EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
805         (MCORE_EXPORT_NAME): Emit the exports directive directly, then set
806         in_section to NULL.
807         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
808         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
809         global switch_to_section function instead of the old port-local one.
810         * config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
811         (SWITCH_SECTION_FUNCTION): Delete.
812         * config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
813         (DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
814         (SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
815         (MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
816         in_section to NULL.
817         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
818         global switch_to_section function instead of the old port-local one.
819         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
820
821         * config/mips/mips.c (mips_file_start): Update comment.
822         (mips_output_aligned_bss): Use switch_to_section and get_named_section.
823         (mips_output_aligned_decl_common): Use switch_to_section.
824         (mips_select_rtx_section): Return the section rather than emitting
825         assembly code.  Use get_named_section.
826         (mips_function_rodata_section: Likewise get_section.
827         (build_mips16_function_stub): Use switch_to_section.
828         * config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
829         (SDATA_SECTION_ASM_OP): Delete.
830         * config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
831         (EXTRA_SECTION_FUNCTIONS): Delete.
832
833         * config/mmix/mmix.c (mmix_file_start, mmix_file_end)
834         (mmix_asm_output_aligned_local): Use switch_to_section.
835
836         * config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
837         (som_one_only_readonly_data_section): New variables.
838         (pa_output_function_epilogue): Set in_section to NULL instead of
839         calling forget_section.
840         (output_deferred_plabels): Use select_section.
841         (pa_asm_output_mi_thunk): Likewise.  Set in_section to NULL instead
842         of calling forget_section.
843         (pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
844         (pa_asm_output_aligned_local): Use select_section.
845         (som_text_section_asm_op): Delete in favor of...
846         (som_output_text_section_asm_op): ...this new function.
847         (pa_som_asm_init_sections): New function.
848         (pa_select_section): Return the section rather than emitting
849         assembly code.
850         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
851         (SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
852         (SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
853         (SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
854         * config/pa/pa-protos.h (som_text_section_asm_op): Delete.
855         (som_readonly_data_section, som_one_only_readonly_data_section)
856         (som_one_only_data_section, forget_section): Delete.
857         * config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
858         (TARGET_ASM_INIT_SECTIONS): Define.
859         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
860
861         * config/rs6000/rs6000.c (read_only_data_section): New variable.
862         (private_data_section, read_only_private_data_section): New variables.
863         (sdata2_section, toc_section): New variables.
864         (rs6000_file_start): Use switch_to_section.
865         (rs6000_assemble_integer): Use comparisons against in_section
866         instead of calling in_toc_section and in_text_section.  Use
867         unlikely_text_section_p.
868         (rs6000_elf_output_toc_section_asm_op): New function, derived
869         from the old rs6000/sysv4.h toc_section function.
870         (rs6000_elf_asm_init_sections): New function.
871         (rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
872         the section rather than emitting assembly code.
873         (machopic_output_stub): Use switch_to_section.
874         (toc_section): Delete dummy function.
875         (rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
876         switch_to_section and get_section.
877         (rs6000_xcoff_output_readonly_section_asm_op): New function.
878         (rs6000_xcoff_output_readwrite_section_asm_op): New function.
879         (rs6000_xcoff_output_toc_section_asm_op): New function, derived from
880         the old rs6000/xcoff.h toc_section function.
881         (rs6000_xcoff_asm_init_sections): New function.
882         (rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
883         the section rather than emitting assembly code.
884         (rs6000_xcoff_file_start): Use switch_to_section.
885         (rs6000_xcoff_file_end): Likewise.
886         * config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
887         (sdata2_section, sbss_section, private_data_section): Delete.
888         (read_only_data_section, read_only_private_data_section): Delete.
889         * config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
890         (TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
891         (SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
892         (FINI_SECTION_FUNCTION): Delete.
893         (TARGET_ASM_INIT_SECTIONS): Define.
894         (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
895         * config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
896         (READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
897         (READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
898         (READONLY_DATA_SECTION): Delete.
899         (TARGET_ASM_INIT_SECTIONS): Define.
900         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.  Set in_section
901         to NULL rather than no_section.
902         (TARGET_ASM_EXCEPTION_SECTION): Delete.
903
904         * config/sh/sh.c (sh_file_start): Use switch_to_section.
905
906         * config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
907         (sparc_output_deferred_case_vectors): Likewise.  Remove argument
908         from call to current_function_section.
909
910         * config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
911         (bss100_section): New variable.
912         (xstormy16_asm_output_aligned_common): Use switch_to_section.
913         (xstormy16_asm_init_sections): New function.
914         (xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
915         switch_to_section and get_section.
916         (xstormy16_output_addr_vec): Use switch_to_section.  Remove argument
917         from calls to current_function_section.
918         * config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
919         (XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
920         (TARGET_ASM_INIT_SECTIONS): Define.
921         * config/stormy16/stormy16-protos.h (bss100_section): Delete.
922
923         * config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
924         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
925         (FINI_SECTION_FUNCTION): Delete.
926
927         * config/v850/v850.c: Include gt-v850.h.
928         (rosdata_section, rozdata_section, tdata_section, zdata_section)
929         (zbss_section): New variables.
930         (v850_output_aligned_bss): Use switch_to_section.
931         (v850_asm_init_sections): New function.
932         (v850_select_section): Return the section rather than emitting
933         assembly code.
934         * config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
935         (ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
936         (ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
937         (TARGET_ASM_INIT_SECTIONS): Define.
938         * config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
939         (sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
940         (zbss_section): Delete.
941
942         * config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
943
944         * config/vx-common.h (vxworks_exception_section): Delete.
945         (TARGET_ASM_EXCEPTION_SECTION): Delete.
946
947         * config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
948         section rather than emitting assembly code.
949         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
950         switch_to_section.
951
952         * Makefile.in (GTFILES): Add $(srcdir)/output.h.
953         * coretypes.h (section): New union and typedef.
954         * dbxout.c (FORCE_TEXT): Use switch_to_section.  Remove argument
955         from call to current_function_section.
956         (dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
957         (dbxout_symbol_location): Use switch_to_section.
958         * dwarf2out.c (named_section_eh_frame_section): Delete, moving
959         most of the code into...
960         (default_eh_frame_section): ...here.  Return a section.
961         (collect2_eh_frame_section): Delete, moving most of the code into..
962         (switch_to_eh_frame_section): ...this new function.
963         (debug_info_section, debug_abbrev_section, debug_aranges_section)
964         (debug_macinfo_section, debug_line_section, debug_loc_section)
965         (debug_pubnames_section, debug_str_section, debug_ranges_section): New
966         variables.
967         (output_call_frame_info): Call switch_to_eh_frame_section instead of
968         eh_frame_section.  Use switch_to_section and get_section.
969         (dwarf2out_begin_prologue): Use switch_to_section.
970         (AT_string_form): Check the flags in debug_str_section instead of
971         DEBUG_STR_SECTION_FLAGS.
972         (output_comp_unit): Use switch_to_section, get_section, and
973         debug_info_section.
974         (output_line_info, secname_for_decl): Use unlikely_text_section_p.
975         (dwarf2out_begin_block): Use switch_to_section.  Remove argument
976         from call to current_function_section.
977         (dwarf2out_var_location): Use unlikely_text_section_p.
978         (dwarf2out_source_line): Use switch_to_section.  Remove argument
979         from call to current_function_section.
980         (dwarf2out_start_source_file, dwarf2out_end_source_file)
981         (dwarf2out_define, dwarf2out_undef: Use switch_to_section and
982         debug_macinfo_section.
983         (dwarf2out_init): Initialize the new section variables.  Use them
984         instead of calls to named_section_flags.  Use switch_to_section.
985         (output_indirect_string): Use switch_to_section and debug_str_section.
986         (dwarf2out_finish): Use switch_to_section and the new section
987         variables.
988         * except.c (default_exception_section): Return the section instead
989         of emitting assembly code.
990         (output_function_exception_table): Use the global exception_section
991         variable instead of the target hook.  Use switch_to_section.  Remove
992         argument from call to current_function_section.
993         * final.c (HAVE_READONLY_DATA_SECTION): Delete.
994         (shorten_branches): Use pointer comparisons to detect whether the
995         text section is the same as readonly_data_section.
996         (profile_function): Use switch_to_section.  Remove argument from
997         call to current_function_section.
998         (final_scan_insn): Likewise.  Update use of last_text_section.
999         * gengtype.c (open_base_files): Add an include of output.h.
1000         * output.h (text_section, data_section, readonly_data_section)
1001         (ctors_section, dtors_section, bss_section, init_section)
1002         (fini_section, sdata_section): Turn into section pointers.
1003         (in_text_section, in_unlikely_text_section, exports_section)
1004         (drectve_section, named_section, mergeable_string_section)
1005         (last_text_section_name): Delete.
1006         (default_exception_section, default_eh_frame_section): Return sections.
1007         (SECTION_DECLARED, SECTION_NAMED): New macros.
1008         (SECTION_MACH_DEP): Bump value.
1009         (section_common, named_section, unnamed_section): New structures.
1010         (unnamed_section_callback): New typedef.
1011         (section): New union.
1012         (sbss_section, exception_section, eh_frame_section): New variables.
1013         (in_section, last_text_section): Turn into section pointers.
1014         (get_unnamed_section, get_section, get_named_section): New functions.
1015         (mergeable_constant_section, function_section): Return a section.
1016         (unlikely_text_section): Likewise.
1017         (current_function_section): Likewise.  Remove the decl argument.
1018         (unlikely_text_section_p, switch_to_section): New functions.
1019         (output_section_asm_op): New function.
1020         (set_named_section_flags, named_section_flags, named_section_real)
1021         (named_section_first_declaration): Delete.
1022         (default_select_section, default_elf_select_section): Return a section.
1023         (default_elf_select_section_1, default_function_rodata_section)
1024         (default_no_function_rodata_section, default_select_rtx_section)
1025         (default_elf_select_rtx_section): Likewise.
1026         * rtl.h (in_data_section): Delete.
1027         * sdbout.c (sdbout_one_type): Use switch_to_section.
1028         * system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
1029         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
1030         (TARGET_ASM_EH_FRAME_SECTION): Poison.
1031         * target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
1032         (TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
1033         (TARGET_ASM_OUT): Update after above changes.
1034         * target.h (init_sections): New hook.
1035         (exception_section, eh_frame_section): Delete.
1036         (select_section, select_rtx_section, function_rodata_section): Return
1037         a section rather than emitting assembly code.
1038         * varasm.c (text_section, data_section, readonly_data_section)
1039         (ctors_section, dtors_section, bss_section, init_section)
1040         (fini_section): Turn into section pointers.
1041         (sdata_section, sbss_section, exception_section): New variables.
1042         (eh_frame_section): New variable.
1043         (in_section): Make global and turn into a section pointer.
1044         (last_text_section): Turn into a section pointer.
1045         (unnamed_sections): New variable.
1046         (in_named_name, last_text_section_name): Delete.
1047         (EXTRA_SECTION_FUNCTIONS): Delete.
1048         (in_named_entry): Delete.
1049         (section_htab): New variable, replacing...
1050         (in_named_htab): ...this deleted variable.
1051         (section_entry_eq, section_entry_hash): New functions, based on...
1052         (in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
1053         (get_unnamed_section, get_section): New functions.
1054         (unlikely_text_section): Return a section instead of emitting
1055         assembly code.
1056         (in_text_section, in_unlikely_text_section, in_data_section): Delete.
1057         (get_named_section_flags, named_section_first_declaration): Delete.
1058         (unlikely_text_section_p): New function.
1059         (named_section_real, named_section): Delete.
1060         (get_named_section): New function.
1061         (asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
1062         (function_section): Return a section rather than emitting
1063         assembly code.
1064         (current_function_section): Likewise.  Remove argument.  Use
1065         last_text_section if nonnull, otherwise use function_section.
1066         (default_function_rodata_section): Return a section rather than
1067         emitting assembly code.  Use get_section.
1068         (default_no_function_rodata_section): Return a section rather than
1069         emitting assembly code.
1070         (variable_section): Use switch_to_section and get_named_section.
1071         (mergeable_string_section): Return a section rather than emitting
1072         assembly code.  Use get_section.  Make static.  Don't take special
1073         countermeasures for empty strings.
1074         (mergeable_constant_section): Return a section rather than emitting
1075         assembly code.  Use get_section.
1076         (default_named_section_asm_out_destructor): Use switch_to_section
1077         and get_section.
1078         (default_dtor_section_asm_out_destructor): Use switch_to_section.
1079         (default_named_section_asm_out_constructor): Use switch_to_section
1080         and get_section.
1081         (default_ctor_section_asm_out_constructor): Use switch_to_section.
1082         (assemble_start_function): Likewise.  Set last_text_section to
1083         NULL rather than no_section.  Change the type of save_section.
1084         (assemble_zeros, assemble_variable): Use the section flags to detect
1085         whether or not a section is text.
1086         (assemble_static_space): Use switch_to_section.
1087         (assemble_trampoline_template): Likewise.
1088         (output_constant_def_contents): Use switch_to_section and
1089         get_named_section.
1090         (output_constant_pool_1): Use switch_to_section.  Use the section
1091         flags to see whether sections contain mergeable data.
1092         (init_varasm_once): Initialize section_htab instead of in_named_htab.
1093         Initialize new section variables.  Call TARGET_ASM_INIT_SECTIONS.
1094         (default_elf_asm_named_section): Use SECTION_DECLARED to detect
1095         whether a section has already been declared.
1096         (default_select_section, default_elf_select_section): Return a
1097         section rather than emitting assembly code.
1098         (default_elf_select_section_1): Likewise.  Use bss_section for
1099         SECCAT_BSS if nonnull.  Use get_named_section.
1100         (default_select_rtx_section): Return a section rather than
1101         emitting assembly code.
1102         (default_elf_select_rtx_section): Likewise.  Use get_named_section.
1103         (file_end_indicate_exec_stack): Use switch_to_section and get_section.
1104         (output_section_asm_op, switch_to_section): New functions.
1105         * vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
1106         get_named_section.
1107
1108         * doc/tm.texi: Expand the introduction to the sections documentation.
1109         (TRAMPOLINE_SECTION): Document new interface.
1110         (SDATA_SECTION_ASM_OP): Document new macro.
1111         (READONLY_DATA_SECTION): Delete.
1112         (SDATA_SECTION_ASM_OP): Document new macro.
1113         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
1114         (TARGET_ASM_INIT_SECTIONS): Document new hook.
1115         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
1116         (TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
1117         (TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.
1118
1119 2005-12-07  Alan Modra  <amodra@bigpond.net.au>
1120
1121         * gcc.c (init_gcc_specs): Match braces inside conditionally
1122         compiled strings.
1123
1124 2005-12-06  Geoffrey Keating  <geoffk@apple.com>
1125
1126         * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New.
1127
1128 2005-12-06  Aldy Hernandez  <aldyh@redhat.com>
1129
1130         PR C++/24138
1131         * tree.c (integer_all_onesp): Always return true if all bits on.
1132
1133         * testsuite/g++.dg/init/array0.C: New.
1134
1135 2005-12-06  Adrian Straetling  <straetling@de.ibm.com>
1136
1137         * doc/md.texi: Adapt to implementation.
1138
1139 2005-12-06  Andreas Schwab  <schwab@suse.de>
1140
1141         * opts.c (decode_options): Fix typo in message.
1142
1143 2005-12-06  Alan Modra  <amodra@bigpond.net.au>
1144
1145         PR other/13873
1146         * longlong.h: Merge PPC tests from upstream.
1147
1148 2005-12-06  Richard Guenther  <rguenther@suse.de>
1149
1150         * fold-const.c (fold_convert): Do not build and fold
1151         CONVERT_EXPR, but always use NOP_EXPR.
1152
1153 2005-12-06  Jan Beulich  <jbeulich@novell.com>
1154
1155         * config/i386/i386.c (builtin_description): Use MASK_SSE2 for
1156         __builtin_ia32_paddq and __builtin_ia32_subq.
1157         (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
1158         __builtin_ia32_pshufw.
1159         * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
1160
1161 2005-12-05  James E Wilson  <wilson@specifix.com>
1162
1163         PR target/24934
1164         * opts.c (decode_options): Turn off partitioning if flag_unwind_tables
1165         is set.
1166
1167 2005-12-05  Daniel Berlin  <dberlin@dberlin.org>
1168         
1169         * print-tree.c (print_node): Ditto.
1170         * tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL.
1171         * tree-dump.c (dequeue_and_dump): Check for decl_common structure
1172         before accessing DECL_ARTIFICIAL. 
1173         Handle new tag tree codes.
1174         * tree-flow-inline.h (clear_call_clobbered): Update for tag
1175         changes.
1176         (unmodifiable_var_p): Ditto.
1177         * tree-flow.h (mem_tag_kind): Remove.
1178         (struct var_ann_d): Remove mem_tag_kind member.
1179         * tree-gimple.c (is_gimple_reg): Tags are not gimple registers.
1180         * tree-pretty-print.c (dump_generic_node): Handle memory tags.
1181         * tree-ssa-alias.c (init_alias_info): Update for memory tag changes.
1182         (group_aliases): Ditto.
1183         (setup_pointers_and_addressables): Ditto.
1184         (is_escape_site): Ditto.                                          
1185         (may_alias_p): Ditto.
1186         (create_tag_raw): New function.
1187         (create_memory_tag): Use it.
1188         (dump_alias_info): Update for tags.
1189         (may_be_aliased): Ditto.
1190         (add_type_alias): Ditto.
1191         (new_type_alias): Ditto.
1192         (create_sft): Ditto.
1193         (create_structure_vars): Ditto.
1194         * tree-ssa-ccp.c (get_default_value): Ditto.
1195         * tree-ssa-operands.c (get_expr_operands): Ditto.
1196         (add_stmt_operand): Ditto.
1197         (add_call_clobber_ops): Remove duplicated condition.
1198         * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
1199         tags.
1200         * tree-tailcall.c (suitable_for_tail_opt_p): Ditto.
1201         * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
1202         * tree.c (init_ttree): Update structures for new tree codes.
1203         (tree_code_size): Update sizes for new tree codes.
1204         (make_node_stat): Don't try to set common things on minimal
1205         structures.
1206         (tree_node_structure): Update for tags.
1207         (is_global_var): Ditto.
1208         * tree.def: Add new tree codes.
1209         * tree.h (MTAG_P): New macro.
1210         (TREE_MEMORY_TAG_CHECK): Ditto.
1211         (SSA_VAR_P): Update for tags.
1212         (struct tree_memory_tag): New structure.
1213         (MTAG_GLOBAL): New macro.
1214         (union tree_node): Add memory tag member.
1215         * treestruct.def (TS_MEMORY_TAG): New.
1216         
1217 2005-12-05  Dale Johannesen  <dalej@apple.com>
1218
1219         * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS):  Fix to match
1220         what was approved (PR 24323).
1221
1222 2005-12-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1223
1224         * doc/c-tree.texi (Function Bodies): Remove description of
1225         RETURN_INIT.
1226
1227 2005-12-05  Joseph S. Myers  <joseph@codesourcery.com>
1228
1229         * doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf,
1230         __floatunsixf, __floatundisf, __floatundidf, __floatunditf,
1231         __floatundixf, __floatuntisf, __floatuntidf, __floatuntitf,
1232         __floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3,
1233         __muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3,
1234         __divxc3): Document.
1235
1236 2005-12-05  Geoffrey Keating  <geoffk@apple.com>
1237
1238         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Preserve
1239         previous behaviour.
1240         * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define to
1241         hook_bool_void_false.
1242         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
1243         * config/darwin.c (darwin_cxx_determine_class_data_visibility): New.
1244
1245         * config/darwin.c (machopic_select_section): It's not defined
1246         as weak if it's only marked as weak_import.
1247         
1248         * config/darwin-protos.h (darwin_cxx_determine_class_data_visibility):
1249         Prototype.
1250
1251         * varasm.c (default_binds_local_p_1): Weakrefs don't bind locally.
1252         A hidden weak object does bind locally.  Strong linkonce data
1253         counts like any other strong symbol for binding.
1254         (weak_finish_1): Don't specially handle weakrefs, they no longer
1255         arrive here.
1256         (assemble_alias): Weakrefs can't be TREE_PUBLIC yet.
1257         * c-common.c (handle_alias_attribute): Allow static aliases
1258         of variables.
1259         (handle_weakref_attribute): Don't call declare_weak on weakrefs.
1260         * gthr-dce.h: Make weakrefs static.
1261         * gthr-tpf.h: Likewise.
1262         * gthr-solaris.h: Likewise.
1263         * gthr-posix.h: Likewise.
1264         * gthr-posix95.h: Likewise.
1265         * config/darwin.c (darwin_encode_section_info): static weakref
1266         variables are not necessarily defined in this translation unit.
1267         * doc/extend.texi (Function Attributes): Mention that an alias
1268         attribute creates a definition for the thing it's attached to.
1269         Change the documentation for weakref to say that the thing
1270         it's attached to must be static.
1271
1272         * config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so
1273         we don't go into an infinite loop.
1274
1275 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
1276
1277         * config/rs6000/predicates.md (logical_const_operand): Split
1278         out of logical_operand.
1279         (logical_operand): Use it.
1280         * config/rs6000/rs6000.md (cmp -> xor peephole2): Use
1281         logical_const_operand.
1282
1283 2005-12-05  Jan Beulich  <jbeulich@novell.com>
1284
1285         * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS
1286         and IX86_BUILTIN_CMPNESS.
1287         (ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti.
1288         * config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly.
1289         * config/i386/i386.md (movti_internal): Correct type attribute.
1290         Simplify mode attribute.
1291         (movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal):
1292         Correct type attribute.
1293         (absxf2): Correct operator.
1294         * config/i386/mmx.md (mov<mode>_internal_rex64, mov<mode>_internal,
1295         movv2sf_internal_rex64, movv2sf_internal): Correct type attribute.
1296         * config/i386/sse.md (mov<mode>_internal, movv2df_internal): Simplify
1297         mode attribute.
1298         (sse2_vmsqrtv2df2): Correct mode attribute.
1299
1300 2005-12-05  Jan Beulich  <jbeulich@novell.com>
1301
1302         * config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by
1303         16 bits. Provide insn pattern for this case.
1304
1305 2005-12-05  Jan Beulich  <jbeulich@novell.com>
1306
1307         * libgcc2.c (__popcountSI2): Don't use wide type for iterator and
1308         result.
1309         (__popcountDI2): Likewise.
1310
1311 2005-12-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1312
1313         PR target/25166
1314         * pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and
1315         _U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs.
1316         * pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New
1317         functions.
1318
1319 2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>
1320
1321         * c-typeck.c (null_pointer_constant_p): New function.
1322         (build_conditional_expr, build_c_cast, convert_for_assignment,
1323         build_binary_op): Use it.
1324
1325 2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>
1326
1327         * c-common.c (binary_op_error): Do not allow NOP_EXPR.
1328         (c_common_truthvalue_conversion): Handle NOP_EXPR the same as
1329         CONVERT_EXPR.
1330         (check_function_arguments_recurse): Allow both NOP_EXPR and
1331         CONVERT_EXPR but check conversions preserve precision.
1332         * c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR
1333         but check conversions preserve precision.
1334         (build_unary_op): Don't allow NOP_EXPR.  Use gcc_unreachable () in
1335         default case.
1336
1337 2005-12-04  Roger Sayle  <roger@eyesopen.com>
1338
1339         PR c/7776
1340         * common.opt (Wstring-literal-comparison): New command line option.
1341         * c-opts.c (c_common_handle_option): Set it with -Wall.
1342         * c-typeck.c (parser_build_binary_op): Issue warning if either
1343         operand of a comparison operator is a string literal, except for
1344         testing equality or inequality against NULL.
1345
1346         * doc/invoke.texi: Document new -Wstring-literal-comparison option.
1347
1348 2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
1349
1350         * c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead
1351         of building a NOP_EXPR.
1352         (c_alignof_expr): Likewise.  Handle CONVERT_EXPR the same as
1353         NOP_EXPR.
1354         * c-convert.c (convert): Use fold_convert instead of building
1355         NOP_EXPRs and CONVERT_EXPRs directly.  Don't special case
1356         c_objc_common_truthvalue_conversion returning a NOP_EXPR.  Remove
1357         #if 0 code.
1358         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
1359         NOP_EXPR the same as CONVERT_EXPR.
1360         * c-typeck.c (build_function_call): Use fold_convert instead of
1361         building a NOP_EXPR directly.
1362         (build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR.
1363
1364 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
1365
1366         PR rtl-optimization/25197
1367         * dwarf2out.c (dwarf2out_frame_debug_expr <rule 12>): Assert we
1368         have a reg.
1369
1370 2005-12-02  Stuart Hastings  <stuart@apple.com>
1371
1372         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic
1373         warning.
1374
1375 2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
1376
1377         * c-typeck.c (default_function_array_conversion,
1378         build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR.
1379         (build_conditional_expr): Apply integer_zerop to orig_op1 and
1380         orig_op2.  Don't check them for NOP_EXPR.
1381         (build_c_cast, convert_for_assignment): Don't check for NOP_EXPR
1382         around integer zero.
1383
1384 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
1385
1386         * config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p,
1387         toc_save_offset, toc_size, lr_size.
1388         (rs6000_stack_info): Use memset rather than bss struct copy to init.
1389         Test rs6000_ra_ever_killed last in condition setting lr_save_p.
1390         Adjust for removal of unused rs6000_stack_t fields.
1391         (debug_stack_info): Adjust.
1392         (rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE.  Test for calls
1393         first, and don't bother checking for set/inc of lr on sibcalls.
1394         (rs6000_emit_epilogue): Tidy code restoring stack pointer.
1395
1396 2005-12-02  Jakub Jelinek  <jakub@redhat.com>
1397
1398         PR target/25199
1399         * config/i386/i386.md (movqi_1): Only force imovx for alternative
1400         5 if operand 1 is not aligned.  Undo previous constraint change.
1401         * config/i386/predicates.md (aligned_operand): Use MEM_ALIGN.
1402
1403 2005-12-02  Richard Guenther  <rguenther@suse.de>
1404
1405         * tree.h (build): Remove prototype.
1406         (build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros.
1407         * tree.c (build): Remove.
1408         (build0_stat): Update comment.
1409
1410 2005-12-02  Richard Guenther  <rguenther@suse.de>
1411
1412         * tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build.
1413         * tree-complex.c (update_complex_assignment, expand_complex_div_wide):
1414         Likewise.
1415         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref,
1416         maybe_fold_offset_to_component_ref): Likewise.
1417         * tree-ssa-dom.c (thread_across_edge,
1418         simplify_rhs_and_lookup_avail_expr,
1419         find_equivalent_equality_comparison, record_equivalences_from_stmt):
1420         Likewise.
1421         * gimple-low.c (lower_function_body, lower_return_expr): Likewise.
1422         * tree-eh.c (do_return_redirection, honor_protect_cleanup_actions,
1423         lower_try_finally_switch): Likewise.
1424         * tree-if-conv.c (add_to_dst_predicate_list,
1425         replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise.
1426         * gimplify.c (internal_get_tmp_var, gimple_build_eh_filter,
1427         voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr,
1428         gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr,
1429         gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr,
1430         shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr,
1431         gimplify_init_ctor_eval, gimplify_init_constructor,
1432         gimplify_variable_sized_compare, gimplify_boolean_expr,
1433         gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr,
1434         gimplify_expr, gimplify_body, gimplify_function_tree,
1435         force_gimple_operand): Likewise.
1436         * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
1437         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for,
1438         mx_register_decls): Likewise.
1439         * tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain,
1440         get_frame_field, finalize_nesting_tree_1): Likewise.
1441         * tree-inline.c (setup_one_parameter): Likewise.
1442         * tree-vect-transform.c (vectorizable_condition): Likewise.
1443         * tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies):
1444         Likewise.
1445         * tree-profile.c (tree_gen_edge_profiler): Likewise.
1446         * tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise.
1447         * c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise.
1448         * tree-chrec.h (build_polynomial_chrec): Likewise.
1449
1450 2005-12-02  Richard Guenther  <rguenther@suse.de>
1451
1452         * config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i,
1453         alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable.
1454         * config/frv/frv.c (frv_expand_builtin_va_start): Likewise.
1455         * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
1456         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1457         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1458         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
1459         Likewise.
1460         * config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr,
1461         sh_adjust_unroll_max): Likewise.
1462         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
1463         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1464         * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr):
1465         Likewise.
1466         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1467         Likewise.
1468         * config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr):
1469         Likewise.
1470
1471 2005-12-02  Richard Guenther  <rguenther@suse.de>
1472
1473         * tree-vrp.c (build_assert_expr_for, process_assert_insertions_for,
1474         simplify_cond_using_ranges): Use buildN instead of build.
1475         * tree-tailcall.c (adjust_accumulator_values,
1476         adjust_return_value): Likewise.
1477         * tree-sra.c (generate_one_element_ref, generate_copy_inout,
1478         generate_element_copy, generate_element_zero,
1479         generate_one_element_init): Likewise.
1480         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise.
1481         * lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression,
1482         lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest,
1483         perfect_nestify): Likewise.
1484
1485 2005-12-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1486
1487         * pa.c (pa_secondary_reload): Revise initialization of variable regno.
1488
1489 2005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1490
1491         * ggc.h (GGC_RESIZEVEC): New.
1492
1493 2005-12-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1494
1495         * gcc.c (execute): Improve readability.
1496
1497 2005-12-02  Richard Guenther  <rguenther@suse.de>
1498
1499         * tree-cfg.c (mark_used_vars): New function.
1500         (dump_function_to_file): Dump only used VAR_DECLs.
1501
1502 2005-12-02  Richard Guenther  <rguenther@suse.de>
1503
1504         * convert.c (convert_to_integer): Fix compare for nonpositive
1505         constant to use tree_int_cst_sgn <= 0.
1506
1507 2005-12-02  Richard Guenther  <rguenther@suse.de>
1508
1509         * convert.c (convert_to_integer): Use fold_convert instead
1510         of fold_build1 (NOP_EXPR, ...).  Use tree_int_cst_sgn < 0
1511         instead of comparing against 0.  Use build_int_cst instead
1512         of converting integer_zero_node.
1513
1514 2005-12-02  Richard Guenther  <rguenther@suse.de>
1515
1516         * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR
1517         and RROTATE_EXPR.
1518  
1519 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
1520
1521         PR target/21017
1522         * combine.c (simplify_logical <IOR>): Simplify more patterns to
1523         rotates.
1524
1525 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
1526
1527         PR middle-end/25176
1528         * function.c (expand_function_end): Emit blockage for unwinder
1529         after return label.
1530
1531 2005-12-01  Roger Sayle  <roger@eyesopen.com>
1532
1533         * tree.h (TREE_OVERFLOW): Make this flag/predicate specific to
1534         constant nodes, i.e. INTEGER_CST, REAL_CST, etc...
1535         * tree-vrp.c (compare_values): Only check TREE_OVERFLOW for
1536         integer constant comparisons.
1537
1538 2005-12-02  Jon Grimm  <jgrimm2@us.ibm.com>
1539             Janis Johnson  <janis187@us.ibm.com>
1540             David Edelsohn  <dje@watson.ibm.com>
1541             Ben Elliston  <bje@au.ibm.com>
1542
1543         * dfp.h, dfp.c: New files.
1544         * Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables.
1545         (DECNUM_H): Likewise.
1546         (LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER).
1547         (INCLUDES): Append $(DECNUMINC).
1548         (OBJS-common): Add dfp.o.
1549         (dfp.o): New rule.
1550         * real.h (EXP_BITS): Pinch one bit to ..
1551         (struct real_value): Add decimal field.
1552         (real_format): Change table size, update documentation.
1553         (REAL_MODE_FORMAT): Update for to handle float, decimal float.
1554         (real_from_string3): Declare.
1555         (decimal_single_format): Declare.
1556         (decimal_double_format): Declare.
1557         (decimal_quad_format): Declare.
1558         (REAL_VALUE_TO_TARGET_DECIMAL32): New.
1559         (REAL_VALUE_TO_TARGET_DECIMAL64): New.
1560         (REAL_VALUE_TO_TARGET_DECIMAL128): New.
1561         * real.c: Include dfp.h.
1562         (normalize): Early return for decimal floats.
1563         (do_add): Zero decimal field.
1564         (do_compare): Call do_decimal_compare for decimal floats.
1565         (do_fix_trunc): Likewise, call decimal_do_fix_trunc.
1566         (real_arithmetic): Call decimal_real_arithmetic for decimal
1567         floating point operands.
1568         (real_identical): If a and b are of differing radix, return false.
1569         (real_to_integer): Call decimal_real_to_integer if the value is a
1570         decimal float.
1571         (real_to_integer2): Likewise, call decimal_real_to_integer2.
1572         (real_to_decimal): Likewise, call decimal_real_to_decimal.
1573         (real_to_hexadecimal): Place "N/A" in the return string for
1574         decimal float.
1575         (real_from_string3): New variant, given a mode.
1576         (real_maxval): Use decimal_real_maxval for decimal floats.
1577         (round_for_format): Use decimal_round_for_format for decimals.
1578         (real_convert): Use decimal_real_convert where appropriate.
1579         (significand_size): Handle base 10.
1580         (encode_decimal_single, decode_decimal_single,
1581         encode_decimal_double, decode_decimal_double, encode_decimal_quad,
1582         decode_decimal_quad): New functions.
1583         (decimal_single_format): New.
1584         (decimal_double_format): New.
1585         (decimal_quad_format): New.
1586         * machmode.def: Add SD, DD and TD decimal floating point modes.
1587         * machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P):
1588         Include MODE_DECIMAL_FLOAT.
1589         (DECIMAL_FLOAT_MODE_P): New.
1590         * mode-classes.def (MODE_DECIMAL_FLOAT): New mode class.
1591         * genmodes.c (struct mode_data): Add counter field.
1592         (struct mode_data): Update comment for format.
1593         (blank_mode): Initialise counter field.
1594         (new_mode): Increment counter field for each mode defined.
1595         (complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode
1596         using a format.
1597         (make_complex_modes): Handle modes containing `D'.
1598         (DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New.
1599         (make_decimal_float_mode): New.
1600         (reset_float_format): Handle MODE_DECIMAL_FLOAT.
1601         (cmp_modes): Compare counter field if other characteristics
1602         similar.
1603         (emit_real_format_for_mode): Support formats for decimal floats.
1604         * doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes.
1605         Document MODE_DECIMAL_FLOAT.
1606
1607 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
1608
1609         * simplify-rtx.c (simplify_plus_minus): Do simplify constants.
1610         Delete dead code.
1611
1612 2005-12-01  Richard Henderson  <rth@redhat.com>
1613
1614         * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL.
1615
1616 2005-12-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1617
1618         * builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New.
1619
1620         * config/pa/pa.c (pa_init_builtins): If we detect
1621         DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to
1622         putc_unlocked.
1623
1624 2005-12-01  Richard Guenther  <rguenther@suse.de>
1625
1626         * fold-const.c (fold_binary): Use fold_build2, not
1627         fold (build (...)).
1628
1629 2005-12-01  Nathan Sidwell  <nathan@codesourcery.com>
1630
1631         * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves.
1632
1633         * vec.h (VEC_block_remove): New.
1634
1635 2005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1636
1637         PR c/13384
1638         * c-common.c (lvalue_error): Fix wording.
1639
1640 2005-12-01  Richard Guenther  <rguenther@suse.de>
1641
1642         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix
1643         thinko in last patch.
1644
1645 2005-12-01  Geoffrey Keating  <geoffk@apple.com>
1646
1647         * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather
1648         than -flat_namespace.
1649
1650 2005-12-01  Ben Elliston  <bje@au.ibm.com>
1651
1652         * mklibgcc.in: Parameterise the script to build soft float
1653         functions by iterating over each type, rather than cloning the
1654         code for each type.
1655
1656 2005-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1657
1658         PR middle-end/25158
1659         * builtins.c (fold_builtin_fputs): Defer check for missing
1660         replacement functions.
1661
1662 2005-11-30  Kean Johnston  <jkj@sco.com>
1663
1664         * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
1665         simply its presense in case targets #define SUPPORTS_ONE_ONLY 0.
1666
1667 2005-11-30  Richard Guenther  <rguenther@suse.de>
1668
1669         PR tree-optimization/22501
1670         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
1671         function split out from ...
1672         (forward_propagate_addr_expr): ... here.  Use it to propagate
1673         ADDR_EXPRs to all uses.
1674
1675 2005-11-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1676
1677         * tree.h (CASE_FLT_FN, CASE_INT_FN): New macros.
1678         * builtins.c (expand_builtin_mathfn): Use them.
1679         (expand_builtin_mathfn_2): Likewise.
1680         (expand_builtin_mathfn_3): Likewise.
1681         (expand_builtin_int_roundingfn): Likewise.
1682         (expand_builtin): Likewise.
1683         (integer_valued_real_p): Likewise.
1684         (fold_builtin_int_roundingfn): Likewise.
1685         (fold_builtin_bitop): Likewise.
1686         (fold_builtin_logarithm): Likewise.
1687         (fold_builtin_1): Likewise.
1688         * convert.c (convert_to_integer): Likewise.
1689         * fold-const.c (negate_mathfn_p): Likewise.
1690         (tree_expr_nonnegative_p): Likewise.
1691
1692 2005-11-30  Dale Johannesen  <dalej@apple.com>
1693             Andrew Pinski  <pinskia@physics.uc.edu>
1694
1695         * combine.c (find_split_point):  Sign extend bitmask
1696         when changing bitfield assignment to IOR of AND.
1697
1698 2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>
1699
1700         * config/ms1/ms1.md (decrement_and_branch_until_zero): Add early
1701         clobber to scratch reg.
1702         (*decrement_and_branch_until_zero_no_clobber): Remove.
1703         (decrement_and_branch peephole): Add dummy scratch reg to pattern.
1704         (mulhish3): Use TARGET_MS1_16_003, TARGET_MS2.
1705         * config/ms1/ms1.opt (mmul): Remove.
1706         * config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names.
1707         (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002.
1708
1709 2005-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1710             Bernd Schmidt  <bernd.schmidt@analog.com>
1711
1712         * pa/predicates.md (symbolic_operand): Add comment.
1713         * pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders.
1714         * pa/pa-protos.h (pa_secondary_reload_class): Delete.
1715         * pa/pa.c (TARGET_SECONDARY_RELOAD): Define.
1716         (pa_secondary_reload_class): Delete.
1717         (pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS
1718         and pa_secondary_reload_class.  Reorder some checks.  Update inline
1719         copy of symbolic operand.
1720         * pa/pa.h (SECONDARY_RELOAD_CLASS): Delete.
1721
1722 2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>
1723
1724         * loop-doloop.c (add_test): Only add jump notes if we did emit a
1725         jump.
1726
1727 2005-11-30  Jeff Law  <law@redhat.com>
1728
1729         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly
1730         handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1731
1732 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
1733
1734         * config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument.
1735         Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case.
1736         (ia64_expand_move): Adjust caller.
1737
1738         * config/ia64/ia64.c (ia64_expand_atomic_op): Only use
1739         fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS
1740         negate VAL.
1741
1742 2005-11-30  Paolo Bonzini  <bonzini@gnu.org>
1743
1744         * simplify-rtx.c (simplify_plus_minus): Remove final parameter.
1745         Always produce an output if we can remove NEGs or canonicalize
1746         (minus (minus ...)) expressions.  Provide a fast path for the
1747         two-operand case.
1748         (simplify_gen_binary): Do not call simplify_plus_minus.
1749         (simplify_binary_operation_1): Reassociate at the end of the
1750         function.
1751
1752 2005-11-29  Evan Cheng  <evan.cheng@apple.com>
1753
1754         * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low
1755         moves and unpack to speed up.
1756
1757 2005-11-29  David S. Miller  <davem@sunset.davemloft.net>
1758
1759         * config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd
1760         argument, they are always sparc_compare_op0 and sparc_compare_op1.
1761         (gen_v9_scc): Update callers.
1762         * config/sparc/sparc.md: Likewise.
1763         * config/sparc/sparc-protos.h: Update extern declaration.
1764
1765         * tree-into-ssa.c (rewrite_into_ssa): Fix comment typo.
1766
1767 2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
1768
1769         * fold-const.c (negate_expr) <case BIT_NOT_EXPR>: Add break after
1770         the if.
1771
1772 2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
1773
1774         * fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR.
1775         (fold_unary) <case NEGATE_EXPR>: Move -(~a) transformation to ...
1776         (negate_expr): Here.
1777
1778 2005-11-29  Ben Elliston  <bje@au.ibm.com>
1779
1780         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN):
1781         Fix typo in comment.
1782
1783 2005-11-29  Ben Elliston  <bje@au.ibm.com>
1784
1785         * Makefile.in (clean-target): Depend on clean-target-libgcc.
1786         (clean-target-libgcc): Import rule from the top-level Makefile.in.
1787
1788 2005-11-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1789
1790         PR middle-end/20109
1791         PR middle-end/25120
1792         * builtins.c (init_target_chars): New.
1793         (expand_builtin_printf, expand_builtin_fprintf,
1794         expand_builtin_sprintf, fold_builtin_sprintf,
1795         maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
1796         fold_builtin_snprintf_chk, fold_builtin_printf,
1797         fold_builtin_fprintf): Check for matching format strings using
1798         the target charset.
1799
1800 2005-11-29  Paul Brook  <paul@codesourcery.com>
1801
1802         * config.gcc: Do not use fixproto on m68k-elf.
1803
1804 2005-11-28  Roger Sayle  <roger@eyesopen.com>
1805
1806         * expmed.c (div_cost): Replace with...
1807         (sdiv_cost, udiv_cost): New.
1808         (init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost.
1809         Rename the div and mod fields, used to initialize sdiv_pow2_cheap
1810         and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion.
1811         (expand_divmod): Replace use of div_cost with either sdiv_cost
1812         or udiv_cost depending upon the signedness of the operation.
1813
1814 2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
1815
1816         PR libfortran/24991
1817         * config/darwin.c (machopic_indirection_name,
1818         machopic_output_indirection): Follow transparent alias chain.
1819
1820 2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
1821
1822         * varasm.c (ultimate_transparent_alias_target): Add comment.
1823
1824 2005-11-28  Kazu Hirata  <kazu@codesourcery.com>
1825
1826         * config/m68k/m68k.c (notice_update_cc): Use SET_DEST and
1827         SET_SRC instead of XEXP where appropriate.
1828
1829 2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>
1830
1831         * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use
1832         __builtin_expect.
1833
1834 2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>
1835
1836         * config/fp-bit.h (LSHIFT): Take shift count parameter.
1837         * config/fp-bit.c (_fpadd_parts): Shift in one go instead of one
1838         bit at a time.
1839
1840 2005-11-28  Bernd Schmidt  <bernd.schmidt@analog.com>
1841
1842         * config/bfin/bfin.c (bfin_secondary_reload): Renamed from
1843         secondary_input_reload_class, made static.  Adapt to new
1844         infrastructure.
1845         (secondary_output_reload_class): Delete.
1846         (TARGET_SECONDARY_RELOAD): New macro.
1847         * config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS,
1848         SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
1849
1850 2005-11-28  Nathan Sidwell  <nathan@codesourcery.com>
1851
1852         PR c++/21166
1853         * c-decl.c (finish_struct):  Only set DECL_PACKED on a field
1854         when its natural alignment is > BITS_PER_UNIT.
1855         * stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08.
1856         * c-common.c (handle_packed_attribute): Ignore packing on a field
1857         whose type is naturally char aligned.
1858
1859 2005-11-28  Richard Guenther  <rguenther@suse.de>
1860
1861         * c-common.c (strict_aliasing_warning): Handle all
1862         component-ref like accesses.
1863
1864 2005-11-28  Roger Sayle  <roger@eyesopen.com>
1865             Uros Bizjak  <uros@kss-loka.si>
1866
1867         PR middle-end/20219
1868         * fold-const.c (fold binary) <RDIV_EXPR>: Optimize
1869         sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x)
1870         when flag_unsafe_math_optimizations is set and
1871         we don't care about NaNs or Infinities.
1872
1873         Move x/expN(y) and x/pow(y,z) transformation into common
1874         flag_unsafe_math_optimizations section.
1875
1876 2005-11-27  Mark Mitchell  <mark@codesourcery.com>
1877
1878         * gcc.c (main): Change type of argv to "char **".
1879
1880 2005-11-28  Alan Modra  <amodra@bigpond.net.au>
1881
1882         * doc/invoke.texi (powerpc msdata-data): Static data doesn't go in
1883         small data sections.
1884         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global.
1885         * config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare.
1886         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to..
1887         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm.  Don't
1888         output locals to sbss if !rs6000_elf_in_small_data_p.
1889         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above.
1890
1891 2005-11-28  Alan Modra  <amodra@bigpond.net.au>
1892
1893         PR target/24997
1894         * config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern
1895         generated by reload.
1896         * config/rs6000/predicates.md (indexed_or_indirect_operand): Use
1897         indexed_or_indirect_address.
1898         (indexed_or_indirect_address): Don't test for base reg.  Call
1899         address_operand last.  Make it a special predicate.
1900
1901 2005-11-27  Kazu Hirata  <kazu@codesourcery.com>
1902
1903         * config/m68k/m68k.c (notice_update_cc): Remove useless code.
1904
1905 2005-11-27  Andrew Pinski  <pinskia@physics.uc.edu>
1906
1907         PR middle-end/24575
1908         * fold-const.c (negate_expr_p): Add case for signed divides if overflow
1909         is undefined.
1910         (negate_expr): Likewise.
1911
1912 2005-11-27  Andreas Schwab  <schwab@suse.de>
1913
1914         * config/m68k/m68k.c: Reindent and fix whitespace, remove
1915         redundant parens.
1916
1917 2005-11-27  Steven Bosscher  <stevenb@suse.de>
1918
1919         * cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it
1920         has EH predecessor edges.
1921
1922 2005-11-26  Eric Christopher  <echristo@apple.com>
1923
1924         * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial
1925         register stalls by zero extending to the full register.
1926
1927 2005-11-27  Joseph S. Myers  <joseph@codesourcery.com>
1928
1929         * config/floatunsisf.c, config/floatunsidf.c,
1930         config/floatunsixf.c, config/floatunsitf.c: New files.
1931         * config/ia64/t-hpux: Add floatunsitf.c.
1932         * config/ia64/ia64.c (ia64_init_libfuncs): Use
1933         _U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion.
1934
1935 2005-11-26  Richard Henderson  <rth@redhat.com>
1936
1937         * c-lex.c (pragma_lex): Rename from c_lex.
1938         * c-pch.c: Update for pragma_lex rename.
1939         * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise.
1940         * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise.
1941         * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise.
1942         * config/sol2-c.c, config/v850/v850-c.c: Likewise.
1943         * doc/tm.texi: Likewise.
1944
1945 2005-11-26  Andrew Pinski  <pinskia@physics.uc.edu>
1946
1947         PR middle-end/23669
1948         * fold-const.c (fold_binary): Convert -A/-B to A/B for signed types
1949         when overflow is undefined.
1950
1951 2005-11-26  Hans-Peter Nilsson  <hp@axis.com>
1952
1953         * doc/md.texi (Insn Canonicalizations): Refer to the
1954         function commutative_operand_precedence for further rules.
1955
1956 2005-11-25  Roger Sayle  <roger@eyesopen.com>
1957
1958         PR middle-end/21309
1959         * expmed.c (choose_mult_variant): Return immediately when mult_cost
1960         is less than zero.  Limit mult_cost to a reasonable upper bound for
1961         the synthetic multiplication sequence.
1962
1963 2005-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1964
1965         PR middle-end/25022
1966         * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
1967         fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf):
1968         Lookup the explicit replacement functions for any unlocked
1969         stdio builtin transformations.
1970
1971 2005-11-25  Hans-Peter Nilsson  <hp@axis.com>
1972
1973         * config/cris/cris.md ("reload_out<mode>"): Mark operand 2 as
1974         earlyclobber.
1975         * targhooks.c (default_secondary_reload): Don't require operand 2
1976         for an input reload to be earlyclobber.
1977
1978 2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1979
1980         * fold-const.c (negate_mathfn_p): Fix comment and add support
1981         for BUILT_IN_CBRT, BUILT_IN_SINH, BUILT_IN_TANH, BUILT_IN_ASINH,
1982         BUILT_IN_ATANH.
1983
1984 2005-11-25  Joseph S. Myers  <joseph@codesourcery.com>
1985
1986         PR middle-end/24998
1987         * config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and
1988         _Q_ulltoq for unsigned conversions from SImode and DImode to
1989         TFmode.
1990
1991 2005-11-25  Alan Modra  <amodra@bigpond.net.au>
1992
1993         * config/rs6000/ppc64-fp.c (__floatunditf): New function.
1994         (__floatundidf, __floatundisf): Likewise.
1995
1996 2005-11-25  David Edelsohn  <edelsohn@gnu.org>
1997
1998         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete.
1999         (rs6000_override_options): Remove initialization of
2000         rs6000_sr_alias_set.
2001         (rs6000_emit_eh_reg_restore): Use gen_frame_mem.
2002         (rs6000_emit_stack_tie): Same.
2003         (emit_frame_save): Same.
2004         (gen_frame_mem_offset): Same.
2005         (rs6000_emit_prologue): Same.
2006         (rs6000_emit_epilogue): Same.
2007
2008 2005-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
2009
2010         PR middle-end/24989
2011         * fold-const.c (fold_build): Convert bool_var != 1 and
2012         bool_var == 0 to !bool_var.
2013
2014 2005-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
2015
2016         PR middle-end/24990
2017         * fold-const.c (fold_binary): Fold (~a) == C to a == ~C
2018         for C being INTEGER_CST.  Likewise for !=.
2019
2020 2005-11-25  Joseph S. Myers  <joseph@codesourcery.com>
2021
2022         PR middle-end/24998
2023         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for
2024         unsigned conversions from SImode to TFmode.
2025
2026 2005-11-24  Bernd Schmidt  <bernd.schmidt@analog.com>
2027
2028         * expr.c (expand_expr_real_1): Fix error in last change.
2029
2030 2005-11-24  J"orn Rennecke <joern.rennecke@st.com>
2031
2032         * caller-save.c: (this_insn_sets): Move into:
2033         (save_call_clobbered_regs).
2034         (mark_set_regs): Get this_insn_sets from data.
2035
2036         (save_call_clobbered_regs): Take sets of the return value by
2037         sibcalls into account.
2038
2039 2005-11-24  J"orn Rennecke <joern.rennecke@st.com>
2040         PR target/21623:
2041
2042         * regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove
2043         SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests.
2044         (init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test.
2045         (memory_move_secondary_cost, init_reg_autoinc): Remove
2046         SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests.
2047         Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with
2048         secondary_reload_class call.
2049         (copy_cost): Likewise.  Add new parameter prev_sri.  Changed all
2050         callers.
2051         * reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks.
2052         (push_secondary_reload): Use secondary_reload target hook.
2053         (secondary_reload_class, scratch_reload_class): New functions.
2054         (push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and
2055         SECONDARY_OUTPUT_RELOAD_CLASS tests.  Replace
2056         SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call.
2057         * reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test.
2058         (secondary_reload_class, scratch_reload_class): Declare.
2059         * reload1.c: Include target.h.
2060         (reload_adjust_reg_for_temp): New function.
2061         (reload_adjust_reg_for_icode): Likewise.
2062         (choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test.
2063         Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class
2064         call.
2065         (emit_input_reload_insns): Likewise.  Rewrite secondary reload checks
2066         for inheritance.  Support case when both secondary & tertiary reloads
2067         are for intermediate registers.
2068         (emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use
2069         with secondary_reload_class call.  Support case when both secondary
2070         & tertiary reloads are for intermediate registers.
2071         * target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition.
2072         (TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD.
2073         * target.h (secondary_reload_info): New struct / typedef.
2074         (struct gcc_target): New member secondary_reload.
2075         * targhooks.c Include reload.h, optabs.h and recog.h.
2076         (default_secondary_reload): New function.
2077         * targhooks.h (default_secondary_reload): Declare.
2078         * doc/tm.texi: Document secondary_reload target hook.  Update
2079         description of SECONDARY_*RELOAD_CLASS and reload_{in,out}<mode>.
2080         * doc/md.texi: Likewise.
2081
2082         * sh-protos.h (sh_secondary_reload): Declare.
2083         * sh.c (TARGET_SECONDARY_RELOAD): Override.
2084         (sh_secondary_reload): New function.
2085         * sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define.
2086         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2087         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
2088         (HAVE_SECONDARY_RELOADS): Define.
2089         * sh.md (reload_indf): Rename to:
2090         (reload_indf__frn).
2091         (reload_outdf): Rename to:
2092         (reload_outdf__RnFRm).
2093         (reload_insf): Rename to:
2094         (reload_insf__frn).
2095         (reload_insi): Rename to:
2096         (reload_insi__i_fpul).
2097
2098 2005-11-24  Uros Bizjak  <uros@kss-loka.si>
2099
2100         * configure.ac: Require at least texinfo 4.4.
2101         * configure: Regenerate.
2102
2103         * doc/install.texi (Tools/packages necessary for building GCC):
2104         Update required version of texinfo to at least 4.4.
2105         (Installing GCC: Building): Update required version of texinfo
2106         to at least 4.4.
2107         (Installing GCC: Final installation): Update required version
2108         of texi2dvi to at least 4.4.
2109         (Host/target specific installation notes for GCC): Update required
2110         version of texinfo to at least 4.4.
2111
2112 2005-11-24  Richard Guenther  <rguenther@suse.de>
2113         Dirk Mueller <dmueller@suse.de>
2114
2115         PR c++/14024
2116         * c-common.h (strict_aliasing_warning): Declare.
2117         * c-common.c (strict_aliasing_warning): New function,
2118         split out from ...
2119         * c-typeck.c (build_c_cast): ... here.
2120
2121 2005-11-24  Paolo Bonzini  <bonzini@gnu.org>
2122
2123         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
2124         to order operands.
2125         (swap_commutative_operands_with_target): New.
2126
2127 2005-11-24  Paolo Bonzini  <bonzini@gnu.org>
2128
2129         * gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes
2130         also when doing PRE, rather than only for global CPROP.
2131
2132 2005-11-24  Ben Elliston  <bje@au.ibm.com>
2133
2134         * machmode.h (CLASS_HAS_WIDER_MODES_P): New macro.
2135         * optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve
2136         formatting.
2137         (expand_twoval_unop): Likewise.
2138         (widen_clz): Likewise.
2139         (expand_parity): Likewise.
2140         (expand_unop): Likewise.
2141         (emit_cmp_and_jmp_insn_1): Likewise.
2142         (prepare_float_lib_cmp): Likewise.
2143
2144 2005-11-24  Ben Elliston  <bje@au.ibm.com>
2145
2146         * optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P.
2147         Remove unused `class' variable.
2148
2149 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2150
2151         PR c++/21667
2152         * c-typeck.c (build_array_ref): Avoid code duplicate.  Use common
2153         C/C++ diagnostic function warn_array_subscript_with_type_char.
2154         * c-common.h (warn_array_subscript_with_type_char): Declare.
2155         * c-common.c (warn_array_subscript_with_type_char): Define.
2156
2157 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2158
2159         PR c/21668
2160         * c-decl.c (grokdeclarator): Don't warn for 'extern const' when
2161         compiling at the intersection of C and C++.
2162
2163 2005-11-23  Mark Mitchell  <mark@codesourcery.com>
2164
2165         * doc/invoke.texi: For man pages, include gcc-vers.texi.
2166         List @file in the option summary.  Include the libiberty
2167         documentation for @file.
2168         * gcc.c (main): Call expandargv.
2169         * Makefile.in (gcc-vers.texi): Define srcdir.
2170
2171 2005-11-23  Diego Novillo  <dnovillo@redhat.com>
2172
2173         * passes.c (init_optimization_passes): Document
2174         sequencing of passes.
2175
2176 2005-11-23  Kazu Hirata  <kazu@codesourcery.com>
2177
2178         * config/m68k/predicates.md (pcrel_address, extend_operator,
2179         post_inc_operand, pre_dec_operand): Remove redundant
2180         conditionals.
2181         (const_uint32_operand, const_sint32_operand): Use gcc_assert
2182         instead of abort.
2183         (valid_dbcc_comparison_p): Rewrite in the lisp style.
2184
2185 2005-11-23  Ben Elliston  <bje@au.ibm.com>
2186
2187         * dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float.
2188
2189 2005-11-22  J"orn Rennecke <joern.rennecke@st.com>
2190
2191         Preparatory work for PR target/21623:
2192         * alpha.c (secondary_reload_class): Rename to:
2193         (alpha_secondary_reload_class).
2194         * alpha.h, alpha-protos.h: Likewise.
2195         * mn10300.c (secondary_reload_class): Rename to:
2196         (mn10300_secondary_reload_class).
2197         * mn10300.h, mn10300-protos.h: Likewise.
2198         * pa.c (secondary_reload_class): Rename to:
2199         (pa_secondary_reload_class).
2200         * pa.h, pa-protos.h: Likewise.
2201         * rs6000.c (secondary_reload_class): Rename to:
2202         rs6000_secondary_reload_class.
2203         * rs6000.h, rs6000-protos.h: Likewise.
2204
2205 2005-11-22  Eric Botcazou  <ebotcazou@adacore.com>
2206
2207         PR middle-end/22561
2208         * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF.
2209
2210 2005-11-22  Ian Lance Taylor  <ian@airs.com>
2211
2212         * optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not
2213         a mode_class.
2214         (prepare_cmp_insn): Likewise.
2215
2216 2005-11-22  Kazu Hirata  <kazu@codesourcery.com>
2217
2218         PR target/23435
2219         * m68k.md (zero_extendsidi2): Force operands[1] to a register
2220         if both operands[0] and operands[1] are memory.
2221
2222 2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
2223
2224         PR middle-end/23606
2225         * fold-const.c (fold_unary) <case NOP_EXPR, CONVERT_EXPR>: For
2226         COMPARISON_CLASS_P and an integral types create create a new
2227         expression with the new type and fold that.
2228
2229 2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
2230
2231         PR target/24988
2232         * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call
2233         to SUBTARGET_OS_CPP_BUILTINS.
2234
2235 2005-11-22  Richard Earnshaw  <richard.earnshaw@arm.com>
2236
2237         * arm.c (emit_set_insn): New function.
2238         (arm_split_constant): Call it.
2239         (arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise.
2240         (arm_legitimize_address): Likewise.  Use plus_constant.
2241         (arm_expand_prologue): Likewise.  Use VOIDmode in SET.
2242         (thumb_expand_prologue): Likewise.
2243         (arm_gen_load_multiple): Use VOIDmode in SET.
2244         (arm_gen_store_multiple): Likewise.
2245         (vfp_emit_fstmx): Likewise.  Use plus_constant.
2246         (emit_multi_reg_push): Likewise.
2247         (emit_sfm): Use plus_constant.
2248
2249 2005-11-23  Alan Modra  <amodra@bigpond.net.au>
2250
2251         PR target/24954
2252         * config/rs6000/predicates.md (easy_vector_constant_add_self): Fix
2253         typo last change.
2254
2255 2005-11-22  Alan Modra  <amodra@bigpond.net.au>
2256
2257         PR middle-end/24950
2258         * expmed.c (store_bit_field): Don't attempt to insv a field
2259         larger than the reg.
2260
2261 2005-11-22  Alan Modra  <amodra@bigpond.net.au>
2262
2263         PR target/24954
2264         * config/rs6000/predicated.md (easy_vector_constant_add_self): Use
2265         explicit sign extension, not a (char) cast.
2266
2267 2005-11-22  Ben Elliston  <bje@au.ibm.com>
2268
2269         * optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing
2270         GET_MODE_CLASS (x) == MODE_FLOAT.
2271         * config/i386/i386.c: Likewise.
2272         * config/rs6000/xcoff.h: Likewise.
2273         * config/rs6000/linux64.h: Likewise.
2274         * config/rs6000/rs6000.c: Likewise.
2275         * config/rs6000/rs6000.h: Likewise.
2276         * config/rs6000/predicates.md: Likewise.
2277         * config/rs6000/sysv4.h: Likewise.
2278
2279 2005-11-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2280
2281         * c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when
2282         flag_pic is set.
2283
2284         * config/alpha/freebsd.h, config/alpha/linux.h,
2285         config/arm/linux-elf.h, config/bfin/bfin.h,
2286         config/cris/linux.h, config/darwin.h, config/freebsd-spec.h,
2287         config/i386/beos-elf.h, config/i386/gnu.h,
2288         config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h,
2289         config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h,
2290         config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h,
2291         config/rs6000/linux64.h, config/rs6000/sysv4.h,
2292         config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h,
2293         config/sh/linux.h, config/sh/sh.h, config/sol2.h,
2294         config/sparc/linux.h, config/sparc/linux64.h,
2295         config/xtensa/xtensa.h: Don't define __pic__ or __PIC__.
2296
2297         * doc/invoke.texi: Document that the macros __pic__ and __PIC__
2298         are both defined when either flag -fpic or -fPIC are used.
2299
2300 2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
2301
2302         * config/fp-bit.c (clzusi): New function.
2303         (si_to_float, usi_to_float): Use it to compute proper shift.
2304         (usi_to_float): Preserve guard bits when shifting right.
2305         * libgcc-std.ver (GCC_4.2.0): New version.
2306         * libgcc2.c (__floatundixf, __floatunditf, __floatundidf,
2307         __floatundisf): New functions.
2308         * libgcc2.h (__floatundixf, __floatunditf, __floatundidf,
2309         __floatundisf): Declare.
2310         * mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf,
2311         _floatundixf, and _floatunditf.
2312         * optabs.c (expand_float): If target does not define a pattern for
2313         signed or unsigned conversion, use an unsigned libcall instead of
2314         a signed one.
2315         (init_optabs): Initialize ufloat_optab.
2316
2317 2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
2318
2319         * config/rs6000/rs6000.opt (mmulhw): New option.
2320         * doc/invoke.texi (-mmulhw): Document.
2321         * config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw
2322         for 405 and 440.
2323         * config/rs6000/rs6000.md: Add half-word multiply and
2324         multiply-accumulate instructions for 405 and 440.
2325
2326 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
2327
2328         * config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC
2329         which matches behavior of gcc 4.0 and older for RTEMS targets.  The
2330         default now includes a linker group which makes the RTEMS one nest.
2331
2332 2005-11-22  Ben Elliston  <bje@au.ibm.com>
2333
2334         * cse.c (fold_rtx): Typo fix.
2335         (find_comparison_args): Pass the mode of arg1, not arg1 itself.
2336
2337 2005-11-21  Richard Henderson  <rth@redhat.com>
2338
2339         * c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h,
2340         langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch.
2341
2342         * c-tree.h (lookup_name): Move declaration ...
2343         * c-common.h (lookup_name): ... here.
2344         * config/darwin-c.c: Include c-common.h.
2345         * config/t-darwin: Update dependencies.
2346
2347 2005-11-22  Ben Elliston  <bje@au.ibm.com>
2348
2349         * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of
2350         explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT.
2351         * genopinit.c (gen_insn): Likewise.
2352         * reload.c (find_equiv_reg): Likewise.
2353         * loop.c (load_mems): Likewise.
2354         * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise.
2355         * cse.c (find_comparison_args, fold_rtx): Likewise.
2356         * dwarf2out.c (add_const_value_attribute): Likewise.
2357         * expr.c (convert_move): Likewise.
2358         * recog.c (general_operand, register_operand): Likewise.
2359         * reg-stack.c (replace_reg): Likewise.
2360         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
2361         * c-common.c (handle_vector_size_attribute): Likewise.
2362         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
2363         (simplify_binary_operation_1): Likewise.
2364         (simplify_const_binary_operation): Likewise.
2365         (simplify_relational_operation): Likewise.
2366         (simplify_const_relational_operation): Likewise.
2367         (simplify_immed_subreg): Likewise.
2368         * emit-rtl.c (gen_lowpart_common): Likewise.
2369         * expmed.c (expand_mult): Likewise.
2370         * stor-layout.c (layout_type): Likewise.
2371
2372 2005-11-21  Paolo Bonzini  <bonzini@gnu.org>
2373
2374         PR target/24951
2375         * config/rs6000/rs6000.c (output_vec_const_move): Load cst and
2376         cst2 only for SPE vectors.
2377
2378 2005-11-21  David Edelsohn  <edelsohn@gnu.org>
2379
2380         PR target/24953
2381         * config/rs6000/predicates.md (vrsave_operation): Check
2382         UNSPEC_VOLATILE value.
2383
2384 2005-11-21  Jan Hubicka  <jh@suse.cz>
2385
2386         PR tree-optimization/24653
2387         * tree-ssa-ccp.c (ccp_fold): Strip down useless conversions.
2388
2389 2005-11-21  Uros Bizjak  <uros@kss-loka.si>
2390
2391         * config/i386/predicates.md (ax_reg_operand): New predicate.
2392         (memory_displacement_only_operand): New predicate.
2393         * config/i386/i386.md ("modrm" attribute): Return 0 if one
2394         operand is AX register and the other operand is memory operand
2395         with displacement only.
2396
2397 2005-11-21  Uros Bizjak  <uros@kss-loka.si>
2398
2399         * fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0
2400         if we don't care about NaNs or Infinities.
2401
2402 2005-11-20  Ian Lance Taylor  <ian@airs.com>
2403
2404         PR rtl-optimization/24883
2405         * combine.c (combinable_i3pat): When checking whether the
2406         destination of i3 is used in i3, consider paradoxical subregs.
2407
2408 2005-11-21  Kazu Hirata  <kazu@codesourcery.com>
2409
2410         PR middle-end/20583
2411         * cse.c (cse_insn): Reject invalid forms of CONST earlier.
2412
2413 2005-11-20  Joseph S. Myers  <joseph@codesourcery.com>
2414
2415         * combine.c (try_combine): Do not run subst on i1src and i2src in
2416         the case of generating a PARALLEL for a comparison.
2417
2418 2005-11-20  Richard Henderson  <rth@redhat.com>
2419
2420         PR 24931
2421         * tree-sra.c (struct sra_elt): Add all_no_warning.
2422         (struct sra_walk_fns) <use>: Add use_all argument.
2423         (sra_walk_expr): Pass it.
2424         (sra_walk_modify_expr): Likewise.
2425         (scalarize_ldst): Likewise.
2426         (scan_use): Update for new argument.
2427         (mark_no_warning): New.
2428         (scalarize_use): Use it.
2429
2430 2005-11-20  Bernd Schmidt  <bernd.schmidt@analog.com>
2431
2432         * expr.c (expand_expr_real): Use usmul_optab for widening
2433         signed * unsigned multiplies.
2434         * genopinit.c (optabs): Add usmul_widen_optab.
2435         * optabs.c (init_optabs): Likewise.
2436         * optabs.h (enum optab_index): Add OTI_usmul_widen.
2437         (usmul_widen_optab): Define.
2438         * config/bfin/bfin.md (usmulhisi3): New pattern.
2439
2440         * doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document.
2441
2442 2005-11-20  Graham Stott <btinternet.com>
2443
2444         * gensupport.c (std_preds): Fixed extraneous `false` in last change.
2445
2446 2005-11-20  Andreas Schwab  <schwab@suse.de>
2447
2448         PR target/24757
2449         * config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp
2450         insn.
2451
2452 2005-11-19  Richard Henderson  <rth@redhat.com>
2453
2454         PR tree-opt/24665
2455         * tree-gimple.c (is_gimple_id): Export.
2456         * tree-gimple.h (is_gimple_id): Declare.
2457         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New.
2458         (get_default_value): Use it.
2459         (maybe_fold_stmt_indirect): Likewise.
2460
2461 2005-11-19  James A. Morrison  <phython@gcc.gnu.org>
2462
2463         * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
2464         than VR1 or vice-versa.
2465
2466 2005-11-19  Hans-Peter Nilsson  <hp@axis.com>
2467
2468         PR middle-end/24912
2469         PR middle-end/24750
2470         * reload.c (find_reloads_address_1): Mention dependency on
2471         gen_reload.
2472         * reload1.c (gen_reload): For IN with an unary operation, try
2473         moving inner expression to OUT if trivial SET is not valid.
2474         Confirm that the result is valid.  Move common code block into...
2475         (emit_insn_if_valid_for_reload): New function.
2476
2477 2005-11-19  Richard Guenther  <rguenther@suse.de>
2478
2479         * fold-const.c (fold_indirect_ref_1): Make sure we fold
2480         ARRAY_REFs of constant strings.
2481
2482 2005-11-19  Jakub Jelinek  <jakub@redhat.com>
2483
2484         * gcc.c (version_compare_spec_function): Use '%s' rather than %qs in
2485         fatal format string.
2486
2487 2005-11-19  Joseph S. Myers  <joseph@codesourcery.com>
2488
2489         * combine.c (make_compound_operation): Swap operands of
2490         commutative operation if necessary before returning.
2491
2492 2005-11-19  Richard Guenther  <rguenther@suse.de>
2493
2494         PR middle-end/23294
2495         * fold-const.c (fold_plusminus_mult_expr): New function.
2496         (fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR
2497         cases, remove now unnecessary code.
2498
2499 2005-11-19  Paolo Bonzini  <bonzini@gcc.gnu.org>
2500
2501         * gensupport.c (old_preds): Rename to std_preds, add special field.
2502         (struct old_pred_table): Rename to struct std_pred_table, add special
2503         field.
2504         (NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS.
2505         (NUM_OLD_SPECIAL_MODE_PREDS): Remove.
2506         (init_predicate_table): Adjust, and set along the way whether a
2507         predicate is special.
2508
2509 2005-11-18  Mark Mitchell  <mark@codesourcery.com>
2510
2511         * BASE-VER: Change to 4.2.0.
2512
2513 2005-11-18  James E Wilson  <wilson@specifix.com>
2514
2515         * builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before
2516         returning it.
2517
2518 2005-11-18  Mike Stump  <mrs@apple.com>
2519
2520         * c-common.c (handle_cleanup_attribute): Use a lang hook for lookup_name.
2521         * config/darwin-c.c (darwin_pragma_unused): Likewise.
2522         * c-decl.c (lookup_name_two) Remove.
2523         * c-tree.h (lookup_name_two): Remove.
2524         * c-objc-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
2525         * langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add.
2526         (LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME.
2527         * langhooks.h (lang_hooks_for_decls): Add lookup_name.
2528
2529 2005-11-18  Richard Earnshaw  <richard.earnshaw@arm.com>
2530
2531         PR target/24914
2532         * arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok
2533         when not generating code to use that co-processor.
2534
2535 2005-11-18  James A. Morrison  <phython@gcc.gnu.org>
2536
2537         * tree-flow.h (reserve_phi_args_for_new_edge, create_phi_node,
2538         add_phi_arg, remove_phi_args, remove_phi_node phi_reverse): Mention that
2539         these functions are now in tree-phinodes.c.
2540
2541 2005-11-18  Jie Zhang  <jie.zhang@analog.com>
2542
2543         * config/bfin/bfin.md (trap): New pattern.
2544
2545 2005-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2546
2547         * tree-ssa-dom.c (extract_range_from_cond): Deal with variable bounds
2548         on types.
2549
2550         * expr.c (expand_expr_real): Don't call record_block_change unless
2551         ib_boundaries_block is non-null
2552
2553         * postreload.c (reload_cse_move2add): Don't try to work with BImode.
2554
2555         * fold-const.c (build_range_check): Use proper type for subtraction
2556         when merging lower bound.
2557
2558 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
2559
2560         PR rtl-optimization/24497
2561         * loop-unroll.c (apply_opt_in_copies): Do not verify equality of
2562         the copied insn.
2563
2564 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
2565
2566         * tree-scalar-evolution.c (expression_expensive_p): New function.
2567         (scev_const_prop): Use compute_overall_effect_of_inner_loop.
2568
2569 2005-11-18  Bernd Schmidt  <bernd.schmidt@analog.com>
2570
2571         * config/bfin/crtlibid.s: New file.
2572
2573 2005-11-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2574
2575         PR target/24348
2576         * config.gcc (hppa*-*-hpux*): Add pa/t-slibgcc-elf-ver to tmake config
2577         when not using sjlj exceptions.
2578         * config/pa/pa64-hpux.h (LIB_SPEC): Add -lpthread in static links.
2579         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
2580         * config/pa/som.h (ASM_PREFERRED_EH_DATA_FORMAT): Delete define.
2581         * config/pa/linux-unwind.h (pa32_fallback_frame_state): Use
2582         DWARF_ALT_FRAME_RETURN_COLUMN instead of column 0 as return column.
2583         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): New define.
2584         * config/pa/pa-linux.h (INCOMING_RETURN_ADDR_RTX,
2585         DWARF_FRAME_RETURN_COLUMN, ASM_PREFERRED_EH_DATA_FORMAT,
2586         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Delete defines.
2587         * config/pa/pa.h (ARG_POINTER_CFA_OFFSET): Delete.
2588         (FRAME_POINTER_CFA_OFFSET, INCOMING_RETURN_ADDR_RTX,
2589         DWARF_FRAME_RETURN_COLUMN, DWARF_ALT_FRAME_RETURN_COLUMN,
2590         ASM_PREFERRED_EH_DATA_FORMAT, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New
2591         defines.
2592         * config/pa/hpux-unwind.h: New file.
2593
2594 2005-11-17  Alexandre Oliva  <aoliva@redhat.com>
2595
2596         * config/rs6000/rs6000.h (ASM_OUTPUT_WEAKREF): Define.
2597         * defaults.h (ASM_OUTPUT_WEAKREF): Add decl argument.
2598         * varasm.c (do_assemble_alias): Adjust call.
2599         (weak_finish): Don't use ASM_WEAKEN_LABEL if ASM_WEAKEN_DECL
2600         is defined.
2601         * doc/tm.texi (ASM_OUTPUT_WEAKREF): Document it.
2602
2603 2005-11-17  James E Wilson  <wilson@specifix.com>
2604
2605         * tree.def (FUNCTION_DECL): Correct typo in comment.
2606
2607 2005-11-17  Richard Henderson  <rth@redhat.com>
2608
2609         * dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int.
2610         (lookup_cfa_1): Apply data alignment to DW_CFA_def_cfa_offset_sf
2611         and DW_CFA_def_cfa_sf.
2612         (def_cfa_1): Use DW_CFA_def_cfa_offset_sf with negative values.
2613         (dbx_reg_number): Don't assert particular registers here.
2614         (based_loc_descr): ... do it here instead.  Fold in ...
2615         (eliminate_reg_to_offset): ... this function.
2616         (compute_frame_pointer_to_cfa_displacement): Fold in the effects
2617         of eliminate_reg_to_offset; use FRAME_POINTER_CFA_OFFSET.
2618         * unwind-dw2.c (execute_cfa_program): Apply data align factor
2619         to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf.
2620         * function.c (instantiate_new_reg): Use FRAME_POINTER_CFA_OFFSET.
2621         (instantiate_virtual_regs): Likewise.
2622         * var-tracking.c (adjust_stack_reference): Likewise.
2623         * doc/tm.texi (FRAME_POINTER_CFA_OFFSET): New.
2624
2625 2005-11-17  Bernd Schmidt  <bernd.schmidt@analog.com>
2626
2627         * config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s"
2628         * config/bfin/uclinux.h (STARFILE_SPEC): Likewise.
2629         * config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add
2630         crtlibid.o.
2631         ($(T)crtlibid.o): New rule.
2632
2633 2005-11-16  Richard Guenther  <rguenther@suse.de>
2634
2635         PR middle-end/24851
2636         * fold-const.c (extract_array_ref): Return byte offset
2637         in all cases.
2638         (fold_binary): Fold &x[a] CMP &x[b] to
2639         a*sizeof(*x) CMP b*sizeof(*x) to get correct overflow
2640         behavior.
2641
2642 2005-11-16  Richard Henderson  <rth@redhat.com>
2643
2644         PR middle-end/23497
2645         * tree-ssa.c (warn_uninitialized_var): Skip real and imaginary
2646         parts of an SSA_NAME.
2647
2648 2005-11-16  Richard Earnshaw  <richard.earnshaw@arm.com>
2649
2650         PR target/24861
2651         * arm.md (split for movsf with immediate): Restrict split to insns
2652         that set a general register.
2653
2654 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
2655
2656         * config/ia64/unwind-ia64.c (uw_advance_context): New.  Call
2657         uw_update_context.
2658         * unwind-dw2.c (uw_advance_context): Likewise.
2659         * unwind-sjlj.c (uw_advance_context): Likewise.  Also call
2660         _Unwind_SjLj_Unregister.
2661         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Call uw_advance_context.
2662
2663 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
2664
2665         * unwind-sjlj.c (_Unwind_GetCFA): Handle the builtin_setjmp case.
2666
2667 2005-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2668
2669         * config/alpha/alpha.c (alpha_init_builtins): Use type_for_mode
2670         langhook to get a DImode integer type.
2671
2672 2005-11-16  Richard Henderson  <rth@redhat.com>
2673             J"orn Rennecke <joern.rennecke@st.com>
2674             Ulrich Weigand  <uweigand@de.ibm.com>
2675
2676         PR rtl-opt/24160
2677         PR target/24621
2678         * reload1.c (reg_equiv_invariant): New.
2679         (reload): Allocate, initialize, and free it.
2680         (calculate_needs_all_insns): Check it when skipping equivalence
2681         setting insns.
2682         (alter_reg): Likewise.
2683         (eliminate_regs_1): Rename from eliminate_regs.  Add new
2684         may_use_invariant argument; only use reg_equiv_invariant when true.
2685         (eliminate_regs): New.
2686         (eliminate_regs_in_insn): Use eliminate_regs_1; track when we're in
2687         a context for which may_use_invariant may be true.
2688
2689 2005-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2690
2691         * fold-const.c (const_binop): Don't constant fold the operation
2692         if the result has overflowed and flag_trapping_math.
2693         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
2694
2695 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
2696
2697         * config/arm/unwind-arm.c (abort): Add prototype here.
2698         (UCB_FORCED_STOP_ARG): Correct typo in macro argument.
2699         (struct phase1_vrs): Add prev_sp.
2700         (unwind_phase2_forced): Save the original core registers instead of
2701         modifying entry_vrs.  Take a new flag argument for resuming unwinding
2702         and set action flags accordingly.  Always set _US_END_OF_STACK when
2703         get_eit_entry fails.  Unwind before calling the stop function.
2704         (_Unwind_GetCFA): New function.
2705         (__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced.
2706         (__gnu_Unwind_Resume_or_Rethrow): Likewise.
2707         (__gnu_Unwind_Resume): Do not unwind here for forced unwinding;
2708         just call unwind_phase2_forced.
2709         (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here.
2710         * config/arm/unwind-arm.h (abort): Remove prototype.
2711         (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to
2712         prototypes.
2713         (_Unwind_GetCFA): New prototype.
2714         * config/arm/pr-support.c (abort): Add prototype here.
2715         * unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle
2716         forced unwinding.
2717         * config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do
2718         not schedule the prologue with non-call exceptions and EABI.
2719
2720 2005-11-16  Nathan Sidwell  <nathan@codesourcery.com>
2721
2722         * config/arm/unwind-arm.h: Reorder interface function declarations.
2723         (_URC_END_OF_STACK): New enumeration value.
2724         (_US_UNWIND_ACTION_MASK, _US_FORCE_UNWIND, _US_END_OF_STACK): Likewise.
2725         (struct _Unwind_Control_Block): Document reserved field use.
2726         (_Unwind_Stop_Fn): New typedef.
2727         (_Unwind_ForcedUnwind): Declare.
2728         (_Unwind_Resume_or_Rethrow): Declare.
2729         * gcc/config/arm/libunwind.S (UNWIND_WRAPER): Add nargs
2730         argument.  Adjust.
2731         (_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New.
2732         * config/arm/unwind-arm.c (UCB_FORCED_STOP_FN)
2733         (UCB_FORCED_STOP_ARG): New.
2734         (search_EIT_table): Update boundary condition checks.
2735         (get_eit_entry): Return _URC_END_OF_STACK when cannot unwind.
2736         (unwind_phase2): Replace for with do..while.
2737         (unwind_phase2_forced): New.
2738         (__gnu_Unwind_RaiseException): Replace for with do..while.
2739         (__gnu_Unwind_ForcedUnwind): New.
2740         (__gnu_Unwind_Resume): Set FORCE_UNWIND flag, if forced unwinding.
2741         Use appropriate phase2 unwinder.
2742         (__gnu_Unwind_Resume_or_Rethrow): New.
2743         (__gnu_unwind_pr_common): Cope with forced unwinding.
2744
2745 2005-11-16  David Edelsohn  <edelsohn@gnu.org>
2746
2747         PR target/24772
2748         * config/rs6000/predicates.md (vrsave_operation): SET_SRC is a VEC.
2749
2750         * config/rs6000/rs6000.md (btruncsf2, ceilsf2, floorsf2,
2751         roundsf2): Remove "s" from mnemonic.
2752
2753 2005-11-16  Bernd Schmidt  <bernd.schmidt@analog.com>
2754
2755         * config/bfin/crti.s (__init, __fini): Use appropriate prologue if
2756         __PIC__ is defined.
2757         * config/bfin/crtn.s: Change epilogues to match.
2758         * config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define.
2759         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define
2760         __PIC__ and __pic__.
2761
2762 2005-11-16  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2763
2764         PR 24357
2765         * doc/invoke.texi: Distinguish between free and fixed form instead of
2766         Fortran and Fortran 90/95.  Remove ratfor from the list of supported
2767         languages.
2768         * gcc.c (default_compilers): Remove double entries, add entries for
2769         suffixes '.F90' and '.F95'.
2770
2771 2005-11-16  Eric Botcazou <ebotcazou@adacore.com>
2772
2773         * config/alpha/alpha.c (alpha_expand_prologue): Fix off-by-one bug
2774         in the stack probing loop.
2775
2776 2005-11-15  David Edelsohn  <edelsohn@gnu.org>
2777
2778         * configure.ac: Use .machine power5 not power5x.
2779         * configure: Regenerate.
2780
2781 2005-11-15  Mike Stump  <mrs@apple.com>
2782
2783         * c-decl.c (lookup_name_two): Add.
2784         * c-tree.h (lookup_name_two): Likewise.
2785         * c-common.c (handle_cleanup_attribute): Use lookup_name_two instead.
2786         * config/darwin-c.c (darwin_pragma_unused): Likewise.
2787
2788 2005-11-16  Alan Modra  <amodra@bigpond.net.au>
2789
2790         PR rtl-optimization/23392
2791         * regrename.c (enum scan_actions) Add mark_access.
2792         (scan_actions_name): Ditto.
2793         (scan_rtx_reg): Handle mark_access.
2794         (scan_rtx_address): Do nothing for mark_access.
2795         (build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR
2796         and regs in REG_INC notes before closing chains for dead regs.
2797         Mark destination regs in REG_FRAME_RELATED_EXPR notes after
2798         opening chains for new writes.
2799
2800 2005-11-15  David Edelsohn  <edelsohn@gnu.org>
2801
2802         * c.opt (ffixed-line-length-none): New.
2803
2804 2005-11-15  Steve Ellcey  <sje@cup.hp.com>
2805
2806         * mklibgcc.in: Change contents of eh_dummy.c.
2807
2808 2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>
2809
2810         * loop.c (scan_loop): Do not insert temporaries for hard registers.
2811
2812 2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>
2813
2814         * config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead
2815         of making syscalls.
2816         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define.  Set r7 also.
2817
2818 2005-11-15  Jan Hubicka  <jh@suse.cz>
2819
2820         * invoke.texi (large-unit-insns): Document.
2821         * ipa-inline.c (cgraph_decide_inlining): Use large-unit-insns param.
2822         * params.def (large-unit-insns): New param.
2823
2824 2005-11-15  Hans-Peter Nilsson  <hp@axis.com>
2825
2826         PR target/24869
2827         * config/cris/cris.md ("*mov_sidesisf_mem"): Do not match
2828         special register for operand 3.  Reindent constraints to align
2829         them vertically.
2830
2831 2005-11-14  David Edelsohn  <edelsohn@gnu.org>
2832
2833         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf,
2834         -mpopcntb, -mfprnd. Add -mcpu=power5+.
2835         * configure.ac: Add test for FP rounding instructions.
2836         * configure: Regenerate.
2837         * config.in: Regenerate.
2838         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
2839         _ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if
2840         features enabled.
2841         * config/rs6000/rs6000.opt (mfprnd): New.
2842         * config/rs6000/rs6000.c (processor_target_table): Add power5+.
2843         (POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND.
2844         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+.
2845         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+.
2846         (TARGET_FPRND): New.
2847         * config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP,
2848         UNSPEC_FRIZ): New.
2849         (btrunc<mode>2): New.
2850         (ceil<mode>2): New.
2851         (floor<mode>2): New.
2852         (round<mode>2): New.
2853
2854 2005-11-14  Geoffrey Keating  <geoffk@apple.com>
2855
2856         * gcc.c (version_compare_spec_function): Use fatal() rather than
2857         abort().
2858
2859         * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New.
2860         (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2).
2861         * config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2)
2862         as empty.
2863         * config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly
2864         link in crt2.o.
2865
2866         * config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending
2867         on -mmacosx-version-min setting.
2868
2869 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
2870
2871         PR 24840
2872         * tree-vrp.c (infer_value_range): Return false if STMT is a
2873         block terminator and its basic block has no successors.
2874
2875 2005-11-14  Mike Stump  <mrs@apple.com>
2876
2877         * config/i386/i386.c (override_options): -masm=intel isn't
2878         supported on darwin.
2879         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
2880
2881 2005-11-15  Joseph S. Myers  <joseph@codesourcery.com>
2882
2883         * crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and
2884         vfork after including auto-host.h.
2885
2886 2005-11-15  Alan Modra  <amodra@bigpond.net.au>
2887
2888         PR rtl-optimization/22002
2889         * combine.c (distribute_notes): Detect cases where a reg dies
2890         two or more times in a bb, including on the insn we are combining,
2891         and place the death note on the correct range.
2892
2893 2005-11-14  Dale Johannesen  <dalej@apple.com>
2894
2895         * expmed.c (store_bit_field):  Add offset unconditionally for
2896         memory targets.
2897         (extract_bit_field):  Don't force extzv or extv operand into
2898         a register if field is too big.
2899
2900 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
2901
2902         * config/arm/arm.c (pic_labelno): New.
2903         (arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a
2904         LABEL_REF.  Pass only the labelno to PIC insns.
2905         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
2906         (arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL.
2907         * arm.md (UNSPEC_PIC_LABEL): New constant.
2908         (pic_add_dot_plus_four, pic_add_dot_plus_eight)
2909         (tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF.
2910         Use the correct label prefix.
2911
2912 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
2913
2914         * config/arm/arm.c (legitimize_tls_address): Use correct rtx for
2915         REQ_EQUIV note.
2916
2917 2005-11-14  Richard Earnshaw  <richard.earnshaw@arm.com>
2918
2919         * loop-invariant.c: Include tm_p.h.
2920         * Makefile.in: Updated.
2921
2922 2005-11-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2923
2924         * pa.c (store_reg): Revise generation of frame notes in large frames.
2925         (set_reg_plus_d): Likewise.
2926
2927 2005-11-13  Andrew MacLeod  <amacleod@redhat.com>
2928
2929         PR tree-optimization/24709
2930         * tree-ssa-operands.c (verify_imm_links): Increase limit for infinite
2931         loop check.
2932
2933 2005-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2934
2935         * gthr-posix95.h: Remove declaration of pthread_mutexattr_settype
2936         and duplicate declaration of pthread_self.
2937
2938 2005-11-13  Eric Botcazou  <ebotcazou@adacore.com>
2939             Ian Lance Taylor  <ian@airs.com>
2940
2941         PR middle-end/24003
2942         * calls.c (expand_call): If TARGET is a MEM and some part of the
2943         argument area has been saved, force TARGET to a register.
2944
2945 2005-11-13  Razya Ladelsky <razya@il.ibm.com>
2946
2947         * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type
2948         checking.
2949
2950 2005-11-13  Jason Merrill  <jason@redhat.com>
2951
2952         PR c++/22489
2953         * dwarf2out.c (gen_subprogram_die): Force a declaration die for
2954         lazily declared methods.
2955         (force_decl_die): Stop if forcing out the context already make a
2956         DIE for the decl.
2957         (force_type_die): Likewise.
2958
2959 2005-11-13  Andrew Pinski  <pinskia@physics.uc.edu>
2960
2961         PR middle-end/24820
2962         * builtins.c (integer_valued_real_p): Add break in
2963         REAL_CST having TREE_OVERFLOW set.
2964
2965 2005-11-13  Zdenek Dvorak  <dvorakz@suse.cz>
2966
2967         * tree-ssa-loop-ivopts.c (get_address_cost): Prevent splitting
2968         addressing modes during calculation of costs.
2969
2970 2005-11-12  Eric Botcazou  <ebotcazou@adacore.com>
2971
2972         * function.c (assign_stack_local_1): Restrict sanity check
2973         on frame size overflow to 32-bit and above platforms.
2974
2975 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
2976
2977         * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Define.
2978         * config/cris/cris.c: Include reload.h.
2979         (cris_initial_elimination_offset): New function.
2980         * config/cris/cris-protos.h: (cris_initial_elimination_offset):
2981         Prototype.
2982
2983 2005-11-12  Richard Guenther  <rguenther@suse.de>
2984
2985         * gcse.c (find_rtx_in_ldst): Handle NULL pre_ldst_table.
2986
2987 2005-11-12  Jan Hubicka  <jh@suse.cz>
2988
2989         * expr.c (expand_expr_real_1): <MAX_EXPR, MIN_EXPR>: Canonicalize
2990         to compare against 0 when possible.
2991
2992 2005-11-12  Jie Zhang  <jie.zhang@analog.com>
2993
2994         * config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES,
2995         HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
2996         REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers.
2997         * config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers
2998         in the new order.
2999
3000 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
3001
3002         * recog.c (constrain_operands) <case 'g'>: For a match, require
3003         that a non-register matches general_operand when strict >= 0.
3004
3005 2005-11-11  Steven Bosscher  <stevenb@suse.de>
3006
3007         * loop-invariant.c (move_loop_invariants): Fix a thinko in the
3008         previous checkin.
3009
3010 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
3011
3012         * tree-ssa-dse.c (struct address_walk_data, memory_ssa_name_same)
3013         (memory_address_same): New.
3014         (dse_optimize_stmt): Call memory_address_same.
3015
3016 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
3017
3018         PR middle-end/24750
3019         * reload.c (find_reloads_address_1) <case TRUNCATE, SIGN_EXTEND,
3020         ZERO_EXTEND>: New cases.
3021
3022 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
3023
3024         * longlong.h (__clz_tab): Always provide.
3025
3026 2005-11-11  Steven Bosscher  <stevenb@suse.de>
3027
3028         PR 24265
3029         * loop-invariant.c (may_assign_reg_p): Make sure a hard register
3030         can be assigned to.
3031         (find_invariant_insn): Do the cheapest check, may_assign_reg_p,
3032         before check_maybe_invariant.
3033         (move_invariant_reg): Use gen_move_insn instead of replacing
3034         SET_DEST with the temporary for the invariant.
3035         (move_loop_invariants): If checking is enabled, do internal
3036         consistency checks after completing the pass.
3037
3038 2005-11-11  David Edelsohn  <edelsohn@gnu.org>
3039
3040         PR 24644
3041         * common.opt (Wvolatile-register-var): New.
3042         * varasm.c (make_decl_rtl): Only emit warning when option
3043         specified.  Clarify warning message.
3044         * doc/invoke.texi (Wvolatile-register-var): Document new option.
3045
3046         * doc/md.texi (copysign): Document standard named pattern.
3047
3048 2005-11-11  Jie Zhang  <jie.zhang@analog.com>
3049
3050         * config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing
3051         bytes when align is 2.
3052         * config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed
3053         by the first instruction of the loop.
3054
3055 2005-11-11  Jason Merrill  <jason@redhat.com>
3056
3057         PR c++/24686
3058         * gimplify.c (gimplify_cleanup_point_expr): Also save and restore
3059         the cleanup list.
3060
3061 2005-11-11  Zdenek Dvorak  <dvorakz@suse.cz>
3062
3063         PR rtl-optimization/22509
3064         * local-alloc.c (memref_used_between_p): Check whether a function call
3065         could not reference the memref.
3066
3067 2005-11-11  Ulrich Weigand  <uweigand@de.ibm.com>
3068
3069         * postreload.c (reload_cse_simplify_operands): Fix bug in sorting
3070         algorithm so as to choose the best, not the worst, alternative.
3071         Reset accumulated register class before processing next alternative.
3072
3073 2005-11-11  Kaz Kojima  <kkojima@gcc.gnu.org>
3074
3075         PR target/24445
3076         * calls.c (expand_call): Copy a return value to a plain register
3077         if needed.
3078
3079 2005-11-10  Alexandre Oliva  <aoliva@redhat.com>
3080
3081         PR target/24778
3082         * varasm.c (assemble_name): Recompute name only for transparent
3083         aliases.
3084
3085 2005-11-10  Hans-Peter Nilsson  <hp@axis.com>
3086
3087         * tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from.
3088
3089 2005-11-04  Jeff Law  <law@redhat.com>
3090
3091         PR middle-end/23181
3092         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not
3093         perform reassociation if the parent statement will not die as
3094         a result of the optimization.
3095
3096 2005-11-10  Daniel Berlin  <dberlin@dberlin.org>
3097
3098         * tree-ssa-alias.c (compute_may_aliases): Remove call to
3099         delete_old_heap_vars.
3100         * tree-dfa.c (referenced_var_remove): Remove function.
3101         * tree-ssa.c (init_tree_ssa): Call init_alias_heapvars.
3102         (delete_tree_ssa): Remove call to delete_old_heapvars.
3103         Add call to delete_alias_heapvars.
3104         * tree-flow.h (referenced_var_remove): Remove prototype
3105         (init_alias_heapvars): New prototype.
3106         (delete_alias_heapvars): Ditto.
3107         * Makefile.in (tree-ssa-structalias.o): Add
3108         gt-tree-ssa-structalias.o
3109         (GTFILES): Add tree-ssa-structalias.h and
3110         tree-ssa-structalias.c.
3111         (s-gtype): Add gt-tree-ssa-structalias.h.
3112         * tree-ssa-structalias.c (heapvars): Remove.
3113         (oldheapvars): Remove.
3114         (heapvar_for_stmt): New variable.
3115         (heapvar_lookup): New function.
3116         (heapvar_insert): Ditto.
3117         (get_constraint_for): See if we have an old heapvar
3118         to reuse.
3119         (init_alias_heapvars): New function.
3120         (delete_alias_heapvars): Ditto.
3121         Add include of gt-tree-ssa-structalias.h.
3122
3123 2005-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
3124
3125         PR middle-end/22127
3126         * calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext.
3127
3128 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
3129
3130         * tree.c (int_fits_type_p): Only look at the base type
3131         if it has the same precision as the original type.
3132
3133 2005-11-10  Jakub Jelinek  <jakub@redhat.com>
3134
3135         PR other/4372
3136         * varasm.c (assemble_alias): Use %q+D in the error
3137         message instead of %J and %qD.
3138
3139 2005-11-10  Richard Guenther  <rguenther@suse.de>
3140
3141         * gcse.c (free_ldst_entry): Only free hashtable if
3142         it exists.
3143
3144 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3145
3146         * function.c (assign_stack_local_1): Issue an error message if
3147         the frame size overflows in the signed target arithmetics.
3148
3149 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3150
3151         * tree.c (build_qualified_type): Chain the new type to the original
3152         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
3153         a POINTER_TYPE or a REFERENCE_TYPE respectively.
3154         (build_pointer_type_for_mode): Only return unqualified types.
3155         (build_reference_type_for_mode): Likewise.
3156
3157 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
3158
3159         * Makefile.in (gnucompare): Do comparison of all files using one of
3160         the chosen methods and only afterwards decide if just warning should
3161         be issued or comparison failure raised.
3162
3163 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3164
3165         * ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn.
3166         (noce_try_abs): Negate if the comparison is reversed.
3167         Look only one instruction backwards for a REG_EQUAL note.
3168
3169 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
3170
3171         PR other/4372
3172         * gthr-dce.h, gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
3173         gthr-tpf.h: Define __gthrw.  For all identifiers that might
3174         be weak, introduce weakrefs or non-weak aliases with __gthrw,
3175         and prefix all uses with __ghtrw.
3176
3177 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
3178
3179         PR other/4372
3180         * tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New.
3181         (TREE_DEPRECATED): Adjust comment.  Check for a DECL.
3182         * c-common.c (handle_weakref_attribute): New.
3183         (c_common_attribute_table): Add weakref.
3184         * configure.ac (HAVE_GAS_WEAKREF): Check for weakref support
3185         in the assembler.
3186         * configure, config.in: Rebuilt.
3187         * defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF.
3188         * doc/extend.texi: Document weakref attribute.
3189         * varasm.c (ultimate_transparent_alias_target): New
3190         (assemble_name): Use it.
3191         (weak_finish_1): Split out of...
3192         (weak_finish): ... and deal with weakrefs in...
3193         (weakref_targets): ... new list.
3194         (globalize_decl): Clean up weakref_targets.
3195         (do_assemble_alias): Handle weakrefs.
3196         (finish_aliases_1): Do not reject weakrefs to external symbols.
3197         (assemble_alias): Handle weakrefs.
3198
3199 2005-11-09  Richard Guenther  <rguenther@suse.de>
3200
3201         PR tree-optimization/24716
3202         * tree-scalar-evolution.c (analyze_evolution_in_loop): Use
3203         t_bool to track results from follow_ssa_edge.
3204
3205 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3206
3207         * final.c (force_source_line): New global variable.
3208         (final_scan_insn): Set it to true instead of clearing last_filename.
3209         (notice_source_line): Return true if force_source_line is true,
3210         unless source info is absent.
3211
3212 2005-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
3213
3214         PR c/24644
3215         * dwarf2-out.c (add_name_and_src_coords_attributes): Don't add
3216         a linkage name for a variable if it a register variable.
3217         * c-decl.c (grokdeclarator): Global register variables
3218         should be set as PUBLIC.
3219
3220 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
3221
3222         PR 24624
3223         * config/s390/s390.c (struct s390_frame_layout): New fields
3224         first_save_gpr_slot and last_save_gpr_slot.
3225         (cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue,
3226         s390_emit_epilogue, s390_initial_elimination_offset): Replaced
3227         first_save_gpr and last_save_gpr with the _slot variants.
3228         (s390_register_info): Calculate first_save_gpr_slot and
3229         last_save_gpr_slot using regs_ever_live.
3230
3231 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
3232
3233         PR 24623
3234         * config/s390/s390.c (s390_regs_ever_clobbered): Only save live eh regs
3235         for a function containing a landing pad.
3236
3237 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
3238
3239         PR 24034
3240         * flow.c (mark_set_1): Handle CLOBBERs like SETs if the register
3241         is live afterwards.
3242
3243 2005-11-08  Bernd Schmidt  <bernd.schmidt@analog.com>
3244
3245         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS,
3246         MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New.
3247
3248 2005-11-09  Nathan Sidwell  <nathan@codesourcery.com>
3249
3250         Add ms2 support
3251         * config/ms1/ms1.md (UNSPEC_BLOCKAGE, UNSPEC_EI, UNSPEC_DI): New
3252         constants.
3253         (call,load,store): New insn types.
3254         (mem_access, branch_access): Adjust reservation conditions.
3255         (define_delay): Adjust condition.
3256         (decrement_and_branch_until_zero): Allow for ms2.  Set branch
3257         type.
3258         (*decrement_and_rbanch_until_zero_no_clobber): Allow for ms2.
3259         (*movqi_internal,*movsi_internal,*movsf_internal): Use load,store
3260         insn type.
3261         (call_internal, call_value_internal, return_internal,
3262         return_interrupt_internal, eh_return_internal, indirect_jump,
3263         tablejump): Set call insn type.
3264         (blockage, ei, di): Use appropriate unspec const.
3265         * config/ms1/ms1.c (ms1_flag_delayed_branch): New.
3266         (ms1_get_attr_type): Adjust to give load & store types.
3267         (ms1_final_prescan_insn): Adjust for new insn types.  Don't look
3268         backwards past a barrier.
3269         (ms1_override_options): Accept ms2 arch.  Copy and reset delayed
3270         branch scheduling.
3271         (struct branch_info, struct label_info): New.
3272         (ms1_labels): New.
3273         (ms1_add_branches, ms1_check_delay_slot, ms1_reorg_hazard): New.
3274         (ms1_machine_reorg): New.
3275         (TARGET_MACHINE_DEPENDENT_REORG): Override.
3276         * config/ms1/crtn.asm: Add nop for ms2 JAL hazard.
3277         * config/ms1/ms1.h (processor_type): Add PROCESSOR_MS2.
3278         (ASM_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Add ms2.
3279         (TARGET_MS2): New.
3280
3281 2005-11-09  Per Bothner  <per@bothner.com>
3282             Uros Bizjak  <uros@kss-loka.si>
3283
3284         PR c/24101
3285         * toplev.c (process_options): Initialize debug_hooks early
3286         in case lang_hooks.post_options ends up calling a debug_hook.
3287
3288 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
3289
3290         * dwarf2out.c (multiple_reg_loc_descriptor): Don't assume
3291         DBX_REGISTER_NUMBER being contiguous.
3292
3293 2005-11-08  James A. Morrison  <phython@gcc.gnu.org>
3294             Diego Novillo  <dnovillo@redhat.com>
3295
3296         PR 23046
3297         * tree-vrp.c (register_edge_assert_for): Do not register
3298         always-false predicates.
3299
3300 2005-11-08  Devang Patel <dpatel@apple.com>
3301
3302         PR tree-optimization/23115
3303         * tree-if-conv.c (find_phi_replacement_condition): Check domninated_by
3304         relation.
3305
3306 2005-11-08  Joseph S. Myers  <joseph@codesourcery.com>
3307
3308         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include
3309         -mcpu=440.
3310
3311 2005-11-08  Daniel Berlin  <dberlin@dberlin.org>
3312
3313         Fix PR tree-optimization/23382
3314
3315         * tree-ssa-alias.c (compute_may_aliases): Call
3316         delete_old_heap_vars.
3317         * tree-dfa.c (referenced_var_remove): New function.
3318         * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars.
3319         * tree-flow.h (referenced_var_remove): Add prototype.
3320         (delete_old_heap_vars): Ditto.
3321         * tree-ssa-structalias.c (heapvars): New variable.
3322         (oldheapvars): Ditto.
3323         (get_constraint_for): Put heap vars on heapvars list.
3324         (delete_old_heap_vars): New function.
3325
3326 2005-11-08  Jason Merrill  <jason@redhat.com>
3327
3328         * tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK.
3329
3330 2005-11-08  Uros Bizjak  <uros@kss-loka.si>
3331
3332         PR target/19340
3333         * reg-stack.c (reg_to_stack): Update register liveness also
3334         for flag_sched2_use_traces.
3335
3336 2005-11-08  Alan Modra  <amodra@bigpond.net.au>
3337
3338         PR target/23704
3339         * config/rs6000/rs6000.c (rs6000_handle_option <OPT_m64>): Don't
3340         override prior explicit -mno-powerpc-gfxopt.
3341
3342 2005-11-07  Eric Botcazou  <ebotcazou@adacore.com>
3343
3344         * expmed.c (extract_bit_field): Do not use insv/extv/extzv patterns
3345         if the bitsize is zero.
3346         * doc/md.texi (Standard Pattern Names): Document it.
3347
3348         * config/ia64/ia64.c (ia64_pass_by_reference): Delete.
3349         (TARGET_PASS_BY_REFERENCE): Likewise.
3350
3351 2005-11-07  Ian Lance Taylor  <ian@airs.com>
3352
3353         PR rtl-optimization/24683
3354         * config/i386/i386.c (legitimize_pic_address): If constant operand
3355         to PLUS is too large, put it in a register.
3356
3357 2005-11-07  Jie Zhang  <jie.zhang@analog.com>
3358
3359         * configure.ac: Enable checking assembler dwarf2 support for bfin
3360         target.
3361         * configure: Regenerate.
3362
3363 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
3364
3365         PR target/24230
3366
3367         * config/rs6000/rs6000.c (easy_vector_splat_const, easy_vector_same,
3368         gen_easy_vector_constant_add_self): Delete.
3369         (vspltis_constant, easy_altivec_constant, gen_easy_altivec_constant):
3370         New.
3371         (output_vec_const_move): Use gen_easy_altivec_constant.
3372         (rs6000_expand_vector_init): Do not emit a set of a VEC_DUPLICATE.
3373         * config/rs6000/predicates.md (easy_vector_constant): Reorganize tests.
3374         (easy_vector_constant_add_self): Rewritten.
3375         * config/rs6000/rs6000-protos.h (easy_vector_splat_const,
3376         easy_vector_same, gen_easy_vector_constant_add_self): Remove prototype.
3377         (easy_altivec_constant, gen_easy_altivec_constant): Add prototype.
3378         * config/rs6000/altivec.md (easy_vector_constant_add_self splitters):
3379         Macroize and adjust for the other changes.
3380
3381 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
3382
3383         PR c/24599
3384
3385         * c-typeck.c (build_c_cast): Try using a shared constant, and see
3386         if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed.
3387
3388 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
3389
3390         PR rtl-optimization/23567
3391         * ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function.
3392         (noce_process_if_block): Don't do any optimizations except
3393         if (cond) x = x; if !set_b and write into orig_x may trap
3394         or fault.  Remove the MEM_READONLY_P check.
3395
3396 2005-11-06  Diego Novillo  <dnovillo@redhat.com>
3397
3398         PR 24670
3399         * tree-vrp.c (fix_equivalence_set): New.
3400         (extract_range_from_assert): Call it.
3401
3402 2005-11-05  Ian Lance Taylor  <ian@airs.com>
3403
3404         PR target/22432
3405         * combine.c (apply_distributive_law): Don't distribute across a
3406         vector mode subreg.
3407
3408 2005-11-05  Kazu Hirata  <kazu@codesourcery.com>
3409
3410         * c-typeck.c, config/i386/netware.h, config/m32c/cond.md,
3411         config/ms1/ms1.h, config/rs6000/predicates.md,
3412         config/s390/s390.c, params.def, postreload-gcse.c,
3413         tree-flow-inline.h, tree-ssa-operands.c, tree-vectorizer.c,
3414         tree-vrp.c, tree.c: Fix comment typos.
3415         * doc/invoke.texi: Fix typos.
3416
3417 2005-11-05  Sebastian Pop  <pop@cri.ensmp.fr>
3418
3419         * lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS
3420         for testing whether the data_dependence_relation contains distance
3421         vectors.  Iterate over all distance vectors of the ddr.
3422         * lambda.h: Define a vec of lambda_vector pointers.
3423         * tree-data-ref.c (dump_data_dependence_relation,
3424         dump_data_dependence_direction): Iterate over all distance and
3425         direction vectors of the ddr.
3426         (initialize_data_dependence_relation): Initialize DDR_DIR_VECTS and
3427         DDR_DIST_VECTS.
3428         (build_classic_dist_vector, build_classic_dir_vector): Push a set
3429         of distance/direction vectors instead of a single one.
3430         * tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist
3431         lambda_vectors with a vec of lambda_vectors.
3432         (DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec.
3433         (DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS,
3434         DDR_NUM_DIST_VECTS): New.
3435         * tree-loop-linear.c (gather_interchange_stats): Test for the
3436         existence of distance vectors only after having checked that there
3437         is a dependence.  Iterate over all distance vectors of the ddr.
3438         (linear_transform_loops): Use dump_data_dependence_relation.
3439         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Test for
3440         distance vectors using DDR_NUM_DIST_VECTS.  Iterate over all the
3441         distance vectors of the ddr.
3442
3443 2005-11-05  Bernd Schmidt  <bernd.schmidt@analog.com>
3444
3445         * config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save,
3446         expand_prologue_reg_save, expand_epilogue_reg_restore): New argument
3447         IS_INTHANDLER; all callers changed.
3448         (n_regs_saved_by_prologue): Take interrupt handler attributes into
3449         account.
3450         (do_link, do_unlink): New argument ALL; all callers changed.
3451         (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
3452         If function isn't leaf, save and restore all registers.
3453         (bfin_function_ok_for_sibcall): Only true if not an interrupt or
3454         exception handler.
3455
3456 2005-11-05  Jan Hubicka  <jh@suse.cz>
3457
3458         PR rtl-optimization/23490
3459         * doc/invoke.texi (max-predicted-iterations, max-cse-insns,
3460         max-flow-memory-location): Document.
3461         * flow.c: Include params.h
3462         (MAX_MEM_SET_LIST_LEN): Kill.
3463         (add_to_mem_set_list): Use new param.
3464         * cse.c (cse_basic_block): Replace 1000 by new param.
3465         * params.def (PARAM_MAX_PREDICTED_ITERATIONS, PARAM_MAX_CSE_INSNS,
3466         PARAM_MAX_FLOW_MEMORY_LOCATIONS): New.
3467         * predict.c (predict_loops): Use new param.
3468         * predict.def (MAX_PRED_LOOP_ITERATIONS): Remove.
3469
3470         * ipa-inline.c (cgraph_decide_inlining_of_small_function,
3471         cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
3472         Do not hold memory returned by cgraph_node_name across other call.
3473
3474 2005-11-04  Hans-Peter Nilsson  <hp@axis.com>
3475
3476         PR target/23424
3477         * config/cris/predicates.md ("cris_bdap_sign_extend_operand"):
3478         Disable.
3479
3480 2005-11-04  Jeff Law  <law@redhat.com>
3481
3482         PR/21883
3483         * doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM.
3484         * tree-ssa-dom.c: Include params.h.
3485         (thread_across_edge): If there are too many statements in the
3486         target block, then do not thread through it.
3487         * Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H).
3488         * params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM.
3489
3490 2005-11-03  Diego Novillo  <dnovillo@redhat.com>
3491
3492         PR 24627
3493         * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Use
3494         TODO_update_ssa instead of TODO_update_ssa_no_phi.
3495
3496 2005-11-04  Sebastian Pop  <pop@cri.ensmp.fr>
3497
3498         PR/18595
3499         * tree-scalar-evolution.c (instantiate_parameters_1,
3500         instantiate_parameters, resolve_mixers): Compute the size of an
3501         expression to be instantiated and give up the instantiation if the
3502         size exceeds PARAM_SCEV_MAX_EXPR_SIZE.
3503
3504 2005-11-04  Richard Guenther  <rguenther@suse.de>
3505
3506         * tree-flow.h (ref_contains_indirect_ref): Rename to
3507         array_ref_contains_indirect_ref.
3508         * tree-flow-inline.h (ref_contains_indirect_ref): Likewise.
3509         (array_ref_contains_indirect_ref): Make comment match the code
3510         and vice-versa.
3511         (ref_contains_array_ref): Likewise.
3512         * tree-ssa-structalias.c (find_func_aliases): Remove call to
3513         ref_contains_indirect_ref.
3514         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
3515         Rename calls to ref_contains_indirect_ref.
3516
3517 2005-11-04 Paul Brook  <paul@codesourcery.com>
3518
3519         * config/arm/arm.c (arm_load_pic_register): Pass extra reg to
3520         gen_pic_add_dot_plus_four and gen_pic_add_dot_plus_eight.
3521         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
3522         * config/arm/arm.md: Use match_operand in peephole input templates
3523         and match_dup in peephole output templates.
3524
3525 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
3526
3527         * config/arm/arm.c (arm_init_libfuncs): Use __aeabi_idiv and
3528         __aeabi_uidiv.
3529
3530 2005-11-04  Mark Mitchell  <mark@codesourcery.com>
3531             Daniel Jacobowitz  <dan@codesourcery.com>
3532
3533         * longlong.h (add_ssaaaa): Clobber condition code register
3534         in ARM version.
3535         (sub_ddmmss): Likewise.
3536         (umul_ppmm): Likewise.
3537
3538 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
3539             Paul Brook  <paul@codesourcery.com>
3540             Phil Blundell  <pb@reciva.com>
3541
3542         * configure.ac: Add test for ARM TLS support.
3543         * configure: Regenerated.
3544         * config/arm/arm-protos.h (legitimize_tls_address)
3545         (arm_tls_referenced_p, tls_mentioned_p)
3546         (arm_output_addr_const_extra): New prototypes.
3547         (thumb_legitimize_pic_address): Delete.
3548         * config/arm/arm.c: Include "gt-arm.h".
3549         (enum tls_reloc): New.
3550         (arm_cannot_copy_insn_p, arm_tls_symbol_p, load_tls_operand)
3551         (pcrel_constant_p, get_tls_get_addr, arm_load_tp)
3552         (arm_call_tls_get_addr, legitimize_tls_address)
3553         (arm_tls_referenced_p, arm_tls_operand_p_1, tls_mentioned_p)
3554         (arm_init_tls_builtins, arm_emit_tls_decoration)
3555         (arm_output_addr_const_extra): New functions.
3556         (TARGET_CANNOT_COPY_INSN_P, TARGET_CANNOT_FORCE_CONST_MEM)
3557         (TARGET_HAVE_TLS): Define.
3558         (target_thread_pointer): New.
3559         (arm_override_options): Handle -mtp=.
3560         (legitimize_pic_address): Ignore UNSPECs.
3561         (arm_legitimate_address_p, thumb_legitimate_address_p): Handle PC
3562         relative symbols.
3563         (arm_legitimize_address, thumb_legitimize_address): Handle TLS.
3564         (tls_get_addr_libfunc): New variable.
3565         (symbol_mentioned_p, label_mentioned_p): Ignore UNSPEC_TLS.
3566         (arm_init_builtins): Call arm_init_tls_builtins.
3567         (arm_expand_builtin): Handle ARM_BUILTIN_THREAD_POINTER.
3568         (arm_encode_section_info): Call default_encode_section_info.
3569         * config/arm/arm.h (TARGET_HARD_TP, TARGET_SOFT_TP): Define.
3570         (enum arm_tp_type): New.
3571         (target_thread_pointer): Add declaration.
3572         (LEGITIMATE_CONSTANT_P): Handle TLS.
3573         (LEGITIMATE_PIC_OPERAND_P): Handle TLS.
3574         (OUTPUT_ADDR_CONST_EXTRA): Call arm_output_addr_const_extra.
3575         (enum arm_builtins): Add ARM_BUILTIN_THREAD_POINTER.
3576         * config/arm/arm.md: Add UNSPEC_TLS.
3577         (movsi): Handle TLS.
3578         (pic_add_dot_plus_four, pic_add_dot_plus_eight): Allow for
3579         non-PIC.
3580         (tls_load_dot_plus_eight): New insn and a peephole to create it.
3581         (load_tp_hard, load_tp_soft): New insns.
3582         * arm.opt: Add -mtp=.
3583         * doc/invoke.texi (ARM Options): Document -mtp.
3584
3585 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
3586
3587         * config/arm/lib1funcs.asm: Don't include "libunwind.S".
3588         * config/arm/libunwind.S: Include "lib1funcs.asm".
3589         * config/arm/t-bpabi (LIB1ASMFUNCS): Remove _unwind.
3590         (LIB2ADDEH): Add libunwind.S.
3591         (LIB2ADDEHDEP): Add lib1funcs.asm.
3592         * mklibgcc.in: Handle asm files in libgcc_eh.a.
3593
3594 2005-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3595
3596         PR fortran/18452
3597         * gcc/c.opt: Add a -lang-fortran option.
3598         * gcc/c-opts.c: Add a lang_fortran flag.
3599         (c_common_init_options): Handling the -lang-fortran option.
3600         (c_common_handle_option): Add a case for Fortran options in
3601         preprocessing. Remove cases for -ffixed-form and
3602         -ffixed-line-length. Add a case for -lang-fortran.
3603
3604 2005-11-03  David Edelsohn  <edelsohn@gnu.org>
3605
3606         * config/rs6000/rs6000.c: Include params.h
3607         (optimization_options): Set max-grow-copy-bb-insns default to 16.
3608         (bdesc_2arg): Delete vpkuhss and vpkuwss.
3609         * config/rs6000/altivec.md (UNSPEC_VPKUHSS): Delete.
3610         (UNSPEC_VPKUWSS): Delete.
3611         (altivec_vpkuhss): Delete.
3612         (altivec_vpkuwss): Delete.
3613         * config/rs6000/rs6000.md (plus_eqsi): Remove optimize_size from
3614         final condition.
3615         (neg_eq0<mode>): Remove final condition.
3616         (neg_eq<mode>): Remove condition and split-condition.
3617
3618 2005-11-04  Alan Modra  <amodra@bigpond.net.au>
3619
3620         * config/rs6000/rs6000.c (output_toc): Make "offset" HOST_WIDE_INT.
3621         Use associated print macros.
3622
3623 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
3624
3625         PR c++/17964
3626         * diagnostic.c (diagnostic_set_info_translated): New function.
3627         (diagnostic_set_info): Use it.  Add comment.
3628         * diagnostic.h (diagnostic_set_info_translated): Declare.
3629
3630 2005-11-03  Eric Botcazou  <ebotcazou@adacore.com>
3631
3632         * dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'.
3633         On USE_LINKONCE_INDIRECT platforms, build a DECL_ONE_ONLY indirect
3634         reference only if 'public' is true.
3635         (dw2_output_indirect_constant_1): On USE_LINKONCE_INDIRECT platforms,
3636         emit the .hidden directive only if the indirect reference is public.
3637         (dw2_asm_output_encoded_addr_rtx): Add new parameter 'public'.
3638         Pass it to dw2_force_const_mem.
3639         * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): New param 'public'.
3640         * dwarf2out.c (output_cfi): Adjust calls to above function.
3641         (output_call_frame_info): Likewise.
3642         * except.c (output_ttype): Pass TREE_PUBLIC of the type_info object
3643         as 'public' argument to dw2_asm_output_encoded_addr_rtx.
3644
3645 2005-11-03  Zdenek Dvorak  <dvorakz@suse.cz>
3646
3647         PR tree-optimization/24483
3648         * tree-ssa-loop-ivopts.c (aff_combination_add_elt): Move rest
3649         field to elts if possible.
3650
3651 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
3652
3653         PR middle-end/23155
3654         * gimplifier.c (gimplify_expr): Create a temporary for lvalue
3655         CONSTRUCTOR.
3656
3657 2005-11-03  Daniel Berlin  <dberlin@dberlin.org>
3658
3659         Fix PR tree-optimization/24351
3660
3661         * tree-ssa-structalias.c (struct variable_info): Add
3662         collapsed_into.
3663         (get_varinfo_fc): New function to follow collapsing.
3664         (new_var_info): Set collapsed_to to NULL.
3665         (dump_constraint): Follow collapsing.
3666         (build_constraint_graph): Handle collapsing.
3667         (do_simple_structure_copy): Return false if something bad
3668         happened.
3669         (collapse_rest_of_var): New function.
3670         (do_structure_copy): Collapse if do_simple_structure_copy returns
3671         false.
3672
3673 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
3674
3675         PR middle-end/24589
3676         * gimplify.c (gimplify_expr) <case CONSTRUCTOR>: Add the
3677         expressions to a statement list instead of gimplifying them.
3678
3679 2005-11-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3680
3681         PR rtl-optimization/23585
3682         * rtlanal.c (rtx_addr_can_trap_p_1) <PLUS>: Return 0 for an address
3683         that can't trap plus a constant integer, if the mode has zero size.
3684
3685 2005-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
3686
3687         PR target/24620
3688         * config/s390/s390.md ("*insv<mode>_reg_imm"): Accept any CONST_INT
3689         as operand 2.
3690         ("*insv<mode>_reg_extimm"): Likewise.
3691
3692 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
3693
3694         PR c/24329
3695         * c-pretty-print.c (pp_c_type_specifier): Do not recurse if
3696         c_common_type_for_mode returns an unnamed type.
3697
3698 2005-11-02  Richard Henderson  <rth@redhat.com>
3699
3700         PR target/9350
3701         PR target/24374
3702         * dwarf2out.c (dwarf2out_reg_save_reg): New.
3703         (dwarf2out_frame_debug_expr): Return after dwarf_handle_frame_unspec.
3704         * function.c (assign_parms): Use calls.internal_arg_pointer.
3705         (expand_main_function): Remove FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN
3706         code.
3707         * target-def.h (TARGET_INTERNAL_ARG_POINTER): New.
3708         (TARGET_CALLS): Add it.
3709         * target.h (struct gcc_target): Add calls.internal_arg_pointer.
3710         * targhooks.c (default_internal_arg_pointer): New.
3711         * targhooks.h (default_internal_arg_pointer): Declare.
3712         * tree.h (dwarf2out_reg_save_reg): Declare.
3713         * doc/tm.texi (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Remove.
3714         * config/i386/i386.c (dbx_register_map): Add return column.
3715         (dbx64_register_map, svr4_dbx_register_map): Likewise.
3716         (TARGET_INTERNAL_ARG_POINTER, ix86_internal_arg_pointer): New.
3717         (TARGET_DWARF_HANDLE_FRAME_UNSPEC, ix86_dwarf_handle_frame_unspec): New.
3718         (ix86_function_ok_for_sibcall): Disable if force_align_arg_pointer.
3719         (ix86_save_reg): Save force_align_arg_pointer.
3720         (ix86_emit_save_regs): Make regno unsigned.
3721         (ix86_emit_save_regs_using_mov): Likewise.
3722         (ix86_expand_prologue): Handle force_align_arg_pointer.
3723         (ix86_expand_epilogue): Likewise.
3724         * config/i386/i386.h: (dbx_register_map): Update.
3725         (dbx64_register_map, svr4_dbx_register_map): Update.
3726         (struct machine_function): Add force_align_arg_pointer.
3727         * config/i386/i386.md (UNSPEC_REG_SAVE, UNSPEC_DEF_CFA): New.
3728         (UNSPEC_TP, UNSPEC_TLS_GD, UNSPEC_TLS_LD_BASE): Renumber.
3729         (TARGET_PUSH_MEMORY peepholes): Disable if RTX_FRAME_RELATED_P.
3730
3731 2005-11-02  Jan Hubicka  <jh@suse.cz>
3732
3733         PR target/23303
3734         * i386.md: Add peep2 for simplyfing array accesses.
3735
3736 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
3737
3738         PR target/24615
3739         * config/s390/s390-protos.h (s390_decompose_shift_count): Declare.
3740         * config/s390/s390.c (s390_decompose_shift_count): New function.
3741         (s390_extra_constraint_str) ['Y']: Use s390_decompose_shift_count.
3742         (print_shift_count_operand): Use s390_decompose_shift_count.
3743         * config/s390/predicates.md ("setmem_operand", "shift_count_operand"):
3744         Use s390_decompose_shift_count.  Do not accept any non-base hard regs.
3745
3746 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
3747
3748         PR target/24600
3749         * loop.c (loop_givs_rescan): Use force_operand to expand
3750         complex GIVs.
3751
3752 2005-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
3753
3754         PR 22429
3755         * fold-const.c (build_range_check): Use unsigned when signed
3756         overflow is undefined also.  If etype is subtype, make sure that
3757         the subtraction is in the supertype.
3758
3759 2005-11-02  Richard Henderson  <rth@redhat.com>
3760
3761         PR target/24178
3762         * config/alpha/alpha.c (get_aligned_mem): Honor alignment given
3763         by MEM_ALIGN.
3764
3765 2005-11-01  Richard Henderson  <rth@redhat.com>
3766
3767         PR 21518
3768         * loop.c (scan_loop): Do not propagate computations to a hard
3769         register destination with SMALL_REGISTER_CLASSES.
3770
3771 2005-11-01  Joseph S. Myers  <joseph@codesourcery.com>
3772
3773         * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not add extra
3774         costs for MULT inside PLUS or MINUS.
3775
3776 2005-11-01  Bob Wilson  <bob.wilson@acm.org>
3777
3778         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Add a byte of padding.
3779         (TRAMPOLINE_SIZE): Round up to 60.
3780         * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Likewise.
3781
3782 2005-10-31  James E. Wilson  <wilson@specifix.com>
3783
3784         PR debug/24444
3785         * dwarf2out.c (convert_cfa_to_loc_list): Put inside DWARF2_UNWIND_INFO
3786         ifdef.  Put ifdefs around call in gen_subprogram_die.
3787         (compute_frame_pointer_to_cfa_displacement): Likewise.
3788         (gen_subprogram_die): Restore old code for when DWARF2_UNWIND_INFO is
3789         not defined.
3790
3791         PR rtl-optimization/17356
3792         *  cfgrtl.c (purge_dead_edges): Undo last change.  In EDGE_EH code,
3793         add check for CALL_INSN if EDGE_ABRNOMAL_CALL true.
3794
3795 2005-10-31  Jan Hubicka  <jh@suse.cz>
3796
3797         PR middle-end/24093
3798         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Watch negative
3799
3800         PR target/20928
3801         * i386.c (legitimize_pic_address): Deal with large immediates.
3802
3803         PR profile/20815
3804         * coverage.c (coverage_checksum_string): Fix code to stip random seeds
3805         from symbol names while computing checkup.
3806
3807         PR profile/24487
3808         * predict.c (predict_loops): Do not estimate more than
3809         MAX_PRED_LOOP_ITERATIONS in PRED_LOOP_ITERATIONS heuristic.
3810         * predict.def (MAX_PRED_LOOP_ITERATIONS): Define.
3811
3812 2005-10-31  Andrew MacLeod  <amacleod@redhat.com>
3813
3814         PR tree-optimization/19097
3815         * tree-ssa-operands.c (correct_use_link): Don't look for modified stmts.
3816
3817 2005-10-31  J"orn Rennecke <joern.rennecke@st.com>
3818
3819         * optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account.
3820
3821 2005-10-31  Andrew Pinski  <pinskia@physics.uc.edu>
3822
3823         PR middle-end/23492
3824         * tree-inline.c (setup_one_parameter): If the init_stmt
3825         is NULL, don't insert the statement.
3826
3827 2005-10-30  Jan Hubicka  <jh@suse.cz>
3828
3829         PR tree-optimization/24172
3830         * tree-inline.c (copy_body_r): Unshare the substituted value first.
3831
3832 2005-10-30  Hans-Peter Nilsson  <hp@bitrange.com>
3833
3834         * config/mmix/mmix.c (mmix_intval): Correct handling of DFmode
3835         constants for hosts with long != 32 bits.
3836
3837 2005-10-28  Andreas Krebbel <krebbel1@de.ibm.com>
3838
3839         PR middle-end/24093
3840         * ipa-inline.c (craph_decide_recursive_inlining): Fix return value.
3841
3842 2005-10-28  Aldy Hernandez  <aldyh@redhat.com>
3843
3844         * config/ms1/ms1.h (TARGET_MS1_64_001): New.
3845         (TARGET_MS1_16_002): New.
3846         (TARGET_MS1_16_003): New.
3847
3848         * config/ms1/ms1.md ("decrement_and_branch_until_zero"): Rewrite.
3849         ("*decrement_and_branch_until_zero_no_clobber"): New.
3850         Add corresponding splitter for decrement_and_branch_until_zero
3851         instruction.
3852         Key all decrement_and_branch_until_zero patterns off of
3853         TARGET_MS1_16_003.
3854
3855 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
3856
3857         PR middle-end/24362
3858         * tree-complex.c (extract_component): Treat RESULT_DECL
3859         like the rest of the decls.
3860
3861 2005-10-25  Eric Botcazou  <ebotcazou@adacore.com>
3862
3863         * config/ia64/ia64.c (ia64_output_function_profiler): Emit an
3864         indirect call to _mcount if the function needs a static chain.
3865
3866 2005-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
3867             Caroline Tice  <ctice@apple.com>
3868
3869         PR rtl-optimization/24460
3870         * dwarf2out.c (have_switched_text_sections): New boolean variable.
3871         (dwarf2out_switch_text_section): Set it to true instead of
3872         incrementing separate_line_info_table_in_use.
3873         (output_loc_list): Additionally test have_switched_text_sections.
3874         (output_ranges): Likewise.
3875         (dwarf2out_finish): Likewise.
3876         * varasm.c (assemble_start_function): Do not call
3877         insert_section_boundary_note.
3878         (assemble_end_function): If flag_reorder_blocks_and_partition,
3879         switch to the function's section before emitting the .size directive.
3880         * bb-reorder.c (insert_section_boundary_note): Staticify.
3881         (rest_of_handle_reorder_blocks): Call insert_section_boundary_note.
3882         * output.h (insert_section_boundary_note): Delete.
3883
3884 2005-10-24  Andrew Pinski  <pinskia@physics.uc.edu>
3885
3886         PR c/23103
3887         * c-format.c (check_format_types): Use lang_hooks.types_compatible_p
3888         instead of pointer equality when comparing types.
3889
3890 2005-10-24  James E. Wilson  <wilson@specifix.com>
3891
3892         * sched-deps.c (flush_pending_lists): Pass 1 not 0 in first two
3893         add_dependence_list_and_free calls.
3894
3895 2005-10-24  Steven Bosscher  <stevenb@suse.de>
3896
3897         * contrib.texi: Add the names of the LLNL folks who donated
3898         Cray pointer support for gfortran.
3899
3900 2005-10-24  Steven Bosscher  <stevenb@suse.de>
3901
3902         PR tree-optimization/24225
3903         * profile.c (branch_prob): Look from end to start through a
3904         basic block when looking for a locus.
3905
3906 2005-10-24  Richard Henderson  <rth@redhat.com>
3907
3908         * pa.c (store_reg_modify): Set RTX_FRAME_RELATED_P on each set in
3909         parallel.
3910         (hppa_expand_prologue): Likewise.
3911
3912 2005-10-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3913
3914         * pa-linux.h (NO_PROFILE_COUNTERS): Delete define.
3915         (NO_DEFERRED_PROFILE_COUNTERS): Define.
3916         * pa.h (NO_PROFILE_COUNTERS): Define.
3917         * pa.c (NO_DEFERRED_PROFILE_COUNTERS): Define if not defined.
3918         (funcdef_nos): New vector to hold label numbers of deferred profile
3919         counters.
3920         (output_deferred_profile_counters): New function.
3921         (hppa_profile_hook): Push label number onto funcdef_nos.
3922         (pa_hpux_file_end): Call output_deferred_profile_counters if
3923         NO_DEFERRED_PROFILE_COUNTERS is false.
3924
3925         * pa-protos.h (get_deferred_plabel): New prototype.
3926         * pa.c (get_plabel): Rename to get_deferred_plabel.  Return plabel.
3927         Make global.
3928         (output_call): Adjust calls.
3929
3930 2005-10-24  Alan Modra  <amodra@bigpond.net.au>
3931
3932         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Explain
3933         peculiarity of GOT/TOC section usage.
3934
3935 2005-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
3936
3937         PR objc/24435
3938          * c-common.c (constant_string_class_name): Add documentation.
3939
3940 2005-10-23  Kaz Kojima  <kkojima@gcc.gnu.org>
3941
3942         PR target/23832
3943         * recog.c (peephole2_optimize): Increment peep2_current_count
3944         only when the slot is empty.
3945
3946 2005-10-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3947
3948         PR ada/23957
3949         * except.c (output_function_exception_table): Call
3950         assemble_external_libcall if we need a personality function.
3951
3952 2005-10-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
3953
3954         PR rtl-optimization/24460
3955         * bb-reorder.c (fix_crossing_unconditional_branches): Do not
3956         set the basic block for barriers.
3957
3958 2005-10-21  Janis Johnson  <janis187@us.ibm.com>
3959
3960         * var-tracking.c (vt_initialize): Initialize post.
3961
3962 2005-10-21  Devang Patel  <dpatel@apple.com>
3963
3964         PR/24220
3965         * c-common.c (vector_types_convertible_p): Check vector element type.
3966
3967 2005-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
3968
3969         * config/sh/sh.c (prepare_move_operands): Handle the address
3970         constant which is a tls symbolic address plus a constant.
3971
3972 2005-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
3973
3974         PR driver/24473
3975         * gcc.c (main): Use the correct counter for erroring out
3976         about mulitple files.
3977
3978 2005-10-21  Alan Modra  <amodra@bigpond.net.au>
3979
3980         PR target/24465
3981         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Always
3982         use r2 for 64-bit tls .got access.
3983
3984 2005-10-21  Paolo Bonzini  <bonzini@gnu.org>
3985
3986         * dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and
3987         TRUTH_OR_EXPR.
3988
3989 2005-10-20  Steven Bosscher  <stevenb@suse.de>
3990
3991         PR tree-optimization/24307
3992         * tree-cfg.c (tree_find_edge_insert_loc): Handle naked RETURN_EXPR.
3993
3994 2005-10-20  Alexandre Oliva  <aoliva@redhat.com>
3995
3996         PR middle-end/24295
3997         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Mark
3998         alias targets.
3999         * varasm.c (find_decl_and_mark_needed): After cgraph global info
4000         is ready, stop marking functions, but still mark variables.
4001
4002 2005-10-20  Richard Guenther  <rguenther@suse.de>
4003
4004         PR c++/24439
4005         * fold-const.c (invert_truthvalue): Handle COND_EXPR with
4006         void type operands.
4007
4008 2005-10-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
4009
4010         PR rtl-optimization/23585
4011         * rtlanal.c (rtx_addr_can_trap_p_1): New predicate extracted from...
4012         (rtx_addr_can_trap_p): ... here.  Invoke rtx_addr_can_trap_p_1.
4013         (may_trap_p_1): New predicate extracted from...
4014         (may_trap_p): ... here.  Invoke may_trap_p_1.
4015         (may_trap_or_fault_p): New predicate.
4016         * rtl.h (may_trap_or_fault_p): Declare it.
4017         * reorg.c (steal_delay_list_from_target): Use may_trap_or_fault_p
4018         instead of may_trap_p.
4019         (steal_delay_list_from_fallthrough): Likewise.
4020         (fill_simple_delay_slots): Likewise.
4021         (fill_slots_from_thread): Likewise.
4022         * function.c (pad_to_arg_alignment): Rework comment about
4023         SPARC_STACK_BOUNDARY_HACK.
4024         * config/sparc/sparc.h: Likewise.
4025
4026 2005-10-19  Adrian Straetling  <straetling@de.ibm.com>