OSDN Git Service

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