OSDN Git Service

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