OSDN Git Service

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