OSDN Git Service

* ipa-type-escape.c (analyze_variable): Use gcc_assert instead of
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-12-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2             Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
3
4         * ipa-type-escape.c (analyze_variable): Use gcc_assert instead of
5         abort.
6         * except.c (output_ttype): Likewise.
7         * tree-object-size.c (collect_object_sizes_for): Likewise.
8         (check_for_plus_in_loops_1): Likewise.
9         (check_for_plus_in_loops): Likewise.
10         (compute_object_sizes): Use gcc_unreachable instead of abort.
11
12 2005-12-08  Nathan Sidwell  <nathan@codesourcery.com>
13
14         * config/ms1/ms1.md (UNSPEC_LOOP): New constant.
15         (loop_end, loop_init, doloop_end): New insns.
16         * config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New.
17         (SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust.
18         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
19         (REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust.
20         * config/ms1/ms1.c: #include basic-block.h
21         (struct machine_function): Add has_loops field.
22         (ms1_add_loop): New.
23         (MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New.
24         (struct loop_info, struct loop_work): New.
25         (ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers.
26         (ms1_reorg_loops): New loop optimization.
27         (ms1_machine_reorg): Call it.
28         * config/ms1/ms1-protos.h (ms1_add_loop): Declare.
29
30 2005-12-08  Zdenek Dvorak  <dvorakz@suse.cz>
31
32         PR tree-optimization/25248
33         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use
34         evolution_of_loop from the failed attempt.  Remove handling
35         of MULT_EXPR.
36
37 2005-12-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
38
39         * tree.h (DECL_EXTERNAL): Clarify documentation.
40
41 2005-12-08  Andreas Krebbel  <krebbel1@de.ibm.com>
42             Jakub Jelinek  <jakub@redhat.com>
43
44         PR target/25268
45         * config/s390/s390.c (s390_decompose_shift_count): Remove BITS
46         argument.  Don't drop outer ANDs.
47         (s390_extra_constraint_str, print_shift_count_operand): Adjust callers.
48         * config/s390/s390-protos.h (s390_decompose_shift_count): Adjust
49         prototype.
50         * config/s390/predicates.md (setmem_operand): Remove.
51         (shift_count_operand): Rename to...
52         (shift_count_or_setmem_operand): ... this.  Adjust
53         s390_decompose_shift_count caller.
54         * config/s390/s390.md (<shift>di3_31_and, <shift>di3_64_and,
55         ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and,
56         ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and,
57         <shift>si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and,
58         rotl<mode>3_and, setmem_long_and): New insns.
59         (<shift>di3_31, <shift>di3_64, ashrdi3_cc_31, ashrdi3_cconly_31,
60         ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64,
61         <shift>si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl<mode>3,
62         <shift>di3, ashrdi3): Use shift_count_or_setmem_operand instead
63         of shift_count_operand.
64         (setmem_long): Use shift_count_or_setmem_operand instead of
65         setmem_operand.
66
67 2005-12-08  Daniel Jacobowitz  <dan@codesourcery.com>  
68             Andreas Tobler  <a.tobler@schweiz.ch>
69
70         * Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable
71         tr expression.
72
73 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
74
75         * expr.c (force_operand): Use convert_to_mode for conversions.
76
77 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
78
79         * reload.h (reg_equiv_invariant): Declare.
80         * reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo
81         register also when reg_equiv_invariant[R] is set.
82
83 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
84             Andreas Tobler  <a.tobler@schweiz.ch>
85
86         * config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET.
87
88 2005-12-07  Daniel Berlin  <dberlin@dberlin.org>
89
90         * tree-ssa-pre.c (bitmap_set_and): New function.
91         (bitmap_set_and_compl): New function.
92         (bitmap_set_empty_p): New function.
93         (insert_extra_phis): New function.
94         (compute_avail): Use insert_extra_phis.
95
96 2005-12-07  Adrian Straetling  <straetling@de.ibm.com>
97
98         * config/s390/s390.c (s390_expand_atomic): New function.
99         Adjust comment of helper functions.
100         * config/s390/s390-protos.h (s390_expand_atomic): Declare.
101         * config/s390/s390.md ("ATOMIC"): New code macro.
102         ("atomic"): Corresponding new code attribute.
103         ("sync_lock_test_and_set[hq]i", 
104         "sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern.
105
106 2005-12-07  Adrian Straetling  <straetling@de.ibm.com>
107
108         * config/s390/s390.c (s390_expand_mask_and_shift, 
109         struct alignment_context, init_alignment_context, 
110         s390_expand_cs_hqi): New.
111         * config/s390/s390-protos.h (s390_expand_cs_hqi): Declare.
112         * config/s390/s390.md ("sync_compare_and_swaphi",
113         "sync_compare_and_swapqi"): New pattern.
114
115 2005-12-07  Daniel Berlin <dberlin@dberlin.org>
116
117         Fix PR tree-optimization/25291
118         * tree-ssa-operands.c (add_call_clobber_ops): Remove
119         redundant and crashing check.
120
121 2005-12-08  Alan Modra  <amodra@bigpond.net.au>
122
123         PR target/25212
124         * config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax
125         tests further when !strict && reload_in_progress.
126         (print_operand): Check that both operands of indexed address are regs.
127         (print_operand_address): Likewise.
128         * config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify.
129         (INT_REG_OK_FOR_BASE_P): Correct.
130
131 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
132
133         Preparation for PR rtl-optimization/20070 / part1
134         * basic-block.h (insns_match_p, flow_find_cross_jump): Declare.
135         * cfgcleanup.c (condjump_equiv_p): New function, broken out of
136         outgoing_edges_match.
137         (outgoing_edges_match): Use condjump_equiv_p.
138         (merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here
139         into..
140         * struct-equiv.c: New file.
141         (death_notes_match_p) New function, broken out of insns_match_p.
142         * Makefile.in (OBJS-common): Add struct-equiv.o.
143         (struct-equiv.o): New target.
144
145 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
146
147         * coretypes.h: Revert previous change.
148         * config/darwin.h: Revert previous reversion.
149         * config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2.
150
151 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
152
153         * coretypes.h (section): Provide dummy definition for target files.
154         * config/darwin.h: Revert previous change.
155
156 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
157
158         * doc/sourcebuild.texi (all.build, install-normal): Remove.
159         * configure.ac: Remove all.build and install-normal from target_list
160         * configure: Regenerate.
161         * Makefile.in (install): Don't depend on install-normal.
162
163 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
164
165         * Makefile.in: Document the use of stamps.
166
167 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
168
169         * doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
170         * Makefile.in: Add code to compute some dependencies on s-gtype
171         automatically.  Remove the declaration of those dependencies.
172
173 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
174
175         * gcc/reload.c (push_secondary_reload): Fix typo:
176         s/insn_constraint/scratch_constraint/.
177
178 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
179
180         * config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2.
181
182 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
183
184         * config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
185         (alpha_elf_select_rtx_section): Return the selected section rather
186         than emitting assembly code.
187         (alpha_write_linkage): Emit a ".link" directive directly and then
188         set in_section to NULL.
189         (vms_asm_out_constructor): Use switch_to_section.
190         (vms_asm_out_destructor): Likewise.
191         (unicosmk_output_common): Set in_section to NULL instead of calling
192         the dummy common_section function.
193         (unicosmk_text_section): Delete in favor of...
194         (unicosmk_output_text_section_asm_op): ...this new function.
195         (unicosmk_data_section): Delete in favor of...
196         (unicosmk_output_data_section_asm_op): ...this new function.
197         (unicosmk_init_sections): New function.
198         (unicosmk_output_deferred_case_vectors): Use switch_to_section.
199         (unicosmk_output_ssib): Set in_section to NULL instead of calling
200         the dummy ssib_section function.
201         (unicosmk_section_buf): Delete.
202         * config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
203         (unicosmk_data_section): Delete.
204         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
205         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
206         (SECTION_FUNCTION_TEMPLATE): Delete.
207         * config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
208         (READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
209         (common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
210         (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
211         (TARGET_ASM_INIT_SECTIONS): Define.
212         * config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
213         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
214         (link_section, literals_section): Delete.
215         (ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
216         set in_section to NULL.
217
218         * config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
219         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
220         (COMMON_SECTION): Delete.
221         (TARGET_ASM_INIT_SECTIONS): Define.
222         (ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
223         the dummy common_section function.
224         * config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
225         * config/arm/arm.c (get_jump_table_size): Use pointer comparison
226         between readonly_data_section and text_section to check whether
227         read-only data is being put in the text section.
228         (arm_output_function_epilogue): Use switch_to_section.
229         (arm_elf_asm_constructor): Likewise.
230         (thumb_call_via_reg): Replace call to in_text_section with
231         a comparison between in_section and text_section.
232         (arm_file_end): Use switch_to_section.
233         (aof_text_section): Delete in favor of...
234         (aof_output_text_section_asm_op): ...this new function.
235         (aof_data_section): Delete in favor of...
236         (aof_output_data_section_asm_op): ...this new function.
237         (aof_asm_init_sections): New function.
238         (zero_init_section): Moved from config/arm/aof.h.
239         (aof_dump_imports, aof_file_start): Use switch_to_section.
240         * config/arm/arm.h (thumb_call_via_label): Update comment.
241         * config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
242         (common_section): Delete.
243         * config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
244         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
245         global switch_to_section function instead of the old port-local one.
246         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
247         (SWITCH_TO_SECTION_FUNCTION): Delete.
248         (drectve_section): Redefine as a macro.
249         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
250         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
251         switch_to_section.
252
253         * config/avr/avr.c (progmem_section): New variable.
254         (avr_output_progmem_section_asm_op): New function.
255         (avr_asm_init_sections): New function.
256         (avr_output_addr_vec_elt): Use switch_to_section.
257         * config/avr/avr.h (progmem_section): Declare.
258         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
259         (READONLY_DATA_SECTION): Delete.
260         (TARGET_ASM_INIT_SECTIONS): Define.
261         (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
262         * config/avr/avr-protos.h (progmem_section): Delete.
263
264         * config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
265
266         * config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
267         (INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.
268
269         * config/darwin-sections.def: New file.
270         * config/darwin.c: Define all sections in darwin-sections.def.
271         (output_objc_section_asm_op, darwin_init_sections): New functions.
272         (machopic_output_indirection): Use switch_to_section.
273         (machopic_select_section): Return the selected section rather than
274         emitting assembly code.  Replace the static function table with
275         inline conditional expressions.  Update the tests of last_text_section
276         and move them into the FUNCTION_DECL block.
277         (machopic_select_rtx_section): Return the selected section rather than
278         emitting assembly code.
279         (machopic_asm_out_constructor, machopic_asm_out_destructor)
280         (darwin_file_end): Use switch_to_section.
281         * config/darwin.h: Use darwin-sections.def to declare sections.
282         (INIT_SECTION_ASM_OP): Remove empty definition.
283         (HAS_INIT_SECTION): Define this instead.
284         (SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
285         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
286         (TARGET_ASM_EH_FRAME_SECTION): Delete.
287         (TARGET_ASM_INIT_SECTIONS): Define.
288         * config/darwin-protos.h (darwin_init_sections): Declare.
289         (machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
290         (machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
291         (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
292         (constructor_section, destructor_section, mod_init_section): Delete.
293         (mod_term_section): Delete.
294         (darwin_exception_section, darwin_eh_frame_section): Delete.
295         (machopic_select_section): Return a section.
296         (machopic_select_rtx_section): Likewise.
297         (text_coal_section, text_unlikely_section, text_unlikely_coal_section)
298         (const_section, const_coal_section, const_data_section): Delete.
299         (const_data_coal_section, data_coal_section, cstring_section): Delete.
300         (literal4_section, literal8_section, constructor_section): Delete.
301         (mod_init_section, mod_term_section, destructor_section): Delete.
302         (objc_class_section, objc_meta_class_section, objc_category_section)
303         (objc_class_vars_section, objc_instance_vars_section): Delete.
304         (objc_cls_meth_section, objc_inst_meth_section): Delete.
305         (objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
306         (objc_selector_refs_section, objc_selector_fixup_section): Delete.
307         (objc_symbols_section, objc_module_info_section): Delete.
308         (objc_image_info_section, objc_protocol_section): Delete.
309         (objc_string_object_section, objc_constant_string_object_section)
310         (objc_class_names_section, objc_meth_var_names_section): Delete.
311         (objc_meth_var_types_section, objc_cls_refs_section): Delete.
312         (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
313         (machopic_symbol_stub_section, machopic_picsymbol_stub_section)
314         (darwin_exception_section, darwin_eh_frame_section): Delete.
315         * config/t-darwin (darwin.o): Depend on config/darwin-sections.def.
316
317         * config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
318         (frv_asm_out_destructor): Likewise.
319         * config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
320         (SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
321         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
322         get_named_section.
323         (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
324         * config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
325         (data_section): Delete.
326
327         * config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
328         (DRECTVE_SECTION_FUNCTION): Delete.
329         (drectve_section): Redefine as a macro that sets in_section after
330         emitting the directive.
331         (SWITCH_TO_SECTION_FUNCTION): Delete.
332         * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
333         in_text_section with comparison between in_section and text_section.
334         * config/i386/i386.c (x86_64_elf_select_section): Return the section
335         rather than emitting assembly code.  Use get_named_section.
336         (x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
337         get_named_section.
338         (machopic_output_stub): Use switch_to_section.
339         * config/i386/nwld.c (nwld_named_section_asm_out_constructor)
340         (nwld_named_section_asm_out_destructor): Use get_section and
341         switch_to_section.
342
343         * config/ia64/ia64.c (ia64_select_rtx_section): Return the section
344         rather than emitting assembly code.
345         (ia64_rwreloc_select_section): Likewise.
346         (ia64_rwreloc_select_rtx_section): Likewise.
347         * config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
348         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
349         switch_to_section.
350         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
351         (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.
352
353         * config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
354         section rather than emitting assembly code.
355         (iq2000_select_section): Likewise.
356         * config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
357         (sbss_section): Delete.
358
359         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
360         and get_named_section.
361         * config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.
362
363         * config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
364         (SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
365         (EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
366         (MCORE_EXPORT_NAME): Emit the exports directive directly, then set
367         in_section to NULL.
368         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
369         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
370         global switch_to_section function instead of the old port-local one.
371         * config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
372         (SWITCH_SECTION_FUNCTION): Delete.
373         * config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
374         (DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
375         (SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
376         (MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
377         in_section to NULL.
378         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
379         global switch_to_section function instead of the old port-local one.
380         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
381
382         * config/mips/mips.c (mips_file_start): Update comment.
383         (mips_output_aligned_bss): Use switch_to_section and get_named_section.
384         (mips_output_aligned_decl_common): Use switch_to_section.
385         (mips_select_rtx_section): Return the section rather than emitting
386         assembly code.  Use get_named_section.
387         (mips_function_rodata_section: Likewise get_section.
388         (build_mips16_function_stub): Use switch_to_section.
389         * config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
390         (SDATA_SECTION_ASM_OP): Delete.
391         * config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
392         (EXTRA_SECTION_FUNCTIONS): Delete.
393
394         * config/mmix/mmix.c (mmix_file_start, mmix_file_end)
395         (mmix_asm_output_aligned_local): Use switch_to_section.
396
397         * config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
398         (som_one_only_readonly_data_section): New variables.
399         (pa_output_function_epilogue): Set in_section to NULL instead of
400         calling forget_section.
401         (output_deferred_plabels): Use select_section.
402         (pa_asm_output_mi_thunk): Likewise.  Set in_section to NULL instead
403         of calling forget_section.
404         (pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
405         (pa_asm_output_aligned_local): Use select_section.
406         (som_text_section_asm_op): Delete in favor of...
407         (som_output_text_section_asm_op): ...this new function.
408         (pa_som_asm_init_sections): New function.
409         (pa_select_section): Return the section rather than emitting
410         assembly code.
411         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
412         (SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
413         (SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
414         (SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
415         * config/pa/pa-protos.h (som_text_section_asm_op): Delete.
416         (som_readonly_data_section, som_one_only_readonly_data_section)
417         (som_one_only_data_section, forget_section): Delete.
418         * config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
419         (TARGET_ASM_INIT_SECTIONS): Define.
420         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
421
422         * config/rs6000/rs6000.c (read_only_data_section): New variable.
423         (private_data_section, read_only_private_data_section): New variables.
424         (sdata2_section, toc_section): New variables.
425         (rs6000_file_start): Use switch_to_section.
426         (rs6000_assemble_integer): Use comparisons against in_section
427         instead of calling in_toc_section and in_text_section.  Use
428         unlikely_text_section_p.
429         (rs6000_elf_output_toc_section_asm_op): New function, derived
430         from the old rs6000/sysv4.h toc_section function.
431         (rs6000_elf_asm_init_sections): New function.
432         (rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
433         the section rather than emitting assembly code.
434         (machopic_output_stub): Use switch_to_section.
435         (toc_section): Delete dummy function.
436         (rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
437         switch_to_section and get_section.
438         (rs6000_xcoff_output_readonly_section_asm_op): New function.
439         (rs6000_xcoff_output_readwrite_section_asm_op): New function.
440         (rs6000_xcoff_output_toc_section_asm_op): New function, derived from
441         the old rs6000/xcoff.h toc_section function.
442         (rs6000_xcoff_asm_init_sections): New function.
443         (rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
444         the section rather than emitting assembly code.
445         (rs6000_xcoff_file_start): Use switch_to_section.
446         (rs6000_xcoff_file_end): Likewise.
447         * config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
448         (sdata2_section, sbss_section, private_data_section): Delete.
449         (read_only_data_section, read_only_private_data_section): Delete.
450         * config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
451         (TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
452         (SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
453         (FINI_SECTION_FUNCTION): Delete.
454         (TARGET_ASM_INIT_SECTIONS): Define.
455         (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
456         * config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
457         (READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
458         (READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
459         (READONLY_DATA_SECTION): Delete.
460         (TARGET_ASM_INIT_SECTIONS): Define.
461         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.  Set in_section
462         to NULL rather than no_section.
463         (TARGET_ASM_EXCEPTION_SECTION): Delete.
464
465         * config/sh/sh.c (sh_file_start): Use switch_to_section.
466
467         * config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
468         (sparc_output_deferred_case_vectors): Likewise.  Remove argument
469         from call to current_function_section.
470
471         * config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
472         (bss100_section): New variable.
473         (xstormy16_asm_output_aligned_common): Use switch_to_section.
474         (xstormy16_asm_init_sections): New function.
475         (xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
476         switch_to_section and get_section.
477         (xstormy16_output_addr_vec): Use switch_to_section.  Remove argument
478         from calls to current_function_section.
479         * config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
480         (XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
481         (TARGET_ASM_INIT_SECTIONS): Define.
482         * config/stormy16/stormy16-protos.h (bss100_section): Delete.
483
484         * config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
485         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
486         (FINI_SECTION_FUNCTION): Delete.
487
488         * config/v850/v850.c: Include gt-v850.h.
489         (rosdata_section, rozdata_section, tdata_section, zdata_section)
490         (zbss_section): New variables.
491         (v850_output_aligned_bss): Use switch_to_section.
492         (v850_asm_init_sections): New function.
493         (v850_select_section): Return the section rather than emitting
494         assembly code.
495         * config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
496         (ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
497         (ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
498         (TARGET_ASM_INIT_SECTIONS): Define.
499         * config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
500         (sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
501         (zbss_section): Delete.
502
503         * config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
504
505         * config/vx-common.h (vxworks_exception_section): Delete.
506         (TARGET_ASM_EXCEPTION_SECTION): Delete.
507
508         * config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
509         section rather than emitting assembly code.
510         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
511         switch_to_section.
512
513         * Makefile.in (GTFILES): Add $(srcdir)/output.h.
514         * coretypes.h (section): New union and typedef.
515         * dbxout.c (FORCE_TEXT): Use switch_to_section.  Remove argument
516         from call to current_function_section.
517         (dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
518         (dbxout_symbol_location): Use switch_to_section.
519         * dwarf2out.c (named_section_eh_frame_section): Delete, moving
520         most of the code into...
521         (default_eh_frame_section): ...here.  Return a section.
522         (collect2_eh_frame_section): Delete, moving most of the code into..
523         (switch_to_eh_frame_section): ...this new function.
524         (debug_info_section, debug_abbrev_section, debug_aranges_section)
525         (debug_macinfo_section, debug_line_section, debug_loc_section)
526         (debug_pubnames_section, debug_str_section, debug_ranges_section): New
527         variables.
528         (output_call_frame_info): Call switch_to_eh_frame_section instead of
529         eh_frame_section.  Use switch_to_section and get_section.
530         (dwarf2out_begin_prologue): Use switch_to_section.
531         (AT_string_form): Check the flags in debug_str_section instead of
532         DEBUG_STR_SECTION_FLAGS.
533         (output_comp_unit): Use switch_to_section, get_section, and
534         debug_info_section.
535         (output_line_info, secname_for_decl): Use unlikely_text_section_p.
536         (dwarf2out_begin_block): Use switch_to_section.  Remove argument
537         from call to current_function_section.
538         (dwarf2out_var_location): Use unlikely_text_section_p.
539         (dwarf2out_source_line): Use switch_to_section.  Remove argument
540         from call to current_function_section.
541         (dwarf2out_start_source_file, dwarf2out_end_source_file)
542         (dwarf2out_define, dwarf2out_undef: Use switch_to_section and
543         debug_macinfo_section.
544         (dwarf2out_init): Initialize the new section variables.  Use them
545         instead of calls to named_section_flags.  Use switch_to_section.
546         (output_indirect_string): Use switch_to_section and debug_str_section.
547         (dwarf2out_finish): Use switch_to_section and the new section
548         variables.
549         * except.c (default_exception_section): Return the section instead
550         of emitting assembly code.
551         (output_function_exception_table): Use the global exception_section
552         variable instead of the target hook.  Use switch_to_section.  Remove
553         argument from call to current_function_section.
554         * final.c (HAVE_READONLY_DATA_SECTION): Delete.
555         (shorten_branches): Use pointer comparisons to detect whether the
556         text section is the same as readonly_data_section.
557         (profile_function): Use switch_to_section.  Remove argument from
558         call to current_function_section.
559         (final_scan_insn): Likewise.  Update use of last_text_section.
560         * gengtype.c (open_base_files): Add an include of output.h.
561         * output.h (text_section, data_section, readonly_data_section)
562         (ctors_section, dtors_section, bss_section, init_section)
563         (fini_section, sdata_section): Turn into section pointers.
564         (in_text_section, in_unlikely_text_section, exports_section)
565         (drectve_section, named_section, mergeable_string_section)
566         (last_text_section_name): Delete.
567         (default_exception_section, default_eh_frame_section): Return sections.
568         (SECTION_DECLARED, SECTION_NAMED): New macros.
569         (SECTION_MACH_DEP): Bump value.
570         (section_common, named_section, unnamed_section): New structures.
571         (unnamed_section_callback): New typedef.
572         (section): New union.
573         (sbss_section, exception_section, eh_frame_section): New variables.
574         (in_section, last_text_section): Turn into section pointers.
575         (get_unnamed_section, get_section, get_named_section): New functions.
576         (mergeable_constant_section, function_section): Return a section.
577         (unlikely_text_section): Likewise.
578         (current_function_section): Likewise.  Remove the decl argument.
579         (unlikely_text_section_p, switch_to_section): New functions.
580         (output_section_asm_op): New function.
581         (set_named_section_flags, named_section_flags, named_section_real)
582         (named_section_first_declaration): Delete.
583         (default_select_section, default_elf_select_section): Return a section.
584         (default_elf_select_section_1, default_function_rodata_section)
585         (default_no_function_rodata_section, default_select_rtx_section)
586         (default_elf_select_rtx_section): Likewise.
587         * rtl.h (in_data_section): Delete.
588         * sdbout.c (sdbout_one_type): Use switch_to_section.
589         * system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
590         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
591         (TARGET_ASM_EH_FRAME_SECTION): Poison.
592         * target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
593         (TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
594         (TARGET_ASM_OUT): Update after above changes.
595         * target.h (init_sections): New hook.
596         (exception_section, eh_frame_section): Delete.
597         (select_section, select_rtx_section, function_rodata_section): Return
598         a section rather than emitting assembly code.
599         * varasm.c (text_section, data_section, readonly_data_section)
600         (ctors_section, dtors_section, bss_section, init_section)
601         (fini_section): Turn into section pointers.
602         (sdata_section, sbss_section, exception_section): New variables.
603         (eh_frame_section): New variable.
604         (in_section): Make global and turn into a section pointer.
605         (last_text_section): Turn into a section pointer.
606         (unnamed_sections): New variable.
607         (in_named_name, last_text_section_name): Delete.
608         (EXTRA_SECTION_FUNCTIONS): Delete.
609         (in_named_entry): Delete.
610         (section_htab): New variable, replacing...
611         (in_named_htab): ...this deleted variable.
612         (section_entry_eq, section_entry_hash): New functions, based on...
613         (in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
614         (get_unnamed_section, get_section): New functions.
615         (unlikely_text_section): Return a section instead of emitting
616         assembly code.
617         (in_text_section, in_unlikely_text_section, in_data_section): Delete.
618         (get_named_section_flags, named_section_first_declaration): Delete.
619         (unlikely_text_section_p): New function.
620         (named_section_real, named_section): Delete.
621         (get_named_section): New function.
622         (asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
623         (function_section): Return a section rather than emitting
624         assembly code.
625         (current_function_section): Likewise.  Remove argument.  Use
626         last_text_section if nonnull, otherwise use function_section.
627         (default_function_rodata_section): Return a section rather than
628         emitting assembly code.  Use get_section.
629         (default_no_function_rodata_section): Return a section rather than
630         emitting assembly code.
631         (variable_section): Use switch_to_section and get_named_section.
632         (mergeable_string_section): Return a section rather than emitting
633         assembly code.  Use get_section.  Make static.  Don't take special
634         countermeasures for empty strings.
635         (mergeable_constant_section): Return a section rather than emitting
636         assembly code.  Use get_section.
637         (default_named_section_asm_out_destructor): Use switch_to_section
638         and get_section.
639         (default_dtor_section_asm_out_destructor): Use switch_to_section.
640         (default_named_section_asm_out_constructor): Use switch_to_section
641         and get_section.
642         (default_ctor_section_asm_out_constructor): Use switch_to_section.
643         (assemble_start_function): Likewise.  Set last_text_section to
644         NULL rather than no_section.  Change the type of save_section.
645         (assemble_zeros, assemble_variable): Use the section flags to detect
646         whether or not a section is text.
647         (assemble_static_space): Use switch_to_section.
648         (assemble_trampoline_template): Likewise.
649         (output_constant_def_contents): Use switch_to_section and
650         get_named_section.
651         (output_constant_pool_1): Use switch_to_section.  Use the section
652         flags to see whether sections contain mergeable data.
653         (init_varasm_once): Initialize section_htab instead of in_named_htab.
654         Initialize new section variables.  Call TARGET_ASM_INIT_SECTIONS.
655         (default_elf_asm_named_section): Use SECTION_DECLARED to detect
656         whether a section has already been declared.
657         (default_select_section, default_elf_select_section): Return a
658         section rather than emitting assembly code.
659         (default_elf_select_section_1): Likewise.  Use bss_section for
660         SECCAT_BSS if nonnull.  Use get_named_section.
661         (default_select_rtx_section): Return a section rather than
662         emitting assembly code.
663         (default_elf_select_rtx_section): Likewise.  Use get_named_section.
664         (file_end_indicate_exec_stack): Use switch_to_section and get_section.
665         (output_section_asm_op, switch_to_section): New functions.
666         * vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
667         get_named_section.
668
669         * doc/tm.texi: Expand the introduction to the sections documentation.
670         (TRAMPOLINE_SECTION): Document new interface.
671         (SDATA_SECTION_ASM_OP): Document new macro.
672         (READONLY_DATA_SECTION): Delete.
673         (SDATA_SECTION_ASM_OP): Document new macro.
674         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
675         (TARGET_ASM_INIT_SECTIONS): Document new hook.
676         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
677         (TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
678         (TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.
679
680 2005-12-07  Alan Modra  <amodra@bigpond.net.au>
681
682         * gcc.c (init_gcc_specs): Match braces inside conditionally
683         compiled strings.
684
685 2005-12-06  Geoffrey Keating  <geoffk@apple.com>
686
687         * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New.
688
689 2005-12-06  Aldy Hernandez  <aldyh@redhat.com>
690
691         PR C++/24138
692         * tree.c (integer_all_onesp): Always return true if all bits on.
693
694         * testsuite/g++.dg/init/array0.C: New.
695
696 2005-12-06  Adrian Straetling  <straetling@de.ibm.com>
697
698         * doc/md.texi: Adapt to implementation.
699
700 2005-12-06  Andreas Schwab  <schwab@suse.de>
701
702         * opts.c (decode_options): Fix typo in message.
703
704 2005-12-06  Alan Modra  <amodra@bigpond.net.au>
705
706         PR other/13873
707         * longlong.h: Merge PPC tests from upstream.
708
709 2005-12-06  Richard Guenther  <rguenther@suse.de>
710
711         * fold-const.c (fold_convert): Do not build and fold
712         CONVERT_EXPR, but always use NOP_EXPR.
713
714 2005-12-06  Jan Beulich  <jbeulich@novell.com>
715
716         * config/i386/i386.c (builtin_description): Use MASK_SSE2 for
717         __builtin_ia32_paddq and __builtin_ia32_subq.
718         (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
719         __builtin_ia32_pshufw.
720         * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
721
722 2005-12-05  James E Wilson  <wilson@specifix.com>
723
724         PR target/24934
725         * opts.c (decode_options): Turn off partitioning if flag_unwind_tables
726         is set.
727
728 2005-12-05  Daniel Berlin  <dberlin@dberlin.org>
729         
730         * print-tree.c (print_node): Ditto.
731         * tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL.
732         * tree-dump.c (dequeue_and_dump): Check for decl_common structure
733         before accessing DECL_ARTIFICIAL. 
734         Handle new tag tree codes.
735         * tree-flow-inline.h (clear_call_clobbered): Update for tag
736         changes.
737         (unmodifiable_var_p): Ditto.
738         * tree-flow.h (mem_tag_kind): Remove.
739         (struct var_ann_d): Remove mem_tag_kind member.
740         * tree-gimple.c (is_gimple_reg): Tags are not gimple registers.
741         * tree-pretty-print.c (dump_generic_node): Handle memory tags.
742         * tree-ssa-alias.c (init_alias_info): Update for memory tag changes.
743         (group_aliases): Ditto.
744         (setup_pointers_and_addressables): Ditto.
745         (is_escape_site): Ditto.                                          
746         (may_alias_p): Ditto.
747         (create_tag_raw): New function.
748         (create_memory_tag): Use it.
749         (dump_alias_info): Update for tags.
750         (may_be_aliased): Ditto.
751         (add_type_alias): Ditto.
752         (new_type_alias): Ditto.
753         (create_sft): Ditto.
754         (create_structure_vars): Ditto.
755         * tree-ssa-ccp.c (get_default_value): Ditto.
756         * tree-ssa-operands.c (get_expr_operands): Ditto.
757         (add_stmt_operand): Ditto.
758         (add_call_clobber_ops): Remove duplicated condition.
759         * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
760         tags.
761         * tree-tailcall.c (suitable_for_tail_opt_p): Ditto.
762         * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
763         * tree.c (init_ttree): Update structures for new tree codes.
764         (tree_code_size): Update sizes for new tree codes.
765         (make_node_stat): Don't try to set common things on minimal
766         structures.
767         (tree_node_structure): Update for tags.
768         (is_global_var): Ditto.
769         * tree.def: Add new tree codes.
770         * tree.h (MTAG_P): New macro.
771         (TREE_MEMORY_TAG_CHECK): Ditto.
772         (SSA_VAR_P): Update for tags.
773         (struct tree_memory_tag): New structure.
774         (MTAG_GLOBAL): New macro.
775         (union tree_node): Add memory tag member.
776         * treestruct.def (TS_MEMORY_TAG): New.
777         
778 2005-12-05  Dale Johannesen  <dalej@apple.com>
779
780         * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS):  Fix to match
781         what was approved (PR 24323).
782
783 2005-12-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
784
785         * doc/c-tree.texi (Function Bodies): Remove description of
786         RETURN_INIT.
787
788 2005-12-05  Joseph S. Myers  <joseph@codesourcery.com>
789
790         * doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf,
791         __floatunsixf, __floatundisf, __floatundidf, __floatunditf,
792         __floatundixf, __floatuntisf, __floatuntidf, __floatuntitf,
793         __floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3,
794         __muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3,
795         __divxc3): Document.
796
797 2005-12-05  Geoffrey Keating  <geoffk@apple.com>
798
799         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Preserve
800         previous behaviour.
801         * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define to
802         hook_bool_void_false.
803         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
804         * config/darwin.c (darwin_cxx_determine_class_data_visibility): New.
805
806         * config/darwin.c (machopic_select_section): It's not defined
807         as weak if it's only marked as weak_import.
808         
809         * config/darwin-protos.h (darwin_cxx_determine_class_data_visibility):
810         Prototype.
811
812         * varasm.c (default_binds_local_p_1): Weakrefs don't bind locally.
813         A hidden weak object does bind locally.  Strong linkonce data
814         counts like any other strong symbol for binding.
815         (weak_finish_1): Don't specially handle weakrefs, they no longer
816         arrive here.
817         (assemble_alias): Weakrefs can't be TREE_PUBLIC yet.
818         * c-common.c (handle_alias_attribute): Allow static aliases
819         of variables.
820         (handle_weakref_attribute): Don't call declare_weak on weakrefs.
821         * gthr-dce.h: Make weakrefs static.
822         * gthr-tpf.h: Likewise.
823         * gthr-solaris.h: Likewise.
824         * gthr-posix.h: Likewise.
825         * gthr-posix95.h: Likewise.
826         * config/darwin.c (darwin_encode_section_info): static weakref
827         variables are not necessarily defined in this translation unit.
828         * doc/extend.texi (Function Attributes): Mention that an alias
829         attribute creates a definition for the thing it's attached to.
830         Change the documentation for weakref to say that the thing
831         it's attached to must be static.
832
833         * config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so
834         we don't go into an infinite loop.
835
836 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
837
838         * config/rs6000/predicates.md (logical_const_operand): Split
839         out of logical_operand.
840         (logical_operand): Use it.
841         * config/rs6000/rs6000.md (cmp -> xor peephole2): Use
842         logical_const_operand.
843
844 2005-12-05  Jan Beulich  <jbeulich@novell.com>
845
846         * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS
847         and IX86_BUILTIN_CMPNESS.
848         (ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti.
849         * config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly.
850         * config/i386/i386.md (movti_internal): Correct type attribute.
851         Simplify mode attribute.
852         (movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal):
853         Correct type attribute.
854         (absxf2): Correct operator.
855         * config/i386/mmx.md (mov<mode>_internal_rex64, mov<mode>_internal,
856         movv2sf_internal_rex64, movv2sf_internal): Correct type attribute.
857         * config/i386/sse.md (mov<mode>_internal, movv2df_internal): Simplify
858         mode attribute.
859         (sse2_vmsqrtv2df2): Correct mode attribute.
860
861 2005-12-05  Jan Beulich  <jbeulich@novell.com>
862
863         * config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by
864         16 bits. Provide insn pattern for this case.
865
866 2005-12-05  Jan Beulich  <jbeulich@novell.com>
867
868         * libgcc2.c (__popcountSI2): Don't use wide type for iterator and
869         result.
870         (__popcountDI2): Likewise.
871
872 2005-12-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
873
874         PR target/25166
875         * pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and
876         _U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs.
877         * pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New
878         functions.
879
880 2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>
881
882         * c-typeck.c (null_pointer_constant_p): New function.
883         (build_conditional_expr, build_c_cast, convert_for_assignment,
884         build_binary_op): Use it.
885
886 2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>
887
888         * c-common.c (binary_op_error): Do not allow NOP_EXPR.
889         (c_common_truthvalue_conversion): Handle NOP_EXPR the same as
890         CONVERT_EXPR.
891         (check_function_arguments_recurse): Allow both NOP_EXPR and
892         CONVERT_EXPR but check conversions preserve precision.
893         * c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR
894         but check conversions preserve precision.
895         (build_unary_op): Don't allow NOP_EXPR.  Use gcc_unreachable () in
896         default case.
897
898 2005-12-04  Roger Sayle  <roger@eyesopen.com>
899
900         PR c/7776
901         * common.opt (Wstring-literal-comparison): New command line option.
902         * c-opts.c (c_common_handle_option): Set it with -Wall.
903         * c-typeck.c (parser_build_binary_op): Issue warning if either
904         operand of a comparison operator is a string literal, except for
905         testing equality or inequality against NULL.
906
907         * doc/invoke.texi: Document new -Wstring-literal-comparison option.
908
909 2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
910
911         * c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead
912         of building a NOP_EXPR.
913         (c_alignof_expr): Likewise.  Handle CONVERT_EXPR the same as
914         NOP_EXPR.
915         * c-convert.c (convert): Use fold_convert instead of building
916         NOP_EXPRs and CONVERT_EXPRs directly.  Don't special case
917         c_objc_common_truthvalue_conversion returning a NOP_EXPR.  Remove
918         #if 0 code.
919         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
920         NOP_EXPR the same as CONVERT_EXPR.
921         * c-typeck.c (build_function_call): Use fold_convert instead of
922         building a NOP_EXPR directly.
923         (build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR.
924
925 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
926
927         PR rtl-optimization/25197
928         * dwarf2out.c (dwarf2out_frame_debug_expr <rule 12>): Assert we
929         have a reg.
930
931 2005-12-02  Stuart Hastings  <stuart@apple.com>
932
933         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic
934         warning.
935
936 2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
937
938         * c-typeck.c (default_function_array_conversion,
939         build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR.
940         (build_conditional_expr): Apply integer_zerop to orig_op1 and
941         orig_op2.  Don't check them for NOP_EXPR.
942         (build_c_cast, convert_for_assignment): Don't check for NOP_EXPR
943         around integer zero.
944
945 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
946
947         * config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p,
948         toc_save_offset, toc_size, lr_size.
949         (rs6000_stack_info): Use memset rather than bss struct copy to init.
950         Test rs6000_ra_ever_killed last in condition setting lr_save_p.
951         Adjust for removal of unused rs6000_stack_t fields.
952         (debug_stack_info): Adjust.
953         (rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE.  Test for calls
954         first, and don't bother checking for set/inc of lr on sibcalls.
955         (rs6000_emit_epilogue): Tidy code restoring stack pointer.
956
957 2005-12-02  Jakub Jelinek  <jakub@redhat.com>
958
959         PR target/25199
960         * config/i386/i386.md (movqi_1): Only force imovx for alternative
961         5 if operand 1 is not aligned.  Undo previous constraint change.
962         * config/i386/predicates.md (aligned_operand): Use MEM_ALIGN.
963
964 2005-12-02  Richard Guenther  <rguenther@suse.de>
965
966         * tree.h (build): Remove prototype.
967         (build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros.
968         * tree.c (build): Remove.
969         (build0_stat): Update comment.
970
971 2005-12-02  Richard Guenther  <rguenther@suse.de>
972
973         * tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build.
974         * tree-complex.c (update_complex_assignment, expand_complex_div_wide):
975         Likewise.
976         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref,
977         maybe_fold_offset_to_component_ref): Likewise.
978         * tree-ssa-dom.c (thread_across_edge,
979         simplify_rhs_and_lookup_avail_expr,
980         find_equivalent_equality_comparison, record_equivalences_from_stmt):
981         Likewise.
982         * gimple-low.c (lower_function_body, lower_return_expr): Likewise.
983         * tree-eh.c (do_return_redirection, honor_protect_cleanup_actions,
984         lower_try_finally_switch): Likewise.
985         * tree-if-conv.c (add_to_dst_predicate_list,
986         replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise.
987         * gimplify.c (internal_get_tmp_var, gimple_build_eh_filter,
988         voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr,
989         gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr,
990         gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr,
991         shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr,
992         gimplify_init_ctor_eval, gimplify_init_constructor,
993         gimplify_variable_sized_compare, gimplify_boolean_expr,
994         gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr,
995         gimplify_expr, gimplify_body, gimplify_function_tree,
996         force_gimple_operand): Likewise.
997         * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
998         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for,
999         mx_register_decls): Likewise.
1000         * tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain,
1001         get_frame_field, finalize_nesting_tree_1): Likewise.
1002         * tree-inline.c (setup_one_parameter): Likewise.
1003         * tree-vect-transform.c (vectorizable_condition): Likewise.
1004         * tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies):
1005         Likewise.
1006         * tree-profile.c (tree_gen_edge_profiler): Likewise.
1007         * tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise.
1008         * c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise.
1009         * tree-chrec.h (build_polynomial_chrec): Likewise.
1010
1011 2005-12-02  Richard Guenther  <rguenther@suse.de>
1012
1013         * config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i,
1014         alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable.
1015         * config/frv/frv.c (frv_expand_builtin_va_start): Likewise.
1016         * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
1017         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1018         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1019         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
1020         Likewise.
1021         * config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr,
1022         sh_adjust_unroll_max): Likewise.
1023         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
1024         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1025         * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr):
1026         Likewise.
1027         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1028         Likewise.
1029         * config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr):
1030         Likewise.
1031
1032 2005-12-02  Richard Guenther  <rguenther@suse.de>
1033
1034         * tree-vrp.c (build_assert_expr_for, process_assert_insertions_for,
1035         simplify_cond_using_ranges): Use buildN instead of build.
1036         * tree-tailcall.c (adjust_accumulator_values,
1037         adjust_return_value): Likewise.
1038         * tree-sra.c (generate_one_element_ref, generate_copy_inout,
1039         generate_element_copy, generate_element_zero,
1040         generate_one_element_init): Likewise.
1041         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise.
1042         * lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression,
1043         lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest,
1044         perfect_nestify): Likewise.
1045
1046 2005-12-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1047
1048         * pa.c (pa_secondary_reload): Revise initialization of variable regno.
1049
1050 2005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1051
1052         * ggc.h (GGC_RESIZEVEC): New.
1053
1054 2005-12-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1055
1056         * gcc.c (execute): Improve readability.
1057
1058 2005-12-02  Richard Guenther  <rguenther@suse.de>
1059
1060         * tree-cfg.c (mark_used_vars): New function.
1061         (dump_function_to_file): Dump only used VAR_DECLs.
1062
1063 2005-12-02  Richard Guenther  <rguenther@suse.de>
1064
1065         * convert.c (convert_to_integer): Fix compare for nonpositive
1066         constant to use tree_int_cst_sgn <= 0.
1067
1068 2005-12-02  Richard Guenther  <rguenther@suse.de>
1069
1070         * convert.c (convert_to_integer): Use fold_convert instead
1071         of fold_build1 (NOP_EXPR, ...).  Use tree_int_cst_sgn < 0
1072         instead of comparing against 0.  Use build_int_cst instead
1073         of converting integer_zero_node.
1074
1075 2005-12-02  Richard Guenther  <rguenther@suse.de>
1076
1077         * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR
1078         and RROTATE_EXPR.
1079  
1080 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
1081
1082         PR target/21017
1083         * combine.c (simplify_logical <IOR>): Simplify more patterns to
1084         rotates.
1085
1086 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
1087
1088         PR middle-end/25176
1089         * function.c (expand_function_end): Emit blockage for unwinder
1090         after return label.
1091
1092 2005-12-01  Roger Sayle  <roger@eyesopen.com>
1093
1094         * tree.h (TREE_OVERFLOW): Make this flag/predicate specific to
1095         constant nodes, i.e. INTEGER_CST, REAL_CST, etc...
1096         * tree-vrp.c (compare_values): Only check TREE_OVERFLOW for
1097         integer constant comparisons.
1098
1099 2005-12-02  Jon Grimm  <jgrimm2@us.ibm.com>
1100             Janis Johnson  <janis187@us.ibm.com>
1101             David Edelsohn  <dje@watson.ibm.com>
1102             Ben Elliston  <bje@au.ibm.com>
1103
1104         * dfp.h, dfp.c: New files.
1105         * Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables.
1106         (DECNUM_H): Likewise.
1107         (LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER).
1108         (INCLUDES): Append $(DECNUMINC).
1109         (OBJS-common): Add dfp.o.
1110         (dfp.o): New rule.
1111         * real.h (EXP_BITS): Pinch one bit to ..
1112         (struct real_value): Add decimal field.
1113         (real_format): Change table size, update documentation.
1114         (REAL_MODE_FORMAT): Update for to handle float, decimal float.
1115         (real_from_string3): Declare.
1116         (decimal_single_format): Declare.
1117         (decimal_double_format): Declare.
1118         (decimal_quad_format): Declare.
1119         (REAL_VALUE_TO_TARGET_DECIMAL32): New.
1120         (REAL_VALUE_TO_TARGET_DECIMAL64): New.
1121         (REAL_VALUE_TO_TARGET_DECIMAL128): New.
1122         * real.c: Include dfp.h.
1123         (normalize): Early return for decimal floats.
1124         (do_add): Zero decimal field.
1125         (do_compare): Call do_decimal_compare for decimal floats.
1126         (do_fix_trunc): Likewise, call decimal_do_fix_trunc.
1127         (real_arithmetic): Call decimal_real_arithmetic for decimal
1128         floating point operands.
1129         (real_identical): If a and b are of differing radix, return false.
1130         (real_to_integer): Call decimal_real_to_integer if the value is a
1131         decimal float.
1132         (real_to_integer2): Likewise, call decimal_real_to_integer2.
1133         (real_to_decimal): Likewise, call decimal_real_to_decimal.
1134         (real_to_hexadecimal): Place "N/A" in the return string for
1135         decimal float.
1136         (real_from_string3): New variant, given a mode.
1137         (real_maxval): Use decimal_real_maxval for decimal floats.
1138         (round_for_format): Use decimal_round_for_format for decimals.
1139         (real_convert): Use decimal_real_convert where appropriate.
1140         (significand_size): Handle base 10.
1141         (encode_decimal_single, decode_decimal_single,
1142         encode_decimal_double, decode_decimal_double, encode_decimal_quad,
1143         decode_decimal_quad): New functions.
1144         (decimal_single_format): New.
1145         (decimal_double_format): New.
1146         (decimal_quad_format): New.
1147         * machmode.def: Add SD, DD and TD decimal floating point modes.
1148         * machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P):
1149         Include MODE_DECIMAL_FLOAT.
1150         (DECIMAL_FLOAT_MODE_P): New.
1151         * mode-classes.def (MODE_DECIMAL_FLOAT): New mode class.
1152         * genmodes.c (struct mode_data): Add counter field.
1153         (struct mode_data): Update comment for format.
1154         (blank_mode): Initialise counter field.
1155         (new_mode): Increment counter field for each mode defined.
1156         (complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode
1157         using a format.
1158         (make_complex_modes): Handle modes containing `D'.
1159         (DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New.
1160         (make_decimal_float_mode): New.
1161         (reset_float_format): Handle MODE_DECIMAL_FLOAT.
1162         (cmp_modes): Compare counter field if other characteristics
1163         similar.
1164         (emit_real_format_for_mode): Support formats for decimal floats.
1165         * doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes.
1166         Document MODE_DECIMAL_FLOAT.
1167
1168 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
1169
1170         * simplify-rtx.c (simplify_plus_minus): Do simplify constants.
1171         Delete dead code.
1172
1173 2005-12-01  Richard Henderson  <rth@redhat.com>
1174
1175         * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL.
1176
1177 2005-12-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1178
1179         * builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New.
1180
1181         * config/pa/pa.c (pa_init_builtins): If we detect
1182         DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to
1183         putc_unlocked.
1184
1185 2005-12-01  Richard Guenther  <rguenther@suse.de>
1186
1187         * fold-const.c (fold_binary): Use fold_build2, not
1188         fold (build (...)).
1189
1190 2005-12-01  Nathan Sidwell  <nathan@codesourcery.com>
1191
1192         * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves.
1193
1194         * vec.h (VEC_block_remove): New.
1195
1196 2005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1197
1198         PR c/13384
1199         * c-common.c (lvalue_error): Fix wording.
1200
1201 2005-12-01  Richard Guenther  <rguenther@suse.de>
1202
1203         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix
1204         thinko in last patch.
1205
1206 2005-12-01  Geoffrey Keating  <geoffk@apple.com>
1207
1208         * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather
1209         than -flat_namespace.
1210
1211 2005-12-01  Ben Elliston  <bje@au.ibm.com>
1212
1213         * mklibgcc.in: Parameterise the script to build soft float
1214         functions by iterating over each type, rather than cloning the
1215         code for each type.
1216
1217 2005-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1218
1219         PR middle-end/25158
1220         * builtins.c (fold_builtin_fputs): Defer check for missing
1221         replacement functions.
1222
1223 2005-11-30  Kean Johnston  <jkj@sco.com>
1224
1225         * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
1226         simply its presense in case targets #define SUPPORTS_ONE_ONLY 0.
1227
1228 2005-11-30  Richard Guenther  <rguenther@suse.de>
1229
1230         PR tree-optimization/22501
1231         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
1232         function split out from ...
1233         (forward_propagate_addr_expr): ... here.  Use it to propagate
1234         ADDR_EXPRs to all uses.
1235
1236 2005-11-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1237
1238         * tree.h (CASE_FLT_FN, CASE_INT_FN): New macros.
1239         * builtins.c (expand_builtin_mathfn): Use them.
1240         (expand_builtin_mathfn_2): Likewise.
1241         (expand_builtin_mathfn_3): Likewise.
1242         (expand_builtin_int_roundingfn): Likewise.
1243         (expand_builtin): Likewise.
1244         (integer_valued_real_p): Likewise.
1245         (fold_builtin_int_roundingfn): Likewise.
1246         (fold_builtin_bitop): Likewise.
1247         (fold_builtin_logarithm): Likewise.
1248         (fold_builtin_1): Likewise.
1249         * convert.c (convert_to_integer): Likewise.
1250         * fold-const.c (negate_mathfn_p): Likewise.
1251         (tree_expr_nonnegative_p): Likewise.
1252
1253 2005-11-30  Dale Johannesen  <dalej@apple.com>
1254             Andrew Pinski  <pinskia@physics.uc.edu>
1255
1256         * combine.c (find_split_point):  Sign extend bitmask
1257         when changing bitfield assignment to IOR of AND.
1258
1259 2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>
1260
1261         * config/ms1/ms1.md (decrement_and_branch_until_zero): Add early
1262         clobber to scratch reg.
1263         (*decrement_and_branch_until_zero_no_clobber): Remove.
1264         (decrement_and_branch peephole): Add dummy scratch reg to pattern.
1265         (mulhish3): Use TARGET_MS1_16_003, TARGET_MS2.
1266         * config/ms1/ms1.opt (mmul): Remove.
1267         * config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names.
1268         (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002.
1269
1270 2005-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1271             Bernd Schmidt  <bernd.schmidt@analog.com>
1272
1273         * pa/predicates.md (symbolic_operand): Add comment.
1274         * pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders.
1275         * pa/pa-protos.h (pa_secondary_reload_class): Delete.
1276         * pa/pa.c (TARGET_SECONDARY_RELOAD): Define.
1277         (pa_secondary_reload_class): Delete.
1278         (pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS
1279         and pa_secondary_reload_class.  Reorder some checks.  Update inline
1280         copy of symbolic operand.
1281         * pa/pa.h (SECONDARY_RELOAD_CLASS): Delete.
1282
1283 2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>
1284
1285         * loop-doloop.c (add_test): Only add jump notes if we did emit a
1286         jump.
1287
1288 2005-11-30  Jeff Law  <law@redhat.com>
1289
1290         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly
1291         handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1292
1293 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
1294
1295         * config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument.
1296         Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case.
1297         (ia64_expand_move): Adjust caller.
1298
1299         * config/ia64/ia64.c (ia64_expand_atomic_op): Only use
1300         fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS
1301         negate VAL.
1302
1303 2005-11-30  Paolo Bonzini  <bonzini@gnu.org>
1304
1305         * simplify-rtx.c (simplify_plus_minus): Remove final parameter.
1306         Always produce an output if we can remove NEGs or canonicalize
1307         (minus (minus ...)) expressions.  Provide a fast path for the
1308         two-operand case.
1309         (simplify_gen_binary): Do not call simplify_plus_minus.
1310         (simplify_binary_operation_1): Reassociate at the end of the
1311         function.
1312
1313 2005-11-29  Evan Cheng  <evan.cheng@apple.com>
1314
1315         * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low
1316         moves and unpack to speed up.
1317
1318 2005-11-29  David S. Miller  <davem@sunset.davemloft.net>
1319
1320         * config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd
1321         argument, they are always sparc_compare_op0 and sparc_compare_op1.
1322         (gen_v9_scc): Update callers.
1323         * config/sparc/sparc.md: Likewise.
1324         * config/sparc/sparc-protos.h: Update extern declaration.
1325
1326         * tree-into-ssa.c (rewrite_into_ssa): Fix comment typo.
1327
1328 2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
1329
1330         * fold-const.c (negate_expr) <case BIT_NOT_EXPR>: Add break after
1331         the if.
1332
1333 2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
1334
1335         * fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR.
1336         (fold_unary) <case NEGATE_EXPR>: Move -(~a) transformation to ...
1337         (negate_expr): Here.
1338
1339 2005-11-29  Ben Elliston  <bje@au.ibm.com>
1340
1341         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN):
1342         Fix typo in comment.
1343
1344 2005-11-29  Ben Elliston  <bje@au.ibm.com>
1345
1346         * Makefile.in (clean-target): Depend on clean-target-libgcc.
1347         (clean-target-libgcc): Import rule from the top-level Makefile.in.
1348
1349 2005-11-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1350
1351         PR middle-end/20109
1352         PR middle-end/25120
1353         * builtins.c (init_target_chars): New.
1354         (expand_builtin_printf, expand_builtin_fprintf,
1355         expand_builtin_sprintf, fold_builtin_sprintf,
1356         maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
1357         fold_builtin_snprintf_chk, fold_builtin_printf,
1358         fold_builtin_fprintf): Check for matching format strings using
1359         the target charset.
1360
1361 2005-11-29  Paul Brook  <paul@codesourcery.com>
1362
1363         * config.gcc: Do not use fixproto on m68k-elf.
1364
1365 2005-11-28  Roger Sayle  <roger@eyesopen.com>
1366
1367         * expmed.c (div_cost): Replace with...
1368         (sdiv_cost, udiv_cost): New.
1369         (init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost.
1370         Rename the div and mod fields, used to initialize sdiv_pow2_cheap
1371         and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion.
1372         (expand_divmod): Replace use of div_cost with either sdiv_cost
1373         or udiv_cost depending upon the signedness of the operation.
1374
1375 2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
1376
1377         PR libfortran/24991
1378         * config/darwin.c (machopic_indirection_name,
1379         machopic_output_indirection): Follow transparent alias chain.
1380
1381 2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
1382
1383         * varasm.c (ultimate_transparent_alias_target): Add comment.
1384
1385 2005-11-28  Kazu Hirata  <kazu@codesourcery.com>
1386
1387         * config/m68k/m68k.c (notice_update_cc): Use SET_DEST and
1388         SET_SRC instead of XEXP where appropriate.
1389
1390 2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>
1391
1392         * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use
1393         __builtin_expect.
1394
1395 2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>
1396
1397         * config/fp-bit.h (LSHIFT): Take shift count parameter.
1398         * config/fp-bit.c (_fpadd_parts): Shift in one go instead of one
1399         bit at a time.
1400
1401 2005-11-28  Bernd Schmidt  <bernd.schmidt@analog.com>
1402
1403         * config/bfin/bfin.c (bfin_secondary_reload): Renamed from
1404         secondary_input_reload_class, made static.  Adapt to new
1405         infrastructure.
1406         (secondary_output_reload_class): Delete.
1407         (TARGET_SECONDARY_RELOAD): New macro.
1408         * config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS,
1409         SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
1410
1411 2005-11-28  Nathan Sidwell  <nathan@codesourcery.com>
1412
1413         PR c++/21166
1414         * c-decl.c (finish_struct):  Only set DECL_PACKED on a field
1415         when its natural alignment is > BITS_PER_UNIT.
1416         * stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08.
1417         * c-common.c (handle_packed_attribute): Ignore packing on a field
1418         whose type is naturally char aligned.
1419
1420 2005-11-28  Richard Guenther  <rguenther@suse.de>
1421
1422         * c-common.c (strict_aliasing_warning): Handle all
1423         component-ref like accesses.
1424
1425 2005-11-28  Roger Sayle  <roger@eyesopen.com>
1426             Uros Bizjak  <uros@kss-loka.si>
1427
1428         PR middle-end/20219
1429         * fold-const.c (fold binary) <RDIV_EXPR>: Optimize
1430         sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x)
1431         when flag_unsafe_math_optimizations is set and
1432         we don't care about NaNs or Infinities.
1433
1434         Move x/expN(y) and x/pow(y,z) transformation into common
1435         flag_unsafe_math_optimizations section.
1436
1437 2005-11-27  Mark Mitchell  <mark@codesourcery.com>
1438
1439         * gcc.c (main): Change type of argv to "char **".
1440
1441 2005-11-28  Alan Modra  <amodra@bigpond.net.au>
1442
1443         * doc/invoke.texi (powerpc msdata-data): Static data doesn't go in
1444         small data sections.
1445         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global.
1446         * config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare.
1447         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to..
1448         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm.  Don't
1449         output locals to sbss if !rs6000_elf_in_small_data_p.
1450         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above.
1451
1452 2005-11-28  Alan Modra  <amodra@bigpond.net.au>
1453
1454         PR target/24997
1455         * config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern
1456         generated by reload.
1457         * config/rs6000/predicates.md (indexed_or_indirect_operand): Use
1458         indexed_or_indirect_address.
1459         (indexed_or_indirect_address): Don't test for base reg.  Call
1460         address_operand last.  Make it a special predicate.
1461
1462 2005-11-27  Kazu Hirata  <kazu@codesourcery.com>
1463
1464         * config/m68k/m68k.c (notice_update_cc): Remove useless code.
1465
1466 2005-11-27  Andrew Pinski  <pinskia@physics.uc.edu>
1467
1468         PR middle-end/24575
1469         * fold-const.c (negate_expr_p): Add case for signed divides if overflow
1470         is undefined.
1471         (negate_expr): Likewise.
1472
1473 2005-11-27  Andreas Schwab  <schwab@suse.de>
1474
1475         * config/m68k/m68k.c: Reindent and fix whitespace, remove
1476         redundant parens.
1477
1478 2005-11-27  Steven Bosscher  <stevenb@suse.de>
1479
1480         * cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it
1481         has EH predecessor edges.
1482
1483 2005-11-26  Eric Christopher  <echristo@apple.com>
1484
1485         * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial
1486         register stalls by zero extending to the full register.
1487
1488 2005-11-27  Joseph S. Myers  <joseph@codesourcery.com>
1489
1490         * config/floatunsisf.c, config/floatunsidf.c,
1491         config/floatunsixf.c, config/floatunsitf.c: New files.
1492         * config/ia64/t-hpux: Add floatunsitf.c.
1493         * config/ia64/ia64.c (ia64_init_libfuncs): Use
1494         _U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion.
1495
1496 2005-11-26  Richard Henderson  <rth@redhat.com>
1497
1498         * c-lex.c (pragma_lex): Rename from c_lex.
1499         * c-pch.c: Update for pragma_lex rename.
1500         * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise.
1501         * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise.
1502         * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise.
1503         * config/sol2-c.c, config/v850/v850-c.c: Likewise.
1504         * doc/tm.texi: Likewise.
1505
1506 2005-11-26  Andrew Pinski  <pinskia@physics.uc.edu>
1507
1508         PR middle-end/23669
1509         * fold-const.c (fold_binary): Convert -A/-B to A/B for signed types
1510         when overflow is undefined.
1511
1512 2005-11-26  Hans-Peter Nilsson  <hp@axis.com>
1513
1514         * doc/md.texi (Insn Canonicalizations): Refer to the
1515         function commutative_operand_precedence for further rules.
1516
1517 2005-11-25  Roger Sayle  <roger@eyesopen.com>
1518
1519         PR middle-end/21309
1520         * expmed.c (choose_mult_variant): Return immediately when mult_cost
1521         is less than zero.  Limit mult_cost to a reasonable upper bound for
1522         the synthetic multiplication sequence.
1523
1524 2005-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1525
1526         PR middle-end/25022
1527         * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
1528         fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf):
1529         Lookup the explicit replacement functions for any unlocked
1530         stdio builtin transformations.
1531
1532 2005-11-25  Hans-Peter Nilsson  <hp@axis.com>
1533
1534         * config/cris/cris.md ("reload_out<mode>"): Mark operand 2 as
1535         earlyclobber.
1536         * targhooks.c (default_secondary_reload): Don't require operand 2
1537         for an input reload to be earlyclobber.
1538
1539 2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1540
1541         * fold-const.c (negate_mathfn_p): Fix comment and add support
1542         for BUILT_IN_CBRT, BUILT_IN_SINH, BUILT_IN_TANH, BUILT_IN_ASINH,
1543         BUILT_IN_ATANH.
1544
1545 2005-11-25  Joseph S. Myers  <joseph@codesourcery.com>
1546
1547         PR middle-end/24998
1548         * config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and
1549         _Q_ulltoq for unsigned conversions from SImode and DImode to
1550         TFmode.
1551
1552 2005-11-25  Alan Modra  <amodra@bigpond.net.au>
1553
1554         * config/rs6000/ppc64-fp.c (__floatunditf): New function.
1555         (__floatundidf, __floatundisf): Likewise.
1556
1557 2005-11-25  David Edelsohn  <edelsohn@gnu.org>
1558
1559         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete.
1560         (rs6000_override_options): Remove initialization of
1561         rs6000_sr_alias_set.
1562         (rs6000_emit_eh_reg_restore): Use gen_frame_mem.
1563         (rs6000_emit_stack_tie): Same.
1564         (emit_frame_save): Same.
1565         (gen_frame_mem_offset): Same.
1566         (rs6000_emit_prologue): Same.
1567         (rs6000_emit_epilogue): Same.
1568
1569 2005-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
1570
1571         PR middle-end/24989
1572         * fold-const.c (fold_build): Convert bool_var != 1 and
1573         bool_var == 0 to !bool_var.
1574
1575 2005-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
1576
1577         PR middle-end/24990
1578         * fold-const.c (fold_binary): Fold (~a) == C to a == ~C
1579         for C being INTEGER_CST.  Likewise for !=.
1580
1581 2005-11-25  Joseph S. Myers  <joseph@codesourcery.com>
1582
1583         PR middle-end/24998
1584         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for
1585         unsigned conversions from SImode to TFmode.
1586
1587 2005-11-24  Bernd Schmidt  <bernd.schmidt@analog.com>
1588
1589         * expr.c (expand_expr_real_1): Fix error in last change.
1590
1591 2005-11-24  J"orn Rennecke <joern.rennecke@st.com>
1592
1593         * caller-save.c: (this_insn_sets): Move into:
1594         (save_call_clobbered_regs).
1595         (mark_set_regs): Get this_insn_sets from data.
1596
1597         (save_call_clobbered_regs): Take sets of the return value by
1598         sibcalls into account.
1599
1600 2005-11-24  J"orn Rennecke <joern.rennecke@st.com>
1601         PR target/21623:
1602
1603         * regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove
1604         SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests.
1605         (init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test.
1606         (memory_move_secondary_cost, init_reg_autoinc): Remove
1607         SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests.
1608         Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with
1609         secondary_reload_class call.
1610         (copy_cost): Likewise.  Add new parameter prev_sri.  Changed all
1611         callers.
1612         * reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks.
1613         (push_secondary_reload): Use secondary_reload target hook.
1614         (secondary_reload_class, scratch_reload_class): New functions.
1615         (push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and
1616         SECONDARY_OUTPUT_RELOAD_CLASS tests.  Replace
1617         SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call.
1618         * reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test.
1619         (secondary_reload_class, scratch_reload_class): Declare.
1620         * reload1.c: Include target.h.
1621         (reload_adjust_reg_for_temp): New function.
1622         (reload_adjust_reg_for_icode): Likewise.
1623         (choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test.
1624         Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class
1625         call.
1626         (emit_input_reload_insns): Likewise.  Rewrite secondary reload checks
1627         for inheritance.  Support case when both secondary & tertiary reloads
1628         are for intermediate registers.
1629         (emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use
1630         with secondary_reload_class call.  Support case when both secondary
1631         & tertiary reloads are for intermediate registers.
1632         * target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition.
1633         (TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD.
1634         * target.h (secondary_reload_info): New struct / typedef.
1635         (struct gcc_target): New member secondary_reload.
1636         * targhooks.c Include reload.h, optabs.h and recog.h.
1637         (default_secondary_reload): New function.
1638         * targhooks.h (default_secondary_reload): Declare.
1639         * doc/tm.texi: Document secondary_reload target hook.  Update
1640         description of SECONDARY_*RELOAD_CLASS and reload_{in,out}<mode>.
1641         * doc/md.texi: Likewise.
1642
1643         * sh-protos.h (sh_secondary_reload): Declare.
1644         * sh.c (TARGET_SECONDARY_RELOAD): Override.
1645         (sh_secondary_reload): New function.
1646         * sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define.
1647         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
1648         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
1649         (HAVE_SECONDARY_RELOADS): Define.
1650         * sh.md (reload_indf): Rename to:
1651         (reload_indf__frn).
1652         (reload_outdf): Rename to:
1653         (reload_outdf__RnFRm).
1654         (reload_insf): Rename to:
1655         (reload_insf__frn).
1656         (reload_insi): Rename to:
1657         (reload_insi__i_fpul).
1658
1659 2005-11-24  Uros Bizjak  <uros@kss-loka.si>
1660
1661         * configure.ac: Require at least texinfo 4.4.
1662         * configure: Regenerate.
1663
1664         * doc/install.texi (Tools/packages necessary for building GCC):
1665         Update required version of texinfo to at least 4.4.
1666         (Installing GCC: Building): Update required version of texinfo
1667         to at least 4.4.
1668         (Installing GCC: Final installation): Update required version
1669         of texi2dvi to at least 4.4.
1670         (Host/target specific installation notes for GCC): Update required
1671         version of texinfo to at least 4.4.
1672
1673 2005-11-24  Richard Guenther  <rguenther@suse.de>
1674         Dirk Mueller <dmueller@suse.de>
1675
1676         PR c++/14024
1677         * c-common.h (strict_aliasing_warning): Declare.
1678         * c-common.c (strict_aliasing_warning): New function,
1679         split out from ...
1680         * c-typeck.c (build_c_cast): ... here.
1681
1682 2005-11-24  Paolo Bonzini  <bonzini@gnu.org>
1683
1684         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
1685         to order operands.
1686         (swap_commutative_operands_with_target): New.
1687
1688 2005-11-24  Paolo Bonzini  <bonzini@gnu.org>
1689
1690         * gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes
1691         also when doing PRE, rather than only for global CPROP.
1692
1693 2005-11-24  Ben Elliston  <bje@au.ibm.com>
1694
1695         * machmode.h (CLASS_HAS_WIDER_MODES_P): New macro.
1696         * optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve
1697         formatting.
1698         (expand_twoval_unop): Likewise.
1699         (widen_clz): Likewise.
1700         (expand_parity): Likewise.
1701         (expand_unop): Likewise.
1702         (emit_cmp_and_jmp_insn_1): Likewise.
1703         (prepare_float_lib_cmp): Likewise.
1704
1705 2005-11-24  Ben Elliston  <bje@au.ibm.com>
1706
1707         * optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P.
1708         Remove unused `class' variable.
1709
1710 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1711
1712         PR c++/21667
1713         * c-typeck.c (build_array_ref): Avoid code duplicate.  Use common
1714         C/C++ diagnostic function warn_array_subscript_with_type_char.
1715         * c-common.h (warn_array_subscript_with_type_char): Declare.
1716         * c-common.c (warn_array_subscript_with_type_char): Define.
1717
1718 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1719
1720         PR c/21668
1721         * c-decl.c (grokdeclarator): Don't warn for 'extern const' when
1722         compiling at the intersection of C and C++.
1723
1724 2005-11-23  Mark Mitchell  <mark@codesourcery.com>
1725
1726         * doc/invoke.texi: For man pages, include gcc-vers.texi.
1727         List @file in the option summary.  Include the libiberty
1728         documentation for @file.
1729         * gcc.c (main): Call expandargv.
1730         * Makefile.in (gcc-vers.texi): Define srcdir.
1731
1732 2005-11-23  Diego Novillo  <dnovillo@redhat.com>
1733
1734         * passes.c (init_optimization_passes): Document
1735         sequencing of passes.
1736
1737 2005-11-23  Kazu Hirata  <kazu@codesourcery.com>
1738
1739         * config/m68k/predicates.md (pcrel_address, extend_operator,
1740         post_inc_operand, pre_dec_operand): Remove redundant
1741         conditionals.
1742         (const_uint32_operand, const_sint32_operand): Use gcc_assert
1743         instead of abort.
1744         (valid_dbcc_comparison_p): Rewrite in the lisp style.
1745
1746 2005-11-23  Ben Elliston  <bje@au.ibm.com>
1747
1748         * dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float.
1749
1750 2005-11-22  J"orn Rennecke <joern.rennecke@st.com>
1751
1752         Preparatory work for PR target/21623:
1753         * alpha.c (secondary_reload_class): Rename to:
1754         (alpha_secondary_reload_class).
1755         * alpha.h, alpha-protos.h: Likewise.
1756         * mn10300.c (secondary_reload_class): Rename to:
1757         (mn10300_secondary_reload_class).
1758         * mn10300.h, mn10300-protos.h: Likewise.
1759         * pa.c (secondary_reload_class): Rename to:
1760         (pa_secondary_reload_class).
1761         * pa.h, pa-protos.h: Likewise.
1762         * rs6000.c (secondary_reload_class): Rename to:
1763         rs6000_secondary_reload_class.
1764         * rs6000.h, rs6000-protos.h: Likewise.
1765
1766 2005-11-22  Eric Botcazou  <ebotcazou@adacore.com>
1767
1768         PR middle-end/22561
1769         * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF.
1770
1771 2005-11-22  Ian Lance Taylor  <ian@airs.com>
1772
1773         * optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not
1774         a mode_class.
1775         (prepare_cmp_insn): Likewise.
1776
1777 2005-11-22  Kazu Hirata  <kazu@codesourcery.com>
1778
1779         PR target/23435
1780         * m68k.md (zero_extendsidi2): Force operands[1] to a register
1781         if both operands[0] and operands[1] are memory.
1782
1783 2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
1784
1785         PR middle-end/23606
1786         * fold-const.c (fold_unary) <case NOP_EXPR, CONVERT_EXPR>: For
1787         COMPARISON_CLASS_P and an integral types create create a new
1788         expression with the new type and fold that.
1789
1790 2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
1791
1792         PR target/24988
1793         * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call
1794         to SUBTARGET_OS_CPP_BUILTINS.
1795
1796 2005-11-22  Richard Earnshaw  <richard.earnshaw@arm.com>
1797
1798         * arm.c (emit_set_insn): New function.
1799         (arm_split_constant): Call it.
1800         (arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise.
1801         (arm_legitimize_address): Likewise.  Use plus_constant.
1802         (arm_expand_prologue): Likewise.  Use VOIDmode in SET.
1803         (thumb_expand_prologue): Likewise.
1804         (arm_gen_load_multiple): Use VOIDmode in SET.
1805         (arm_gen_store_multiple): Likewise.
1806         (vfp_emit_fstmx): Likewise.  Use plus_constant.
1807         (emit_multi_reg_push): Likewise.
1808         (emit_sfm): Use plus_constant.
1809
1810 2005-11-23  Alan Modra  <amodra@bigpond.net.au>
1811
1812         PR target/24954
1813         * config/rs6000/predicates.md (easy_vector_constant_add_self): Fix
1814         typo last change.
1815
1816 2005-11-22  Alan Modra  <amodra@bigpond.net.au>
1817
1818         PR middle-end/24950
1819         * expmed.c (store_bit_field): Don't attempt to insv a field
1820         larger than the reg.
1821
1822 2005-11-22  Alan Modra  <amodra@bigpond.net.au>
1823
1824         PR target/24954
1825         * config/rs6000/predicated.md (easy_vector_constant_add_self): Use
1826         explicit sign extension, not a (char) cast.
1827
1828 2005-11-22  Ben Elliston  <bje@au.ibm.com>
1829
1830         * optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing
1831         GET_MODE_CLASS (x) == MODE_FLOAT.
1832         * config/i386/i386.c: Likewise.
1833         * config/rs6000/xcoff.h: Likewise.
1834         * config/rs6000/linux64.h: Likewise.
1835         * config/rs6000/rs6000.c: Likewise.
1836         * config/rs6000/rs6000.h: Likewise.
1837         * config/rs6000/predicates.md: Likewise.
1838         * config/rs6000/sysv4.h: Likewise.
1839
1840 2005-11-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1841
1842         * c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when
1843         flag_pic is set.
1844
1845         * config/alpha/freebsd.h, config/alpha/linux.h,
1846         config/arm/linux-elf.h, config/bfin/bfin.h,
1847         config/cris/linux.h, config/darwin.h, config/freebsd-spec.h,
1848         config/i386/beos-elf.h, config/i386/gnu.h,
1849         config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h,
1850         config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h,
1851         config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h,
1852         config/rs6000/linux64.h, config/rs6000/sysv4.h,
1853         config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h,
1854         config/sh/linux.h, config/sh/sh.h, config/sol2.h,
1855         config/sparc/linux.h, config/sparc/linux64.h,
1856         config/xtensa/xtensa.h: Don't define __pic__ or __PIC__.
1857
1858         * doc/invoke.texi: Document that the macros __pic__ and __PIC__
1859         are both defined when either flag -fpic or -fPIC are used.
1860
1861 2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
1862
1863         * config/fp-bit.c (clzusi): New function.
1864         (si_to_float, usi_to_float): Use it to compute proper shift.
1865         (usi_to_float): Preserve guard bits when shifting right.
1866         * libgcc-std.ver (GCC_4.2.0): New version.
1867         * libgcc2.c (__floatundixf, __floatunditf, __floatundidf,
1868         __floatundisf): New functions.
1869         * libgcc2.h (__floatundixf, __floatunditf, __floatundidf,
1870         __floatundisf): Declare.
1871         * mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf,
1872         _floatundixf, and _floatunditf.
1873         * optabs.c (expand_float): If target does not define a pattern for
1874         signed or unsigned conversion, use an unsigned libcall instead of
1875         a signed one.
1876         (init_optabs): Initialize ufloat_optab.
1877
1878 2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
1879
1880         * config/rs6000/rs6000.opt (mmulhw): New option.
1881         * doc/invoke.texi (-mmulhw): Document.
1882         * config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw
1883         for 405 and 440.
1884         * config/rs6000/rs6000.md: Add half-word multiply and
1885         multiply-accumulate instructions for 405 and 440.
1886
1887 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
1888
1889         * config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC
1890         which matches behavior of gcc 4.0 and older for RTEMS targets.  The
1891         default now includes a linker group which makes the RTEMS one nest.
1892
1893 2005-11-22  Ben Elliston  <bje@au.ibm.com>
1894
1895         * cse.c (fold_rtx): Typo fix.
1896         (find_comparison_args): Pass the mode of arg1, not arg1 itself.
1897
1898 2005-11-21  Richard Henderson  <rth@redhat.com>
1899
1900         * c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h,
1901         langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch.
1902
1903         * c-tree.h (lookup_name): Move declaration ...
1904         * c-common.h (lookup_name): ... here.
1905         * config/darwin-c.c: Include c-common.h.
1906         * config/t-darwin: Update dependencies.
1907
1908 2005-11-22  Ben Elliston  <bje@au.ibm.com>
1909
1910         * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of
1911         explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT.
1912         * genopinit.c (gen_insn): Likewise.
1913         * reload.c (find_equiv_reg): Likewise.
1914         * loop.c (load_mems): Likewise.
1915         * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise.
1916         * cse.c (find_comparison_args, fold_rtx): Likewise.
1917         * dwarf2out.c (add_const_value_attribute): Likewise.
1918         * expr.c (convert_move): Likewise.
1919         * recog.c (general_operand, register_operand): Likewise.
1920         * reg-stack.c (replace_reg): Likewise.
1921         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
1922         * c-common.c (handle_vector_size_attribute): Likewise.
1923         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
1924         (simplify_binary_operation_1): Likewise.
1925         (simplify_const_binary_operation): Likewise.
1926         (simplify_relational_operation): Likewise.
1927         (simplify_const_relational_operation): Likewise.
1928         (simplify_immed_subreg): Likewise.
1929         * emit-rtl.c (gen_lowpart_common): Likewise.
1930         * expmed.c (expand_mult): Likewise.
1931         * stor-layout.c (layout_type): Likewise.
1932
1933 2005-11-21  Paolo Bonzini  <bonzini@gnu.org>
1934
1935         PR target/24951
1936         * config/rs6000/rs6000.c (output_vec_const_move): Load cst and
1937         cst2 only for SPE vectors.
1938
1939 2005-11-21  David Edelsohn  <edelsohn@gnu.org>
1940
1941         PR target/24953
1942         * config/rs6000/predicates.md (vrsave_operation): Check
1943         UNSPEC_VOLATILE value.
1944
1945 2005-11-21  Jan Hubicka  <jh@suse.cz>
1946
1947         PR tree-optimization/24653
1948         * tree-ssa-ccp.c (ccp_fold): Strip down useless conversions.
1949
1950 2005-11-21  Uros Bizjak  <uros@kss-loka.si>
1951
1952         * config/i386/predicates.md (ax_reg_operand): New predicate.
1953         (memory_displacement_only_operand): New predicate.
1954         * config/i386/i386.md ("modrm" attribute): Return 0 if one
1955         operand is AX register and the other operand is memory operand
1956         with displacement only.
1957
1958 2005-11-21  Uros Bizjak  <uros@kss-loka.si>
1959
1960         * fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0
1961         if we don't care about NaNs or Infinities.
1962
1963 2005-11-20  Ian Lance Taylor  <ian@airs.com>
1964
1965         PR rtl-optimization/24883
1966         * combine.c (combinable_i3pat): When checking whether the
1967         destination of i3 is used in i3, consider paradoxical subregs.
1968
1969 2005-11-21  Kazu Hirata  <kazu@codesourcery.com>
1970
1971         PR middle-end/20583
1972         * cse.c (cse_insn): Reject invalid forms of CONST earlier.
1973
1974 2005-11-20  Joseph S. Myers  <joseph@codesourcery.com>
1975
1976         * combine.c (try_combine): Do not run subst on i1src and i2src in
1977         the case of generating a PARALLEL for a comparison.
1978
1979 2005-11-20  Richard Henderson  <rth@redhat.com>
1980
1981         PR 24931
1982         * tree-sra.c (struct sra_elt): Add all_no_warning.
1983         (struct sra_walk_fns) <use>: Add use_all argument.
1984         (sra_walk_expr): Pass it.
1985         (sra_walk_modify_expr): Likewise.
1986         (scalarize_ldst): Likewise.
1987         (scan_use): Update for new argument.
1988         (mark_no_warning): New.
1989         (scalarize_use): Use it.
1990
1991 2005-11-20  Bernd Schmidt  <bernd.schmidt@analog.com>
1992
1993         * expr.c (expand_expr_real): Use usmul_optab for widening
1994         signed * unsigned multiplies.
1995         * genopinit.c (optabs): Add usmul_widen_optab.
1996         * optabs.c (init_optabs): Likewise.
1997         * optabs.h (enum optab_index): Add OTI_usmul_widen.
1998         (usmul_widen_optab): Define.
1999         * config/bfin/bfin.md (usmulhisi3): New pattern.
2000
2001         * doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document.
2002
2003 2005-11-20  Graham Stott <btinternet.com>
2004
2005         * gensupport.c (std_preds): Fixed extraneous `false` in last change.
2006
2007 2005-11-20  Andreas Schwab  <schwab@suse.de>
2008
2009         PR target/24757
2010         * config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp
2011         insn.
2012
2013 2005-11-19  Richard Henderson  <rth@redhat.com>
2014
2015         PR tree-opt/24665
2016         * tree-gimple.c (is_gimple_id): Export.
2017         * tree-gimple.h (is_gimple_id): Declare.
2018         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New.
2019         (get_default_value): Use it.
2020         (maybe_fold_stmt_indirect): Likewise.
2021
2022 2005-11-19  James A. Morrison  <phython@gcc.gnu.org>
2023
2024         * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
2025         than VR1 or vice-versa.
2026
2027 2005-11-19  Hans-Peter Nilsson  <hp@axis.com>
2028
2029         PR middle-end/24912
2030         PR middle-end/24750
2031         * reload.c (find_reloads_address_1): Mention dependency on
2032         gen_reload.
2033         * reload1.c (gen_reload): For IN with an unary operation, try
2034         moving inner expression to OUT if trivial SET is not valid.
2035         Confirm that the result is valid.  Move common code block into...
2036         (emit_insn_if_valid_for_reload): New function.
2037
2038 2005-11-19  Richard Guenther  <rguenther@suse.de>
2039
2040         * fold-const.c (fold_indirect_ref_1): Make sure we fold
2041         ARRAY_REFs of constant strings.
2042
2043 2005-11-19  Jakub Jelinek  <jakub@redhat.com>
2044
2045         * gcc.c (version_compare_spec_function): Use '%s' rather than %qs in
2046         fatal format string.
2047
2048 2005-11-19  Joseph S. Myers  <joseph@codesourcery.com>
2049
2050         * combine.c (make_compound_operation): Swap operands of
2051         commutative operation if necessary before returning.
2052
2053 2005-11-19  Richard Guenther  <rguenther@suse.de>
2054
2055         PR middle-end/23294
2056         * fold-const.c (fold_plusminus_mult_expr): New function.
2057         (fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR
2058         cases, remove now unnecessary code.
2059
2060 2005-11-19  Paolo Bonzini  <bonzini@gcc.gnu.org>
2061
2062         * gensupport.c (old_preds): Rename to std_preds, add special field.
2063         (struct old_pred_table): Rename to struct std_pred_table, add special
2064         field.
2065         (NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS.
2066         (NUM_OLD_SPECIAL_MODE_PREDS): Remove.
2067         (init_predicate_table): Adjust, and set along the way whether a
2068         predicate is special.
2069
2070 2005-11-18  Mark Mitchell  <mark@codesourcery.com>
2071
2072         * BASE-VER: Change to 4.2.0.
2073
2074 2005-11-18  James E Wilson  <wilson@specifix.com>
2075
2076         * builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before
2077         returning it.
2078
2079 2005-11-18  Mike Stump  <mrs@apple.com>
2080
2081         * c-common.c (handle_cleanup_attribute): Use a lang hook for lookup_name.
2082         * config/darwin-c.c (darwin_pragma_unused): Likewise.
2083         * c-decl.c (lookup_name_two) Remove.
2084         * c-tree.h (lookup_name_two): Remove.
2085         * c-objc-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
2086         * langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add.
2087         (LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME.
2088         * langhooks.h (lang_hooks_for_decls): Add lookup_name.
2089
2090 2005-11-18  Richard Earnshaw  <richard.earnshaw@arm.com>
2091
2092         PR target/24914
2093         * arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok
2094         when not generating code to use that co-processor.
2095
2096 2005-11-18  James A. Morrison  <phython@gcc.gnu.org>
2097
2098         * tree-flow.h (reserve_phi_args_for_new_edge, create_phi_node,
2099         add_phi_arg, remove_phi_args, remove_phi_node phi_reverse): Mention that
2100         these functions are now in tree-phinodes.c.
2101
2102 2005-11-18  Jie Zhang  <jie.zhang@analog.com>
2103
2104         * config/bfin/bfin.md (trap): New pattern.
2105
2106 2005-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2107
2108         * tree-ssa-dom.c (extract_range_from_cond): Deal with variable bounds
2109         on types.
2110
2111         * expr.c (expand_expr_real): Don't call record_block_change unless
2112         ib_boundaries_block is non-null
2113
2114         * postreload.c (reload_cse_move2add): Don't try to work with BImode.
2115
2116         * fold-const.c (build_range_check): Use proper type for subtraction
2117         when merging lower bound.
2118
2119 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
2120
2121         PR rtl-optimization/24497
2122         * loop-unroll.c (apply_opt_in_copies): Do not verify equality of
2123         the copied insn.
2124
2125 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
2126
2127         * tree-scalar-evolution.c (expression_expensive_p): New function.
2128         (scev_const_prop): Use compute_overall_effect_of_inner_loop.
2129
2130 2005-11-18  Bernd Schmidt  <bernd.schmidt@analog.com>
2131
2132         * config/bfin/crtlibid.s: New file.
2133
2134 2005-11-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2135
2136         PR target/24348
2137         * config.gcc (hppa*-*-hpux*): Add pa/t-slibgcc-elf-ver to tmake config
2138         when not using sjlj exceptions.
2139         * config/pa/pa64-hpux.h (LIB_SPEC): Add -lpthread in static links.
2140         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
2141         * config/pa/som.h (ASM_PREFERRED_EH_DATA_FORMAT): Delete define.
2142         * config/pa/linux-unwind.h (pa32_fallback_frame_state): Use
2143         DWARF_ALT_FRAME_RETURN_COLUMN instead of column 0 as return column.
2144         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): New define.
2145         * config/pa/pa-linux.h (INCOMING_RETURN_ADDR_RTX,
2146         DWARF_FRAME_RETURN_COLUMN, ASM_PREFERRED_EH_DATA_FORMAT,
2147         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Delete defines.
2148         * config/pa/pa.h (ARG_POINTER_CFA_OFFSET): Delete.
2149         (FRAME_POINTER_CFA_OFFSET, INCOMING_RETURN_ADDR_RTX,
2150         DWARF_FRAME_RETURN_COLUMN, DWARF_ALT_FRAME_RETURN_COLUMN,
2151         ASM_PREFERRED_EH_DATA_FORMAT, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New
2152         defines.
2153         * config/pa/hpux-unwind.h: New file.
2154
2155 2005-11-17  Alexandre Oliva  <aoliva@redhat.com>
2156
2157         * config/rs6000/rs6000.h (ASM_OUTPUT_WEAKREF): Define.
2158         * defaults.h (ASM_OUTPUT_WEAKREF): Add decl argument.
2159         * varasm.c (do_assemble_alias): Adjust call.
2160         (weak_finish): Don't use ASM_WEAKEN_LABEL if ASM_WEAKEN_DECL
2161         is defined.
2162         * doc/tm.texi (ASM_OUTPUT_WEAKREF): Document it.
2163
2164 2005-11-17  James E Wilson  <wilson@specifix.com>
2165
2166         * tree.def (FUNCTION_DECL): Correct typo in comment.
2167
2168 2005-11-17  Richard Henderson  <rth@redhat.com>
2169
2170         * dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int.
2171         (lookup_cfa_1): Apply data alignment to DW_CFA_def_cfa_offset_sf
2172         and DW_CFA_def_cfa_sf.
2173         (def_cfa_1): Use DW_CFA_def_cfa_offset_sf with negative values.
2174         (dbx_reg_number): Don't assert particular registers here.
2175         (based_loc_descr): ... do it here instead.  Fold in ...
2176         (eliminate_reg_to_offset): ... this function.
2177         (compute_frame_pointer_to_cfa_displacement): Fold in the effects
2178         of eliminate_reg_to_offset; use FRAME_POINTER_CFA_OFFSET.
2179         * unwind-dw2.c (execute_cfa_program): Apply data align factor
2180         to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf.
2181         * function.c (instantiate_new_reg): Use FRAME_POINTER_CFA_OFFSET.
2182         (instantiate_virtual_regs): Likewise.
2183         * var-tracking.c (adjust_stack_reference): Likewise.
2184         * doc/tm.texi (FRAME_POINTER_CFA_OFFSET): New.
2185
2186 2005-11-17  Bernd Schmidt  <bernd.schmidt@analog.com>
2187
2188         * config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s"
2189         * config/bfin/uclinux.h (STARFILE_SPEC): Likewise.
2190         * config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add
2191         crtlibid.o.
2192         ($(T)crtlibid.o): New rule.
2193
2194 2005-11-16  Richard Guenther  <rguenther@suse.de>
2195
2196         PR middle-end/24851
2197         * fold-const.c (extract_array_ref): Return byte offset
2198         in all cases.
2199         (fold_binary): Fold &x[a] CMP &x[b] to
2200         a*sizeof(*x) CMP b*sizeof(*x) to get correct overflow
2201         behavior.
2202
2203 2005-11-16  Richard Henderson  <rth@redhat.com>
2204
2205         PR middle-end/23497
2206         * tree-ssa.c (warn_uninitialized_var): Skip real and imaginary
2207         parts of an SSA_NAME.
2208
2209 2005-11-16  Richard Earnshaw  <richard.earnshaw@arm.com>
2210
2211         PR target/24861
2212         * arm.md (split for movsf with immediate): Restrict split to insns
2213         that set a general register.
2214
2215 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
2216
2217         * config/ia64/unwind-ia64.c (uw_advance_context): New.  Call
2218         uw_update_context.
2219         * unwind-dw2.c (uw_advance_context): Likewise.
2220         * unwind-sjlj.c (uw_advance_context): Likewise.  Also call
2221         _Unwind_SjLj_Unregister.
2222         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Call uw_advance_context.
2223
2224 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
2225
2226         * unwind-sjlj.c (_Unwind_GetCFA): Handle the builtin_setjmp case.
2227
2228 2005-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2229
2230         * config/alpha/alpha.c (alpha_init_builtins): Use type_for_mode
2231         langhook to get a DImode integer type.
2232
2233 2005-11-16  Richard Henderson  <rth@redhat.com>
2234             J"orn Rennecke <joern.rennecke@st.com>
2235             Ulrich Weigand  <uweigand@de.ibm.com>
2236
2237         PR rtl-opt/24160
2238         PR target/24621
2239         * reload1.c (reg_equiv_invariant): New.
2240         (reload): Allocate, initialize, and free it.
2241         (calculate_needs_all_insns): Check it when skipping equivalence
2242         setting insns.
2243         (alter_reg): Likewise.
2244         (eliminate_regs_1): Rename from eliminate_regs.  Add new
2245         may_use_invariant argument; only use reg_equiv_invariant when true.
2246         (eliminate_regs): New.
2247         (eliminate_regs_in_insn): Use eliminate_regs_1; track when we're in
2248         a context for which may_use_invariant may be true.
2249
2250 2005-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2251
2252         * fold-const.c (const_binop): Don't constant fold the operation
2253         if the result has overflowed and flag_trapping_math.
2254         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
2255
2256 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
2257
2258         * config/arm/unwind-arm.c (abort): Add prototype here.
2259         (UCB_FORCED_STOP_ARG): Correct typo in macro argument.
2260         (struct phase1_vrs): Add prev_sp.
2261         (unwind_phase2_forced): Save the original core registers instead of
2262         modifying entry_vrs.  Take a new flag argument for resuming unwinding
2263         and set action flags accordingly.  Always set _US_END_OF_STACK when
2264         get_eit_entry fails.  Unwind before calling the stop function.
2265         (_Unwind_GetCFA): New function.
2266         (__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced.
2267         (__gnu_Unwind_Resume_or_Rethrow): Likewise.
2268         (__gnu_Unwind_Resume): Do not unwind here for forced unwinding;
2269         just call unwind_phase2_forced.
2270         (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here.
2271         * config/arm/unwind-arm.h (abort): Remove prototype.
2272         (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to
2273         prototypes.
2274         (_Unwind_GetCFA): New prototype.
2275         * config/arm/pr-support.c (abort): Add prototype here.
2276         * unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle
2277         forced unwinding.
2278         * config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do
2279         not schedule the prologue with non-call exceptions and EABI.
2280
2281 2005-11-16  Nathan Sidwell  <nathan@codesourcery.com>
2282
2283         * config/arm/unwind-arm.h: Reorder interface function declarations.
2284         (_URC_END_OF_STACK): New enumeration value.
2285         (_US_UNWIND_ACTION_MASK, _US_FORCE_UNWIND, _US_END_OF_STACK): Likewise.
2286         (struct _Unwind_Control_Block): Document reserved field use.
2287         (_Unwind_Stop_Fn): New typedef.
2288         (_Unwind_ForcedUnwind): Declare.
2289         (_Unwind_Resume_or_Rethrow): Declare.
2290         * gcc/config/arm/libunwind.S (UNWIND_WRAPER): Add nargs
2291         argument.  Adjust.
2292         (_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New.
2293         * config/arm/unwind-arm.c (UCB_FORCED_STOP_FN)
2294         (UCB_FORCED_STOP_ARG): New.
2295         (search_EIT_table): Update boundary condition checks.
2296         (get_eit_entry): Return _URC_END_OF_STACK when cannot unwind.
2297         (unwind_phase2): Replace for with do..while.
2298         (unwind_phase2_forced): New.
2299         (__gnu_Unwind_RaiseException): Replace for with do..while.
2300         (__gnu_Unwind_ForcedUnwind): New.
2301         (__gnu_Unwind_Resume): Set FORCE_UNWIND flag, if forced unwinding.
2302         Use appropriate phase2 unwinder.
2303         (__gnu_Unwind_Resume_or_Rethrow): New.
2304         (__gnu_unwind_pr_common): Cope with forced unwinding.
2305
2306 2005-11-16  David Edelsohn  <edelsohn@gnu.org>
2307
2308         PR target/24772
2309         * config/rs6000/predicates.md (vrsave_operation): SET_SRC is a VEC.
2310
2311         * config/rs6000/rs6000.md (btruncsf2, ceilsf2, floorsf2,
2312         roundsf2): Remove "s" from mnemonic.
2313
2314 2005-11-16  Bernd Schmidt  <bernd.schmidt@analog.com>
2315
2316         * config/bfin/crti.s (__init, __fini): Use appropriate prologue if
2317         __PIC__ is defined.
2318         * config/bfin/crtn.s: Change epilogues to match.
2319         * config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define.
2320         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define
2321         __PIC__ and __pic__.
2322
2323 2005-11-16  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2324
2325         PR 24357
2326         * doc/invoke.texi: Distinguish between free and fixed form instead of
2327         Fortran and Fortran 90/95.  Remove ratfor from the list of supported
2328         languages.
2329         * gcc.c (default_compilers): Remove double entries, add entries for
2330         suffixes '.F90' and '.F95'.
2331
2332 2005-11-16  Eric Botcazou <ebotcazou@adacore.com>
2333
2334         * config/alpha/alpha.c (alpha_expand_prologue): Fix off-by-one bug
2335         in the stack probing loop.
2336
2337 2005-11-15  David Edelsohn  <edelsohn@gnu.org>
2338
2339         * configure.ac: Use .machine power5 not power5x.
2340         * configure: Regenerate.
2341
2342 2005-11-15  Mike Stump  <mrs@apple.com>
2343
2344         * c-decl.c (lookup_name_two): Add.
2345         * c-tree.h (lookup_name_two): Likewise.
2346         * c-common.c (handle_cleanup_attribute): Use lookup_name_two instead.
2347         * config/darwin-c.c (darwin_pragma_unused): Likewise.
2348
2349 2005-11-16  Alan Modra  <amodra@bigpond.net.au>
2350
2351         PR rtl-optimization/23392
2352         * regrename.c (enum scan_actions) Add mark_access.
2353         (scan_actions_name): Ditto.
2354         (scan_rtx_reg): Handle mark_access.
2355         (scan_rtx_address): Do nothing for mark_access.
2356         (build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR
2357         and regs in REG_INC notes before closing chains for dead regs.
2358         Mark destination regs in REG_FRAME_RELATED_EXPR notes after
2359         opening chains for new writes.
2360
2361 2005-11-15  David Edelsohn  <edelsohn@gnu.org>
2362
2363         * c.opt (ffixed-line-length-none): New.
2364
2365 2005-11-15  Steve Ellcey  <sje@cup.hp.com>
2366
2367         * mklibgcc.in: Change contents of eh_dummy.c.
2368
2369 2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>
2370
2371         * loop.c (scan_loop): Do not insert temporaries for hard registers.
2372
2373 2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>
2374
2375         * config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead
2376         of making syscalls.
2377         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define.  Set r7 also.
2378
2379 2005-11-15  Jan Hubicka  <jh@suse.cz>
2380
2381         * invoke.texi (large-unit-insns): Document.
2382         * ipa-inline.c (cgraph_decide_inlining): Use large-unit-insns param.
2383         * params.def (large-unit-insns): New param.
2384
2385 2005-11-15  Hans-Peter Nilsson  <hp@axis.com>
2386
2387         PR target/24869
2388         * config/cris/cris.md ("*mov_sidesisf_mem"): Do not match
2389         special register for operand 3.  Reindent constraints to align
2390         them vertically.
2391
2392 2005-11-14  David Edelsohn  <edelsohn@gnu.org>
2393
2394         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf,
2395         -mpopcntb, -mfprnd. Add -mcpu=power5+.
2396         * configure.ac: Add test for FP rounding instructions.
2397         * configure: Regenerate.
2398         * config.in: Regenerate.
2399         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
2400         _ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if
2401         features enabled.
2402         * config/rs6000/rs6000.opt (mfprnd): New.
2403         * config/rs6000/rs6000.c (processor_target_table): Add power5+.
2404         (POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND.
2405         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+.
2406         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+.
2407         (TARGET_FPRND): New.
2408         * config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP,
2409         UNSPEC_FRIZ): New.
2410         (btrunc<mode>2): New.
2411         (ceil<mode>2): New.
2412         (floor<mode>2): New.
2413         (round<mode>2): New.
2414
2415 2005-11-14  Geoffrey Keating  <geoffk@apple.com>
2416
2417         * gcc.c (version_compare_spec_function): Use fatal() rather than
2418         abort().
2419
2420         * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New.
2421         (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2).
2422         * config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2)
2423         as empty.
2424         * config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly
2425         link in crt2.o.
2426
2427         * config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending
2428         on -mmacosx-version-min setting.
2429
2430 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
2431
2432         PR 24840
2433         * tree-vrp.c (infer_value_range): Return false if STMT is a
2434         block terminator and its basic block has no successors.
2435
2436 2005-11-14  Mike Stump  <mrs@apple.com>
2437
2438         * config/i386/i386.c (override_options): -masm=intel isn't
2439         supported on darwin.
2440         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
2441
2442 2005-11-15  Joseph S. Myers  <joseph@codesourcery.com>
2443
2444         * crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and
2445         vfork after including auto-host.h.
2446
2447 2005-11-15  Alan Modra  <amodra@bigpond.net.au>
2448
2449         PR rtl-optimization/22002
2450         * combine.c (distribute_notes): Detect cases where a reg dies
2451         two or more times in a bb, including on the insn we are combining,
2452         and place the death note on the correct range.
2453
2454 2005-11-14  Dale Johannesen  <dalej@apple.com>
2455
2456         * expmed.c (store_bit_field):  Add offset unconditionally for
2457         memory targets.
2458         (extract_bit_field):  Don't force extzv or extv operand into
2459         a register if field is too big.
2460
2461 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
2462
2463         * config/arm/arm.c (pic_labelno): New.
2464         (arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a
2465         LABEL_REF.  Pass only the labelno to PIC insns.
2466         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
2467         (arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL.
2468         * arm.md (UNSPEC_PIC_LABEL): New constant.
2469         (pic_add_dot_plus_four, pic_add_dot_plus_eight)
2470         (tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF.
2471         Use the correct label prefix.
2472
2473 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
2474
2475         * config/arm/arm.c (legitimize_tls_address): Use correct rtx for
2476         REQ_EQUIV note.
2477
2478 2005-11-14  Richard Earnshaw  <richard.earnshaw@arm.com>
2479
2480         * loop-invariant.c: Include tm_p.h.
2481         * Makefile.in: Updated.
2482
2483 2005-11-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2484
2485         * pa.c (store_reg): Revise generation of frame notes in large frames.
2486         (set_reg_plus_d): Likewise.
2487
2488 2005-11-13  Andrew MacLeod  <amacleod@redhat.com>
2489
2490         PR tree-optimization/24709
2491         * tree-ssa-operands.c (verify_imm_links): Increase limit for infinite
2492         loop check.
2493
2494 2005-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2495
2496         * gthr-posix95.h: Remove declaration of pthread_mutexattr_settype
2497         and duplicate declaration of pthread_self.
2498
2499 2005-11-13  Eric Botcazou  <ebotcazou@adacore.com>
2500             Ian Lance Taylor  <ian@airs.com>
2501
2502         PR middle-end/24003
2503         * calls.c (expand_call): If TARGET is a MEM and some part of the
2504         argument area has been saved, force TARGET to a register.
2505
2506 2005-11-13  Razya Ladelsky <razya@il.ibm.com>
2507
2508         * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type
2509         checking.
2510
2511 2005-11-13  Jason Merrill  <jason@redhat.com>
2512
2513         PR c++/22489
2514         * dwarf2out.c (gen_subprogram_die): Force a declaration die for
2515         lazily declared methods.
2516         (force_decl_die): Stop if forcing out the context already make a
2517         DIE for the decl.
2518         (force_type_die): Likewise.
2519
2520 2005-11-13  Andrew Pinski  <pinskia@physics.uc.edu>
2521
2522         PR middle-end/24820
2523         * builtins.c (integer_valued_real_p): Add break in
2524         REAL_CST having TREE_OVERFLOW set.
2525
2526 2005-11-13  Zdenek Dvorak  <dvorakz@suse.cz>
2527
2528         * tree-ssa-loop-ivopts.c (get_address_cost): Prevent splitting
2529         addressing modes during calculation of costs.
2530
2531 2005-11-12  Eric Botcazou  <ebotcazou@adacore.com>
2532
2533         * function.c (assign_stack_local_1): Restrict sanity check
2534         on frame size overflow to 32-bit and above platforms.
2535
2536 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
2537
2538         * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Define.
2539         * config/cris/cris.c: Include reload.h.
2540         (cris_initial_elimination_offset): New function.
2541         * config/cris/cris-protos.h: (cris_initial_elimination_offset):
2542         Prototype.
2543
2544 2005-11-12  Richard Guenther  <rguenther@suse.de>
2545
2546         * gcse.c (find_rtx_in_ldst): Handle NULL pre_ldst_table.
2547
2548 2005-11-12  Jan Hubicka  <jh@suse.cz>
2549
2550         * expr.c (expand_expr_real_1): <MAX_EXPR, MIN_EXPR>: Canonicalize
2551         to compare against 0 when possible.
2552
2553 2005-11-12  Jie Zhang  <jie.zhang@analog.com>
2554
2555         * config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES,
2556         HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
2557         REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers.
2558         * config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers
2559         in the new order.
2560
2561 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
2562
2563         * recog.c (constrain_operands) <case 'g'>: For a match, require
2564         that a non-register matches general_operand when strict >= 0.
2565
2566 2005-11-11  Steven Bosscher  <stevenb@suse.de>
2567
2568         * loop-invariant.c (move_loop_invariants): Fix a thinko in the
2569         previous checkin.
2570
2571 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
2572
2573         * tree-ssa-dse.c (struct address_walk_data, memory_ssa_name_same)
2574         (memory_address_same): New.
2575         (dse_optimize_stmt): Call memory_address_same.
2576
2577 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
2578
2579         PR middle-end/24750
2580         * reload.c (find_reloads_address_1) <case TRUNCATE, SIGN_EXTEND,
2581         ZERO_EXTEND>: New cases.
2582
2583 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
2584
2585         * longlong.h (__clz_tab): Always provide.
2586
2587 2005-11-11  Steven Bosscher  <stevenb@suse.de>
2588
2589         PR 24265
2590         * loop-invariant.c (may_assign_reg_p): Make sure a hard register
2591         can be assigned to.
2592         (find_invariant_insn): Do the cheapest check, may_assign_reg_p,
2593         before check_maybe_invariant.
2594         (move_invariant_reg): Use gen_move_insn instead of replacing
2595         SET_DEST with the temporary for the invariant.
2596         (move_loop_invariants): If checking is enabled, do internal
2597         consistency checks after completing the pass.
2598
2599 2005-11-11  David Edelsohn  <edelsohn@gnu.org>
2600
2601         PR 24644
2602         * common.opt (Wvolatile-register-var): New.
2603         * varasm.c (make_decl_rtl): Only emit warning when option
2604         specified.  Clarify warning message.
2605         * doc/invoke.texi (Wvolatile-register-var): Document new option.
2606
2607         * doc/md.texi (copysign): Document standard named pattern.
2608
2609 2005-11-11  Jie Zhang  <jie.zhang@analog.com>
2610
2611         * config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing
2612         bytes when align is 2.
2613         * config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed
2614         by the first instruction of the loop.
2615
2616 2005-11-11  Jason Merrill  <jason@redhat.com>
2617
2618         PR c++/24686
2619         * gimplify.c (gimplify_cleanup_point_expr): Also save and restore
2620         the cleanup list.
2621
2622 2005-11-11  Zdenek Dvorak  <dvorakz@suse.cz>
2623
2624         PR rtl-optimization/22509
2625         * local-alloc.c (memref_used_between_p): Check whether a function call
2626         could not reference the memref.
2627
2628 2005-11-11  Ulrich Weigand  <uweigand@de.ibm.com>
2629
2630         * postreload.c (reload_cse_simplify_operands): Fix bug in sorting
2631         algorithm so as to choose the best, not the worst, alternative.
2632         Reset accumulated register class before processing next alternative.
2633
2634 2005-11-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2635
2636         PR target/24445
2637         * calls.c (expand_call): Copy a return value to a plain register
2638         if needed.
2639
2640 2005-11-10  Alexandre Oliva  <aoliva@redhat.com>
2641
2642         PR target/24778
2643         * varasm.c (assemble_name): Recompute name only for transparent
2644         aliases.
2645
2646 2005-11-10  Hans-Peter Nilsson  <hp@axis.com>
2647
2648         * tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from.
2649
2650 2005-11-04  Jeff Law  <law@redhat.com>
2651
2652         PR middle-end/23181
2653         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not
2654         perform reassociation if the parent statement will not die as
2655         a result of the optimization.
2656
2657 2005-11-10  Daniel Berlin  <dberlin@dberlin.org>
2658
2659         * tree-ssa-alias.c (compute_may_aliases): Remove call to
2660         delete_old_heap_vars.
2661         * tree-dfa.c (referenced_var_remove): Remove function.
2662         * tree-ssa.c (init_tree_ssa): Call init_alias_heapvars.
2663         (delete_tree_ssa): Remove call to delete_old_heapvars.
2664         Add call to delete_alias_heapvars.
2665         * tree-flow.h (referenced_var_remove): Remove prototype
2666         (init_alias_heapvars): New prototype.
2667         (delete_alias_heapvars): Ditto.
2668         * Makefile.in (tree-ssa-structalias.o): Add
2669         gt-tree-ssa-structalias.o
2670         (GTFILES): Add tree-ssa-structalias.h and
2671         tree-ssa-structalias.c.
2672         (s-gtype): Add gt-tree-ssa-structalias.h.
2673         * tree-ssa-structalias.c (heapvars): Remove.
2674         (oldheapvars): Remove.
2675         (heapvar_for_stmt): New variable.
2676         (heapvar_lookup): New function.
2677         (heapvar_insert): Ditto.
2678         (get_constraint_for): See if we have an old heapvar
2679         to reuse.
2680         (init_alias_heapvars): New function.
2681         (delete_alias_heapvars): Ditto.
2682         Add include of gt-tree-ssa-structalias.h.
2683
2684 2005-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
2685
2686         PR middle-end/22127
2687         * calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext.
2688
2689 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
2690
2691         * tree.c (int_fits_type_p): Only look at the base type
2692         if it has the same precision as the original type.
2693
2694 2005-11-10  Jakub Jelinek  <jakub@redhat.com>
2695
2696         PR other/4372
2697         * varasm.c (assemble_alias): Use %q+D in the error
2698         message instead of %J and %qD.
2699
2700 2005-11-10  Richard Guenther  <rguenther@suse.de>
2701
2702         * gcse.c (free_ldst_entry): Only free hashtable if
2703         it exists.
2704
2705 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
2706
2707         * function.c (assign_stack_local_1): Issue an error message if
2708         the frame size overflows in the signed target arithmetics.
2709
2710 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
2711
2712         * tree.c (build_qualified_type): Chain the new type to the original
2713         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
2714         a POINTER_TYPE or a REFERENCE_TYPE respectively.
2715         (build_pointer_type_for_mode): Only return unqualified types.
2716         (build_reference_type_for_mode): Likewise.
2717
2718 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
2719
2720         * Makefile.in (gnucompare): Do comparison of all files using one of
2721         the chosen methods and only afterwards decide if just warning should
2722         be issued or comparison failure raised.
2723
2724 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
2725
2726         * ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn.
2727         (noce_try_abs): Negate if the comparison is reversed.
2728         Look only one instruction backwards for a REG_EQUAL note.
2729
2730 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
2731
2732         PR other/4372
2733         * gthr-dce.h, gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
2734         gthr-tpf.h: Define __gthrw.  For all identifiers that might
2735         be weak, introduce weakrefs or non-weak aliases with __gthrw,
2736         and prefix all uses with __ghtrw.
2737
2738 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
2739
2740         PR other/4372
2741         * tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New.
2742         (TREE_DEPRECATED): Adjust comment.  Check for a DECL.
2743         * c-common.c (handle_weakref_attribute): New.
2744         (c_common_attribute_table): Add weakref.
2745         * configure.ac (HAVE_GAS_WEAKREF): Check for weakref support
2746         in the assembler.
2747         * configure, config.in: Rebuilt.
2748         * defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF.
2749         * doc/extend.texi: Document weakref attribute.
2750         * varasm.c (ultimate_transparent_alias_target): New
2751         (assemble_name): Use it.
2752         (weak_finish_1): Split out of...
2753         (weak_finish): ... and deal with weakrefs in...
2754         (weakref_targets): ... new list.
2755         (globalize_decl): Clean up weakref_targets.
2756         (do_assemble_alias): Handle weakrefs.
2757         (finish_aliases_1): Do not reject weakrefs to external symbols.
2758         (assemble_alias): Handle weakrefs.
2759
2760 2005-11-09  Richard Guenther  <rguenther@suse.de>
2761
2762         PR tree-optimization/24716
2763         * tree-scalar-evolution.c (analyze_evolution_in_loop): Use
2764         t_bool to track results from follow_ssa_edge.
2765
2766 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
2767
2768         * final.c (force_source_line): New global variable.
2769         (final_scan_insn): Set it to true instead of clearing last_filename.
2770         (notice_source_line): Return true if force_source_line is true,
2771         unless source info is absent.
2772
2773 2005-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
2774
2775         PR c/24644
2776         * dwarf2-out.c (add_name_and_src_coords_attributes): Don't add
2777         a linkage name for a variable if it a register variable.
2778         * c-decl.c (grokdeclarator): Global register variables
2779         should be set as PUBLIC.
2780
2781 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
2782
2783         PR 24624
2784         * config/s390/s390.c (struct s390_frame_layout): New fields
2785         first_save_gpr_slot and last_save_gpr_slot.
2786         (cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue,
2787         s390_emit_epilogue, s390_initial_elimination_offset): Replaced
2788         first_save_gpr and last_save_gpr with the _slot variants.
2789         (s390_register_info): Calculate first_save_gpr_slot and
2790         last_save_gpr_slot using regs_ever_live.
2791
2792 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
2793
2794         PR 24623
2795         * config/s390/s390.c (s390_regs_ever_clobbered): Only save live eh regs
2796         for a function containing a landing pad.
2797
2798 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
2799
2800         PR 24034
2801         * flow.c (mark_set_1): Handle CLOBBERs like SETs if the register
2802         is live afterwards.
2803
2804 2005-11-08  Bernd Schmidt  <bernd.schmidt@analog.com>
2805
2806         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS,
2807         MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New.
2808
2809 2005-11-09  Nathan Sidwell  <nathan@codesourcery.com>
2810
2811         Add ms2 support
2812         * config/ms1/ms1.md (UNSPEC_BLOCKAGE, UNSPEC_EI, UNSPEC_DI): New
2813         constants.
2814         (call,load,store): New insn types.
2815         (mem_access, branch_access): Adjust reservation conditions.
2816         (define_delay): Adjust condition.
2817         (decrement_and_branch_until_zero): Allow for ms2.  Set branch
2818         type.
2819         (*decrement_and_rbanch_until_zero_no_clobber): Allow for ms2.
2820         (*movqi_internal,*movsi_internal,*movsf_internal): Use load,store
2821         insn type.
2822         (call_internal, call_value_internal, return_internal,
2823         return_interrupt_internal, eh_return_internal, indirect_jump,
2824         tablejump): Set call insn type.
2825         (blockage, ei, di): Use appropriate unspec const.
2826         * config/ms1/ms1.c (ms1_flag_delayed_branch): New.
2827         (ms1_get_attr_type): Adjust to give load & store types.
2828         (ms1_final_prescan_insn): Adjust for new insn types.  Don't look
2829         backwards past a barrier.
2830         (ms1_override_options): Accept ms2 arch.  Copy and reset delayed
2831         branch scheduling.
2832         (struct branch_info, struct label_info): New.
2833         (ms1_labels): New.
2834         (ms1_add_branches, ms1_check_delay_slot, ms1_reorg_hazard): New.
2835         (ms1_machine_reorg): New.
2836         (TARGET_MACHINE_DEPENDENT_REORG): Override.
2837         * config/ms1/crtn.asm: Add nop for ms2 JAL hazard.
2838         * config/ms1/ms1.h (processor_type): Add PROCESSOR_MS2.
2839         (ASM_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Add ms2.
2840         (TARGET_MS2): New.
2841
2842 2005-11-09  Per Bothner  <per@bothner.com>
2843             Uros Bizjak  <uros@kss-loka.si>
2844
2845         PR c/24101
2846         * toplev.c (process_options): Initialize debug_hooks early
2847         in case lang_hooks.post_options ends up calling a debug_hook.
2848
2849 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
2850
2851         * dwarf2out.c (multiple_reg_loc_descriptor): Don't assume
2852         DBX_REGISTER_NUMBER being contiguous.
2853
2854 2005-11-08  James A. Morrison  <phython@gcc.gnu.org>
2855             Diego Novillo  <dnovillo@redhat.com>
2856
2857         PR 23046
2858         * tree-vrp.c (register_edge_assert_for): Do not register
2859         always-false predicates.
2860
2861 2005-11-08  Devang Patel <dpatel@apple.com>
2862
2863         PR tree-optimization/23115
2864         * tree-if-conv.c (find_phi_replacement_condition): Check domninated_by
2865         relation.
2866
2867 2005-11-08  Joseph S. Myers  <joseph@codesourcery.com>
2868
2869         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include
2870         -mcpu=440.
2871
2872 2005-11-08  Daniel Berlin  <dberlin@dberlin.org>
2873
2874         Fix PR tree-optimization/23382
2875
2876         * tree-ssa-alias.c (compute_may_aliases): Call
2877         delete_old_heap_vars.
2878         * tree-dfa.c (referenced_var_remove): New function.
2879         * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars.
2880         * tree-flow.h (referenced_var_remove): Add prototype.
2881         (delete_old_heap_vars): Ditto.
2882         * tree-ssa-structalias.c (heapvars): New variable.
2883         (oldheapvars): Ditto.
2884         (get_constraint_for): Put heap vars on heapvars list.
2885         (delete_old_heap_vars): New function.
2886
2887 2005-11-08  Jason Merrill  <jason@redhat.com>
2888
2889         * tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK.
2890
2891 2005-11-08  Uros Bizjak  <uros@kss-loka.si>
2892
2893         PR target/19340
2894         * reg-stack.c (reg_to_stack): Update register liveness also
2895         for flag_sched2_use_traces.
2896
2897 2005-11-08  Alan Modra  <amodra@bigpond.net.au>
2898
2899         PR target/23704
2900         * config/rs6000/rs6000.c (rs6000_handle_option <OPT_m64>): Don't
2901         override prior explicit -mno-powerpc-gfxopt.
2902
2903 2005-11-07  Eric Botcazou  <ebotcazou@adacore.com>
2904
2905         * expmed.c (extract_bit_field): Do not use insv/extv/extzv patterns
2906         if the bitsize is zero.
2907         * doc/md.texi (Standard Pattern Names): Document it.
2908
2909         * config/ia64/ia64.c (ia64_pass_by_reference): Delete.
2910         (TARGET_PASS_BY_REFERENCE): Likewise.
2911
2912 2005-11-07  Ian Lance Taylor  <ian@airs.com>
2913
2914         PR rtl-optimization/24683
2915         * config/i386/i386.c (legitimize_pic_address): If constant operand
2916         to PLUS is too large, put it in a register.
2917
2918 2005-11-07  Jie Zhang  <jie.zhang@analog.com>
2919
2920         * configure.ac: Enable checking assembler dwarf2 support for bfin
2921         target.
2922         * configure: Regenerate.
2923
2924 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
2925
2926         PR target/24230
2927
2928         * config/rs6000/rs6000.c (easy_vector_splat_const, easy_vector_same,
2929         gen_easy_vector_constant_add_self): Delete.
2930         (vspltis_constant, easy_altivec_constant, gen_easy_altivec_constant):
2931         New.
2932         (output_vec_const_move): Use gen_easy_altivec_constant.
2933         (rs6000_expand_vector_init): Do not emit a set of a VEC_DUPLICATE.
2934         * config/rs6000/predicates.md (easy_vector_constant): Reorganize tests.
2935         (easy_vector_constant_add_self): Rewritten.
2936         * config/rs6000/rs6000-protos.h (easy_vector_splat_const,
2937         easy_vector_same, gen_easy_vector_constant_add_self): Remove prototype.
2938         (easy_altivec_constant, gen_easy_altivec_constant): Add prototype.
2939         * config/rs6000/altivec.md (easy_vector_constant_add_self splitters):
2940         Macroize and adjust for the other changes.
2941
2942 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
2943
2944         PR c/24599
2945
2946         * c-typeck.c (build_c_cast): Try using a shared constant, and see
2947         if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed.
2948
2949 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
2950
2951         PR rtl-optimization/23567
2952         * ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function.
2953         (noce_process_if_block): Don't do any optimizations except
2954         if (cond) x = x; if !set_b and write into orig_x may trap
2955         or fault.  Remove the MEM_READONLY_P check.
2956
2957 2005-11-06  Diego Novillo  <dnovillo@redhat.com>
2958
2959         PR 24670
2960         * tree-vrp.c (fix_equivalence_set): New.
2961         (extract_range_from_assert): Call it.
2962
2963 2005-11-05  Ian Lance Taylor  <ian@airs.com>
2964
2965         PR target/22432
2966         * combine.c (apply_distributive_law): Don't distribute across a
2967         vector mode subreg.
2968
2969 2005-11-05  Kazu Hirata  <kazu@codesourcery.com>
2970
2971         * c-typeck.c, config/i386/netware.h, config/m32c/cond.md,
2972         config/ms1/ms1.h, config/rs6000/predicates.md,
2973         config/s390/s390.c, params.def, postreload-gcse.c,
2974         tree-flow-inline.h, tree-ssa-operands.c, tree-vectorizer.c,
2975         tree-vrp.c, tree.c: Fix comment typos.
2976         * doc/invoke.texi: Fix typos.
2977
2978 2005-11-05  Sebastian Pop  <pop@cri.ensmp.fr>
2979
2980         * lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS
2981         for testing whether the data_dependence_relation contains distance
2982         vectors.  Iterate over all distance vectors of the ddr.
2983         * lambda.h: Define a vec of lambda_vector pointers.
2984         * tree-data-ref.c (dump_data_dependence_relation,
2985         dump_data_dependence_direction): Iterate over all distance and
2986         direction vectors of the ddr.
2987         (initialize_data_dependence_relation): Initialize DDR_DIR_VECTS and
2988         DDR_DIST_VECTS.
2989         (build_classic_dist_vector, build_classic_dir_vector): Push a set
2990         of distance/direction vectors instead of a single one.
2991         * tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist
2992         lambda_vectors with a vec of lambda_vectors.
2993         (DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec.
2994         (DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS,
2995         DDR_NUM_DIST_VECTS): New.
2996         * tree-loop-linear.c (gather_interchange_stats): Test for the
2997         existence of distance vectors only after having checked that there
2998         is a dependence.  Iterate over all distance vectors of the ddr.
2999         (linear_transform_loops): Use dump_data_dependence_relation.
3000         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Test for
3001         distance vectors using DDR_NUM_DIST_VECTS.  Iterate over all the
3002         distance vectors of the ddr.
3003
3004 2005-11-05  Bernd Schmidt  <bernd.schmidt@analog.com>
3005
3006         * config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save,
3007         expand_prologue_reg_save, expand_epilogue_reg_restore): New argument
3008         IS_INTHANDLER; all callers changed.
3009         (n_regs_saved_by_prologue): Take interrupt handler attributes into
3010         account.
3011         (do_link, do_unlink): New argument ALL; all callers changed.
3012         (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
3013         If function isn't leaf, save and restore all registers.
3014         (bfin_function_ok_for_sibcall): Only true if not an interrupt or
3015         exception handler.
3016
3017 2005-11-05  Jan Hubicka  <jh@suse.cz>
3018
3019         PR rtl-optimization/23490
3020         * doc/invoke.texi (max-predicted-iterations, max-cse-insns,
3021         max-flow-memory-location): Document.
3022         * flow.c: Include params.h
3023         (MAX_MEM_SET_LIST_LEN): Kill.
3024         (add_to_mem_set_list): Use new param.
3025         * cse.c (cse_basic_block): Replace 1000 by new param.
3026         * params.def (PARAM_MAX_PREDICTED_ITERATIONS, PARAM_MAX_CSE_INSNS,
3027         PARAM_MAX_FLOW_MEMORY_LOCATIONS): New.
3028         * predict.c (predict_loops): Use new param.
3029         * predict.def (MAX_PRED_LOOP_ITERATIONS): Remove.
3030
3031         * ipa-inline.c (cgraph_decide_inlining_of_small_function,
3032         cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
3033         Do not hold memory returned by cgraph_node_name across other call.
3034
3035 2005-11-04  Hans-Peter Nilsson  <hp@axis.com>
3036
3037         PR target/23424
3038         * config/cris/predicates.md ("cris_bdap_sign_extend_operand"):
3039         Disable.
3040
3041 2005-11-04  Jeff Law  <law@redhat.com>
3042
3043         PR/21883
3044         * doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM.
3045         * tree-ssa-dom.c: Include params.h.
3046         (thread_across_edge): If there are too many statements in the
3047         target block, then do not thread through it.
3048         * Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H).
3049         * params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM.
3050
3051 2005-11-03  Diego Novillo  <dnovillo@redhat.com>
3052
3053         PR 24627
3054         * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Use
3055         TODO_update_ssa instead of TODO_update_ssa_no_phi.
3056
3057 2005-11-04  Sebastian Pop  <pop@cri.ensmp.fr>
3058
3059         PR/18595
3060         * tree-scalar-evolution.c (instantiate_parameters_1,
3061         instantiate_parameters, resolve_mixers): Compute the size of an
3062         expression to be instantiated and give up the instantiation if the
3063         size exceeds PARAM_SCEV_MAX_EXPR_SIZE.
3064
3065 2005-11-04  Richard Guenther  <rguenther@suse.de>
3066
3067         * tree-flow.h (ref_contains_indirect_ref): Rename to
3068         array_ref_contains_indirect_ref.
3069         * tree-flow-inline.h (ref_contains_indirect_ref): Likewise.
3070         (array_ref_contains_indirect_ref): Make comment match the code
3071         and vice-versa.
3072         (ref_contains_array_ref): Likewise.
3073         * tree-ssa-structalias.c (find_func_aliases): Remove call to
3074         ref_contains_indirect_ref.
3075         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
3076         Rename calls to ref_contains_indirect_ref.
3077
3078 2005-11-04 Paul Brook  <paul@codesourcery.com>
3079
3080         * config/arm/arm.c (arm_load_pic_register): Pass extra reg to
3081         gen_pic_add_dot_plus_four and gen_pic_add_dot_plus_eight.
3082         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
3083         * config/arm/arm.md: Use match_operand in peephole input templates
3084         and match_dup in peephole output templates.
3085
3086 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
3087
3088         * config/arm/arm.c (arm_init_libfuncs): Use __aeabi_idiv and
3089         __aeabi_uidiv.
3090
3091 2005-11-04  Mark Mitchell  <mark@codesourcery.com>
3092             Daniel Jacobowitz  <dan@codesourcery.com>
3093
3094         * longlong.h (add_ssaaaa): Clobber condition code register
3095         in ARM version.
3096         (sub_ddmmss): Likewise.
3097         (umul_ppmm): Likewise.
3098
3099 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
3100             Paul Brook  <paul@codesourcery.com>
3101             Phil Blundell  <pb@reciva.com>
3102
3103         * configure.ac: Add test for ARM TLS support.
3104         * configure: Regenerated.
3105         * config/arm/arm-protos.h (legitimize_tls_address)
3106         (arm_tls_referenced_p, tls_mentioned_p)
3107         (arm_output_addr_const_extra): New prototypes.
3108         (thumb_legitimize_pic_address): Delete.
3109         * config/arm/arm.c: Include "gt-arm.h".
3110         (enum tls_reloc): New.
3111         (arm_cannot_copy_insn_p, arm_tls_symbol_p, load_tls_operand)
3112         (pcrel_constant_p, get_tls_get_addr, arm_load_tp)
3113         (arm_call_tls_get_addr, legitimize_tls_address)
3114         (arm_tls_referenced_p, arm_tls_operand_p_1, tls_mentioned_p)
3115         (arm_init_tls_builtins, arm_emit_tls_decoration)
3116         (arm_output_addr_const_extra): New functions.
3117         (TARGET_CANNOT_COPY_INSN_P, TARGET_CANNOT_FORCE_CONST_MEM)
3118         (TARGET_HAVE_TLS): Define.
3119         (target_thread_pointer): New.
3120         (arm_override_options): Handle -mtp=.
3121         (legitimize_pic_address): Ignore UNSPECs.
3122         (arm_legitimate_address_p, thumb_legitimate_address_p): Handle PC
3123         relative symbols.
3124         (arm_legitimize_address, thumb_legitimize_address): Handle TLS.
3125         (tls_get_addr_libfunc): New variable.
3126         (symbol_mentioned_p, label_mentioned_p): Ignore UNSPEC_TLS.
3127         (arm_init_builtins): Call arm_init_tls_builtins.
3128         (arm_expand_builtin): Handle ARM_BUILTIN_THREAD_POINTER.
3129         (arm_encode_section_info): Call default_encode_section_info.
3130         * config/arm/arm.h (TARGET_HARD_TP, TARGET_SOFT_TP): Define.
3131         (enum arm_tp_type): New.
3132         (target_thread_pointer): Add declaration.
3133         (LEGITIMATE_CONSTANT_P): Handle TLS.
3134         (LEGITIMATE_PIC_OPERAND_P): Handle TLS.
3135         (OUTPUT_ADDR_CONST_EXTRA): Call arm_output_addr_const_extra.
3136         (enum arm_builtins): Add ARM_BUILTIN_THREAD_POINTER.
3137         * config/arm/arm.md: Add UNSPEC_TLS.
3138         (movsi): Handle TLS.
3139         (pic_add_dot_plus_four, pic_add_dot_plus_eight): Allow for
3140         non-PIC.
3141         (tls_load_dot_plus_eight): New insn and a peephole to create it.
3142         (load_tp_hard, load_tp_soft): New insns.
3143         * arm.opt: Add -mtp=.
3144         * doc/invoke.texi (ARM Options): Document -mtp.
3145
3146 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
3147
3148         * config/arm/lib1funcs.asm: Don't include "libunwind.S".
3149         * config/arm/libunwind.S: Include "lib1funcs.asm".
3150         * config/arm/t-bpabi (LIB1ASMFUNCS): Remove _unwind.
3151         (LIB2ADDEH): Add libunwind.S.
3152         (LIB2ADDEHDEP): Add lib1funcs.asm.
3153         * mklibgcc.in: Handle asm files in libgcc_eh.a.
3154
3155 2005-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3156
3157         PR fortran/18452
3158         * gcc/c.opt: Add a -lang-fortran option.
3159         * gcc/c-opts.c: Add a lang_fortran flag.
3160         (c_common_init_options): Handling the -lang-fortran option.
3161         (c_common_handle_option): Add a case for Fortran options in
3162         preprocessing. Remove cases for -ffixed-form and
3163         -ffixed-line-length. Add a case for -lang-fortran.
3164
3165 2005-11-03  David Edelsohn  <edelsohn@gnu.org>
3166
3167         * config/rs6000/rs6000.c: Include params.h
3168         (optimization_options): Set max-grow-copy-bb-insns default to 16.
3169         (bdesc_2arg): Delete vpkuhss and vpkuwss.
3170         * config/rs6000/altivec.md (UNSPEC_VPKUHSS): Delete.
3171         (UNSPEC_VPKUWSS): Delete.
3172         (altivec_vpkuhss): Delete.
3173         (altivec_vpkuwss): Delete.
3174         * config/rs6000/rs6000.md (plus_eqsi): Remove optimize_size from
3175         final condition.
3176         (neg_eq0<mode>): Remove final condition.
3177         (neg_eq<mode>): Remove condition and split-condition.
3178
3179 2005-11-04  Alan Modra  <amodra@bigpond.net.au>
3180
3181         * config/rs6000/rs6000.c (output_toc): Make "offset" HOST_WIDE_INT.
3182         Use associated print macros.
3183
3184 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
3185
3186         PR c++/17964
3187         * diagnostic.c (diagnostic_set_info_translated): New function.
3188         (diagnostic_set_info): Use it.  Add comment.
3189         * diagnostic.h (diagnostic_set_info_translated): Declare.
3190
3191 2005-11-03  Eric Botcazou  <ebotcazou@adacore.com>
3192
3193         * dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'.
3194         On USE_LINKONCE_INDIRECT platforms, build a DECL_ONE_ONLY indirect
3195         reference only if 'public' is true.
3196         (dw2_output_indirect_constant_1): On USE_LINKONCE_INDIRECT platforms,
3197         emit the .hidden directive only if the indirect reference is public.
3198         (dw2_asm_output_encoded_addr_rtx): Add new parameter 'public'.
3199         Pass it to dw2_force_const_mem.
3200         * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): New param 'public'.
3201         * dwarf2out.c (output_cfi): Adjust calls to above function.
3202         (output_call_frame_info): Likewise.
3203         * except.c (output_ttype): Pass TREE_PUBLIC of the type_info object
3204         as 'public' argument to dw2_asm_output_encoded_addr_rtx.
3205
3206 2005-11-03  Zdenek Dvorak  <dvorakz@suse.cz>
3207
3208         PR tree-optimization/24483
3209         * tree-ssa-loop-ivopts.c (aff_combination_add_elt): Move rest
3210         field to elts if possible.
3211
3212 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
3213
3214         PR middle-end/23155
3215         * gimplifier.c (gimplify_expr): Create a temporary for lvalue
3216         CONSTRUCTOR.
3217
3218 2005-11-03  Daniel Berlin  <dberlin@dberlin.org>
3219
3220         Fix PR tree-optimization/24351
3221
3222         * tree-ssa-structalias.c (struct variable_info): Add
3223         collapsed_into.
3224         (get_varinfo_fc): New function to follow collapsing.
3225         (new_var_info): Set collapsed_to to NULL.
3226         (dump_constraint): Follow collapsing.
3227         (build_constraint_graph): Handle collapsing.
3228         (do_simple_structure_copy): Return false if something bad
3229         happened.
3230         (collapse_rest_of_var): New function.
3231         (do_structure_copy): Collapse if do_simple_structure_copy returns
3232         false.
3233
3234 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
3235
3236         PR middle-end/24589
3237         * gimplify.c (gimplify_expr) <case CONSTRUCTOR>: Add the
3238         expressions to a statement list instead of gimplifying them.
3239
3240 2005-11-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3241
3242         PR rtl-optimization/23585
3243         * rtlanal.c (rtx_addr_can_trap_p_1) <PLUS>: Return 0 for an address
3244         that can't trap plus a constant integer, if the mode has zero size.
3245
3246 2005-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
3247
3248         PR target/24620
3249         * config/s390/s390.md ("*insv<mode>_reg_imm"): Accept any CONST_INT
3250         as operand 2.
3251         ("*insv<mode>_reg_extimm"): Likewise.
3252
3253 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
3254
3255         PR c/24329
3256         * c-pretty-print.c (pp_c_type_specifier): Do not recurse if
3257         c_common_type_for_mode returns an unnamed type.
3258
3259 2005-11-02  Richard Henderson  <rth@redhat.com>
3260
3261         PR target/9350
3262         PR target/24374
3263         * dwarf2out.c (dwarf2out_reg_save_reg): New.
3264         (dwarf2out_frame_debug_expr): Return after dwarf_handle_frame_unspec.
3265         * function.c (assign_parms): Use calls.internal_arg_pointer.
3266         (expand_main_function): Remove FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN
3267         code.
3268         * target-def.h (TARGET_INTERNAL_ARG_POINTER): New.
3269         (TARGET_CALLS): Add it.
3270         * target.h (struct gcc_target): Add calls.internal_arg_pointer.
3271         * targhooks.c (default_internal_arg_pointer): New.
3272         * targhooks.h (default_internal_arg_pointer): Declare.
3273         * tree.h (dwarf2out_reg_save_reg): Declare.
3274         * doc/tm.texi (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Remove.
3275         * config/i386/i386.c (dbx_register_map): Add return column.
3276         (dbx64_register_map, svr4_dbx_register_map): Likewise.
3277         (TARGET_INTERNAL_ARG_POINTER, ix86_internal_arg_pointer): New.
3278         (TARGET_DWARF_HANDLE_FRAME_UNSPEC, ix86_dwarf_handle_frame_unspec): New.
3279         (ix86_function_ok_for_sibcall): Disable if force_align_arg_pointer.
3280         (ix86_save_reg): Save force_align_arg_pointer.
3281         (ix86_emit_save_regs): Make regno unsigned.
3282         (ix86_emit_save_regs_using_mov): Likewise.
3283         (ix86_expand_prologue): Handle force_align_arg_pointer.
3284         (ix86_expand_epilogue): Likewise.
3285         * config/i386/i386.h: (dbx_register_map): Update.
3286         (dbx64_register_map, svr4_dbx_register_map): Update.
3287         (struct machine_function): Add force_align_arg_pointer.
3288         * config/i386/i386.md (UNSPEC_REG_SAVE, UNSPEC_DEF_CFA): New.
3289         (UNSPEC_TP, UNSPEC_TLS_GD, UNSPEC_TLS_LD_BASE): Renumber.
3290         (TARGET_PUSH_MEMORY peepholes): Disable if RTX_FRAME_RELATED_P.
3291
3292 2005-11-02  Jan Hubicka  <jh@suse.cz>
3293
3294         PR target/23303
3295         * i386.md: Add peep2 for simplyfing array accesses.
3296
3297 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
3298
3299         PR target/24615
3300         * config/s390/s390-protos.h (s390_decompose_shift_count): Declare.
3301         * config/s390/s390.c (s390_decompose_shift_count): New function.
3302         (s390_extra_constraint_str) ['Y']: Use s390_decompose_shift_count.
3303         (print_shift_count_operand): Use s390_decompose_shift_count.
3304         * config/s390/predicates.md ("setmem_operand", "shift_count_operand"):
3305         Use s390_decompose_shift_count.  Do not accept any non-base hard regs.
3306
3307 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
3308
3309         PR target/24600
3310         * loop.c (loop_givs_rescan): Use force_operand to expand
3311         complex GIVs.
3312
3313 2005-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
3314
3315         PR 22429
3316         * fold-const.c (build_range_check): Use unsigned when signed
3317         overflow is undefined also.  If etype is subtype, make sure that
3318         the subtraction is in the supertype.
3319
3320 2005-11-02  Richard Henderson  <rth@redhat.com>
3321
3322         PR target/24178
3323         * config/alpha/alpha.c (get_aligned_mem): Honor alignment given
3324         by MEM_ALIGN.
3325
3326 2005-11-01  Richard Henderson  <rth@redhat.com>
3327
3328         PR 21518
3329         * loop.c (scan_loop): Do not propagate computations to a hard
3330         register destination with SMALL_REGISTER_CLASSES.
3331
3332 2005-11-01  Joseph S. Myers  <joseph@codesourcery.com>
3333
3334         * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not add extra
3335         costs for MULT inside PLUS or MINUS.
3336
3337 2005-11-01  Bob Wilson  <bob.wilson@acm.org>
3338
3339         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Add a byte of padding.
3340         (TRAMPOLINE_SIZE): Round up to 60.
3341         * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Likewise.
3342
3343 2005-10-31  James E. Wilson  <wilson@specifix.com>
3344
3345         PR debug/24444
3346         * dwarf2out.c (convert_cfa_to_loc_list): Put inside DWARF2_UNWIND_INFO
3347         ifdef.  Put ifdefs around call in gen_subprogram_die.
3348         (compute_frame_pointer_to_cfa_displacement): Likewise.
3349         (gen_subprogram_die): Restore old code for when DWARF2_UNWIND_INFO is
3350         not defined.
3351
3352         PR rtl-optimization/17356
3353         *  cfgrtl.c (purge_dead_edges): Undo last change.  In EDGE_EH code,
3354         add check for CALL_INSN if EDGE_ABRNOMAL_CALL true.
3355
3356 2005-10-31  Jan Hubicka  <jh@suse.cz>
3357
3358         PR middle-end/24093
3359         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Watch negative
3360
3361         PR target/20928
3362         * i386.c (legitimize_pic_address): Deal with large immediates.
3363
3364         PR profile/20815
3365         * coverage.c (coverage_checksum_string): Fix code to stip random seeds
3366         from symbol names while computing checkup.
3367
3368         PR profile/24487
3369         * predict.c (predict_loops): Do not estimate more than
3370         MAX_PRED_LOOP_ITERATIONS in PRED_LOOP_ITERATIONS heuristic.
3371         * predict.def (MAX_PRED_LOOP_ITERATIONS): Define.
3372
3373 2005-10-31  Andrew MacLeod  <amacleod@redhat.com>
3374
3375         PR tree-optimization/19097
3376         * tree-ssa-operands.c (correct_use_link): Don't look for modified stmts.
3377
3378 2005-10-31  J"orn Rennecke <joern.rennecke@st.com>
3379
3380         * optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account.
3381
3382 2005-10-31  Andrew Pinski  <pinskia@physics.uc.edu>
3383
3384         PR middle-end/23492
3385         * tree-inline.c (setup_one_parameter): If the init_stmt
3386         is NULL, don't insert the statement.
3387
3388 2005-10-30  Jan Hubicka  <jh@suse.cz>
3389
3390         PR tree-optimization/24172
3391         * tree-inline.c (copy_body_r): Unshare the substituted value first.
3392
3393 2005-10-30  Hans-Peter Nilsson  <hp@bitrange.com>
3394
3395         * config/mmix/mmix.c (mmix_intval): Correct handling of DFmode
3396         constants for hosts with long != 32 bits.
3397
3398 2005-10-28  Andreas Krebbel <krebbel1@de.ibm.com>
3399
3400         PR middle-end/24093
3401         * ipa-inline.c (craph_decide_recursive_inlining): Fix return value.
3402
3403 2005-10-28  Aldy Hernandez  <aldyh@redhat.com>
3404
3405         * config/ms1/ms1.h (TARGET_MS1_64_001): New.
3406         (TARGET_MS1_16_002): New.
3407         (TARGET_MS1_16_003): New.
3408
3409         * config/ms1/ms1.md ("decrement_and_branch_until_zero"): Rewrite.
3410         ("*decrement_and_branch_until_zero_no_clobber"): New.
3411         Add corresponding splitter for decrement_and_branch_until_zero
3412         instruction.
3413         Key all decrement_and_branch_until_zero patterns off of
3414         TARGET_MS1_16_003.
3415
3416 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
3417
3418         PR middle-end/24362
3419         * tree-complex.c (extract_component): Treat RESULT_DECL
3420         like the rest of the decls.
3421
3422 2005-10-25  Eric Botcazou  <ebotcazou@adacore.com>
3423
3424         * config/ia64/ia64.c (ia64_output_function_profiler): Emit an
3425         indirect call to _mcount if the function needs a static chain.
3426
3427 2005-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
3428             Caroline Tice  <ctice@apple.com>
3429
3430         PR rtl-optimization/24460
3431         * dwarf2out.c (have_switched_text_sections): New boolean variable.
3432         (dwarf2out_switch_text_section): Set it to true instead of
3433         incrementing separate_line_info_table_in_use.
3434         (output_loc_list): Additionally test have_switched_text_sections.
3435         (output_ranges): Likewise.
3436         (dwarf2out_finish): Likewise.
3437         * varasm.c (assemble_start_function): Do not call
3438         insert_section_boundary_note.
3439         (assemble_end_function): If flag_reorder_blocks_and_partition,
3440         switch to the function's section before emitting the .size directive.
3441         * bb-reorder.c (insert_section_boundary_note): Staticify.
3442         (rest_of_handle_reorder_blocks): Call insert_section_boundary_note.
3443         * output.h (insert_section_boundary_note): Delete.
3444
3445 2005-10-24  Andrew Pinski  <pinskia@physics.uc.edu>
3446
3447         PR c/23103
3448         * c-format.c (check_format_types): Use lang_hooks.types_compatible_p
3449         instead of pointer equality when comparing types.
3450
3451 2005-10-24  James E. Wilson  <wilson@specifix.com>
3452
3453         * sched-deps.c (flush_pending_lists): Pass 1 not 0 in first two
3454         add_dependence_list_and_free calls.
3455
3456 2005-10-24  Steven Bosscher  <stevenb@suse.de>
3457
3458         * contrib.texi: Add the names of the LLNL folks who donated
3459         Cray pointer support for gfortran.
3460
3461 2005-10-24  Steven Bosscher  <stevenb@suse.de>
3462
3463         PR tree-optimization/24225
3464         * profile.c (branch_prob): Look from end to start through a
3465         basic block when looking for a locus.
3466
3467 2005-10-24  Richard Henderson  <rth@redhat.com>
3468
3469         * pa.c (store_reg_modify): Set RTX_FRAME_RELATED_P on each set in
3470         parallel.
3471         (hppa_expand_prologue): Likewise.
3472
3473 2005-10-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3474
3475         * pa-linux.h (NO_PROFILE_COUNTERS): Delete define.
3476         (NO_DEFERRED_PROFILE_COUNTERS): Define.
3477         * pa.h (NO_PROFILE_COUNTERS): Define.
3478         * pa.c (NO_DEFERRED_PROFILE_COUNTERS): Define if not defined.
3479         (funcdef_nos): New vector to hold label numbers of deferred profile
3480         counters.
3481         (output_deferred_profile_counters): New function.
3482         (hppa_profile_hook): Push label number onto funcdef_nos.
3483         (pa_hpux_file_end): Call output_deferred_profile_counters if
3484         NO_DEFERRED_PROFILE_COUNTERS is false.
3485
3486         * pa-protos.h (get_deferred_plabel): New prototype.
3487         * pa.c (get_plabel): Rename to get_deferred_plabel.  Return plabel.
3488         Make global.
3489         (output_call): Adjust calls.
3490
3491 2005-10-24  Alan Modra  <amodra@bigpond.net.au>
3492
3493         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Explain
3494         peculiarity of GOT/TOC section usage.
3495
3496 2005-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
3497
3498         PR objc/24435
3499          * c-common.c (constant_string_class_name): Add documentation.
3500
3501 2005-10-23  Kaz Kojima  <kkojima@gcc.gnu.org>
3502
3503         PR target/23832
3504         * recog.c (peephole2_optimize): Increment peep2_current_count
3505         only when the slot is empty.
3506
3507 2005-10-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3508
3509         PR ada/23957
3510         * except.c (output_function_exception_table): Call
3511         assemble_external_libcall if we need a personality function.
3512
3513 2005-10-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
3514
3515         PR rtl-optimization/24460
3516         * bb-reorder.c (fix_crossing_unconditional_branches): Do not
3517         set the basic block for barriers.
3518
3519 2005-10-21  Janis Johnson  <janis187@us.ibm.com>
3520
3521         * var-tracking.c (vt_initialize): Initialize post.
3522
3523 2005-10-21  Devang Patel  <dpatel@apple.com>
3524
3525         PR/24220
3526         * c-common.c (vector_types_convertible_p): Check vector element type.
3527
3528 2005-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
3529
3530         * config/sh/sh.c (prepare_move_operands): Handle the address
3531         constant which is a tls symbolic address plus a constant.
3532
3533 2005-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
3534
3535         PR driver/24473
3536         * gcc.c (main): Use the correct counter for erroring out
3537         about mulitple files.
3538
3539 2005-10-21  Alan Modra  <amodra@bigpond.net.au>
3540
3541         PR target/24465
3542         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Always
3543         use r2 for 64-bit tls .got access.
3544
3545 2005-10-21  Paolo Bonzini  <bonzini@gnu.org>
3546
3547         * dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and
3548         TRUTH_OR_EXPR.
3549
3550 2005-10-20  Steven Bosscher  <stevenb@suse.de>
3551
3552         PR tree-optimization/24307
3553         * tree-cfg.c (tree_find_edge_insert_loc): Handle naked RETURN_EXPR.
3554
3555 2005-10-20  Alexandre Oliva  <aoliva@redhat.com>
3556
3557         PR middle-end/24295
3558         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Mark
3559         alias targets.
3560         * varasm.c (find_decl_and_mark_needed): After cgraph global info
3561         is ready, stop marking functions, but still mark variables.
3562
3563 2005-10-20  Richard Guenther  <rguenther@suse.de>
3564
3565         PR c++/24439
3566         * fold-const.c (invert_truthvalue): Handle COND_EXPR with
3567         void type operands.
3568
3569 2005-10-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
3570
3571         PR rtl-optimization/23585
3572         * rtlanal.c (rtx_addr_can_trap_p_1): New predicate extracted from...
3573         (rtx_addr_can_trap_p): ... here.  Invoke rtx_addr_can_trap_p_1.
3574         (may_trap_p_1): New predicate extracted from...
3575         (may_trap_p): ... here.  Invoke may_trap_p_1.
3576         (may_trap_or_fault_p): New predicate.
3577         * rtl.h (may_trap_or_fault_p): Declare it.
3578         * reorg.c (steal_delay_list_from_target): Use may_trap_or_fault_p
3579         instead of may_trap_p.
3580         (steal_delay_list_from_fallthrough): Likewise.
3581         (fill_simple_delay_slots): Likewise.
3582         (fill_slots_from_thread): Likewise.
3583         * function.c (pad_to_arg_alignment): Rework comment about
3584         SPARC_STACK_BOUNDARY_HACK.
3585         * config/sparc/sparc.h: Likewise.
3586
3587 2005-10-19  Adrian Straetling  <straetling@de.ibm.com>
3588
3589         * config/s390/s390.c (s390_expand_insv): New.
3590         * config/s390/s390-protos.h (s390_expand_insv): Declare.
3591         * config/s390/s390.md ("UNSPEC_SETHIGH"): Rename to "UNSPEC_ICM".
3592         ("icm_hi"): Remove mode attribute.
3593         ("*sethigh<mode><mode>"): Rewrite to "sethighpart<mode>".
3594         Adjust all uses.
3595         ("*extracthi", "*extractqi"): Remove.
3596         (extv<mode>", "*extzv<mode>"): New.
3597         ("insv", "*insv<mode>_mem_reg", "*insvdi_mem_reghigh",
3598         "*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): New.
3599
3600 2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3601
3602         * cfgexpand.c (discover_nonconstant_array_refs_r,
3603         discover_nonconstant_array_refs): Move here from tree-outof-ssa.c
3604         (tree_expand_cfg): Call discover_nonconstant_array_refs.
3605         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
3606         discover_nonconstant_array_refs.
3607
3608 2005-10-19  Steven Bosscher  <stevenb@suse.de>
3609
3610         PR c/23228
3611         * c-decl.c (pop_scope): Don't warn about an unused variable
3612         if it is marked with TREE_NO_WARNING.
3613         (duplicate_decls): Set TREE_NO_WARNING if olddecl and newdecl
3614         somenow mismatch and olddecl is to be replaced.
3615
3616 2005-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
3617
3618         PR middle-end/23199
3619         * cfgrtl.c (safe_insert_insn_on_edge): Use can_copy_p to detect
3620         whether registers live on the edge can be saved/restored.
3621
3622 2005-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
3623
3624         * config/sh/sh.c (fixup_mova): Skip notes.
3625
3626 2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3627
3628         * config/s390/s390-protos.h (s390_hard_regno_rename_ok): Add prototype.
3629         * config/s390/s390.c (s390_hard_regno_rename_ok): New function.
3630         (s390_can_eliminate): Handle BASE_REGNUM elimination.
3631         (s390_initial_elimination_offset): Likewise.
3632         (s390_conditional_register_usage): BASE_REGNUM is no longer a fixed
3633         register on TARGET_ZARCH targets.
3634         * config/s390/s390.h (HARD_REGNO_RENAME_OK): Define
3635         (INITIAL_FRAME_POINTER_OFFSET): Remove.
3636         (REG_ALLOC_ORDER): Move BASE_REGNUM lower.
3637         (ELIMINABLE_REGS): Add BASE_REGNUM elimination rule.
3638
3639 2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
3640
3641         * config/s390/s390.md: Comment describing output modifiers updated.
3642         * config/s390/s390.c (print_operand): Likewise.
3643
3644 2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
3645
3646         * config/s390/s390.c (override_options): Added check for -mstack-size
3647         64k limitation.
3648         * doc/invoke.texi: Mention that limit in the documenation.
3649
3650 2005-10-18  Paolo Bonzini  <bonzini@gnu.org>
3651
3652         PR #19672
3653         * dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR here.
3654
3655 2005-10-18  Daniel Berlin <dberlin@dberlin.org>
3656
3657         Fix PR tree-optimization/24231
3658
3659         * tree-ssa-pre.c (try_look_through_load): Skip abnormal phi names
3660         (compute_avail): Ditto.
3661
3662 2005-10-18  Richard Henderson  <rth@redhat.com>
3663
3664         PR target/24428
3665         * config/i386/i386.c (legitimate_constant_p): Check
3666         SYMBOL_REF_TLS_MODEL directly.  Don't fallthru to SYMBOL_REF
3667         if LABEL_REF.
3668         (legitimate_pic_operand_p): Test SYMBOL_REF_TLS_MODEL directly.
3669         (legitimate_pic_address_disp_p): Reorg CONST checking to make
3670         sure SYMBOL_REF_TLS_MODEL is tested.  Test SYMBOL_REF_TLS_MODEL
3671         directly.
3672         (print_operand_address): Likewise.
3673         * config/i386/predicates.md (x86_64_immediate_operand): Test
3674         SYMBOL_REF_TLS_MODEL properly inside CONST.
3675         (x86_64_zext_immediate_operand): Likewise.
3676         (global_dynamic_symbolic_operand, local_dynamic_symbolic_operand,
3677         initial_exec_symbolic_operand, local_exec_symbolic_operand): Remove.
3678         * config/i386/i386-protos.h: Remove predicates.md entries.
3679
3680 2005-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
3681
3682         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
3683         Check that elements of TYPE_METHODS are FUNCTION_DECLs.
3684
3685 2005-10-17  Alexey Starovoytov  <alexey.starovoytov@sun.com>
3686             Ian Lance Taylor <ian@airs.com>
3687
3688         PR middle-end/23522
3689         * fold-const.c (fold_widened_comparison): Do not allow range based
3690         constant folding when right operand cannot be unwidened.
3691
3692 2005-10-17  Richard Henderson  <rth@redhat.com>
3693
3694         * builtins.c (expand_builtin_synchronize): Build a new-style asm
3695         with a memory clobber.
3696
3697 2005-10-17  James E Wilson  <wilson@specifix.com>
3698
3699         PR rtl-optimization/17356
3700         * cfgrtl.c (purge_dead_edges): Check for EDGE_ABNORMAL_CALL before
3701         checking for EDGE_EH.
3702
3703 2005-10-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
3704
3705         * config/sparc/sparc.c (function_arg_slotno): In 64-bit mode, align
3706         the slot on an even boundary for any type with 16-byte alignment.
3707
3708 2005-10-17  Hans-Peter Nilsson  <hp@axis.com>
3709
3710         PR target/23424
3711         * md.texi (Modifiers) <%>: Clarify that % doesn't work
3712         after register allocation.
3713
3714 2005-10-17  DJ Delorie  <dj@redhat.com>
3715
3716         * config/m32c/m32c.c (m32c_pushm_popm): Don't mark epilogue insns
3717         as frame related.
3718
3719 2005-10-17  Nathan Sidwell  <nathan@codesourcery.com>
3720
3721         PR c++/22551
3722         * c-common.c (c_add_case_label): Revert my 2005-10-14 clearing of
3723         overflow flags.
3724
3725 2005-10-17  Kaz Kojima  <kkojima@gcc.gnu.org>
3726
3727         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns
3728         to 2 if it's already non-zero.
3729         (OVERRIDE_OPTIONS): Clear flag_schedule_insns if flag_exceptions
3730         is set and warn about it if flag_schedule_insns is 1.
3731
3732 2005-10-17  Paul Woegerer  <paul.woegerer@nsc.com>
3733
3734         * config/crx/crx.md: Compare-and-branch instructions need to
3735         invalidate CC.
3736
3737 2005-10-17  Uros Bizjak  <uros@kss-loka.si>
3738
3739         PR target/24315
3740         * config/i386/i386.md (*pushdi2_rex64 splitter)
3741         (*movdi_1_rex64 splitter, *ashldi3_1 splitter)
3742         (*ashrdi3_1 splitter, *lshrdi3_1 splitter): Delay splitting after
3743         flow2 pass only when (optimize > 0 && flag_peephole2).
3744
3745 2005-10-16  Andrew Pinski  <pinskia@physics.uc.edu>
3746
3747         PR driver/22544
3748         * gcc.c (have_c): New static variable.
3749         (have_o): Likewise.
3750         (process_command): Remove declation of have_c.
3751         Set have_o to 1 when handling -o.
3752         (main): Add a fatel error if there are multiple
3753         files specified and -o and -c/-S is passed witout
3754         -combine or multiple languages.
3755
3756 2005-10-16  Daniel Berlin  <dberlin@dberlin.org>
3757
3758         Fix PR tree-optimization/22444
3759         * tree-ssa-alias.c (compute_flow_insensitive_aliasing):
3760         Assert that we don't hit something with subvars.
3761         (setup_pointers_and_addressables): Don't add things with subvars,
3762         because we'll already process the subvars for aliasing purposes.
3763
3764 2005-10-16  Hans-Peter Nilsson  <hp@axis.com>
3765
3766         PR target/23424
3767         * config/cris/cris.md ("*mov_side<mode>", "*mov_sidesisf")
3768         ("*mov_side<mode>_mem", "*mov_sidesisf_mem", "*clear_side<mode>")
3769         ("*ext_sideqihi", "*ext_side<mode>si", "*op_side<mode>")
3770         ("*op_swap_side<mode>", "*extopqihi_side", "*extop<mode>si_side")
3771         ("*extopqihi_swap_side", "*extop<mode>si_swap_side"): Have separate,
3772         swapped, alternatives for the R constraint.
3773
3774         PR middle-end/24341
3775         * builtins.c (get_builtin_sync_mode): Make unlimited
3776         mode_for_size request.
3777
3778 2005-10-15  Richard Henderson  <rth@redhat.com>
3779
3780         * gimplify.c (gimplify_var_or_parm_decl): Split out from ...
3781         (gimplify_expr): ... here.
3782         (gimplify_compound_lval): Use it in initial scan loop.  Allow
3783         fb_lvalue in base expression.
3784
3785 2005-10-15  Richard Henderson  <rth@redhat.com>
3786
3787         PR 23714
3788         * builtins.c (expand_builtin_trap): Export.
3789         * expr.h (expand_builtin_trap): Declare.
3790         * expr.c (expand_assignment): Emit a trap for integral offsets
3791         from registers that weren't reduced to bitpos.
3792
3793         * tree-cfg.c (mark_array_ref_addressable_1): Remove.
3794         (mark_array_ref_addressable): Remove.
3795         * tree-flow.h (mark_array_ref_addressable): Remove.
3796         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Don't call it.
3797
3798 2005-10-15  James E Wilson  <wilson@specifix.com>
3799
3800         PR target/24232
3801         * sched-deps.c (add_dependence_list): New arg UNCOND.  Fix all callers.
3802         (add_dependence_list_and_free): Likewise.
3803         (sched_analyze_2, case MEM): Delete sched_insns_conditions_mutex_p
3804         call.
3805
3806 2005-10-15  Diego Novillo  <dnovillo@redhat.com>
3807
3808         PR 23141
3809         PR 23142
3810         * tree-vrp.c (vrp_meet): Fix the intersection of equivalence
3811         sets VR0->EQUIV and VR1->EQUIV when meeting a range and an
3812         anti-range.
3813         (vrp_visit_phi_node): Only prevent infinite iterations when
3814         the previous result and the new result are both VR_RANGEs.
3815
3816 2005-10-15  Ranjit Mathew  <rmathew@gcc.gnu.org>
3817
3818         * tree-into-ssa.c (mark_def_sites): Correct minor typo in
3819         function comment.
3820
3821 2005-10-14  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3822
3823         PR c/23439
3824         * c-parser.c (c_parser_for_statement): Use location of RID_FOR
3825         to initialize loc.
3826
3827 2005-10-14  Per Bothner  <per@bothner.com>
3828
3829         PR preprocessor/21250
3830         * c-ppoutput.c (print_line): Print internal line 0 as 1.
3831
3832 2005-10-14  Nathan Sidwell  <nathan@codesourcery.com>
3833
3834         PR c++/22551
3835         * c-common.c (c_add_case_label): Clear LOW_VALUE and HIGH_VALUE's
3836         overflow flags.  Refactor some conditionals.
3837
3838 2005-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
3839
3840         PR tree-opt/21304
3841         * tree-dfa.c (add_referenced_var): Only look at decls which
3842         have TREE_CONSTANT or TREE_READONLY set instead of if
3843         !TREE_PUBLIC or !TREE_CONSTANT.
3844
3845 2005-10-13  James E Wilson  <wilson@specifix.com>
3846
3847         * doc/invoke.texi: For -x, add f95-cpp-input.
3848         * doc/install.texi: For --enable-languages doc, change f95 to fortran.
3849
3850 2005-10-12  Sebastian Pop  <pop@cri.ensmp.fr>
3851
3852         PR tree-optimization/24262
3853         * tree-data-ref.c (analyze_offset_expr): Check that init is invariant
3854         in loop all the time.
3855
3856 2005-10-12  Richard Henderson  <rth@redhat.com>
3857
3858         PR c/24255
3859         * tree.h (DECL_TRANSPARENT_UNION): Remove.
3860         * function.c (assign_parm_find_data_types): Don't support it.
3861         * print-tree.c (print_node): Likewise.
3862         * c-common.c (handle_transparent_union_attribute): Likewise.
3863         Use build_duplicate_type.
3864         * tree-inline.c (remap_type_1): Split out of remap_type;
3865         properly remap aggregate fields.
3866         (build_duplicate_type): New.
3867         * doc/extend.texi (Variable Attributes): Remove documentation
3868         for transparent_union.
3869
3870 2005-10-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3871
3872         PR target/24284
3873         * config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand.
3874         (gen_stack_pointer_dec): Likewise.
3875
3876 2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
3877
3878         PR middle-end/21275
3879         PR middle-end/21766
3880         * target.h (struct gcc_target): Add valid_dllimport_attribute_p
3881         target hook.
3882         (struct cxx): Add adjust_class_at_definition target hook.
3883         * target-def.h: (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): New define,
3884         defaulting to hook_bool_tree_true. Add to TARGET_INITIALIZER
3885         (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to
3886         hook_void_tree. Add to TARGET_CXX.
3887         * tree.h (struct decl_with_vis): Rename non_addr_const_p field to
3888         dllimport_flag.
3889         (DECL_NON_ADDR_CONSTANT_P): Replace with DECL_DLLIMPORT_P macro.
3890         * tree.c (merge_dllimport_decl_attributes): Check DECL_DLLIMPORT_P
3891         instead of attribute. Check for dllexport override.  Warn if
3892         inconsistent dll linkage. Don't lose old dllimport if decl has
3893         had address referenced.   Tweak lookup of dllimport atribute.
3894         (handle_dll_attribute): Check targetm.valid_dllimport_attribute_p
3895         for target specific rules.  Don't add dllimport attribute if
3896         DECL_DECLARED_INLINE_P.  Set DECL_DLLIMPORT_P when adding
3897         dllimport attribute.
3898         (staticp): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P.
3899         * varasm.c (initializer_constant_valid_p): Replace
3900         DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P
3901
3902         PR target/21801
3903         PR target/23589
3904         * config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to
3905         'cxx_target_objs', winnt-stubs,o to 'extra_objs'.
3906         (i[34567]86-*-mingw32*): Likewise.
3907
3908         * doc/tm.texi (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Document.
3909         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Document.
3910
3911         * config/i386/winnt.c (i386_pe_dllimport_p): Factor out
3912         C++-specific code. Change return value to bool.
3913         (i386_pe_dllimport_p): Likewise.
3914         (associated_type): Simplify and make language-independent
3915         (i386_pe_encode_section_info): Replace override of ambiguous
3916         dllimport symbol refs with a gcc_assert.
3917         (i386_pe_valid_dllimport_attribute_p): Define.
3918         * config/i386/winnt-cxx.c: New file. Define C++ versions of
3919         i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
3920         i386_pe_adjust_class_at_definition.
3921         * config/i386/winnt-stubs.c: New file. Define stub versions of
3922         lang-specific functions.
3923         * config/i386/i386-protos.h: Declare winnt-[cxx|stubs].c functions
3924         i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
3925         i386_pe_adjust_class_at_definition.
3926         (i386_pe_valid_dllimport_attribute_p): Declare.
3927         * config/i386/cygming.h (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Define.
3928         (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Define.
3929         * config/i386/t-cygming: Add rules for winnt-cxx.o, winnt-stubs.o.
3930
3931         PR target/19704
3932         * config/i386/i386.c (ix86_function_ok_for_sibcall): Replace test for
3933         dllimport attribute with test of DECL_DLLIMPORT_P.
3934
3935 2005-10-12  Adrian Straetling <straetling@de.ibm.com>
3936
3937         * combine.c (make_extraction): Correct offset computation.
3938
3939 2005-10-12  Hans-Peter Nilsson  <hp@axis.com>
3940
3941         * config/cris/t-linux (LIMITS_H_TEST): Define.
3942
3943 2005-10-12  Richard Henderson  <rth@redhat.com>
3944
3945         PR rtl-opt/23324
3946         * cfgexpand.c (add_alias_set_conflicts): Use objects_must_conflict_p.
3947
3948 2005-10-12  Richard Guenther  <rguenther@suse.de>
3949
3950         * Makefile.in (CGRAPH_H): Depend on $(TREE_H).
3951
3952 2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
3953
3954         PR c++/19964
3955         * stor-layout.c (place_field): Set DECL_FIELD_OFFSET and
3956         DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid
3957         type.
3958
3959 2005-10-12  Richard Guenther  <rguenther@suse.de>
3960
3961         PR c++/23799
3962         * varasm.c (output_constant): Correct typo from previous
3963         patch by DJ.
3964
3965 2005-10-11  Ian Lance Taylor  <ian@airs.com>
3966
3967         PR rtl-optimization/13931
3968         * combine.c: Revert patch of 2003-05-14, and:
3969         (try_combine): Only set elim_i1 and elim_i2 if the destination is
3970         completely killed in the appropriate insn.
3971         (distribute_notes): Don't skip multiple hard register test for
3972         elim_i1 and elim_i2.
3973
3974 2005-10-11  Richard Henderson  <rth@redhat.com>
3975
3976         PR c/24255
3977         * c-typeck.c (convert_for_assignment): Use build_constructor_single
3978         to initialize a transparent union instead of a nop_expr.
3979
3980 2005-10-11  Richard Henderson  <rth@redhat.com>
3981
3982         * Makefile.in (tree-ssa-dce.o): Depend on SCEV_H.
3983         * tree-ssa-dce.c: Include tree-scalar-evolution.h.
3984         (tree_ssa_dce_loop): Call scev_reset.
3985
3986         PR tree-opt/24300
3987         * Makefile.in (tree-ssa-dce.o): Depend on CFGLOOP_H.
3988         * tree-ssa-dce.c: Include cfgloop.h.
3989         (tree_ssa_dce_loop, pass_dce_loop): New.
3990         * tree-pass.h (pass_dce_loop): Declare it.
3991         * passes.c (init_optimization_passes): Use it.
3992
3993 2005-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
3994
3995         PR middle-end/24263
3996         * convert.c (convert_to_real): Revert 2005-10-05 patch.
3997         Only apply the optimization for rounding builtins if the inner
3998         cast is also an extension.
3999
4000 2005-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
4001
4002         PR tree-opt/23946
4003         * tree-ssa-ccp.c (execute_fold_all_builtins): Call
4004         mark_new_vars_to_rename instead of update_stmt.
4005
4006 2005-10-11  Bernd Schmidt  <bernd.schmidt@analog.com>
4007
4008         * config/bfin/crti.s (__init, __fini): Renamed from _init, _fini.
4009
4010 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
4011
4012         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type
4013         for setting MMX register to 0 rather than mmx.
4014
4015 2005-10-10  Steve Ellcey  <sje@cup.hp.com>
4016
4017         PR target/12098
4018         * configure.ac: Move gas check from mips specific case to common case.
4019         Do check for GNU as for mips*-*-* and *-*-hpux* targets.
4020         * configure: Regenerate
4021         * doc/install.texi: Update.
4022
4023 2005-10-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
4024
4025         PR target/24284
4026         * config/sparc/sparc.c (sparc_expand_prologue): Remove bogus PATTERN.
4027
4028 2005-10-10  Maciej W. Rozycki  <macro@linux-mips.org>
4029
4030         * gcc.c (do_spec_1): Accept numeric characters in file name
4031         suffixes.
4032
4033 2005-10-10  Nick Clifton  <nickc@redhat.com>
4034
4035         * config/arm/arm.c: Remove extraneous whitespace.  Remove comment
4036         describing the deleted arm_gen_rotated_half_load function.
4037
4038 2005-10-09  Kaz Kojima  <kkojima@gcc.gnu.org>
4039
4040         * config/sh/sh.c (emit_fpu_switch): Set TREE_PUBLIC for
4041         __fpscr_values.
4042
4043 2005-10-09  Daniel Jacobowitz  <dan@codesourcery.com>
4044
4045         * config.gcc (arm*-*-linux*): Remove redundant extra_parts and
4046         gnu_ld assignments.
4047         * config/arm/t-linux-eabi (LIB1ASMFUNCS)
4048         (EXTRA_MULTILIB_PARTS): Define.
4049         * config/arm/linux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
4050         (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
4051         (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Move to...
4052         * config/arm/uclinux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
4053         (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
4054         (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): ... here.
4055
4056 2005-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
4057
4058         PR tree-optimization/24226
4059         * tree-cfg.c (remove_bb): Clean up unreachable loops.
4060         * tree-flow.h (free_numbers_of_iterations_estimates_loop): Declare.
4061         * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates_loop):
4062         Export.
4063
4064 2005-10-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
4065
4066         * config/sparc/gmon-sol2.c (internal_mcount): Mark as used.
4067
4068 2005-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
4069
4070         PR target/24136
4071         * config/rs6000/darwin.md (movdf_low_si): Remove early clobber.
4072         Rewrite for no need for the early clobber.
4073
4074 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
4075
4076         Merge from csl-arm-branch:
4077         2005-09-07  Paul Brook  <paul@codesourcery.com>
4078         * config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a
4079         space to string.
4080
4081         2005-04-30  Paul Brook  <paul@codesourcery.com>
4082         * config/arm/bpabi.h (TARGET_DEFAULT): Define.
4083         * config/arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Define.
4084
4085         2005-03-07  Daniel Jacobowitz  <dan@codesourcery.com>
4086         * config/arm/arm.c (arm_all_abis): Add aapcs-linux.
4087         (arm_override_options): Use TARGET_AAPCS_BASED.
4088         * config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX.
4089         (PTRDIFF_TYPE): Use int for AAPCS.
4090         (DEFAULT_SHORT_ENUMS): Use false for aapcs-linux.
4091         * config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define.
4092         (DEFAULT_SHORT_ENUMS): Delete.
4093         * doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux.
4094
4095         2004-12-15  Daniel Jacobowitz  <dan@codesourcery.com>
4096         * config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef.
4097         * config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0.
4098         * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC.
4099
4100         2004-12-03  Mark Mitchell  <mark@codesourcery.com>
4101         * config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define.
4102
4103         2004-11-22  Mark Mitchell  <mark@codesourcery.com>
4104         * config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit.
4105
4106         2004-11-19  Mark Mitchell  <mark@codesourcery.com>
4107         * config.gcc (arm*-*-linux-gnueabi): Add it.
4108         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before
4109         redefining it.
4110         (TARGET_OS_CPP_BUILTINS): Likeiwse.
4111         * config/arm/linux-eabi.h: New file.
4112         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro.
4113         (LINUX_TARET_LINK_SPEC): Likewise.
4114         (LINK_SPEC): Use it.
4115         * config/arm/t-linux-eabi: New file.
4116
4117 2005-10-08  Steven Bosscher  <stevenb@suse.de>
4118
4119         PR other/22202
4120         * params.def (PARAM_MAX_VARIABLE_EXPANSIONS): Remove superfluous
4121         spaces.
4122         (PARAM_SMS_DFA_HISTORY): Likewise.
4123
4124 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
4125
4126         PR middle-end/23150
4127         * calls.c (mem_overlaps_already_clobbered_arg_p): New.
4128         (load_register_parameters): Call it.
4129         (check_sibcall_argument_overlap_1): Likewise.
4130         (store_one_arg): Likewise.
4131
4132 2005-10-07  James E. Wilson  <wilson@specifix.com>
4133
4134         * config/ia64/vect.md (ashl<mode>3, ashr<mode>3, lshr<mode>3): Use
4135         DImode not VECINT24 for operand 2.
4136
4137         PR target/23644
4138         * doc/invoke.texi (IA-64 Options, item -mtune): Renamed from
4139         -mtune-arch.
4140
4141         PR target/24193
4142         * config/ia64/ia64.md (movbi, movti_internal, gr_spill_internal,
4143         fr_spill): Use destination_operand for operand 0.
4144
4145 2005-10-07  DJ Delorie  <dj@redhat.com>
4146
4147         * varasm.c (output_constant): Limit error to expanding
4148         conversions.
4149
4150 2005-10-07  Richard Guenther  <rguenther@suse.de>
4151
4152         PR middle-end/24227
4153         * fold-const.c (fold_binary): Fix operand types during folding
4154         of X op (A, Y).  Evaluation order of the side-effects of
4155         X and A are frontend-defined, so ensure we honour that even for
4156         tcc_comparison class operands; eased by removing duplicate code.
4157
4158 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
4159
4160         * stor-layout.c (layout_type): Do not allow alignment of array
4161         elements to be greater than their size.
4162
4163 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
4164
4165         * config.host (hppa*-*-hpux*): Change out_host_hook_obj and
4166         host_xmake_file.
4167         (hppa*-*-linux*): Ditto.
4168         (ia64-*-hpux*): Add out_host_hook_obj and host_xmake_file.
4169         * config/host-hpux.c: New.
4170         * config/x-hpux: New.
4171         * config/pa/x-hpux: Remove.
4172         * config/pa/x-linux: Remove.
4173         * config/pa/pa-host.c: Remove.
4174
4175 2005-10-07  Jeff Law  <law@redhat.com>
4176
4177         * tree-ssa-dom.c (dom_opt_finalize_block): Fix conditions to
4178         determine whether or not to try and thread outgoing edges.
4179
4180 2005-10-07  David Edelsohn  <edelsohn@gnu.org>
4181
4182         * config/rs6000/rs6000.md (eqsi_power): New.
4183         (neg_eq0si): Add TARGET_POWER to final condition.
4184         (neg_eqsi): Same.
4185
4186 2005-10-06  Richard Henderson  <rth@redhat.com>
4187
4188         * config/rs6000/rs6000.c: Revert last change.
4189
4190 2005-10-06  Richard Henderson  <rth@redhat.com>
4191
4192         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): New.
4193         (TARGET_CANNOT_FORCE_CONST_MEM): Use it.
4194
4195 2005-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
4196
4197         PR middle-end/22216
4198         PR middle-end/23651
4199         * cfgexpand.c (tree_expand_cfg): After expanding the functions, clear
4200         out return_label and naked_return_label.
4201
4202 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
4203
4204         * tree-ssa-structalias.c (check_for_overlaps): Fix bug in last
4205         change.
4206
4207 2005-10-06  Richard Henderson  <rth@redhat.com>
4208
4209         PR tree-opt/22237
4210         * tree-inline.c (declare_return_variable): Handle modify_dest not
4211         being a DECL.
4212
4213 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
4214
4215         Fix PR tree-optimization/22488
4216         * tree-ssa-structalias.c (check_for_overlaps): New function.
4217         (create_variable_info_for): Use it.
4218
4219 2005-10-06  Richard Henderson  <rth@redhat.com>
4220
4221         PR debug/24070
4222         * dwarf2out.c (lookup_filename): Return the result of maybe_emit_file.
4223         (dwarf2out_start_source_file): Print it.
4224
4225 2005-10-06  Geoffrey Keating  <geoffk@apple.com>
4226
4227         * config/t-slibgcc-darwin (SHLIB_MAPFILES): Use '+='.
4228
4229 2005-10-06  Richard Henderson  <rth@redhat.com>
4230
4231         PR 23706
4232         * mode-switching.c (optimize_mode_switching): Clear transp bit
4233         for block with incomming abnormal edges.
4234
4235         * config/sh/sh.c (fpscr_values, emit_fpu_switch): New.
4236         (fpscr_set_from_mem): Use them.
4237         * config/sh/sh.md (fpu_switch0, fpu_switch1): Remove.
4238         (fpscr postinc splitters): Rewrite as peephole2+split.
4239
4240 2005-10-06  David Edelsohn  <edelsohn@gnu.org>
4241
4242         * config/rs6000/rs6000.md (eq<mode>): Add !TARGET_POWER.
4243         (eq<mode>_compare): Same.
4244
4245 2005-10-06  Richard Guenther  <rguenther@suse.de>
4246
4247         PR tree-optimization/24238
4248         * tree-ssa-alias.c (find_used_portions): Handle RESULT_DECL.
4249
4250 2005-10-06  Daniel Jacobowitz  <dan@codesourcery.com>
4251
4252         * acinclude.m4 (gcc_AC_CHECK_TOOL): Handle environment variables
4253         here.  Use AC_PATH_PROG for environment variables instead of
4254         test -x.
4255         * configure.ac: Update calls to gcc_AC_CHECK_TOOL.  Use it for
4256         objdump also.
4257         * configure: Regenerated.
4258
4259 2005-10-06  Richard Earnshaw  <richard.earnshaw@arm.com>
4260
4261         PR target/23783
4262         * arm.md (call): If the address isn't a SYMBOL_REF or a register,
4263         then force it into a register.
4264         (call_value): Likewise.
4265
4266 2005-10-06  Richard Henderson  <rth@redhat.com>
4267
4268         PR 24049
4269         * passes.c (init_optimization_passes): Move pass_lower_vector_ssa
4270         under pass_vectorize.  Clear TODO_ggc_collect from the dce pass
4271         under pass_vectorize.
4272
4273 2005-10-05  Devang Patel  <dpatel@apple.com>
4274
4275         PR Debug/23205
4276         * dbxout.c (dbxout_symbol): Check DECL_RTL_SET_P, after
4277         handling constants. Check NAMESPACE_DECL context for constants.
4278
4279 2005-10-05  Eric Christopher  <echristo@apple.com>
4280
4281         * doc/md.texi (Standard Names): Fix name of pushm1 pattern.
4282
4283 2005-10-05  Richard Henderson  <rth@redhat.com>
4284
4285         PR 23714
4286         * tree-cfg.c (mark_array_ref_addressable_1): New.
4287         (mark_array_ref_addressable): New.
4288         * tree-flow.h (mark_array_ref_addressable): Declare.
4289         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Use it.
4290
4291 2005-10-05  Andrew Pinski  <pinskia@physics.uc.edu>
4292
4293         PR middle-end/20606
4294         PR middle-end/24069
4295         * reload.c (subst_reloads): When adding a REG_LABEL to a
4296         jump instruction, also update JUMP_LABEL.
4297
4298 2005-10-05  David Edelsohn  <edelsohn@gnu.org>
4299
4300         * params.def (PARAM_MAX_GROW_COPY_BB_INSNS): New.
4301         * bb-reorder.c (copy_bb_p): Use it.
4302         * doc/invoke.texi (param table): Add max-grow-copy-bb-insn.
4303
4304 2005-10-05  Richard Henderson  <rth@redhat.com>
4305
4306         PR target/23602
4307         * toplev.c (process_options): Warn about unsupported combinations
4308         of unwind tables and omit-frame-pointer.
4309         * config/i386/i386.c (override_options): Similarly.  Enable
4310         accumulate-outgoing-args if not explicitly disabled.
4311
4312 2005-10-05  Steve Ellcey  <sje@cup.hp.com>
4313
4314         * vect.md (vec_initv2si): Fix typo of V2SF to V2SI.
4315         Handle big endian vs. small endian.
4316         (vec_initv2sf): Handle big endian vs. small endian.
4317         (*vec_extractv2sf_1): Ditto.
4318
4319 2005-10-05  Dale Johannesen  <dalej@apple.com>
4320
4321         * convert.c (convert_to_real):  Don't convert
4322         (float)floor(double d) to floorf((float)d).
4323
4324 2005-10-05  Daniel Jacobowitz  <dan@codesourcery.com>
4325
4326         * config/arm/arm.md (insv): Use gen_int_mode in more places.
4327
4328 2005-10-05  Andrew MacLeod  <amacleod@redhat.com>
4329
4330         PR tree-optimization/18587
4331         * tree-ssa-operands.c (struct opbuild_list_d, OPBUILD_LAST): Delete.
4332         (build_defs, build_uses, build_v_may_defs, build_v_must_defs,
4333         build_vuses): Change to VEC type.
4334         (opbuild_initialize_virtual, opbuild_initialize_real, opbuild_free,
4335         opbuild_num_elems, opbuild_append_real, opbuild_append_virtual,
4336         opbuild_first, opbuild_next, opbuild_elem_real, opbuild_elem_virtual,
4337         opbuild_elem_uid, opbuild_clear, opbuild_remove_elem): Delete.
4338         (get_name_decl): New.  Return DECL_UID of base variable.
4339         (operand_build_cmp): New.  qsort comparison routine.
4340         (operand_build_sort_virtual): New.  Sort virtual build vector.
4341         (init_ssa_operands, fini_ssa_operands): Use VEC routines.
4342         (FINALIZE_OPBUILD_BASE, FINALIZE_OPBUILD_ELEM): Use VEC_Index.
4343         (FINALIZE_BASE): Use get_name_decl.
4344         (finalize_ssa_defs, finalize_ssa_uses, cleanup_v_may_defs,
4345         finalize_ssa_v_may_defs, finalize_ssa_vuses, finalize_ssa_v_must_defs,
4346         (start_ssa_stmt_operands, append_def, append_use, append_vuse,
4347         append_v_may_def, append_v_must_def): Replace opbuild_* routines with
4348         direct VEC_* manipulations.
4349         (build_ssa_operands): Call operand_build_sort_virtual.
4350         (copy_virtual_operand, create_ssa_artficial_load_stmt,
4351         add_call_clobber_ops, add_call_read_ops): Replace opbuild_* routines
4352         with direct VEC_* manipulations.
4353         * tree-ssa-opfinalize.h (FINALIZE_FUNC): Replace opbuild_* routines
4354         with direct VEC manipulations.
4355
4356 2005-10-05  Paolo Bonzini  <bonzini@gnu.org>
4357
4358         PR tree-optimization/21419
4359         PR tree-optimization/24146
4360         PR tree-optimization/24151
4361
4362         * c-typeck.c (readonly_error): Handle USE being lv_asm.
4363         (build_asm_expr): Call it if outputs are read-only.
4364         * gimplify.c (gimplify_asm_expr): Remove former fix to PR 21419.
4365
4366 2005-10-05  Billy Biggs  <billy.biggs@gmail.com>
4367             Paolo Bonzini  <bonzini@gnu.org>
4368
4369         PR target/23809
4370
4371         * doc/extend.texi (x86 Built-ins): Document that -msse and friends
4372         enable the instructions and not just the built-ins.
4373         * doc/invoke.texi (x86 Options): Likewise.
4374
4375 2005-10-04  Geoffrey Keating  <geoffk@apple.com>
4376
4377         * config/i386/t-darwin (SHLIB_VERPFX): Fix typo.
4378
4379         * doc/invoke.texi (Option Summary): Correct spelling
4380         of -mmacosx-version-min.
4381
4382 2005-10-04  Devang Patel  <dpatel@apple.com>
4383
4384         * c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for
4385         real types.
4386
4387 2005-10-04  Steve Ellcey  <sje@cup.hp.com>
4388
4389         * tree-vect-transform.c (vect_create_epilog_for_reduction):
4390         Use BYTES_BIG_ENDIAN instead of BITS_BIG_ENDIAN.
4391
4392 2005-10-04  Adrian Straetling  <straetling@de.ibm.com>
4393
4394         * config/s390/s390.md ("TDSI","DP"): New mode macros.
4395         ("TE","tg"): New mode attributes.
4396         ("sync_compare_and_swap<mode>"): Replace with a define_expand.
4397         ("sync_compare_and_swap<mode>_cc"): Replace GPR with TDSI.
4398         ("*sync_compare_and_swap<mode>_cc"): Replace with one pattern for
4399         dword_mode and one for GPRmode.
4400
4401 2005-10-04  Ian Lance Taylor  <ian@airs.com>
4402
4403         PR preprocessor/13726
4404         * c-ppoutput.c (cb_include): Add comments parameter, and print out
4405         any comments passed in.
4406
4407 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
4408
4409         * tree.c (annotate_with_file_line): Fix typo.
4410
4411 2005-10-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4412
4413         PR ada/19382
4414         * builtins.c (fold_builtin_memcmp): When constructing the pointer
4415         type used to access data in the inlined length == 1 case, use
4416         build_pointer_type_for_mode with CAN_ALIAS_ALL set to true.
4417         (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
4418
4419 2005-10-04  Uros Bizjak  <uros@kss-loka.si>
4420
4421         * config/i386/i386.h (TARGET_FISTTP): Enable also for
4422         TARGET_SSE3 and only for TARGET_80387.
4423         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1,
4424         (fix_trunc<mode>_i387_fisttp, fix_trunc<mode>_i387_fisttp_with_temp):
4425         Do not depend on TARGET_80387.
4426
4427 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
4428
4429         * tree.c (last_annotated_node): Change type to location_t*.
4430         (annotate_with_file_line): Reflect the change of
4431         last_annotated_node type.
4432
4433 2005-10-04  Richard Guenther  <rguenther@suse.de>
4434
4435         PR c/23576
4436         * c-decl.c (grokdeclarator): Don't write to fields
4437         of error_mark_node.
4438
4439 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
4440
4441         PR middle-end/23125
4442         * c-decl.c (finish_decl): Use set_user_assembler_name even for
4443         register variables.
4444         * varasm.c (make_decl_rtl): If a register variable does not
4445         have a set user assmbler name, error out.
4446         Decode the asmspec is now name+1 bypassing '*'.
4447
4448 2005-10-04  Steven Bosscher  <stevenb@suse.de>
4449
4450         PR tree-optimization/23049
4451         * tree-ssa-dom.c (thread_across_edge): Make sure that the condition
4452         of a COND_EXPR is folded before calling fold on the whole rhs of a
4453         conditional assignment.
4454         * doc/tree-ssa.texi: Update the GIMPLE grammar for a valid rhs to
4455         document that a COND_EXPR may appear there.
4456
4457 2005-10-03  Diego Novillo  <dnovillo@redhat.com>
4458
4459         PR 23445
4460         * tree-vrp.c (extract_range_from_assert): If the new numeric
4461         range created out of the assertion contradicts the existing
4462         numeric range of the ASSERT_EXPR variable, make the new range
4463         varying.
4464
4465 2005-10-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4466
4467         * config/sh/sh.c (sh_register_move_cost): Add case for moving
4468         from T_REGS to FP register class.
4469
4470 2005-10-03  Richard Henderson  <rth@redhat.com>
4471
4472         PR 24135
4473         * tree-nested.c (convert_nl_goto_reference): Lookup a translation
4474         before creating a new one.
4475
4476 2005-10-03  David Edelsohn  <edelsohn@gnu.org>
4477
4478         * config/rs6000/t-aix43 (LDFLAGS): New.
4479         * config/rs6000/t-aix52 (LDFLAGS): New.
4480
4481 2005-10-03  Ian Lance Taylor  <ian@airs.com>
4482
4483         * gimplify.c (find_single_pointer_decl_1): New static function.
4484         (find_single_pointer_decl): New static function.
4485         (internal_get_tmp_var): For a formal variable, set restrict base
4486         information if appropriate.
4487         * alias.c (find_base_decl): If a VAR_DECL has a restrict base,
4488         return it.
4489         * tree.h (DECL_BASED_ON_RESTRICT_P): Define.
4490         (DECL_GET_RESTRICT_BASE): Define.
4491         (SET_DECL_RESTRICT_BASE): Define.
4492         (decl_restrict_base_lookup): Declare.
4493         (decl_restrict_base_insert): Declare.
4494         (struct tree_decl_with_vis): Add based_on_restrict_p field.
4495         * tree.c (restrict_base_for_decl): New static variable.
4496         (init_ttree): Initialize restrict_base_for_decl.
4497         (copy_node_stat): Copy restrict base information.
4498         (decl_restrict_base_lookup): New function.
4499         (decl_restrict_base_insert): New function.
4500         (print_restrict_base_statistics): New static function.
4501         (dump_tree_statistics): Call print_restrict_base_statistics.
4502
4503 2005-10-02  Diego Novillo  <dnovillo@redhat.com>
4504
4505         PR 24142
4506         * tree-vrp.c (vrp_meet): Fix call to range_includes_zero_p in
4507         case of anti-ranges.
4508
4509 2005-10-02  Andrew Pinski  <pinskia@physics.uc.edu>
4510
4511         PR c/18851
4512         * c-typeck.c (tagged_tu_seen): Rename to ...
4513         (tagged_tu_seen_cache): this and add val field.
4514         (comptypes): Move functional to comptypes_internal
4515         and free tagged_tu_seen.
4516         (comptypes_internal): New function and call comptypes_internal
4517         instead of comptypes. Speed up by sibcalling
4518         tagged_types_tu_compatible_p.
4519         (alloc_tagged_tu_seen): New function
4520         (free_all_tagged_tu_seen_up_to): New function.
4521         (tagged_types_tu_compatible_p): Return the val of the seen two
4522         types.
4523         Add that the two types are the same to tagged_tu_seen_base
4524         if they are and call comptypes_internal instead of comptypes.
4525         <case UNION_TYPE>: Speed up common type where the fields are
4526         in the same order.
4527         (function_types_compatible_p): Call comptypes_internal instead of
4528         comptypes.
4529         (type_lists_compatible_p): Likewise.
4530         (all functions): s/tagged_tu_seen/tagged_tu_seen_cache/.
4531
4532 2005-10-02  Matthias Klose  <doko@debian.org>
4533
4534         * doc/invoke.texi: Fix typo and speling error.
4535
4536 2005-10-01  Richard Henderson  <rth@redhat.com>
4537
4538         * tree-stdarg.c (execute_optimize_stdarg): Process PHI nodes too.
4539
4540 2005-10-01  Mark Mitchell  <mark@codesourcery.com>
4541
4542         * config/arm/unknown-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define
4543         using --start-group and --end-group.
4544
4545 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
4546
4547         * tree-vrp.c (value_inside_range, range_includes_zero_p): Add
4548         FIXME note regarding quirky semantics.
4549
4550 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
4551
4552         PR 24141
4553         * tree-vrp.c (vrp_meet): Clear VR0->EQUIV when building a
4554         non-null range as a last resort.
4555
4556 2005-10-01  James A. Morrison  <phython@gcc.gnu.org>
4557             Diego Novillo  <dnovillo@redhat.com>
4558
4559         PR 23604
4560         * tree-vrp.c (extract_range_from_assert): For !=
4561         assertions, only build an anti-range if LIMIT is a
4562         single-valued range.
4563
4564 2005-09-30  Richard Earnshaw  <richard.earnshaw@arm.com>
4565
4566         * arm.md (movqi): On thumb when optimizing, handle loading from
4567         memory by describing this as taking a subreg of a zero-extended load
4568         into an SImode register.
4569         (movhi): Likewise.
4570
4571 2005-09-30  Daniel Jacobowitz  <dan@codesourcery.com>
4572
4573         * reload1.c (merge_assigned_reloads): Do not change any
4574         RELOAD_FOR_OUTPUT_ADDRESS reloads.
4575
4576 2005-09-30  Geoffrey Keating  <geoffk@apple.com>
4577
4578         * Makefile.in (LIPO_FOR_TARGET): Define.
4579         (STRIP_FOR_TARGET): Define.
4580
4581         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Remove old symlinks
4582         before creating new ones.  Do symlinks before creating the actual
4583         targets.
4584
4585         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Use --print-multi-lib
4586         to work out which multilibs are actually being built.
4587
4588 2005-09-30  Kazu Hirata  <kazu@codesourcery.com>
4589
4590         * tree-vect-transform.c, config/ms1/ms1.md,
4591         config/s390/s390.c, config/v850/v850.md: Fix comment typos.
4592         Follow spelling conventions.
4593         * doc/invoke.texi, doc/md.texi: Fix typos.
4594
4595 2005-09-30  Andrew Macleod  <amacleod@redat.com>
4596
4597         PR tree-optimization/21430
4598         * tree-ssa-operands.c (set_virtual_use_link): New. Link new virtual
4599         use operands, and set stmt pointer if need be.
4600         (FINALIZE_CORRECT_USE: New. Macro to call appropriate use fixup routine.
4601         tree-ssa-opfinalize.h (FINALIZE_FUNC): Call FINALIZE_CORRECT_USE if
4602         present.
4603
4604 2005-09-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4605
4606         PR middle-end/24053
4607         * stor-layout.c (set_sizetype): Set TYPE_MAIN_VARIANT of bitsizetype.
4608
4609 2005-09-29  Mark Mitchell  <mark@codesourcery.com>
4610
4611         * optabs.c (expand_binop): Initialize first_pass_p.
4612
4613 2005-09-29  Jakub Jelinek  <jakub@redhat.com>
4614
4615         PR middle-end/24109
4616         * c-decl.c (c_write_global_declarations_1): If any
4617         wrapup_global_declaration_2 call returned true, restart the loop.
4618
4619 2005-09-29  Daniel Berlin  <dberlin@dberlin.org>
4620
4621         Fix PR tree-optimization/24117
4622         * tree-ssa-structalias.c (find_func_aliases): Strip nops
4623         before considering whether to use anyoffset.
4624
4625 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
4626
4627         Revert this patch:
4628
4629         2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
4630
4631         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
4632         to order operands.
4633         (swap_commutative_operands_with_target): New.
4634
4635 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
4636
4637         PR c/21419
4638         * gimplify.c (gimplify_asm_expr): Raise an error if an output is
4639         read-only.
4640
4641 2005-09-29  Steven Bosscher  <stevenb@suse.de>
4642
4643         PR tree-optimization/23911
4644         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle REALPART_EXPR
4645         and IMAGPART_EXPR too.
4646
4647 2005-09-28  Mark Mitchell  <mark@codesourcery.com>
4648
4649         PR 17886
4650         * expmed.c (expand_shift): Move logic to reverse rotation
4651         direction when  rotating by constants ...
4652         * optabs.c (expand_binop): ... here.
4653         * config/i386/i386.md (rotrdi3): Handle 32-bit mode.
4654         (ix86_rotrdi3): New pattern.
4655         (rotldi3): Handle 32-bit mode.
4656         (ix86_rotldi3): New pattern.
4657
4658 2005-09-29  Alan Modra  <amodra@bigpond.net.au>
4659
4660         PR target/24102
4661         * config/rs6000/rs6000.md (floatdisf2_internal2): Correct range
4662         check for numbers that need no bit twiddle.
4663
4664 2005-09-28  Geoffrey Keating  <geoffk@apple.com>
4665
4666         * config/rs6000/t-darwin8: Uncomment contents, allow -m64
4667         multilib to be built.
4668
4669         * Makefile.in: Export LIPO_FOR_TARGET, STRIP_FOR_TARGET.
4670         (stage1-start): Delete old libgcc and libunwind before moving
4671         anything into the stage directory.
4672         (stage2-start): Likewise.
4673         (stage3-start): Likewise.
4674         (stage4-start): Likewise.
4675         (stageprofile-start): Likewise.
4676         (stagefeedback-start): Likewise.
4677         * config.gcc (*-*-darwin*): Automatically use CPU-specific darwin.h
4678         header in tm_file and CPU-specific t-darwin in tmake_file.
4679         (i[34567]86-*-darwin*): Don't change tm_file.
4680         (powerpc-*-darwin*): Don't change tm_file or tmake_file.
4681         * config/darwin.h (REAL_LIBGCC_SPEC): Rewrite to use proper libgcc
4682         shared library stub for target OS version.
4683         * config/t-slibgcc-darwin (SHLIB_SOLINK): Delete.
4684         (SHLIB_LINK): Don't make SHLIB_SOLINK.
4685         (SHLIB_INSTALL): Don't install SHLIB_SOLINK.
4686         (libgcc_s.%.dylib): New.
4687         (LIBGCC): Define.
4688         (install-darwin-libgcc-stubs): New.
4689         (INSTALL_LIBGCC): New append.
4690         * config/i386/darwin-libgcc.10.4.ver: New.
4691         * config/i386/darwin-libgcc.10.5.ver: New.
4692         * config/i386/t-darwin: New.
4693         * config/rs6000/darwin-libgcc.10.4.ver: New.
4694         * config/rs6000/darwin-libgcc.10.5.ver: New.
4695         * config/rs6000/darwin.h (REAL_LIBGCC_SPEC): Delete.
4696         * config/rs6000/t-darwin (SHLIB_VERPFX): Define.
4697
4698 2005-09-28  Paul Brook  <paul@codesourcery.com>
4699
4700         * config/m68k/fpgnulib.c (__extendsfdf2, __truncdfsf2): Handle
4701         denormals.
4702
4703 2005-09-28  Richard Guenther  <rguenther@suse.de>
4704
4705         PR tree-optimization/23853
4706         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use
4707         host_integerp to verify misalignment value.
4708
4709 2005-09-28  Richard Henderson  <rth@redhat.com>
4710
4711         * builtins.c (get_builtin_sync_mode): New.
4712         (expand_builtin_sync_operation): Pass in mode argument.
4713         (expand_builtin_compare_and_swap): Likewise.
4714         (expand_builtin_lock_test_and_set): Likewise.
4715         (expand_builtin_lock_release): Likewise.
4716         (expand_builtin): Update to match.
4717
4718 2005-09-28  Nick Clifton  <nickc@redhat.com>
4719
4720         * config/v850/v850.h (GO_IF_LEGITIMATE_ADDRESS): Tidy up
4721         formatting.  Add check to PLUS case to ensure that the offset is
4722         within an acceptable range.
4723
4724         * config/v850/v850.md (casesi): Disable the generation of the
4725         switch pattern as it is not being handled properly at the moment.
4726
4727         * config/v850/lib1funcs.asm (___ucmpdi2): Correct jump instruction
4728         for when the high words are identical.
4729
4730 2005-09-27  Richard Henderson  <rth@redhat.com>
4731
4732         * pretty-print.c (pp_base_format): Fix typo for %>.
4733
4734 2005-09-27  Daniel Berlin  <dberlin@dberlin.org>
4735             Devang Patel  <dpatel@apple.com>
4736
4737         PR tree-optimization/23625
4738         * tree-flow-inline.h (bsi_after_labels): Remove, first statement is
4739         LABEL_EXPR, assertion check.
4740
4741 2005-09-27  J"orn Rennecke <joern.rennecke@st.com>
4742
4743         * optabs.c (no_conflict_move_test): Check if a result of a
4744         to-be-moved insn would be clobbered by an originally
4745         preceding insn.
4746
4747 2005-09-27  Jeff Law  <law@redhat.com>
4748
4749         * passes.c (init_optimization_passes): Replace copy propagation
4750         passes immediately after DOM with phi-only copy propagation
4751         pases.  Add phi-only copy propagation pass after first DOM pass.
4752         * tree-pass.h (pass_phi_only_copy_prop): Declare.
4753         * tree-ssa-copy.c (init_copy_prop): Accept new PHI_ONLY argument.
4754         If true, then mark all non-control statements with DONT_SIMULATE_AGAIN.
4755         (execute_copy_prop): Accept new PHI_ONLY argument.  Pass it along
4756         to init_copy_prop.  Callers updated.
4757         (do_phi_only_copy_prop): New function.
4758         (pass_phi_only_copy_prop): New pass descriptor.
4759
4760 2005-09-27  Nick Clifton  <nickc@redhat.com>
4761
4762         * libgcc2.c (__popcount_tab): Remove redundant prototype.
4763
4764 2005-09-26  Jason Merrill  <jason@redhat.com>
4765
4766         PR c++/13764
4767         * c-common.c (finish_fname_decls): Use append_to_statement_list_force.
4768
4769         * doc/invoke.texi: Clarify documentation of -fno-enforce-eh-specs.
4770
4771 2005-09-26  James E Wilson  <wilson@specifix.com>
4772
4773         * config/ia64/crtbegin.asm, config/ia64/crtend.asm: Remove glibc
4774         copyright.  Add gcc copyright plus libgcc exception.
4775         * config/ia64/crtfastmath.asm: Remove glibc copyright.  Add gcc
4776         copyright.
4777         * config/ia64/lib1funcs.asm: Add gcc copyright plus libgcc exception.
4778
4779 2005-09-26  Jeff Law  <law@redhat.com>
4780
4781         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Be more selective
4782         about when to iterate.
4783
4784 2005-09-23  Fariborz Jahanian <fjahanian@apple.com>
4785
4786         PR target/23847
4787         * config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern
4788         for __complex__ double in -mcpu=G5 mode.
4789
4790 2005-09-26  Sebastian Pop  <pop@cri.ensmp.fr>
4791
4792         PR tree-optimization/23942
4793         * Makefile.in (SCEV_H): Depends on PARAMS_H.
4794         * tree-scalar-evolution.c: Include params.h.
4795         (t_bool): New enum.
4796         (follow_ssa_edge, follow_ssa_edge_in_rhs,
4797         follow_ssa_edge_in_condition_phi_branch,
4798         follow_ssa_edge_in_condition_phi, follow_ssa_edge_inner_loop_phi):
4799         Change return type to t_bool.  Use a parameter to limit the size of
4800         trees that are walked before stopping
4801         (analyze_evolution_in_loop): Initialize the limit to 0.
4802         (follow_ssa_edge): Give up by returning t_dont_know if the limit
4803         exceeds PARAM_SCEV_MAX_EXPR_SIZE.
4804
4805 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
4806
4807         PR middle-end/23831
4808         * simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip
4809         simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT.
4810
4811 2005-09-26    Fariborz Jahanian <fjahanian@apple.com>
4812
4813         * combine.c (make_extraction): Check for valid use of subreg.
4814
4815 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
4816
4817         PR target/24055
4818         * config/i386/i386.md ("*fistdi2_1"): New pattern.
4819         ("*fist<mode>2_1"): Use only HImode and SImode register operands.
4820         ("fist<mode>2_with_temp"): Use only register operands.
4821
4822 2005-09-26  J"orn Rennecke <joern.rennecke@st.com>
4823
4824         * rtlanal.c (reg_used_between_p): Don't check for CLOBBERs in
4825         CALL_INSN_FUNCTION_USAGE.
4826
4827 2005-09-26  Richard Guenther  <rguenther@suse.de>
4828
4829         PR middle-end/15855
4830         * gcse.c: Include hashtab.h, define ldst entry hashtable.
4831         (pre_ldst_expr_hash, pre_ldst_expr_eq): New functions.
4832         (ldst_entry): Use the hashtable instead of list-walking.
4833         (find_rtx_in_ldst): Likewise.
4834         (free_ldst_entry): Free the hashtable.
4835         (compute_ld_motion_mems): Create the hashtable.
4836         (trim_ld_motion_mems): Remove entry from hashtable if
4837         removing it from list.
4838         (compute_store_table): Likewise^2.
4839         (store_motion): Free hashtable in case we did not see
4840         any stores.
4841
4842 2005-09-25  Kazu Hirata  <kazu@codesourcery.com>
4843
4844         * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
4845         and arg1 if we are passing them to fold_build2.
4846
4847 2005-09-25  Dan Nicolaescu  <dann@ics.uci.edu>
4848
4849         PR 23828
4850         * config/i386/i386.c (ix86_function_regparm): Fix the test for
4851         a nested function.
4852
4853 2005-09-25  Richard Henderson  <rth@redhat.com>
4854
4855         * config/alpha/alpha.c (tls_symbolic_operand_1): Trust
4856         SYMBOL_REF_TLS_MODEL to be correct.
4857
4858 2005-09-24  Richard Henderson  <rth@redhat.com>
4859
4860         * ipa-type-escape.c (discover_unique_type): Remove dead code at
4861         end of function.  Reindent.
4862
4863 2005-09-24  Ian Lance Taylor  <ian@airs.com>
4864
4865         * convert.c (convert_to_integer): Don't test for ENUMERAL_TYPE in
4866         NEGATE_EXPR/BIT_NOT_EXPR case.
4867
4868 2005-09-24  Richard Henderson  <rth@redhat.com>
4869
4870         * c-common.c (handle_mode_attribute): When not modifying in place,
4871         create subtypes for enumerations.
4872         (sync_resolve_return): Use TYPE_MAIN_VARIANT.
4873         * gimplify.c (create_tmp_from_val): Likewise.
4874
4875 2005-09-24  Alexandre Oliva  <aoliva@redhat.com>
4876
4877         * config/i386/i386.md (*tls_global_dynamic_64,
4878         *tls_local_dynamic_base_64): Add missing mode to call.
4879         (tls_global_dynamic_64, tls_local_dynamic_base_64): Likewise.
4880
4881 2005-09-24  Jan Hubicka  <jh@suse.cz>
4882
4883         * cgraph.c (cgraph_clone_edge): Make the scale gcov_type.
4884         (cgraph_clone_node): Likewise.
4885         * cgraph.h (cgraph_clone_edge): Update prototype.
4886         (cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Remove
4887         duplicated prototypes; add updating argument.
4888         * cgraphunit.c (verify_cgraph_node): Verify that counts are non-negative.
4889         * ipa-inline.c (cgraph_clone_inlined_nodes): Allow clonning without
4890         updating profile.
4891         (cgraph_mark_inline_edge): Likewise.
4892         (cgraph_mark_inline): Update use of cgraph_mark_inline_edge.
4893         (cgraph_flatten_node): Likewise.
4894         (cgraph_decide_recursive_inlining): Likewise.
4895         (cgraph_decide_inlining_of_small_function): Likewise.
4896         * tree-optimize.c (tree_rest_of_compilation): Likewise.
4897
4898 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
4899             Pete Steinmetz <steinmtz@us.ibm.com>
4900
4901         * config/rs6000/rs6000.md (neg-minus-mult): Set type to dmul.
4902         (rldic.): Set type to "compare".
4903         (rldicr.): Same.
4904         (movsf_hardfloat): Set type to mtjmpr for MTCTR/MTLR.  Set type to
4905         mfjmpr for MFCTR/MFLR.
4906         (movdf_hardfloat64): Same.
4907         (movdf_softfloat64): Same.  Correct order of store and move types.
4908         (movti_string): Set type to store_ux/load_ux.
4909         (load_multiple): Set type to load_ux.
4910         (store_multiple): Set type to store_ux.
4911         (movmemsi): Set type to store_ux.
4912         (output_cbranch direct_return): Set type to jmpreg.
4913         (stmw): Set type to store_ux.
4914         (lmw): Set type to load_ux.
4915         * config/rs6000/40x.md (ppc403-store): Increase latency to 2.
4916         * config/rs6000/440.md (ppc440-store): Increase latency to 6.
4917         * config/rs6000/603.md (ppc603-store): Occupy LSU for 2 cycles.
4918         * config/rs6000/6xx.md (ppc604-store): Increase latency to 3.
4919         * config/rs6000/mpc.md (mpccore-store): Increase latency to 2.
4920         * config/rs6000/rios1.md (rios1-store): Increase latency to 2.
4921         (rios1-fpstore): Increase latency to 3.
4922         * config/rs6000/rios2.md (rios2-store): Increase latency to 2.
4923         * config/rs6000/rs64.md (rs64a-store): Increase latency to 2.
4924
4925 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
4926             Andrew Pinski  <pinskia@physics.uc.edu>
4927
4928         * config/rs6000/sync.md (sync_<fetchop_name>si_internal): Change
4929         operand2 constraint to "b".
4930         (sync_<fetchop_name>di_internal): Same.
4931         (sync_old_<fetchop_name>si_internal): Change operand3 constraint
4932         to "b".
4933         (sync_old_<fetchop_name>di_internal): Same.
4934         (sync_new_<fetchop_name>si_internal): Same.
4935         (sync_new_<fetchop_name>di_internal): Same.
4936
4937 2005-09-23  J"orn Rennecke <joern.rennecke@st.com>
4938
4939         PR middle-end/23991
4940         * final.c (insn_default_length, insn_min_length): In !HAVE_ATTR_length
4941         case, define as macros.
4942
4943         PR rtl-optimization/23837
4944         *  optabs.c (no_conflict_move_test): Don't set must_stay for a
4945         clobber / clobber match between dest and p->first.
4946
4947         * optabs.c (emit_libcall_block): Use no_conflict_move_test.
4948         (no_conflict_move_test): Update comments.
4949
4950 2005-09-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
4951
4952         * doc/install.texi: Update URL for Jacks.
4953         * doc/sourcebuild.texi: Likewise.
4954
4955 2005-09-22  David Edelsohn  <edelsohn@gnu.org>
4956
4957         PR target/24007
4958         * config/rs6000/rs6000.md (movsf_hardfloat): Ignore special
4959         registers when choosing register preferences.
4960         (movdf_hardfloat64): Same.
4961
4962 2005-09-22  Andreas Krebbel  <krebbel1@de.ibm.com>
4963
4964         * expmed.c (expand_shift): Don't use the target of the rotate as
4965         target for the first expanded shift insn.
4966         * testsuite/gcc.dg/20050922-1.c: Testcase added.
4967
4968 2005-09-21  Zdenek Dvorak  <dvorakz@suse.cz>
4969
4970         PR tree-optimization/22438
4971         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Handle all
4972         preserved iv rhs rewriting specially.
4973
4974 2005-09-21  Daniel Berlin  <dberlin@dberlin.org>
4975
4976         * tree-data-ref.c (analyze_array_indexes): Only estimate when
4977         estimate_only  is true.
4978         * tree-flow.h (ref_contains_indirect_ref): New prototype.
4979         * tree-flow-inline.h (ref_contains_indirect_ref): Moved from
4980         tree-ssa-structalias.c
4981         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use
4982         ref_contains_indirect_ref.
4983         * tree-ssa-structalias.c (ref_contains_indirect_ref): Moved.
4984
4985 2005-09-21  DJ Delorie  <dj@redhat.com>
4986
4987         * config/mn10300/mn10300.c (TARGET_DEFAULT_TARGET_FLAGS): Add
4988         MASK_PTR_A0D0.
4989         (mn10300_return_in_memory): Support variable size types also.
4990         (mn10300_pass_by_reference): Likewise.
4991         (mn10300_function_value): New.
4992         * config/mn10300/mn10300.h (FUNCTION_VALUE): Call the above.
4993         (FUNCTION_OUTGOING_VALUE): Likewise.
4994         * config/mn10300/mn10300.opt: Add -mreturn-pointer-on-d0.
4995         * doc/invoke.texi: Document it.
4996
4997 2005-09-21  Uros Bizjak  <uros@kss-loka.si>
4998
4999         PR target/22585
5000         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
5001         force integer op1 into register for XFmode compares.
5002
5003 2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
5004
5005         PR middle-end/23971
5006         * expmed.c (alg_code): Add alg_impossible.
5007         (alg_hash_entry): Add cost.
5008         (synth_mult): Record alg_impossible in the hash table if
5009         multiplication by a given integer is impossble within the
5010         limit.  Speed up using alg_impossible.
5011
5012 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
5013
5014         * tree-ssa-structalias.c (get_constraint_for_component_ref): Add
5015         argument.  Allow and set any offset if needs_anyoffset is passed
5016         in.
5017         (get_constraint_for): Add argument here too.
5018         Pass it down.
5019         (do_structure_copy): Pass NULL to get_constraint_for.
5020         (handle_ptr_arith): Ditto.
5021         (find_func_aliases): Ditto.
5022
5023 2005-09-20  J"orn Rennecke <joern.rennecke@st.com>
5024
5025         PR rtl-optimization/23898
5026         * output.h (get_attr_min_length): Declare.
5027         * final.c (get_attr_length_1): New function, broken out of:
5028         (get_attr_length).
5029         (get_attr_min_length): New function.
5030         * bb-reorder.c (copy_bb_p, get_uncond_jump_length): Use it.
5031         (duplicate_computed_gotos): Likewise.
5032         * genattr.c (insn_min_length): Generate declaration.
5033         * genattrtab.c (min_fn, min_attr_value): New functions.
5034         (make_length_attrs): Generate insn_min_length.
5035
5036 2005-09-20  Steve Ellcey  <sje@cup.hp.com>
5037
5038         * config/pa/pa.c (output_cbranch): Check for zero in operands[2].
5039
5040 2005-09-20  Richard Henderson  <rth@redhat.com>
5041
5042         PR tree-optimization/24059
5043         * expr.c (expand_expr_real_1) <INDIRECT_REF>: Allow modifier
5044         EXPAND_STACK_PARM.
5045
5046 2005-09-20  Joseph S. Myers  <joseph@codesourcery.com>
5047
5048         * c.opt (fextended-identifiers): New.
5049         * c-opts.c (c_common_handle_option): Handle
5050         -fextended-identifiers.
5051         * doc/cpp.texi: Update documentation of extended identifiers.
5052         * doc/cppopts.texi (-fextended-identifiers): Document.
5053
5054 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
5055
5056         PR tree-optimization/23929
5057         * tree-ssa-loop-niter.c (expand_simple_operations): Return immediately
5058         if expr is NULL.
5059
5060         PR tree-optimization/23818
5061         * tree-stdarg.c (execute_optimize_stdarg): Call
5062         calculate_dominance_info.
5063
5064 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
5065
5066         * tree-data-ref.c (get_number_of_iters_for_loop): New function.
5067         (analyze_siv_subscript_cst_affine): Add weak SIV test.
5068         (compute_overlap_steps_for_affine_1_2): Use
5069         get_number_of_iters_for_loop.
5070         (analyze_subscript_affine_affine): Check whether difference is
5071         zero first.
5072         Use get_number_of_iters_for_loop.
5073         Check whether overlap occurs outside of bounds.
5074         (analyze_miv_subscript): Use get_number_of_iters_for_loop.
5075
5076 2005-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
5077
5078         * tree-ssa-address.c (create_mem_ref): Put the symbol reference into the
5079         base register if possible.
5080
5081 2005-09-20  Zdenek Dvorak  <dvorakz@suse.cz>
5082
5083         PR tree-optimization/18463
5084         * tree-chrec.c (chrec_convert): Return fold_converted chrec if
5085         converting it directly is not possible.
5086         (chrec_convert_aggressive): New function.
5087         * tree-chrec.h (chrec_convert_aggressive): Declare.
5088         * tree-scalar-evolution.c (instantiate_parameters_1, resolve_mixers):
5089         Fold chrec conversions aggressively if asked to.
5090         (instantiate_parameters): Modified because of changes in
5091         instantiate_parameters_1.
5092
5093 2005-09-19  Richard Henderson  <rth@redhat.com>
5094
5095         * config/i386/sse.md (reduc_splus_v4sf): Rename from reduc_plus_v4sf.
5096         (reduc_splus_v2df): New.
5097
5098 2005-09-19  Richard Sandiford  <richard@codesourcery.com>
5099
5100         * config/arm/aof.h (REGISTER_NAMES): Add missing backslash.
5101         (ADDITIONAL_REGISTER_NAMES): Add missing comma.  Remove final comma.
5102
5103 2005-09-19  Richard Henderson  <rth@redhat.com>
5104
5105         * config/i386/sse.md (vcondu<SSEMODE124>): Rename from
5106         vcondu<SSEMODE12>.
5107
5108 2005-09-19  Richard Henderson  <rth@redhat.com>
5109
5110         * config/ia64/ia64.c (ia64_expand_widen_sum): New.
5111         (ia64_expand_dot_prod_v8qi): New.
5112         * config/ia64/ia64-protos.h: Update.
5113         * config/ia64/vect.md (pmpy2_r, pmpy2_l, widen_usumv8qi3,
5114         widen_usumv4hi3, widen_ssumv8qi3, widen_ssumv4hi3, udot_prodv8qi,
5115         sdot_prodv8qi, sdot_prodv4hi): New.
5116         (reduc_splus_v2sf): Rename from reduc_plus_v2sf.
5117
5118 2005-09-19  Richard Henderson  <rth@redhat.com>
5119
5120         PR 23941
5121         * real.c (exact_real_truncate): Return false if the format cannot
5122         represent the number as a normal.
5123
5124         * config/alpha/alpha.c (alpha_rtx_costs) <FLOAT_EXTEND>: Cost 0
5125         for a memory source.
5126
5127 2005-09-19  Dorit Nuzman  <dorit@il.ibm.com>
5128
5129         * tree-ssa-operands.c (swap_tree_operands): Export.
5130         * tree.h (swap_tree_operands): Declare.
5131         * tree-vectorizer.c (vect_is_simple_reduction): Remove ATTRIBUTE_UNUSED.
5132         Call swap_tree_operands.
5133
5134 2005-09-19  Richard Henderson  <rth@redhat.com>
5135
5136         * tree-flow.h (merge_alias_info): Declare.
5137         * tree-ssa-copy.c (merge_alias_info): Export.
5138         * tree-vect-transform.c (vect_create_index_for_vector_ref): Remove.
5139         (vect_create_data_ref_ptr): Use create_iv directly.
5140         (vectorizable_load): Use correct types for integer constants.
5141         (vect_generate_tmps_on_preheader): Likewise.
5142         (vect_gen_niters_for_prolog_loop): Likewise.
5143
5144 2005-09-19  Steven Bosscher  <stevenb@suse.de>
5145
5146         PR rtl-optimization/23943
5147         * cse.c (find_best_addr): Never propagate an EXPR_LIST rtx.
5148
5149 2005-09-18  Jan Hubicka  <jh@suse.cz>
5150
5151         * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK.
5152
5153 2005-09-18  Eric Botcazou  <ebotcazou@adacore.com>
5154
5155         * varasm.c (output_constant): Do not abort on conversions to union
5156         types between different sizes.
5157
5158 2005-09-18  Richard Guenther  <rguenther@suse.de>
5159
5160         PR middle-end/23944
5161         * gimplify.c (fold_indirect_ref_rhs): Fix thinko in
5162         fallback.
5163
5164 2005-09-18  Paul Brook  <paul@codesourcery.com>
5165
5166         * config/m68k/fpgnuib.c (__floatsidf): Don't rely on signed overflow.
5167
5168 2005-09-17  Richard Henderson  <rth@redhat.com>
5169
5170         * tree-pass.h, tree-flow.h, tree-ssa-dce.c: Revert last change.
5171         * tree-ssa-loop.c (pass_vect_dce): Remove.
5172         * passes.c (init_optimization_passes): Add pass_dce as a sub-pass
5173         of pass_vectorize.
5174
5175 2005-09-17  Richard Henderson  <rth@redhat.com>
5176
5177         * tree-pass.h (pass_vect_dce): Declare.
5178         * passes.c (init_optimization_passes): Add it.
5179         * tree-flow.h (tree_ssa_dce): Declare.
5180         * tree-ssa-dce.c (tree_ssa_dce): Export.
5181         * tree-ssa-loop.c (tree_vectorize): Move current_loops check ...
5182         (gate_tree_vectorize): ... here.
5183         (pass_vect_dce): New.
5184
5185 2005-09-17  Jan Hubicka  <jh@suse.cz>
5186
5187         * except.c (struct eh_status): Turn region_array into vec.
5188         (expand_resx_expr, collect_eh_region_array, remove_unreachable_regions,
5189         convert_from_eh_region_ranges, find_exception_handler_labels,
5190         current_function_has_exception_handlers, assign_filter_values,
5191         build_post_landing_pads, dw2_build_landing_pads,
5192         sjlj_find_directly_reachable_regions, sjlj_mark_call_sites,
5193         sjlj_emit_dispatch_table, remove_eh_handler, for_each_eh_region,
5194         foreach_reachable_handler, can_throw_internal_1,
5195         convert_to_eh_region_ranges, verify_eh_tree): Update uses of
5196         region_array.
5197         (duplicate_eh_region_1): Update region_array.
5198         (duplicate_eh_regions): Resize region_array and avoid recomputing.
5199
5200 2005-09-17  David Edelsohn  <edelsohn@gnu.org>
5201
5202         PR middle-end/22067
5203         * expmed.c (expand_mult): Substitute simple register for op0 when
5204         computing max_cost.
5205
5206 2005-09-17  Richard Henderson  <rth@redhat.com>
5207
5208         * expr.c (emit_move_via_integer): Add force argument, pass it on
5209         to emit_move_change_mode.  Update callers.
5210         (emit_move_complex): Pass true to new force argument.
5211         * function.c (expand_function_end): Move expand_eh_return call
5212         earlier.  Merge sub-word complex values into a pseudo before
5213         copying to the return hard register.
5214
5215 2005-09-17  Eric Botcazou  <ebotcazou@adacore.com>
5216
5217         * varasm.c (output_constant): Do not abort on VIEW_CONVERT_EXPRs
5218         between different sizes.
5219
5220 2005-09-16  Paolo Bonzini  <bonzini@gnu.org>
5221
5222         PR 23903
5223
5224         * passes.c (init_optimization_passes): Register dump files for
5225         IPA passes first.
5226
5227 2005-09-16  Andreas Krebbel  <krebbel1@de.ibm.com>
5228
5229         * config/s390/s390-protos.h (s390_overlap_p): Prototype added.
5230         * config/s390/s390.c (s390_overlap_p): New function.
5231         * config/s390/s390.md ("*mvc" peephole2, "*nc" peephole2, "*oc"
5232         peephole2, "*xc" peephole2): Added overlap check to the peephole2
5233         condition.
5234
5235 2005-09-16  Richard Guenther  <rguenther@suse.de>
5236
5237         * ipa-pure-const.c (static_execute): Free auxiliar information.
5238         * ipa-type-escape.c (discover_unique_type): Free temporary key.
5239         * tree-vrp.c (remove_range_assertions): Free blocks_visited sbitmap.
5240
5241 2005-09-15  DJ Delorie  <dj@redhat.com>
5242
5243         * config/m32c/m32c-lib1.S (__m32c_eh_return): Fix typo.
5244
5245 2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
5246
5247         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
5248         to order operands.
5249         (swap_commutative_operands_with_target): New.
5250
5251 2005-09-15  Daniel Berlin  <dberlin@dberlin.org>
5252
5253         * tree-data-ref.c (analyze_array_indexes): Add estimate_only
5254         parameter.
5255         Update callers.
5256         (estimate_iters_using_array): New function.
5257         * tree-data-ref.h (estimate_iters_using_array): Prototype
5258         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
5259         Use estimate_iters_using_array instead of analyze_array.
5260
5261 2005-09-15  Eric Botcazou  <ebotcazou@adacore.com>
5262
5263         * tree-nested.c (get_frame_type): Mark the "non-local frame structure"
5264         as addressable.
5265
5266 2005-09-15  Michael Matz  <matz@suse.de>
5267
5268         * tree-vrp.c (vrp_int_const_binop <MINUS_EXPR>): Handle 0 - -INF.
5269
5270 2005-09-14  Daniel Berlin  <dberlin@dberlin.org>
5271
5272         PR tree-optimization/23835
5273         * tree-ssa-alias.c (sort_pointers_by_pt_vars): New function.
5274         (create_name_tags): Rewrite to be not O(num_ssa_names^2).
5275
5276 2005-09-14  Richard Henderson  <rth@redhat.com>
5277
5278         * config/ia64/vect.md (addv2sf3, subv2sf3): Rewrite as expand.
5279         (addv2sf3_1, addv2sf3_2, subv2sf3_1, subv2sf3_2): New.
5280
5281 2005-09-14  Andrew Pinski  <pinskia@physics.uc.edu>
5282
5283         * config/i386/i386.c (contains_128bit_aligned_vector_p): Add break
5284         in the ARRAY_TYPE case.
5285
5286 2005-09-14  Eric Botcazou  <ebotcazou@adacore.com>
5287
5288         * tree.c (substitute_in_expr, case 4): New case, for ARRAY_REF.
5289
5290 2005-09-14  Uros Bizjak  <uros@kss-loka.si>
5291
5292         PR middle-end/22480
5293         * tree-vect-transform.c (vectorizable_operation): Return false for
5294         scalar shift operations and for vector shift operations with
5295         non-invariant shift arguments.  Use scalar tree operand op1 as
5296         a shift operand when vector shift insn pattern uses scalar shift
5297         operand.
5298         * Makefile.in (tree-vect-transform.o): Depend on recog.h.
5299
5300 2005-09-14  Olivier Hainque  <hainque@adacore.com>
5301
5302         * gimplify.c (gimplify_init_ctor_eval): Don't discard a zero-sized
5303         value if it has side-effects.
5304
5305 2005-09-14  David Edelsohn  <edelsohn@gnu.org>
5306
5307         PR target/22068
5308         * config/rs6000/rs6000.md (muldi3): Add mulli alternative.
5309
5310 2005-09-14  Alan Modra  <amodra@bigpond.net.au>
5311
5312         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name
5313         passed as NAME as if it were label at start of function code.
5314
5315 2005-09-13  Kaz Kojima  <kkojima@gcc.gnu.org>
5316
5317         * config/sh/sh.md (*movv4sf_i): Add general register cases to
5318         the constraints.
5319
5320 2005-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
5321
5322         * config/rs6000/darwin.md (movdf_low_si): Mark the outgoing r constraint
5323         as early clobber.  Rewrite so the PIC register is not implicitly used.
5324
5325 2005-09-13  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5326
5327         * tree.c (annotate_with_file_line): Compare line numbers before
5328         file names.
5329
5330 2005-09-13  Uros Bizjak  <uros@kss-loka.si>
5331
5332         PR target/23816
5333         * config/i386/sse.md (*ieee_sminv4sf3, *ieee_smaxv4sf3)
5334         (*ieee_sminv2df3, *ieee_smaxv2df3): New insn patterns.
5335
5336 2005-09-13  Ian Lance Taylor  <ian@airs.com>
5337
5338         * loop-doloop.c (doloop_modify): Use GEN_INT to pass an rtx rather
5339         than a HOST_WIDEST_INT to gen_doloop_begin.
5340
5341 2005-09-13  Diego Novillo  <dnovillo@redhat.com>
5342
5343         * tree-dfa.c (dump_variable): Guard against NULL annotations.
5344
5345 2005-09-13  Zdenek Dvorak  <dvorakz@suse.cz>
5346
5347         PR tree-optimize/23817
5348         * tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa.
5349
5350 2005-09-13  Alan Modra  <amodra@bigpond.net.au>
5351
5352         PR target/23774
5353         * config/rs6000/rs6000.md (restore_stack_block): Write the backchain
5354         word before changing the stack pointer.  Use gen_frame_mem for MEMs.
5355         Use UNSPEC_TIE to prevent insn scheduling reordering the insns.
5356         (restore_stack_nonlocal): Likewise.
5357         (save_stack_nonlocal): Use template to emit insns, and gen_frame_mem.
5358
5359 2005-09-12  Ian Lance Taylor  <ian@airs.com>
5360
5361         PR g++/7874
5362         * c.opt (ffriend-injection): New C++ option.
5363         * doc/invoke.texi (Option Summary): Mention -ffriend-injection.
5364         (C++ Dialect Options): Document -ffriend-injection.
5365
5366 2005-09-12  Josh Conner  <jconner@apple.com>
5367
5368         PR middle-end/23237
5369         * ipa-reference.c (static_execute): Don't mark variables in
5370         named sections TREE_READONLY.
5371
5372 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
5373
5374         * config/rs6000/rs6000.c (get_next_active_insn): Simplify test for
5375         stack_tie.
5376
5377 2005-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
5378
5379         * tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and
5380         V_MUST_DEF instead of just the first_use_p.
5381         Don't mark the virtual variables for renaming on the statement which
5382         is being removed.
5383         (pass_dse): Remove TODO_update_ssa.
5384
5385 2005-09-12  J"orn Rennecke <joern.rennecke@st.com>
5386
5387         PR middle-end/23290
5388         * stor-layout.c (compute_record_mode): For records with a single
5389         field, actually check the field's mode size against the type size.
5390
5391         * sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose
5392         registers for TARGET_SHMEDIA.
5393         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Rename
5394         GENERAL_FP_REGS to GENERAL_DF_REGS.  Add GENERAL_FP_REGS as union
5395         of GENERAL_REGS and FP_REGS.
5396
5397 2005-09-12  Bernd Schmidt  <bernd.schmidt@analog.com>
5398
5399         * config/bfin/bfin.c (legimitize_pic_address): Use gen_const_mem.
5400
5401 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
5402
5403         * config/rs6000/rs6000.c (get_next_active_insn): Rewrite using
5404         CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels
5405         are omitted.  Exclude stack_tie insn too.
5406
5407 2005-09-11  David Edelsohn  <edelsohn@gnu.org>
5408
5409         PR rtl-optimization/23098
5410         * config/rs6000/predicates.md (easy_fp_constant): SFmode constant
5411         0.0f is easy.
5412         * config/rs6000/rs6000.md (movdf splitter): Use
5413         const_double_operand predicate for TARGET_POWERPC64.
5414         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand
5415         SYMBOL_REF method to ABI_V4.
5416
5417         * config/rs6000/altivec.md (build_vector_mask_for_load): Use
5418         replace_equiv_address.
5419         * config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as
5420         rs6000_sr_alias_set and MEM_NOTRAP.
5421         (rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem().
5422
5423 2005-09-11  Eric Botcazou  <ebotcazou@adacore.com>
5424
5425         * tree.c (contains_placeholder_p) <tcc_expression>: Properly
5426         handle CALL_EXPR again.
5427
5428 2005-09-11  Richard Earnshaw  <richard.earnshaw@arm.com>
5429
5430         * arm/predicates.md (alignable_memory_operand): Delete.
5431
5432 2005-09-10  Richard Henderson  <rth@redhat.com>
5433
5434         PR debug/23806
5435         * dbxout.c (dbxout_expand_expr): New.
5436         (dbxout_symbol): Use it.
5437
5438 2005-09-10  Richard Earnshaw  <richard.earnshaw@arm.com>
5439
5440         * arm.c (arm_gen_rotated_half_load): Delete.
5441         (vfp_emit_fstmx, arm_set_return_address): Use gen_frame_mem.
5442         (emit_multi_reg_push, emit_sfm, arm_expand_prologue)
5443         (thumb_set_return_address): Likewise.
5444         (thumb_load_double_from_address): Use adjust_address.
5445         * arm.md (splits calling arm_gen_rotated_half_load): Delete.
5446         (extendhsisi2_mem, movhi_bytes): Use change_address.
5447         (movhi): Use widen_memory_access.
5448         (reload_out_df): Use replace_equiv_address.
5449         * arm-protos.h (arm_gen_rotated_half_load): Delete prototype.
5450
5451 2005-09-09  Richard Henderson  <rth@redhat.com>
5452
5453         PR debug/20998
5454         * dbxout.c: Include expr.h.
5455         (dbxout_global_decl): Don't suppress for DECL_RTL unset.
5456         (dbxout_symbol): Handle DECL_VALUE_EXPR.
5457         * Makefile.in (dbxout.o): Add EXPR_H.
5458
5459 2005-09-09  Zdenek Dvorak  <dvorakz@suse.cz>
5460
5461         PR tree-optimization/23509
5462         * tree-cfg.c (replace_uses_by): Use replace_exp.
5463         * tree-ssa-loop-ivopts.c (get_ref_tag): Assert that dereferenced
5464         pointers have name_mem_tag or type_mem_tag set.
5465
5466 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
5467
5468         * tree-chrec.c (evolution_function_is_invariant_rec_p): Use
5469         CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead
5470         of wrongly accessing operands.
5471
5472 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
5473
5474         * Makefile.in (tree-chrec.o): Depends on SCEV_H.
5475         * tree-chrec.c: Include tree-scalar-evolution.h.
5476         (chrec_convert): Instantiate the base and step before calling
5477         scev_probably_wraps_p that would fail on parametric evolutions.
5478         Collect all the fails into a single section failed_to_convert,
5479         print a diagnostic, and return chrec_dont_know instead of calling
5480         fold_convert.
5481         * tree-scalar-evolution.c (loop_closed_phi_def): New.
5482         (instantiate_parameters_1): Avoid instantiation of loop closed ssa
5483         phi nodes.
5484         (scev_const_prop): Don't replace the definition of a loop closed ssa
5485         phi node by itself, or by another loop closed ssa phi node.
5486         * tree-ssa-loop-niter.c (scev_probably_wraps_p, convert_step): Check
5487         that base and step are defined.
5488
5489 2005-09-09  Richard Guenther  <rguenther@suse.de>
5490
5491         PR c++/23624
5492         * fold-const.c (fold_ternary): Check truth_value_p before
5493         calling invert_truthvalue.
5494
5495 2005-09-09  Nick Clifton  <nickc@redhat.com>
5496
5497         * Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
5498         * libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed
5499         dimension of these arrays.
5500         * libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of
5501         these arrays.
5502         * longlong.h: Only provide a prototype for the __clz_tab[] array
5503         if this header has not been included from libgcc2.h.
5504         * config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than
5505         defining own types.
5506         Provide prototypes for exported functions.
5507         Use the __clz_tab[] and __popcount_tab[] arrays provided by
5508         libgcc2.c.
5509
5510 2005-09-08  Josh Conner  <jconner@apple.com>
5511
5512         PR c++/21135
5513         PR c++/23180
5514         * expr.c (expand_expr_addr_expr_1): Don't invoke
5515         expand_simple_binop for EXPAND_INITIALIZER.
5516
5517 2005-09-08  Richard Henderson  <rth@redhat.com>
5518
5519         PR debug/23190
5520         * toplev.c (wrapup_global_declaration_1): Split out ...
5521         (wrapup_global_declaration_2): ... from ...
5522         (wrapup_global_declarations): ... here.  Return bool.
5523         (check_global_declaration_1): Split out ...
5524         (check_global_declarations): from here.
5525         (emit_debug_global_declarations): New.
5526         * toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2,
5527         check_global_declaration_1, emit_debug_global_declarations): Declare.
5528         * c-decl.c (c_write_global_declarations_1): Don't create a vector
5529         of decls.  Call wrapup_global_declaration_1,
5530         wrapup_global_declaration_2, check_global_declaration_1 directly.
5531         (c_write_global_declarations_2): New.
5532         (ext_block): New.
5533         (c_write_global_declarations): Call c_write_global_declarations_2.
5534         * langhooks.c (write_global_declarations): Call
5535         emit_debug_global_declarations.
5536
5537         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Don't
5538         remove decls that have DECL_RTL_SET_P.
5539         * passes.c (rest_of_decl_compilation): Invoke
5540         cgraph_varpool_finalize_decl for all but functions.
5541
5542 2005-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5543
5544         * tree-vrp.c (extract_range_from_unary_expr): Do not set the range for
5545         the result of a conversion if the new min and max cannot be compared.
5546
5547 2005-09-08  Andreas Krebbel  <krebbel1@de.ibm.com>
5548
5549         * config/s390/s390.c (s390_sr_alias_set): Variable removed.
5550         (override_options): Setting s390_sr_alias_set removed.
5551         (save_fpr, save_gprs): Set alias set to vararg or frame.
5552         (restore_fpr, restore_gprs, s390_emit_prologue): Replace
5553         s390_sr_alias_set with get_frame_alias_set ().
5554         (s390_gimplify_va_arg): Replace s390_sr_alias_set with
5555         get_varargs_alias_set ().
5556
5557 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
5558
5559         PR objc/20574
5560         PR objc/19324
5561         * c-parser.c (c_parser_objc_method_definition): If the next
5562         token is not "{", error out and don't start the function.
5563
5564 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
5565
5566         * tree-vrp.c (extract_range_from_expr): Move the check for non
5567         nullness after the check for gimple invariant.
5568
5569 2005-09-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5570
5571         * tree.c (host_integerp, tree_low_cst): Correct function comment.
5572
5573 2005-09-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
5574
5575         PR target/23747
5576         * config/m32r.md (movmemsi_internal): Canonicalize order of
5577         operands in PLUS component of template.
5578
5579 2005-09-07  Andreas Krebbel  <krebbel1@de.ibm.com>
5580
5581         * reload1.c (fixup_eh_region_note): Remove assertion.
5582         (fixup_abnormal_edges): Reverted removal of call to
5583         find_many_sub_basic_blocks made on 2005-08-31.
5584
5585 2005-09-07  Richard Henderson  <rth@redhat.com>
5586
5587         * function.c (ARG_POINTER_CFA_OFFSET): Move ...
5588         * defaults.h (ARG_POINTER_CFA_OFFSET): ... here.
5589         (INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c.
5590         * dwarf2out.c (struct cfa_loc): Change reg to unsigned int,
5591         rearrange for better packing.
5592         (INCOMING_FRAME_SP_OFFSET): Move to defaults.h.
5593         (lookup_cfa_1): Remove inline marker.
5594         (cfa_equal_p): Split out of ...
5595         (def_cfa_1): ... here.  Use INVALID_REGNUM.
5596         (build_cfa_loc): Handle !cfa->indirect.
5597         (frame_pointer_cfa_offset): New.
5598         (dbx_reg_number): Assert register elimination performed; do
5599         leaf register remapping.
5600         (reg_loc_descriptor): Avoid calling dbx_reg_number when unused.
5601         (eliminate_reg_to_offset): New.
5602         (based_loc_descr): Remove can_use_fbreg argument.  Use fbreg only
5603         for verifiably local stack frame addresses; re-base to CFA.
5604         (mem_loc_descriptor): Remove can_use_fbreg argument.
5605         (concat_loc_descriptor, loc_descriptor): Likewise.
5606         (containing_function_has_frame_base): Remove.
5607         (rtl_for_decl_location): Don't do register elimination or
5608         leaf register remapping here.
5609         (secname_for_decl): Split out from ..
5610         (add_location_or_const_value_attribute): ... here.
5611         (convert_cfa_to_loc_list): New.
5612         (compute_frame_pointer_to_cfa_displacement): New.
5613         (gen_subprogram_die): Use them.
5614         * tree.h (frame_base_decl): Remove.
5615         * var-tracking.c (frame_base_decl, frame_stack_adjust): Remove.
5616         (prologue_stack_adjust): Remove.
5617         (vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET.
5618         (adjust_stack_reference): Re-base memories to arg_pointer_rtx.
5619         (set_frame_base_location): Remove.
5620         (compute_bb_dataflow, emit_notes_in_bb): Don't call it.
5621         (dump_attrs_list, dump_dataflow_set): Use string concatenation.
5622         (vt_add_function_parameters): Don't eliminate_regs.
5623         (vt_initialize): Don't create frame_base_decl.
5624
5625 2005-09-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5626
5627         * doc/install.texi (*-*-solaris2*): Clarify wording on the recommended
5628         version of GNU binutils for 4.x and later.
5629
5630 2005-09-06  Mark Mitchell  <mark@codesourcery.com>
5631
5632         * ggc-page.c (ggc_push_context): Remove.
5633         (ggc_pop_context): Likewise.
5634         * ggc.h (ggc_push_context): Remove.
5635         (ggc_pop_context): Likewise.
5636
5637 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
5638
5639         PR target/8973
5640         * config/arc/arc.c (arc_output_function_epilogue): Update flags while
5641         returning from an interrupt handler.
5642
5643 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
5644
5645         PR target/8972
5646         * config/arc/arc.c (output_shift): Add check for loop count when
5647         optimizing.
5648
5649 2005-09-06  Steven Bosscher  <stevenb@suse.de>
5650
5651         * tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA
5652         form manually.
5653         (abs_replacement): Likewise.
5654         (pass_phiopt): Remove TODO_update_ssa.
5655
5656 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
5657
5658         PR c/23075
5659         * c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR
5660         if "return with no value, in function returning non-void" warning
5661         has been issued.
5662         * tree-cfg.c (execute_warn_function_return): Don't look at
5663         RETURN_EXPRs with TREE_NO_WARNING set.
5664
5665         PR target/22362
5666         * config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm
5667         for internal functions doesn't use registers used by global registers
5668         variables.  Use fewer register parameters if there are global register
5669         variables.
5670
5671 2005-09-06  Olivier Hainque  <hainque@adacore.com>
5672             Eric Botcazou  <ebotcazou@adacore.com>
5673
5674         PR middle-end/14997
5675         * expr.c (expand_expr_real) <normal_inner_ref>: Force op0 to mem
5676         when we would be extracting outside its bit span (bitpos+bitsize
5677         larger than its mode), possible with some VIEW_CONVERT_EXPRs from
5678         Ada unchecked conversions.
5679
5680 2005-09-06  Steven Bosscher  <stevenb@suse.de>
5681
5682         * tree-ssa-pre.c (try_look_through_load): New function.
5683         (compute_avail): Use it to try to look through loads for some
5684         more useful expressions.
5685
5686 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
5687
5688         * simplify-rtx.c (simplify_binary_operation_1): Correct the
5689         condition for detecting cases like (a&a) and (a^a).
5690
5691 2005-09-06  Keith Besaw  <kbesaw@us.ibm.com>
5692
5693         * common.opt: Add option ftree-vect-loop-version.
5694         * params.def: Add --param vect-max-version-checks.
5695         * doc/invoke.texi: Document ftree-vect-loop-version and
5696         --param vect-max-version-checks.
5697         * tree-vectorizer.h (_loop_vec_info): Add ptr_mask and
5698         may_misalign_stmts and defines for accessors.
5699         * tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for
5700         LOOP_VINFO_MAY_MISALIGN_STMTS.
5701         (destroy_loop_vec_info): VEC_free for
5702         LOOP_VINFO_MAY_MISALIGN_STMTS.
5703         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
5704         Update documentation.
5705         (vect_update_misalignment_for_peel): New.
5706         (vect_enhance_data_refs_alignment): Update to choose loop
5707         peeling or loop versioning if appropriate for the (potentially)
5708         unaligned data references in the loop.
5709         (vect_analyze_data_refs_alignment): Remove call to
5710         vect_enhance_data_refs_alignment so the checks can be done
5711         earlier.
5712         (vect_analyze_loop): Add call to vect_enhance_data_refs_alignment
5713         and move up call to vect_analyze_data_refs_alignment.
5714         * tree-vect-transform.c (vect_create_cond_for_align_checks): New.
5715         (vect_transform_loop): Add call to loop_version.
5716
5717 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
5718
5719         PR rtl-optimization/23098
5720         * cse.c (fold_rtx_mem): Call delegitimize_address target hook.
5721         * simplify-rtx.c (constant_pool_reference_p): New function.
5722         * rtl.h (constant_pool_reference_p): New prototype.
5723         * config/i386/i386.md (pushf split, mov[sdx]f split): Use
5724         constant_pool_reference_p in condition and
5725         avoid_constant_pool_reference in preparation statements.
5726
5727 2005-09-06  Andreas Krebbel  <krebbel1@de.ibm.com>
5728
5729         * gcse.c (try_replace_reg): Disallow REG_EQUAL notes for
5730         STRICT_LOW_PART SETs.
5731
5732 2005-09-06  Alan Modra  <amodra@bigpond.net.au>
5733
5734         PR middle-end/21460
5735         * except.c (sjlj_emit_function_enter): Find the function begin
5736         note even when it's not in first basic block.
5737
5738 2005-09-06  Kelley Cook  <kcook@gcc.gnu.org>
5739
5740         * acinclude.m4: Renamed from aclocal.m4.  Delete AM_LANGINFO_CODESET,
5741         AM_PROG_CC_C_O, and AM_AUX_DIR_EXPAND.
5742         * aclocal.m4: Regenerate.
5743
5744 2005-09-05  DJ Delorie  <dj@redhat.com>
5745
5746         * config/m32c/m32c.h (TRAMPOLINE_ALIGNMENT): Correct misspelling
5747         of macro.
5748
5749 2005-09-06  Kazu Hirata  <kazu@codesourcery.com>
5750
5751         * gimplify.c, ipa-prop.h, varasm.c, config/vxlib.c,
5752         config/vxworks.h, config/crx/crx.c, config/ms1/ms1.c,
5753         config/ms1/ms1.md, config/rs6000/rs6000.c: Fix comment typos.
5754         Follow spelling conventions.
5755         * doc/invoke.texi: Follow spelling conventions.
5756
5757 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
5758
5759         * rtl.h (gen_frame_mem, gen_tmp_stack_mem): Declare.
5760         * emit-rtl.c (gen_frame_mem, gen_tmp_stack_mem): New functions.
5761         * builtins.c (expand_builtin_return_addr): Use gen_frame_mem.
5762
5763 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
5764
5765         PR target/23683
5766         * sh.c (sh_reorg, emit_load_ptr): Use gen_const_mem.
5767         (output_stack_adjust): Use gen_tmp_stack_mem.
5768         (sh_expand_prologue, sh_expand_epilogue): Use gen_frame_mem.
5769         (sh_set_return_address, sh_allocate_initial_value): Likewise.
5770         (sh_get_pr_initial_val): Likewise.
5771         (sh_builtin_saveregs): Use gen_frame_mem and change_address.
5772         (sh_initialize_trampoline): Likewise.  Also use adjust_address.
5773         * sh.md (divsi_inv_m0): Use gen_const_mem.
5774         (push_fpscr, pop_fpscr, load_ra): Use gen_frame_mem.
5775         (movdf_i4+1): Use gen_tmp_stack_mem.
5776         (reload_outdf+3, reload_outdf+4, fpu_switch+1): Use change_address.
5777         (fpu_switch+2): Likewise.
5778         (movv4sf_i, movv16sf_i): Use adjust_address.
5779         (symGOT_load): Set MEM_NOTRAP_P bit.
5780
5781 2005-09-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5782
5783         PR target/23721
5784         * pa.c (emit_move_sequence): Fix typo in last change.
5785
5786 2005-09-03  Jakub Jelinek  <jakub@redhat.com>
5787
5788         PR rtl-optimization/23454
5789         * reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p
5790         is true.
5791
5792 2005-09-03  Richard Henderson  <rth@redhat.com>
5793             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5794
5795         PR middle-end/23671
5796         * pa.c (emit_move_sequence): Use replace_equiv_address instead of
5797         gen_rtx_MEM.
5798
5799 2005-09-02  Nicolas Pitre <nico@cam.org>
5800
5801         * config/arm/arm.c (arm_legitimize_address): Limit the value passed
5802         to bit_count to 32 bits.
5803
5804 2005-08-31  Mark Mitchell  <mark@codesourcery.com>
5805
5806         PR c++/23167
5807         * gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when
5808         generating synthetic loads from volatile lvalues.
5809
5810 005-09-02  Nick Clifton  <nickc@redhat.com>
5811
5812         * config/stormy16/stormy16-lib2.c (__popcounthi2, __parityhi2,
5813         __ctzhi2, __clzhi2): New functions.
5814
5815 2005-09-02  Andrew Pinski  <pinskia@physics.uc.edu>
5816
5817         PR middle-end/23547
5818         * tree-nested.c (struct var_map_elt): Mark with GTY.
5819         (struct nesting_info): Mark with GTY.  Mark var_map's param is struct
5820         var_map_elt.
5821         (lookup_field_for_decl): Allocate new element in GC memory.
5822         (lookup_tramp_for_decl): Likewise.
5823         (convert_nl_goto_reference): Likewise
5824         (create_nesting_tree): Allocate info in GC memory. Likewise for
5825         info->var_map.
5826         (free_nesting_tree): Free with ggc_free instead of free.
5827         (root): New static variable.
5828         (lower_nested_functions): Remove root as local variable.  And zero out
5829         root at the end of the function.
5830
5831 2005-09-02  J"orn Rennecke <joern.rennecke@st.com>
5832
5833         PR rtl-optimization/20365
5834         * simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg
5835         to short.  New member ix.
5836         (simplify_plus_minus_op_data_cmp): Break ties using ix member.
5837         (simplify_plus_minus): Initialize ix members before calling qsort.
5838
5839 2005-09-02  Zdenek Dvorak  <dvorakz@suse.cz>
5840
5841         PR tree-optimization/23626
5842         * tree-cfg.c (replace_uses_by): Clean up eh info.
5843
5844 2005-09-01  DJ Delorie  <dj@redhat.com>
5845
5846         * config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debug
5847         fprintf.
5848
5849 2005-09-01  David Edelsohn  <edelsohn@gnu.org>
5850
5851         * config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P.
5852         (rs6000_split_multireg_move): Use replace_equiv_address instead of
5853         gen_rtx_MEM.
5854
5855 2005-09-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
5856
5857         * c-decl.c (diagnose_mismatched_decls):  With -Wredundant-decls,
5858         do not issue warning for a variable definition following
5859         a declaration.
5860
5861 2005-09-01  Richard Henderson  <rth@redhat.com>
5862
5863         PR 23668
5864         * config/i386/i386.c (ix86_expand_vector_init_one_var): Restore
5865         conversion to CONST_VECTOR.
5866
5867 2005-09-01  Richard Henderson  <rth@redhat.com>
5868
5869         PR 23676
5870         * reload1.c (reload_as_needed): Check !CALL_P before calling
5871         fixup_eh_region_note.
5872         * rtlanal.c (may_trap_p): SUBREG by itself cannot trap.
5873
5874 2005-09-01  DJ Delorie  <dj@redhat.com>
5875
5876         * varasm.c (output_constant): Let the target resolve
5877         conversions of addresses to non-default pointer sizes.
5878
5879 2005-09-01  Nicolas Pitre <nico@cam.org>
5880
5881         * config/arm/arm.c (arm_legitimize_address): Split absolute addresses
5882         to alow matching ARM pre-indexed addressing mode.
5883         (arm_override_options): Remove now irrelevant comment.
5884
5885 2005-09-01  Phil Edwards  <phil@codesourcery.com>
5886
5887         * config.gcc (i*86-wrs-vxworks):  Update.  Split out vxworksae target.
5888         * config/i386/t-vxworks:  Update multilibs for VxWorks 6 and RTP mode.
5889         * config/i386/vxworks.h:  Likewise.
5890         * config/i386/t-vxworksae:  New file, for VxWorks AE.
5891         * config/i386/vxworksae.h:  Likewise.
5892
5893 2005-09-01  Sebastian Pop  <pop@cri.ensmp.fr>
5894
5895         PR tree-optimization/23410
5896         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the
5897         sequence is not wrapping during the first step.
5898
5899 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
5900
5901         PR debug/7241
5902         * dwarf2out.c (base_type_die): Compare char_type_node with
5903         TYPE_MAIN_VARIANT (type), not type.
5904
5905 2005-09-01  Richard Guenther  <rguenther@suse.de>
5906
5907         PR tree-optimization/15366
5908         * common.opt: Add -finline-functions-called-once.
5909         Put -fearly-inlining in alphabetically ordered place.
5910         * doc/invoke.texi: Document new option.
5911         * ipa-inline.c (cgraph_decide_inlining): Honour
5912         flag_inline_functions_called_once.
5913
5914 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
5915
5916         PR rtl-optimization/23478
5917         * local-alloc.c (struct qty): Add n_throwing_calls_crossed field.
5918         (alloc_qty): Initialize it.
5919         (update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED.
5920         (combine_regs): Combine also n_throwing_calls_crossed fields.
5921         (find_free_reg): Don't attempt to caller-save pseudos crossing
5922         calls that might throw.
5923         * global.c (struct allocno): Add throwing_calls_crossed field.
5924         (global_alloc): Revert 2005-08-22 change.  Initialize
5925         throwing_calls_crossed.
5926         (find_reg): Don't attempt to caller-save pseudos crossing calls that
5927         might throw.
5928
5929 2005-09-01  Alan Modra  <amodra@bigpond.net.au>
5930
5931         PR target/23649
5932         * config/rs6000/predicates.md (mask_operand): Only handle rlwinm masks.
5933         (mask64_operand): Reinstate code prior to 2005-06-11 change.
5934         (mask64_2_operand): Reinstate code prior to 2004-11-11 change.
5935         (and64_2_operand): Tweak to use predicate.
5936         (and_operand): Adjust for mask_operand changes.
5937         * config/rs6000/rs6000.c (num_insns_constant): Revert 2005-06-11.
5938         (print_operand): Likewise.
5939         (rs6000_rtx_costs): Pass mode to mask_operand and use mask64_operand.
5940         (mask64_1or2_operand): Delete.
5941         * rs6000/rs6000-protos.h (mask64_1or2_operand): Delete.
5942         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT <S>): Revert 2005-06-11.
5943         (EXTRA_CONSTRAINT <T>): Pass operand mode to predicate.
5944         (EXTRA_CONSTRAINT <t>): Disallow mask64_operand matches.
5945         * config/rs6000/rs6000.md (andsi3_internal3 split): Revert 2005-06-11.
5946         (rotldi3_internal4): Likewise.
5947         (rotldi3_internal5, rotldi3_internal5 split): Likewise.
5948         (rotldi3_internal6, rotldi3_internal6 split): Likewise.
5949         (ashldi3_internal7): Likewise.
5950         (ashldi3_internal8, ashldi3_internal8 split): Likewise.
5951         (ashldi3_internal, ashldi3_internal9 split): Likewise.
5952         (anddi3 split): Don't match mask64_operand.
5953         (anddi3_internal2): Add rlwinm.  Modify 't' splitter predicate.
5954         (anddi3_internal3): Add rlwinm.  Use and64_2_operand in non-cr0
5955         splitter and match TARGET_64BIT not TARGET_POWERPC64.  Modify
5956         't' splitter predicate.
5957         (movdi_internal64 + 2): Revert 2005-06-11 change.
5958
5959 2005-08-31  DJ Delorie  <dj@redhat.com>
5960
5961         * config/m32c/m32c.c (m32c_valid_pointer_mode): New.
5962         (m32c_asm_integer): Add support for 32 bit pointers.
5963
5964 2005-08-31  Richard Henderson  <rth@redhat.com>
5965
5966         * emit-rtl.c (set_mem_attributes_minus_bitpos): Look through
5967         component-like references for setting MEM_NOTRAP_P.
5968
5969         * config/i386/i386.c (ix86_setup_incoming_varargs): Set MEM_NOTRAP_P.
5970         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
5971
5972 2005-08-31  Richard Henderson  <rth@redhat.com>
5973
5974         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs
5975         into a pseudo before applying gen_lowpart.
5976
5977 2005-08-31  Geoffrey Keating  <geoffk@apple.com>
5978
5979         * doc/install.texi (Specific): Update cctools version required
5980         for full functionality.
5981         * config/darwin.h (LINK_SPEC): Pass -mmacosx-version-min to the
5982         linkers as -macosx_version_min.
5983
5984 2005-08-31  J"orn Rennecke <joern.rennecke@st.com>
5985
5986         PR target/21255
5987         * sh.c (print_operand, %R and %S): Add handling of floating point
5988         registers, memory, constants and invalid operands.
5989
5990 2005-08-31  Daniel Berlin  <dberlin@dberlin.org>
5991
5992         * ipa-pure-const.c: Change dump name.
5993
5994 2005-08-31 Uros Bizjak <uros@kss-loka.si>
5995
5996         PR target/23570
5997         * config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint
5998         to "reg_or_0_operand".
5999         (sse2_loadld): Change operand 1 constraint to "reg_or_0_operand".
6000
6001 2005-08-31  Dale Johannesen  <dalej@apple.com>
6002
6003         * loop-iv.c (iv_number_of_iterations):  Fix overflow check for
6004         loops that count down.
6005
6006 2005-08-31  Richard Henderson  <rth@redhat.com>
6007
6008         PR rtl-opt/23601
6009         * reload1.c (reload): Set MEM_NOTRAP_P in spill slots.
6010         (fixup_eh_region_note): New.
6011         (reload_as_needed): Call it.
6012         (fixup_abnormal_edges): Allow all throwing insns to be deleted;
6013         don't call find_many_sub_basic_blocks; call verify_flow_info.
6014         * function.c (assign_stack_local_1): Set MEM_NOTRAP_P.
6015         (keep_stack_depressed): Likewise.
6016         (assign_stack_temp_for_type): Likewise; use adjust_address_nv.
6017
6018 2005-08-31  Richard Henderson  <rth@redhat.com>
6019
6020         * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for
6021         fp return matching.
6022
6023 2005-08-31  Fariborz Jahanian <fjahanian@apple.com>
6024
6025         * expr.c (expand_expr_real_1): Compare size of address
6026         mode to target's address mode size in deciding expansion of
6027         the constant address.
6028
6029 2005-08-31  Richard Guenther  <rguenther@suse.de>
6030
6031         PR middle-end/23477
6032         * expr.c (all_zeros_p): New function.
6033         (expand_expr_real_1): Handle the case of an all-zero
6034         non-addressable constructor separately.
6035
6036 2005-08-31  Adrian Straetling  <straetling@de.ibm.com>
6037
6038         * builtins.c: (expand_builtin_strcpy, expand_builtin_strcat): Change
6039         arguments, adjust all callers.
6040         (expand_builtin_strcat): Rewrite to call strcpy instead of mempcpy.
6041
6042 2005-08-30  Richard Henderson  <rth@redhat.com>
6043
6044         PR target/23630
6045         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Use gen_lowpart
6046         whenever the mode sizes match.
6047
6048 2005-08-31  Alan Modra  <amodra@bigpond.net.au>
6049
6050         * calls.c (load_register_parameters): Fix comment typo.
6051         * expr.c (emit_push_insn): Comment formatting.
6052
6053 2005-08-30  Ian Lance Taylor  <ian@airs.com>
6054
6055         * config/i386/x-cygwin (host-cygwin): Change dependency from
6056         hosthooks-def.h to $(HOSTHOOKS_DEF_H).
6057
6058 2005-08-29  Geoffrey Keating  <geoffk@apple.com>
6059
6060         * config/i386/i386.c (ix86_expand_vector_init_one_var): Don't modify
6061         parts of 'vals'.
6062
6063 2005-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
6064
6065         PR middle-end/23408
6066         * ipa-inline.c (cgraph_decide_inlining_incrementally): Remove the
6067         call to ggc_collect.
6068
6069 2005-08-29  Paolo Bonzini  <bonzini@gnu.org>
6070
6071         PR bootstrap/21268
6072         * Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the
6073         beginning.  Remove $(INCLUDES) from all the rules, if following
6074         $(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS).
6075
6076 2005-08-29  Jakub Jelinek  <jakub@redhat.com>
6077
6078         PR middle-end/23484
6079         * builtins.c (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
6080         fold_builtin_strncpy_chk, fold_builtin_snprintf_chk): If len is
6081         not constant, but maxlen is, don't set len to maxlen, rather
6082         set maxlen to len if len is a constant.
6083
6084 2005-08-29  Zdenek Dvorak  <dvorakz@suse.cz>
6085
6086         PR tree-optimization/23475
6087         * tree-ssa-loop-ivcanon.c (remove_empty_loop): Update frequencies
6088         and counts.
6089
6090 2005-08-28  Daniel Berlin  <dberlin@dberlin.org>
6091
6092         Fix PR middle-end/22455
6093
6094         * fold-const.c (fold_checksum_tree): Adjust for now-largest tree size.
6095         Checksum only the parts of the tree that exist for the tree code.
6096
6097 2005-08-28  Dale Johannesen  <dalej@apple.com>
6098
6099         * config/i386/i386.c (nocona_cost):  Increase MOVE_RATIO.
6100
6101 2005-08-28  Andrew Pinski  <pinskia@physics.uc.edu>
6102
6103         * tree-vrp.c: Remove obsolete comment in front of vrp_initialize.
6104
6105 2005-08-28  Richard Henderson  <rth@redhat.com>
6106
6107         * stor-layout.c (finalize_type_size): Revert workaround from 08-26.
6108         * tree.c (make_node_stat): Use BITS_PER_UNIT instead of alignment
6109         of char_type_node.
6110
6111 2005-08-28  Jakub Jelinek  <jakub@redhat.com>
6112
6113         PR ada/23593
6114         * builtins.c (get_memory_rtx): Don't strip nops
6115         in between COMPONENT_REFs.
6116
6117 2005-08-27  Andrew Pinski  <pinskia@physics.uc.edu>
6118
6119         PR middle-end/23463
6120         * gimplify.c (gimplify_modify_expr_rhs): Remove check for zero sized
6121         types.
6122         (gimplify_modify_expr): Check for zero sized types and gimplify the
6123         rhs and lhs as statements.
6124
6125 2005-08-27  John David Anglin  <dave.anflin@nrc-cnrc.gc.ca>
6126
6127         PR libgcj/23508
6128         * pa/linux-unwind.h (pa32_fallback_frame_state): Use r0 slot in frame
6129         state for return address column of signal frames.
6130
6131 2005-08-27  David Edelsohn  <edelsohn@gnu.org>
6132
6133         PR target/23539
6134         * config/rs6000/rs6000.c (expand_block_clear): Use HImode when
6135         bytes >= 2 not bytes == 2.
6136         (expand_block_move): Same.
6137
6138 2005-08-27  Richard Guenther  <rguenther@suse.de>
6139
6140         PR target/23575
6141         * config/i386/sse.md (sse2_movsd): Add missing closing
6142         braces.
6143
6144 2005-08-27  Paul Brook  <paul@codesourcery.com>
6145
6146         * genrecog.c (enum decision_type): Add DT_num_insns.
6147         (struct decision_test): Add u.num_insns.
6148         (add_to_sequence): Add DT_num_insns test.
6149         (maybe_both_true_2, nodes_identical_1): Handle DT_num_insns.
6150         (write_cond, debug_decision_2): Ditto.
6151         (change_state): Assume peep2_next_insn never fails.
6152         Remove "afterward" argument.
6153         (write afterward, write_tree): Update to match.
6154         * recog.c (peep2_current_count): New variable.
6155         (peep2_next_insn): Check it.
6156         (peephole2_optimize): Set peep2_current_count.
6157         * recog.h (peep2_current_count): Declare.
6158
6159 2005-08-26  Josh Conner  <jconner@apple.com>
6160
6161         PR middle-end/23584
6162         * ipa-pure-const.c (check_tree): Check for volatile-ness
6163         when considering a dereference.
6164
6165 2005-08-27  Jakub Jelinek  <jakub@redhat.com>
6166
6167         * rtl.h (MEM_IN_STRUCT_P): Fix comment typo.
6168
6169 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
6170
6171         PR rtl-optimization/23561
6172         * builtins.c (get_memory_rtx): Add LEN argument.  If MEM_EXPR is
6173         a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless
6174         at most LEN bytes long memory fits into the field.
6175         (expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr,
6176         expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp,
6177         expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers.
6178
6179 2005-08-26  Richard Henderson  <rth@redhat.com>
6180
6181         PR rtl-opt/23560
6182         * loop.c (biased_biv_may_wrap_p): New.
6183         (maybe_eliminate_biv_1): Use it to suppress non-equality
6184         comparison transformations.  Delete disabled code.
6185
6186 2005-08-26  Ian Lance Taylor  <ian@airs.com>
6187
6188         * combine.c (make_extraction): Avoid reference outside object.
6189
6190 2005-08-26  J"orn Rennecke <joern.rennecke@st.com>
6191
6192         * stor-layout.c (finalize_type_size): Restore behaviour for
6193         non-aggregate types to the status quo ante of the patch for
6194         pr 23467.  Document why it matters.
6195
6196 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
6197
6198         PR c/23506
6199         * c-common.c (c_common_nodes_and_builtins): Increase builtin_types
6200         array by one element, initialize the BT_LAST element with NULL.
6201
6202 2005-08-26  David Edelsohn  <edelsohn@gnu.org>
6203
6204         * config/rs6000/rs6000.md (eq<mode>_compare): Only enable when
6205         optimizing for size.
6206         (plus_eqsi): Same.
6207         (compare_plus_eqsi): Same.
6208         (plus_eqsi_compare): Same.
6209         (neg_eq0<mode>): Same.
6210         (neg_eq<mode>): Same.
6211
6212         * config/rs6000/aix52.h (PROCESSOR_DEFAULT): Change to
6213         PROCESSOR_POWER4.
6214
6215 2005-08-26  Nick Clifton  <nickc@redhat.com>
6216
6217         * config/v850/v850.c (ep_memory_operand): Return FALSE if
6218         TARGET_EP is not defined.
6219         * config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if
6220         TARGET_EP is enabled.
6221         (OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing.
6222         * config/v850/v850.md (save_all_interrupt): Only use the EP
6223         register if TARGET_EP is defined.
6224         (restore_all_interrupt): Likewise.
6225         * config/v850/lib1funcs.asm: Update functions so that the EP
6226         register is only used if __EP__ is defined.
6227
6228 2005-08-26  David Ung  <davidu@mips.com>
6229
6230         * config/mips/mips.c (mips_expand_prologue): Handle case when
6231         generating for MIPS16 and the outgoing argument area is more than
6232         SMALL_OPERAND. Use the frame pointer as temporary to generate the
6233         add instruction.
6234
6235 2005-08-26  Paul Woegerer  <paul.woegerer@nsc.com>
6236
6237         * config/crx/crx.md: Make doloop_end pattern usage controllable
6238         via mloop-nesting=<max-nesting> command line switch. Make sure
6239         the combiner cannot use doloop_end_<mode> in an illegal way.
6240         * config/crx/crx.c: Use regs up to r6 for argument passing.
6241         Refine crx_address_cost (non cst4 displacements are expensive).
6242         * config/crx/crx.opt: Add switch for mloop-nesting=.
6243
6244 2005-08-26  Adrian Straetling  <straetling@de.ibm.com>
6245
6246         * config/s390/s390.md: ("movstr", "*movstr"): Add patterns.
6247         (UNSPEC_MVST): New constant.
6248
6249 2005-08-26  Andreas Krebbel  <krebbel1@de.ibm.com>
6250
6251         * config/s390/predicates.md ("shift_count_operand", "setmem_operand"):
6252         Reject operands containing eliminable registers.
6253         * testsuite/gcc.dg/20050825-1.c: New testcase.
6254
6255 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
6256             Jan Hubicka  <jh@suse.cz>
6257
6258         * regmove.c (reg_is_remote_constant_p): Reorganize to not use log links.
6259
6260 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
6261
6262         PR tree-optimization/23546
6263         * tree-ssa-loop-im.c (for_each_index): Handle INTEGER_CST
6264         and REAL_CST nodes.
6265
6266 2005-08-24  Pete Steinmetz  <steinmtz@us.ibm.com>
6267
6268         * params.def (PARAM_MIN_SPEC_PROB): New.
6269         * sched-rgn.c (MIN_PROBABILITY): Delete.
6270         (compute_trg_info): Convert to PARAM_VALUE.
6271         * doc/invoke.texi (param): Document min-spec-prob.
6272
6273 2005-08-24  Fariborz Jahanian <fjahanian@apple.com>
6274
6275         * config/darwin.h: define __PIC__
6276         * config/rs6000/darwin.h: Add SUBTARGET_OS_CPP_BUILTINS to
6277         TARGET_OS_CPP_BUILTINS macro.
6278
6279 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
6280
6281         * config/rs6000/rs6000.md: Fix thinko in the peephole2 I added
6282         yesterday.
6283
6284 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
6285
6286         * bb-reorder.c (copy_bb, duplicate_computed_gotos): Add argument
6287         to duplicate_block.
6288         * cfghooks.c (duplicate_block): Added position where to place
6289         new block as argument.
6290         * cfghooks.h (duplicate_block): Declaration changed.
6291         * cfglayout.c (copy_bbs): Add argument after.  Pass it to
6292         duplicate_block.
6293         * cfglayout.h (copy_bbs): Declaration changed.
6294         * cfgloop.h (loop_version): Declaration changed.
6295         * cfgloopmanip.c (duplicate_loop_to_header_edge): Pass
6296         position to copy_bbs.
6297         (loop_version): Pass position to duplicate_loop_to_header_edge.
6298         Add place_after argument and position new blocks according to
6299         it.
6300         * modulo-sched.c (sms_schedule): Pass place_after argument
6301         to loop_version.
6302         * tracer.c (tail_duplicate): Pass argument to duplicate_block.
6303         * tree-cfg.c (split_edge_bb_loc): New function.
6304         (tree_split_edge, tree_duplicate_sese_region): Use split_edge_bb_loc
6305         to determine position of new blocks.
6306         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass argument
6307         to loop_version.
6308         * tree-ssa-threadupdate.c (create_block_for_threading): Pass
6309         argument to duplicate_block.
6310         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg):
6311         Pass position to copy_bbs.
6312
6313 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
6314
6315         * fold-const.c (ptr_difference_const): Use
6316         cst_and_fits_in_hwi instead of host_integerp.
6317
6318 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
6319
6320         * config/darwin.c (gen_pic_offset): New.
6321         (machopic_indirect_data_reference,  machopic_legitimize_pic_address):
6322         Use it.
6323
6324 2005-08-23  Zdenek Dvorak  <dvorakz@suse.cz>
6325
6326         PR tree-optimization/23486
6327         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_update_ssa_only_virtuals.
6328
6329 2005-08-23  Phil Edwards  <phil@codesourcery.com>
6330
6331         * config.gcc (*-*-vxworks*):  Update tm_file, add extra_options,
6332         remove use_collect2.
6333         (powerpc-wrs-vxworks):  Update, split out *-*-vxworksae target.
6334
6335         * target-def.h (TARGET_HAVE_CTORS_DTORS):  Allow target
6336         configuration files to override the default value.
6337
6338         * config/t-vxworks:  Remove INSTALL_ASSERT_H.  Define STMP_FIXPROTO,
6339         EXTRA_HEADERS, and EXTRA_MULTILIB_PARTS.
6340         * config/vx-common.h:  New file, split out from...
6341         * config/vxworks.h:  here.  Update for VxWorks 6.x and RTP mode.
6342         * config/vxworksae.h:  New file, for VxWorks AE.
6343         * config/vxworks.opt:  New file.
6344         * config/vxlib.c:  Update for VxWorks 6.
6345
6346         * config/rs6000/t-vxworks (MULTILIB_OPTIONS):  New list.  Adjust
6347         other MULTILIB_* variables appropriately.
6348         (LIB2FUNCS_EXTRA, EXTRA_MULTILIB_PARTS):  Correct from t-ppccomm.
6349         * config/rs6000/t-vxworksae:  New file, adjust multilibs for AE.
6350         * config/rs6000/vxworks.h:  Update for VxWorks 6.
6351         * config/rs6000/vxworksae.h:  New file, mostly placeholder for now.
6352
6353 2005-08-23  Andrew Pinski  <pinskia@physics.uc.edu>
6354
6355         PR target/20799
6356         * config/darwin.c (machopic_select_section): Remove the hack to
6357         mark "::operator new" and "::operator delete" for coalescing
6358         even though they are not weak.
6359
6360 2005-08-24  Alan Modra  <amodra@bigpond.net.au>
6361
6362         * configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch.
6363         * configure: Regenerate.
6364
6365 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
6366
6367         PR middle-end/23517
6368         * fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert
6369         between vectors.
6370         * convert.c (convert_to_integer, convert_to_vector): Likewise.
6371         * tree-vect-generic.c (tree_vec_extract, expand_vector_operations_1):
6372         Likewise.
6373
6374 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
6375
6376         * config/rs6000/predicates.md (equality_operator): New.
6377         * config/rs6000/rs6000.md: Rewrite as a peephole2 the split for
6378         comparison with a large constant.
6379
6380 2005-08-23  Mark Mitchell  <mark@codesourcery.com>
6381
6382         * hwint.h (HOST_WIDE_INT_PRINT): Use HOST_LONG_LONG_FORMAT.
6383
6384 2005-08-23  J"orn Rennecke <joern.rennecke@st.com>
6385
6386         * sh.c (sh_builtin_saveregs): If the number of to-be-saved fp
6387         registers is even, and we have a hardware double precision fp,
6388         align the buffer.
6389         (sh_gimplify_va_arg_expr): For floating point arguments, consider
6390         size of current argument when checking if argument was passed in
6391         registers.
6392
6393         * sh.c (sh_attr_renesas_p): Handle error_mark_node.
6394
6395         PR middle-end/23467
6396         * stor-layout.c (finalize_type_size): Dont override
6397         existing alignment with a smaller alignment from the mode.
6398
6399 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
6400
6401         * lambda-code.c (lambda_vector_lexico_pos): Moved...
6402         * lambda.h (lambda_vector_lexico_pos): ... here.
6403         * tree-data-ref.c (build_classic_dist_vector): Return false when
6404         the distance vector is lexicographically negative.
6405
6406 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
6407
6408         PR tree-optimization/23511
6409         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Don't
6410         handle cases where TYPE_MIN_VALUE or TYPE_MAX_VALUE are NULL_TREE.
6411
6412 2005-08-23  Jakub Jelinek  <jakub@redhat.com>
6413
6414         PR tree-optimization/22043
6415         * tree.h (count_type_elements): Add ALLOW_FLEXARR argument.
6416         * expr.c (count_type_elements): Add ALLOW_FLEXARR argument.
6417         If ALLOW_FLEXARR, handle types ending with flexible array member.
6418         Pass false as second argument to recursive count_type_elements calls.
6419         (categorize_ctor_elements_1, mostly_zeros_p): Pass false as second
6420         argument to count_type_elements call.
6421         * tree-sra.c (decide_block_copy): Likewise.
6422         * gimplify.c (gimplify_init_constructor): If num_type_elements < 0
6423         for a constant-sized object, set cleared as well.  Pass true as
6424         second argument to count_type_elements call.
6425
6426 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
6427
6428         PR target/21571
6429         * config/rs6000/rs6000.c (rs6000_legitimate_small_data_p): Rename
6430         from legitimate_small_data_p, and make global.  Update use.
6431         Remove forward declaration.
6432         * config/rs6000/rs6000-protos.h (rs6000_legitimate_small_data_p):
6433         Declare.
6434         * config/rs6000/rs6000.md (movdf_hardfloat32): Allow small data mems.
6435
6436 2005-08-23  David Edelsohn  <edelsohn@gnu.org>
6437
6438         * config/rs6000/rs6000.md (eq<mode>): Use output operand instead
6439         of scratch intermediates.
6440         (eq<mode>_compare): Same.
6441         (neg_eq0<mode>): New.
6442         (neg_eq<mode>): Convert to define_insn_and_split.
6443
6444 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
6445
6446         PR target/23070
6447         * config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
6448         stdarg functions, set/clear the fp marker even when no variable
6449         args are passed.
6450         * config/rs6000/sysv4.opt (mprototype): Describe.
6451
6452 2005-08-22  Jakub Jelinek  <jakub@redhat.com>
6453
6454         PR rtl-optimization/23478
6455         * regs.h (reg_info): Add throw_calls_crossed.
6456         (REG_N_THROWING_CALLS_CROSSED): Define.
6457         * flow.c (allocate_reg_life_data): Initialize
6458         REG_N_THROWING_CALLS_CROSSED.
6459         (propagate_one_insn, attempt_auto_inc): Update
6460         REG_N_THROWING_CALLS_CROSSED.
6461         * global.c (global_alloc): Don't allocate pseudos across
6462         calls that may throw.
6463
6464 2005-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
6465
6466         PR c/18715
6467         * c-common.c (c_do_switch_warnings): Look for a node where the enum's
6468         value is inbetween the range if we did not find an exact match.
6469
6470 2005-08-22  Aldy Hernandez  <aldyh@redhat.com>
6471
6472         * doc/invoke.texi (Option Summary): Add ms1 options.
6473         * doc/extend.texi: Document interrupt handler attribute for ms1.
6474         * doc/md.texi: Document ms1 constraints.
6475         * config.gcc: Add ms1-*-elf.
6476         * config/ms1/ms1.h: New.
6477         * config/ms1/ms1.c: New.
6478         * config/ms1/ms1.md: New.
6479         * config/ms1/ms1-protos.h: New.
6480         * config/ms1/ABI.txt: New.
6481         * config/ms1/crti.asm: New.
6482         * config/ms1/crtn.asm: New.
6483         * config/ms1/lib2extra-funcs.c: New.
6484         * config/ms1/t-ms1: New.
6485         * config/ms1/ms1.opt: New.
6486
6487 2005-08-22 Ira Rosen <irar@il.ibm.com>
6488
6489         * config/rs6000/altivec.md (xorv4sf3): New.
6490         (negv4sf2, neg<mode>2): Likewise.
6491
6492 2005-08-21  H.J. Lu  <hongjiu.lu@intel.com>
6493
6494         PR target/23485
6495         * config/ia64/ia64.md (divsi3): Check divide by zero.
6496         (udivsi3): Likewise.
6497         (divdi3): Likewise.
6498         (udivdi3): Likewise.
6499
6500 2005-08-21  Jakub Jelinek  <jakub@redhat.com>
6501
6502         * simplify-rtx.c (simplify_immed_subreg) <case CONST_DOUBLE>: Only clear
6503         up to elem_bitsize bits, not max_bitsize.
6504
6505 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
6506
6507         PR tree-optimization/23433
6508         * tree-chrec.c (chrec_apply): Translate INTEGER_CST to a
6509         REAL_CST when the type is SCALAR_FLOAT_TYPE_P.
6510
6511 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
6512
6513         PR tree-optimization/23434
6514         * tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when
6515         the iteration bound is not an INTEGER_CST.
6516
6517 2005-08-21  Dorit Nuzman  <dorit@il.ibm.com>
6518
6519         * tree-vect-transform.c (get_initial_def_for_reduction): Set
6520         need_epilog_adjust back to false for MIN/MAX case. Set *scalar_def to
6521         NULL if need_epilog_adjust is false.
6522         (vect_create_epilog_for_reduction): Variable adjust_in_epilog removed.
6523         Case 3 always peels first itration, not just for PLUS case, and no need
6524         to use scalar_initial_def here. Create an epilog adjustment only if
6525         scalar_initial_def is not NULL.
6526
6527         (vectorizable_reduction): Remove assert.
6528
6529 2005-08-20  H.J. Lu  <hongjiu.lu@intel.com>
6530
6531         PR target/23485
6532         * config/ia64/lib1funcs.asm (__divdi3): Check divide by zero.
6533         (__moddi3): Likewise.
6534         (__udivdi3): Likewise.
6535         (__umoddi3): Likewise.
6536         (__divsi3): Likewise.
6537         (__modsi3): Likewise.
6538         (__udivsi3): Likewise.
6539         (__umodsi3): Likewise.
6540
6541 2005-08-20  Jakub Jelinek  <jakub@redhat.com>
6542
6543         * tree-pass.h (TDF_GRAPH): Define.
6544         * tree-dump.c (dump_options): Don't set TDF_GRAPH in "all".
6545         * passes.c (finish_optimization_passes): Only call
6546         finish_graph_dump_file if TDF_GRAPH is set.
6547         (execute_one_pass): Only call clean_graph_dump_file if dump_file !=
6548         NULL.  Set TDF_GRAPH bit.
6549         (execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set.
6550
6551 2005-08-20  Richard Earnshaw  <richard.earnshaw@arm.com>
6552
6553         * arm.h (arm_stack_offsets): Add locals_base field.
6554         * arm.c (arm_get_frame_offsets): Compute it.
6555         (thumb_compute_initial_elimination offset): Make the Thumb frame
6556         pointer point to the base of the local variables.
6557         (thumb_expand_prologue): Update accordingly.
6558         (thumb_expand_epilogue): Likewise.
6559
6560         * arm.md (thumb_movhi_clobber): Make this insn a define_expand.  Change
6561         mode of clobbered scratch to DImode.  Handle a case that's known to
6562         need this.
6563
6564 2005-08-19  David Edelsohn  <edelsohn@gnu.org>
6565
6566         * config/rs6000/rs6000.md (gt0<mode>): Delete.
6567         (gt0<mode>_compare): Delete.
6568         (neg_gt0<mode>): Delete.
6569
6570 2005-08-19  Eric Christopher  <echristo@apple.com>
6571
6572         * optabs.h: Change CTI_ to COI_.
6573         * optabs.c: Ditto.
6574
6575 2005-08-19  James E Wilson  <wilson@specifix.com>
6576
6577         * builtins.c (expand_builtin_return_addr): Set
6578         current_function_accesses_prior_frames when count != 0.  Use
6579         frame_pointer_rtx when count == 0.
6580         * function.h (struct function): Add accesses_prior_frames field.
6581         (current_function_accesses_prior_frames): Define.
6582         * reload1.c (init_elim_table): Check
6583         current_function_accesses_prior_frames.
6584         * doc/tm.texi (INITIAL_FRAME_ADDRESS_RTX): Update docs.
6585
6586 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
6587
6588         * tree-cfgcleanup.c (cleanup_tree_cfg): Fix flowgraph change
6589         indicator.  Return true if the flowgraph changed during
6590         cleanup.
6591
6592 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
6593
6594         PR 23476
6595         * tree-cfgcleanup.c (cleanup_control_expr_graph): Fold the
6596         conditional expression before testing its value.
6597
6598 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
6599
6600         * doc/invoke.texi: Fix documentation for -ftree-dominator-opts.
6601
6602 2005-08-19  Devang Patel  <dpatel@apple.com>
6603
6604         PR tree-optimization/23048
6605         * tree-if-conv.c (if_convertible_bb_p): Supply basic_block as
6606         third parameter. Check whether latch is dominated by exit
6607         block or not.
6608         (if_convertible_loop_p): Supply exit block itself to
6609         if_convertible_bb_p.
6610
6611 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
6612
6613         PR target/23473
6614         * arm.md (arm_load_pic_register): Change argument to the mask of
6615         saved registers.  Call thumb_find_work_register if we need a
6616         scratch register on Thumb.
6617         (arm_expand_prologue): Pass empty register set to
6618         arm_load_pic_register.
6619         (thumb_expand_prologue): Pass live_regs_mask directly to
6620         arm_load_pic_register.
6621         * arm-protos.h (arm_load_pic_register): Update prototype.
6622
6623 2005-08-19  J"orn Rennecke <joern.rennecke@st.com>
6624
6625         * sh.c (find_sole_member): New function.
6626         (sh_gimplify_va_arg_expr): Use it. Allow RECORD_TYPE mode mismatch
6627         if the record's alignment is larger than the size of its only member.
6628
6629 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
6630
6631         PR target/23436
6632         * arm.c (thumb_legitimize_reload_address): New function.
6633         * arm-protos.h (thumb_legitimize_reload_address): Add prototype.
6634         * arm.h (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Call it.
6635
6636 2005-08-19  Paul Woegerer  <paul.woegerer@nsc.com>
6637
6638         * config/crx/crx.c: Implement crx_decompose_address. Reject
6639         symbolic displacements since CRX register relative adressing
6640         mode can't handle unsigned 32-bit values as displacements.
6641         * config/crx/crx.h: Simplify definitions, remove redundant
6642         parenthesis and obsolete macros.
6643         * config/crx/crx.opt: Add new switch for debugging addresses.
6644         * config/crx/crx-protos.h: Add new declarations for above.
6645
6646 2005-08-19  Andrew Pinski  <pinskia@physics.uc.edu>
6647
6648         PR middle-end/20624
6649         * gimple-low.c (block_may_fallthru): Handle CLEANUP_POINT_EXPR by
6650         looking past it.
6651
6652 2005-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6653
6654         * collect2.c (dup2): Delete.
6655         * configure.ac: Don't check for dup2.
6656
6657         * config.in, configure: Regenerate.
6658
6659 2005-08-18  J"orn Rennecke <joern.rennecke@st.com>
6660
6661         * sh.c (sh_gimplify_va_arg_expr): Loop to substitute a RECORD_TYPE
6662         record with the type of its only member.
6663
6664 2005-08-18  David Edelsohn  <edelsohn@gnu.org>
6665
6666         * config/rs6000/rs6000.md (ltu<mode>_compare): Convert to
6667         define_insn_and_split.
6668         (plus_ltu<mode>_compare): Same.
6669         (gtu<mode>_compare): Same.
6670         (plus_gtu<mode>_compare): Same.
6671
6672 2005-08-18  Dorit Nuzman  <dorit@il.ibm.com>
6673
6674         PR tree-optimization/22228
6675         * tree-ssa-loop (pass_vectorize): Add TODO_verify_loops to
6676         todo_flags_start.
6677         * tree-vect-transform.c (vect_transform_loop): Mark the variables that
6678         are recorded in vect_vnames_to_rename for renaming.
6679         * tree-vectorizer.c (vect_vnames_to_rename): New global bitmap.
6680         (slpeel_update_phi_nodes_for_guard1): Record virtual vars for renaming
6681         in vect_vnames_to_rename.
6682         (vectorize_loops): Allocate and free the vect_vnames_to_rename bitmap.
6683         * tree-vectorizer.h (vect_vnames_to_rename): New extern variable.
6684
6685 2005-08-18  Jan Hubicka  <jh@suse.cz>
6686
6687         PR c++/22034
6688         * cgraphunit.c (cgraph_varpool_assemble_pending_decls): Emit debug
6689         info only for local statics, not for member variables.
6690
6691 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6692
6693         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Fix comment typo.
6694
6695 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6696
6697         * c-typeck.c (designator_errorneous): Rename to designator_erroneous.
6698
6699 2005-08-18  Andrew Pinski  <pinskia@physics.uc.edu>
6700
6701         PR middle-end/16045
6702         * builtins.c (fold_builtin): Create a new NOP_EXPR all the time.
6703
6704 2005-08-17  James E Wilson  <wilson@specifix.com>
6705
6706         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
6707         array size check.
6708
6709 2005-08-17  David Edelsohn  <edelsohn@gnu.org>
6710
6711         * config/rs6000/rs6000.md (leu<mode>): Convert to mode macro.
6712         (leu<mode>_compare): Same.
6713         (plus_leu<mode>): Same.
6714         (neg_leu<mode>): Same.
6715         (and_neg_leu<mode): Same.
6716         (ltu<mode>_compare): Same.
6717         (plus_ltu<mode>): Same.
6718         (geu<mode>): Same.
6719         (geu<mode>_compare): Same.
6720         (plus_geu<mode>): Same.
6721         (neg_geu<mode>): Same.
6722         (and_neg_geu<mode>): Same.
6723         (plus_gt<mode>): Same.
6724         (gtu<mode>_compare): Same.
6725         (plus_gtu<mode>): Same.
6726
6727 2005-08-17  Erik Christiansen  <erik@dd.nec.com.au>
6728
6729         * config/v850/lib1funcs.asm (callt_save_interrupt): Fix comment typos.
6730         Move call_table_data to end.  Delete spurious .text.
6731         (callt_save_all_interrupt): Fix comment typo.
6732
6733 2005-08-17  James E Wilson  <wilson@specifix.com>
6734             Kevin Winchester  <winchester@amirix.com>
6735
6736         PR target/21684
6737         * config/mcore/mcore.h (SHIFT_COUNT_TRUNCATED): Define to 0.
6738
6739 2005-08-17  Uros Bizjak  <uros@kss-loka.si>
6740
6741         PR target/23268
6742         * config/i386/i386.md ("*fist<mode>2_1"): New pattern.
6743         ("lrint<mode>2"): Change expander to use "*fist<mode>2_1" pattern.
6744
6745 2005-08-17  J"orn Rennecke <joern.rennecke@st.com>
6746
6747         * sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE
6748         record with the type of its only member if the modes don't match.
6749
6750         * varasm.c (decode_reg_name): Skip empty additional register names.
6751
6752 2005-08-16  Zdenek Dvorak  <dvorakz@suse.cz>
6753
6754         * tree-ssa-loop-im.c (MAX_LSM_NAME_LENGTH, lsm_tmp_name,
6755         lsm_tmp_name_length): New.
6756         (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): New functions.
6757         (schedule_sm): Use get_lsm_tmp_name instead of "lsm_tmp".
6758
6759 2005-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6760             Andreas Krebbel  <krebbel1@de.ibm.com>
6761
6762         * config.gcc: Added z9-109 switch.
6763         * config/s390/2084.md ("x_int", "x_agen", "x_lr", "x_la", "x_larl",
6764         "x_load", "x_store", "x_branch", "x_call", "x_mul_hi", "x_mul_sidi",
6765         "x_div", "x_sem", "x_cs", "x_vs", "x_stm", "x_lm", "x_other",
6766         "x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
6767         "x_floadsf", "x_fstore_df", "x_fstoresf", "x_ftoi", "x_itof"): Enable
6768         for "z9_109" cpu attribute.
6769         * config/s390/s390.c (z9_109_cost): New processor cost structure.
6770         (CONST_OK_FOR_Os, CONST_OK_FOR_Op, CONST_OK_FOR_On): New macros.
6771         (s390_handle_arch_option): Added z9-109 switch.
6772         (override_options): Set respective cost function for z9-109.
6773         (s390_const_ok_for_constraint_p): New constraints Os, Op, On.
6774         (legitimate_reload_constant_p): Accept extended immediates.
6775         (print_operand): Three new output modifiers added: k, m and o.
6776         (s390_adjust_priority, s390_issue_rate): Handle Z9_109 like Z990.
6777         (s390_output_mi_thunk): Use extended immediate when possible.
6778         * config/s390/s390.h (processor_flags): Added PF_EXTIMM.
6779         (TARGET_CPU_EXTIMM, TARGET_EXTIMM): New macros.
6780         (CONSTRAINT_LEN): Added length of O constraint.
6781         (CLZ_DEFINED_VALUE_AT_ZERO): Definition added.
6782         * config/s390/s390.md ("cpu"): New value z9_109 added.
6783         ("*tstdi_extimm", "*tstdi_ccconly_extimm", "*tstsi_extimm",
6784         "*tstsi_cconly_extimm", "*movdi_64extimm", "*extendhidi2_extimm",
6785         "*extendqidi2_extimm", "*extendhisi2_extimm", "*extendqisi2_extimm",
6786         "*zero_extend<mode>si2_extimm", "*anddi3_extimm", "*iordi3_extimm",
6787         "*xordi3_extimm", "clzdi2", "clztidi2"): New patterns.
6788         ("*tstdi", "*tstsi", "*movdi_64", "*extendhisi2", "*extendqisi2",
6789         "*zero_extend<mode>si2_64", "zero_extendqihi2", "*zero_extendqihi2_64",
6790         "*anddi3", "*iordi3", "*xordi3"): Disable for TARGET_EXTIMM.
6791         ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs", "*cmpsi_ccs", "*cmpdi_ccu",
6792         "*cmpsi_ccu", "*movsi_zarch", "*adddi3_imm_cc", "*adddi3_carry1_cc",
6793         "*adddi3_carry2_cc", "*adddi3_cc", "*adddi3_64", "*addsi3_imm_cc",
6794         "*addsi3_carry1_cc", "*addsi3_carry2_cc", "*addsi3_cc", "addsi3",
6795         "*andsi3_cc", "*andsi3_cconly", "*andsi3_zarch", "*iorsi3_cc",
6796         "*iorsi3_cconly", "*iorsi3_zarch", "*xorsi3_cc", "*xorsi3_cconly",
6797         "*xorsi3", "*xorhi3", "*xorqi3"): Added instruction using extended
6798         immediates.
6799         ("extend<mode>di2", "extend<mode>si2", "zero_extend<mode>di2",
6800         "zero_extend<mode>si2"): Allow memory operands and don't manually emit
6801         insns for TARGET_EXTIMM.
6802
6803 2005-08-17  Andreas Krebbel  <krebbel1@de.ibm.com>
6804
6805         * testsuite/gcc.dg/20020926-1.c: Added "-mesa" to dg-options.
6806
6807 2005-08-17  Nick Clifton  <nickc@redhat.com>
6808
6809         * config/stormy16/stormy16.c (xstormy16_encode_section_info):
6810         Call default_encode_section_info.
6811
6812 2005-08-17  Steven Bosscher  <stevenb@suse.de>
6813
6814         PR tree-optimization/21574
6815         * tree-ssa-ccp.c (likely_value): If the right hand side is a
6816         constant, return CONSTANT.
6817         (ccp_lattice_meet): Use operand_equal_p instead of simple_cst_equal.
6818         (ccp_fold, visit_assignment): Likewise.
6819         (evaluate_stmt): Handle UNDEFINED and UNKNOWN_VAL the same way.
6820
6821 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
6822
6823         * c-typeck.c (build_function_call): Call fold_buildN_initializer or
6824         fold_buildN instead of buildN then fold_initializer or fold.
6825         (build_unary_op): Likewise.
6826         (build_binary_op): Likewise.
6827         * fold-const.c (fold_initializer): Remove.
6828         (fold_build1_initializer): New function.
6829         (fold_build2_initializer): New function.
6830         (fold_build3_initializer): New function.
6831         * tree.h (fold_initializer): Remove.
6832         (fold_build1_initializer): New function.
6833         (fold_build2_initializer): New function.
6834         (fold_build3_initializer): New function.
6835
6836 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
6837
6838         * fold-const.c (optimize_bit_field_compare): Remove extra fold call.
6839         (try_move_mult_to_index): Call fold_build2 instead of build2.
6840         (fold_binary): Don't call fold after calls to try_move_mult_to_index.
6841         * tree-ssa-loop-niter.c (inverse): Call int_const_binop instead of
6842         fold_binary_to_constant.
6843         (infer_loop_bounds_from_undefined): Call fold_build2 instead of
6844         fold (build.
6845         * tree-data-ref.c (tree_fold_divides_p): Use tree_int_cst_equal to
6846         check if A == gcd (A, B).  Remove TYPE argument.
6847         (analyze_offset) Use fold_build2 instead of fold (build.
6848         (create_data_ref): Likewise.
6849         (analyze_siv_subscript_cst_affine): Update calls to tree_fold_divides_p.
6850         * tree-ssa-ccp.c (widen_bitfield): Call fold_build2 instead of build2
6851         then fold.
6852
6853 2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>
6854
6855         * config/arm/unaligned-funcs.c,config/i386/crtfastmath.c,
6856         ipa-cp.c,ipa-prop.c,ipa-prop.h: Update FSF address.
6857
6858 2005-08-16  Andrew Pinski  <pinskia@physics.uc.edu>
6859
6860         PR tree-opt/23402
6861         * gimplify.c (zero_sized_type): New function.
6862         (gimplify_modify_expr_rhs): If we have a zero sized type,
6863         replace the statement with an empty statement.
6864
6865 2005-08-16  H.J. Lu  <hongjiu.lu@intel.com>
6866
6867         * config/i386/crtfastmath.c (set_fast_math): Add "=m" for
6868         fxsave.
6869
6870 2005-08-16  Ian Lance Taylor  <ian@airs.com>
6871
6872         * doc/tm.texi (Label Output): Correct typo.
6873
6874 2005-08-16  Steven Bosscher  <stevenb@suse.de>
6875
6876         PR target/23376
6877         * loop-unroll.c (analyze_insn_to_expand_var): Make sure that
6878         force_operand will work later on using have_insn_for.
6879
6880 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6881
6882         * fold-const.c (tree_expr_nonnegative_p): Regroup cases.
6883
6884 2005-08-16  Ian Lance Taylor  <ian@airs.com>
6885
6886         PR c++/23337
6887         * gimplify.c (gimplify_init_ctor_eval): If we see an element of
6888         vector type, don't try to construct it element by element.  Add an
6889         assertion that we use a FIELD_DECL when building a COMPONENT_REF.
6890
6891 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6892
6893         * fold-const.c (fold_ternary): Simplify folding of a CALL_EXPR.
6894
6895 2005-08-16  Geoffrey Keating  <geoffk@apple.com>
6896
6897         * doc/invoke.texi (Precompiled Headers): Document some more options
6898         which are known to be safe.
6899
6900 2005-08-16  James E Wilson  <wilson@specifix.com>
6901
6902         PR tree-optimization/21105
6903         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
6904         TREE_OVERFLOW check.
6905
6906 2005-08-16  David Edelsohn  <edelsohn@gnu.org>
6907
6908         * config/rs6000/rs6000.md (ltu<mode>): Convert to mode macro.
6909         (neg_ltu<mode>): Same.
6910         (gtu<mode>): Same.
6911         (neg_gtu<mode>): Same.
6912
6913 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6914
6915         * builtins.c (expand_builtin_strcat): Remove superfluous call to fold.
6916         (fold_builtin_isdigit): Use fold_buildN.
6917         (build_function_call_expr): Likewise.
6918         * c-typeck.c (c_finish_loop): Likewise.
6919
6920 2005-08-16  J"orn Rennecke <joern.rennecke@st.com>
6921             Richard Shann <rshann@superh.com>
6922
6923         PR middle-end/20396:
6924         * optabs.c (expand_binop): Take TRULY_NOOP_TRUNCATION into account.
6925
6926 2005-08-16  Sebastian Pop  <pop@cri.ensmp.fr>
6927
6928         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Reword a comment.
6929
6930 2005-08-15  Richard Earnshaw  <richard.earnshaw@arm.com>
6931
6932         PR target/23355
6933         * arm.c (thumb_compute_save_reg_mask): Use similar logic to
6934         arm_compure_save_reg0_reg12_mask to determine when the PIC register
6935         must be saved.
6936
6937 2005-08-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6938
6939         PR middle-end/23369
6940         * fold-const.c (build_range_check): Disable optimization for function
6941         pointer expressions on targets that require function pointer
6942         canonicalization.
6943
6944 2005-08-15  Ulrich Weigand  <uweigand@de.ibm.com>
6945
6946         * simplify-rtx.c (simplify_const_relational_operation): When
6947         extracting arguments of a COMPARE, recompute the mode as well.
6948
6949 2005-08-15  Ian Lance Taylor  <ian@airs.com>
6950
6951         * tree.c (build_string): Mark tree CONSTANT and INVARIANT.
6952
6953 2005-08-15  DJ Delorie  <dj@redhat.com>
6954
6955         * config/m32c/mov.md (movqi_op): Immediates can't be moved to
6956         the stack.
6957         (movsi_splittable): Allow, but split, moves to the stack.
6958         * config/m32c/m32c.c (m32c_split_move): Always split moves to the
6959         stack.
6960
6961 2005-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6962
6963         * aclocal.m4 (gcc_AC_FUNC_PRINTF_PTR): Delete.
6964         * configure.ac: Don't call gcc_AC_FUNC_PRINTF_PTR.
6965         * system.h (HOST_PTR_PRINTF): Don't define, poison it.
6966
6967         * bitmap.c, c-decl.c, config/i386/i386-interix.h,
6968         config/iq2000/iq2000.c, mips-tfile.c, print-rtl.c, print-tree.c:
6969         Delete HOST_PTR_PRINTF.
6970
6971         * configure, config.in: Regenerate.
6972
6973 2005-08-15  David Edelsohn  <edelsohn@gnu.org>
6974
6975         * config/rs6000/rs6000.md (QHSI): New mode macro.
6976         (wd): Extend mode attr for QImode and HImode
6977         (dbits): New mode attr.
6978         (zero_extend<mode>di2): Convert to mode macro.
6979
6980 2005-08-15  Steve Ellcey  <sje@cup.hp.com>
6981
6982         PR target/21841
6983         * doc/invoke.texi (-mgnu-ld): Update description.
6984         (-mhp-ld): Ditto.
6985
6986 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
6987
6988         PR 23391
6989         * Makefile.in (tree-chrec.o): Depends on real.h.
6990         * tree-chrec.c: Include real.h.
6991         (chrec_fold_plus_poly_poly, chrec_fold_multiply_poly_poly,
6992         chrec_fold_plus_1): Use build_real for SCALAR_FLOAT_TYPE_P.
6993         * tree-scalar-evolution.c (add_to_evolution_1,
6994         interpret_rhs_modify_expr): Ditto.
6995
6996 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
6997
6998         PR 23386
6999         * tree-data-ref.c (estimate_niter_from_size_of_data): When
7000         step is negative compute the estimation from init downwards to zero.
7001
7002 2005-08-14  James A. Morrison  <phython@gcc.gnu.org>
7003
7004         * fold-const (fold_binary): Call fold_build2 instead of fold (build.
7005
7006 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
7007
7008         * config/s390/s390.c (s390_const_ok_for_constraint_p): Add 'P'
7009         constraint.
7010         (legitimate_reload_constant_p): Fix handling of lliXX operands.
7011         Accept double-word constants that can be split.
7012         * config/s390/s390.md ("movti"): Use 'P' constraint.
7013         ("*movdi_31", "*movdf_31"): Likewise.
7014
7015 2005-08-14  Daniel Berlin  <dberlin@dberlin.org>
7016
7017         Fix PR tree-optimization/22615
7018
7019         * tree-ssa-structalias.c (solution_set_add): Handle
7020         first_vi_for_offset returning NULL.
7021         (do_da_constraint): Ditto.
7022         (do_sd_constraint): Ditto.
7023         (do_ds_constraint): Ditto
7024         (find_func_aliases): Ditto.
7025         (build_constraint_graph): RHS is allowed be ANYTHING.
7026         (first_vi_for_offset): Return NULL if we couldn't find anything at
7027         the offset.
7028
7029 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
7030
7031         * config/s390/s390.c (s390_canonicalize_comparison): Prefer register
7032         over memory as first operand.
7033
7034 2005-08-14  H.J. Lu  <hongjiu.lu@intel.com>
7035
7036         PR target/23360
7037         * config/i386/crtfastmath.c (set_fast_math): Check if DAZ is
7038         available for setting it.
7039
7040 2005-08-14  Ira Rosen  <irar@il.ibm.com>
7041
7042         PR tree-optimization/23320
7043         * tree-data-ref.c (base_addr_differ_p): Add comment. Check
7044         data-refs' types instead of base object nullness. Add check for
7045         pointer type data-refs before first location comparison. Remove
7046         assert.
7047
7048 2005-08-14  Andreas Schwab  <schwab@suse.de>
7049
7050         * doc/md.texi (Machine Constraints): Fix misplaced @end table.
7051
7052 2005-08-13  James E Wilson  <wilson@specifix.com>
7053
7054         * doc/cpp.texi (__SSP__, __SSP_ALL__): Document.
7055         * doc/invoke.texi (-Wstack-protector, -fstack-protector,
7056         -fstack-protector-all, --param ssp-buffer-size): Document.
7057         (-Wvariadic-macros): Alphabetize.
7058         (-fsched-stalled-insns-dep): Add missing 'f'.
7059
7060         * c-cppbuiltin.c (c_cpp_builtins): Add comment for flag_stack_protect
7061         macros.
7062
7063 2005-08-13  David Edelsohn  <edelsohn@gnu.org>
7064
7065         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'a' for indexed
7066         or indirect address operand.
7067         (EXTRA_ADDRESS_CONSTRAINT): New.
7068         * config/rs6000/rs6000.md (prefetch): Change constraint "p" to "a".
7069
7070 2005-08-13  Sebastian Pop  <pop@cri.ensmp.fr>
7071
7072         PR tree-optimization/22236
7073         * tree-cfg.c (print_pred_bbs, print_succ_bbs): Correctly print
7074         successors and predecessors.
7075         * tree-chrec.c (chrec_convert): Before converting, check that
7076         sequences don't wrap.
7077         * tree-data-ref.c (compute_estimated_nb_iterations): Moved ...
7078         (analyze_array): Extern.
7079         (find_data_references_in_loop): Remove call to
7080         compute_estimated_nb_iterations.
7081         * tree-data-ref.h (analyze_array): Declared.
7082         * tree-flow-inline.h (single_ssa_tree_operand, single_ssa_use_operand,
7083         single_ssa_def_operand, zero_ssa_operands): Fix documentation.
7084         * tree-flow.h (scev_probably_wraps_p): Declare with an extra parameter.
7085         * tree-scalar-evolution.c (instantiate_parameters_1): Factor entry
7086         condition.
7087         * tree-ssa-loop-ivcanon.c: Fix documentation.
7088         * tree-ssa-loop-ivopts.c (idx_find_step): Add a fixme note.
7089         * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): ... here.
7090         (infer_loop_bounds_from_undefined): New.
7091         (estimate_numbers_of_iterations_loop): Use
7092         infer_loop_bounds_from_undefined.
7093         (used_in_pointer_arithmetic_p): New.
7094         (scev_probably_wraps_p): Pass an extra parameter.  Call
7095         used_in_pointer_arithmetic_p.  Check that AT_STMT is not null.
7096         (convert_step): Fix documentation.
7097         * tree-vrp.c (adjust_range_with_scev): Call instantiate_parameters.
7098         Use initial_condition_in_loop_num and evolution_part_in_loop_num
7099         instead of CHREC_LEFT and CHREC_RIGHT.  Adjust the call to
7100         scev_probably_wraps_p.
7101
7102 2005-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
7103
7104         * config/s390/s390.c (s390_split_branches): Revert 2005-08-12 change.
7105         (s390_register_info): Ignore clobbered_regs information for fixed
7106         registers, and only fixed registers.
7107         (s390_init_frame_layout): Remove redundant call.
7108
7109 2005-08-12  Gerald Pfeifer  <gerald@pfeifer.com>
7110
7111         * doc/invoke.texi (C++ Dialect Options): Add dynamic_cast to
7112         description of -Wold-style-casts.
7113
7114 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
7115             Jakub Jelinek  <jakub@redhat.com>
7116
7117         * config/s390/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
7118         * config/s390/s390-protos.h (s390_get_thread_pointer): Prototype added.
7119         * config/s390/s390.c (print_operand): New output modifier 'G' added.
7120         (get_thread_pointer): Renamed to s390_get_thread_pointer.
7121         * config/s390/s390.md (stack_protect_set, stack_protect_test): If
7122         TARGET_THREAD_SSP_OFFSET is defined, change operands[1] to
7123         (MEM:P (PLUS:P (tp, TARGET_THREAD_SSP_OFFSET))).
7124         (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
7125         ("stack_protect_set", "stack_protect_test"): New expanders.
7126         ("stack_protect_setsi", "stack_protect_setdi", "stack_protect_testsi",
7127         "stack_protect_testdi"): New insn definitions.
7128
7129 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
7130
7131         * config/s390/s390.md ("*movdf_31"): Changed constraint from P to K.
7132
7133 2005-08-12  Paul Brook  <paul@codesourcery.com>
7134
7135         * config/arm/lib1funcs.asm: Error if __ARM_ARCH__ not set.
7136
7137 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
7138
7139         * config/s390/predicates.md (setmem_operand): New predicate.
7140         (shift_count_operand): Accept ANDs with special constants as
7141         operand.
7142         * config/s390/s390.c (print_shift_count_operand): Skip ANDs
7143         with special constants.
7144         * config/s390/s390.md ("setmem_long", "*setmem_long"): Replaced
7145         shift_count_operand with setmem_operand.
7146
7147 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
7148
7149         * config/s390/s390.c (s390_extract_part, s390_single_part):
7150         Type cast added.
7151         (s390_const_ok_for_constraint_p): Added SImode to the N constraint.
7152         (s390_output_mi_thunk): Don't use lg on 31 bit.
7153         * config/s390/s390.md ("*movdi_31", "*movdf_31"): Added lmy and stmy.
7154         ("*llgt_sisi" and splitter): Replaced TARGET_64BIT with TARGET_ZARCH.
7155
7156 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
7157
7158         * config/s390/s390.c (CONST_OK_FOR_J, CONST_OK_FOR_K): New macros.
7159         (s390_select_ccmode, s390_rtx_costs, legitimate_reload_constant_p,
7160         s390_init_frame_layout, s390_emit_prologue, s390_emit_epilogue,
7161         s390_output_mi_thunk): Replaced uses of CONST_OK_FOR_CONSTRAINT_P
7162         with one of the new macros.
7163
7164 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
7165
7166         * config/s390/s390.c (s390_split_branches, s390_init_frame_layout):
7167         Don't set save_return_addr_p.
7168         (s390_register_info): Make clobbered_regs not depending on
7169         save_return_addr_p.
7170
7171 2005-08-12  Kaz Kojima  <kkojima@gcc.gnu.org>
7172
7173         * gcc.c (LINK_SSP_SPEC): Remove space before a trailing }.
7174         (LINK_COMMAND_SPEC): Add space after %(link_ssp).
7175
7176 2005-08-11  James E. Wilson  <wilson@specifix.com>
7177
7178         * config/ia64/ia64.h (EXTRA_MEMORY_CONSTRAINT): New.
7179
7180 2005-08-11  Jakub Jelinek  <jakub@redhat.com>
7181
7182         * dwarf2out.c (add_location_or_const_value_attribute): Prefer
7183         locations gathered by var-tracking in single entry loc_list
7184         over loc_descriptor_from_tree.
7185
7186         * dwarf2out.c (concat_loc_descriptor): Add can_use_fbreg argument,
7187         pass it down to loc_descriptor.
7188         (loc_descriptor): Pass can_use_fbreg to concat_loc_descriptor.
7189         (containing_function_has_frame_base): Move earlier in the file.
7190         (loc_descriptor_from_tree_1): Use containing_function_has_frame_base
7191         instead of always assuming fbreg can't be used.
7192
7193 2005-08-11  David Edelsohn  <edelsohn@gnu.org>
7194
7195         * config/rs6000/altivec.md: Change constraint "m" to "Z".
7196         * config/rs6000/predicates.md (indexed_or_indirect_operand):
7197         Accept address wrapped in AND for Altivec.
7198         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
7199         Strip AND wrapping offset address for Altivec.
7200
7201 2005-08-11  Richard Henderson  <rth@redhat.com>
7202
7203         PR middle-end/23312
7204         * gimplify.c (gimplify_one_sizepos): Check for INTEGER_TYPE
7205         before using TYPE_IS_SIZETYPE.
7206
7207 2005-08-11  Richard Henderson  <rth@redhat.com>
7208
7209         PR target/22225
7210         * config/alpha/alpha.c (alphaev4_insn_pipe): Add take pipes for
7211         insn types not present on ev4.
7212         (alphaev5_insn_pipe): Similarly.
7213
7214 2005-08-11  Richard Earnshaw  <richard.earnshaw@arm.com>
7215
7216         PR target/23250
7217         * arm.c (arm_override_options): If the user has selected callee-super-
7218         interworking, then enable normal interworking.
7219
7220 2005-08-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7221
7222         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Undef before
7223         redefinition.
7224
7225 2005-08-11  Wu Zhou  <woodzltc@cn.ibm.com>
7226
7227         * doc/rtl.texi: Fix two typos.
7228
7229 2005-08-11  Richard Guenther  <rguenther@suse.de>
7230
7231         PR target/23289
7232         * config/i386/i386.c (ix86_function_ok_for_sibcall): Handle
7233         cases where we call to/from functions returning void.
7234
7235 2005-08-10  James A. Morrison  <phython@gcc.gnu.org>
7236
7237         PR c++/23225
7238         * tree.c (build_pointer_type_for_mode): Robustify.
7239
7240 2005-08-10  James E Wilson  <wilson@specifix.com>
7241
7242         * defaults.h, config/alpha/alpha.h, config/ia64/ia64.h
7243         (ASM_OUTPUT_ADDR_VEC_ELT): Delete.
7244
7245         * config/alpha/alpha.c (alpha_arg_partial_bytes): Change "(CUM)." to
7246         "cum->".
7247
7248 2005-08-10  Eric Christopher  <echristo@apple.com>
7249
7250         * config/rs6000/rs6000.c (mems_ok_for_quad_peep): Rewrite.
7251         * config/rs6000/rs6000.md (*lfq_power2, *stfq_power2): Use
7252         V2DFmode.
7253
7254 2005-08-10  Andrew Pinski  <pinskia@physics.uc.edu>
7255
7256         PR target/21887
7257         * config/darwin.c (machopic_indirect_data_reference): Use a new register
7258         for the high part when generating dynamic-no-pic code.
7259
7260 2005-08-10  H.J. Lu  <hongjiu.lu@intel.com>
7261
7262         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtfm to tm-file.
7263         (x86_64-*-linux*): Likewise.
7264
7265         * config/i386/crtfastmath.c: New file.
7266         * config/i386/t-crtfm: Likewise.
7267
7268         * config/i386/linux.h (ENDFILE_SPEC): New.
7269         * config/i386/linux64.h (ENDFILE_SPEC): Likewise.
7270
7271         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
7272         crtfastmath.o.
7273
7274 2005-08-10  Dorit Nuzman  <dorit@il.ibm.com>
7275
7276         * doc/md.texi: (reduc_smin, reduc_umin, reduc_splus, reduc_uplus):
7277         (vec_shl, vec_shr): Document new operations.
7278         * tree.def (VEC_RSHIFT_EXPR, VEC_LSHIFT_EXPR): Fix comment.
7279
7280 2005-08-10  David Edelsohn  <edelsohn@gnu.org>
7281
7282         * config/rs6000/predicates.md (indexed_or_indirect_address): New.
7283         * config/rs6000/rs6000.md (prefetch): Remove operand 0 mode and
7284         change predicate to indexed_or_indirect_address.
7285
7286 2005-08-10  Richard Sandiford  <richard@codesourcery.com>
7287
7288         * config/arm/lib1funcs.asm (__aeabi_uidiv, __aeabi_idiv): New aliases.
7289         * config/arm/libgcc-bpabi.ver (GCC_3.5): Add __aeabi_idiv,
7290         __aeabi_uidiv, __aeabi_uread4, __aeabi_uread8, __aeabi_uwrite4
7291         and __aeabi_uwrite8.
7292         * config/arm/unaligned-funcs.c: New file.
7293         * config/arm/t-bpabi (LIB2FUNCS_EXTRA): Add unaligned-funcs.c.
7294
7295 2005-08-09  Paolo Bonzini  <bonzini@gnu.org>
7296
7297         * bb-reorder.c (pass_duplicate_computed_gotos, pass_partition_blocks):
7298         Add dump.
7299         * cfglayout.c (pass_insn_locators_initialize): Add dump.
7300         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes):
7301         Add dump.
7302         * except.c (pass_convert_to_eh_region_ranges): Add dump.
7303         * final.c (pass_shorten_branches): Add dump.
7304         * flow.c (pass_recompute_reg_usage, pass_remove_death_notes): Add dump.
7305         (pass_life): Rename dump.
7306         (rest_of_handle_flow2): Remove initial verify_flow_info.
7307         * function.c (pass_instantiate_virtual_regs): Add dump.
7308         * integrate.c (pass_initial_value_sets): Add dump.
7309         * jump.c (pass_cleanup_barriers, pass_purge_lineno_notes): Add dump.
7310         * loop-init.c (pass_rtl_loop_init, pass_rtl_loop_done): Rename dump.
7311         (pass_rtl_move_loop_invariants, pass_rtl_unswitch, pass_rtl_doloop,
7312         pass_rtl_unroll_and_peel_loops): Rename dump and add gate.
7313         (gate_rtl_move_loop_invariants, gate_rtl_unswitch, gate_rtl_doloop,
7314         gate_rtl_unrool_and_peel_loops): New.
7315         (rtl_move_loop_invariants, rtl_unswitch, rtl_unrool_and_peel_loops,
7316         rtl_doloop): Do not look at flags.
7317         * mode-switching.c (pass_mode_switching): Add dump.
7318         * recog.c (pass_split_all_insns, pass_split_for_shorten_branches,
7319         pass_split_before_regstack): Add dump.
7320         * regmove.c (pass_stack_adjustments): Add dump.
7321         * tree-optimize.c (pass_fixup_cfg): Add dump.
7322
7323 2005-08-10  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
7324
7325         PR 23309
7326         * config/m32r/m32r.c (m32r_reload_lr): Fix off by one error when
7327         deciding which instruction sequence to use.
7328
7329 2005-08-09  Dorit Nuzman  <dorit@il.ibm.com>
7330
7331         * tree-vect-transform.c (vect_create_epilog_for_reduction): Set
7332         BIT_FIELD_REF_UNSIGNED for newly created BIT_FIELD_REFs.
7333
7334 2005-08-09  Richard Guenther  <rguenther@suse.de>
7335
7336         * c-common.c (builtin_function_2): Remove.
7337         (def_builtin_1): New function.
7338         (c_common_nodes_and_builtins): Use def_builtin_1 to
7339         build builtin functions.
7340
7341 2005-08-09  Jie Zhang  <jie.zhang@analog.com>
7342
7343         * config/bfin/uclinux.h (NO_IMPLICIT_EXTERN_C): Define.
7344         * config/bfin/elf.h (NO_IMPLICIT_EXTERN_C): Define.
7345         * config/bfin/bfin.c (bfin_return_in_memory): Update to really match
7346         Visual DSP.
7347
7348 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
7349
7350         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Use
7351         fold_binary instead of fold_build2 since we don't care about the
7352         resulting tree.
7353         (loop_niter_by_eval): Likewise.
7354         (compare_trees): Likewise.
7355         (proved_non_wrapping_p): Likewise.
7356
7357 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
7358
7359         PR c/23161
7360         PR c/23165
7361         * c-typeck.c (c_finish_if_stmt): Look into STATEMENT_LISTs to see
7362         if the if is really empty.
7363
7364 2005-08-09  Steven Bosscher  <stevenb@suse.de>
7365
7366         PR tree-optimization/23234
7367         * tree-ssa-math-opts.c (place_reciprocal): New enum.
7368         (execute_cse_reciprocals_1): Replace the 'phi' argument with an
7369         argument of the new enum.
7370         (execute_cse_reciprocals): Add reciprocals for function arguments
7371         on the unique successor edge of the entry block.  Update other calls
7372         to execute_cse_reciprocals_1.
7373
7374 2005-08-08  Richard Henderson  <rth@redhat.com>
7375
7376         PR 22439
7377         * gimplify.c (gimplify_one_sizepos): Preserve the original type.
7378
7379 2005-08-08  Bob Wilson  <bob.wilson@acm.org>
7380
7381         * expr.c (write_complex_part): Return after handling MEM.
7382
7383 2005-08-08  Josh Conner  <jconner@apple.com>
7384
7385         PR rtl-optimization/23241
7386         * combine.c (simplify_comparison): Fix error in determining
7387         whether to lift a subreg from comparison.
7388
7389 2005-08-08  David Edelsohn  <edelsohn@gnu.org>
7390
7391         PR target/18506
7392         * config/rs6000/altivec.md (vec_init<mode>): New.
7393         (vec_set<mode>): New.
7394         (vec_extract<mode>): New.
7395         * config/rs6000/rs6000.c (rs6000_expand_vector_init): New.
7396         (rs6000_expand_vector_set): New.
7397         (rs6000_expand_vector_extract): New.
7398         (rs6000_legitimate_offset_address_p): Offset addresses are valid
7399         for Altivec modes before reload.
7400         (altivec_expand_vec_init_builtin): New.
7401         (get_element_number): New.
7402         (altivec_expand_vec_set_builtin): New.
7403         (altivec_expand_vec_ext_builtin): New.
7404         (altivec_expand_builtin): Expand vec_init, vec_set, and vec_ext
7405         builtins.
7406         (altivec_init_builtins): Init vec_init, vec_set, and vec_ext
7407         builtins.
7408         * config/rs6000/rs6000.h (rs6000_builtins): Add
7409         ALTIVEC_BUILTIN_VEC_INIT_<mode>, ALTIVEC_BUILTIN_VEC_SET_<mode>,
7410         ALTIVEC_BUILTIN_VEC_EXT_<mode>.
7411         * config/rs6000/rs6000-protos.h: Declare new functions.
7412
7413 2005-08-08  Jan Hubicka  <jh@suse.cz>
7414
7415         * i386.c (legitimate_pic_address_disp_p): Refuse GOTOFF in 64bit mode.
7416         (legitimate_address_p): Refuse GOT and GOTOFF in 64bit mode.
7417         * i386.md (movdi*): Use pic_32bit_operand.
7418         * predicates.md (pic_32bit_operand): New.
7419
7420 2005-08-08  Nathan Sidwell  <nathan@codesourcery.com>
7421
7422         PR c++/21166
7423         * stor-layout.c (finalize_type_size): Undo DECL_PACKED when possible.
7424
7425 2005-08-07  James A. Morrison  <phython@gcc.gnu.org>
7426
7427         * tree-vrp.c (simplify_div_or_mod_using_range): Use build2.
7428         (test_for_singularity): Use fold_build2.
7429
7430 2005-08-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7431
7432         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Fix loop upper bound.
7433
7434 2005-08-07  Danny Smith  <dannysmith@users.sourceforge.net>
7435
7436         * config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
7437         (COMMON_ASM_OP) Define.
7438         * config/i386/i386.c (ix86_in_large_data_p): Add ATTRIBUTE_UNUSED
7439         (ix86_encode_section_info): Likewise.
7440         (TARGET_ENCODE_SECTION_INFO): Conditionally define as
7441         SUBTARGET_ENCODE_SECTION_INFO.
7442
7443 2005-08-06  Richard Henderson  <rth@redhat.com>
7444
7445         PR 21894
7446         * tree-nested.c (convert_local_reference): Save and restore val_only
7447         around component_ref and friends.  Clear walk_subtrees by default.
7448
7449 2005-08-06  Peter O'Gorman  <peter@pogma.com>
7450
7451         PR 21366
7452         * gcc.c (process_command): Check the argument to -b has a dash.
7453         * doc/invoke.texi: Update -b and -V docs.
7454
7455 2005-08-06  James E Wilson  <wilson@specifix.com>
7456
7457         * config/mips/cross64.h, config/mips/t-cross64: Delete.
7458
7459 2005-08-06  Michael Matz  <matz@suse.de>
7460
7461         * genattrtab.c (write_attr_get, write_attr_case): Use insn_code
7462         member only if only one insn is associated with the value.
7463
7464 2005-08-06  Nick Clifton  <nickc@redhat.com>
7465
7466         * config/stormy16/stormy16.h (SYMBOL_FLAG_XSTORMY16_BELOW100):
7467         New define.
7468         (ASM_OUTPUT_LABELREF): Delete - it is no longer needed.
7469         * config/stormy16/stormy16.c (xstormy16_below100_symbol):
7470         Check symbol flags instead of symbol name mangling.
7471         (xstormy16_asm_output_aligned_common): Likewise.  Also
7472         simplify code since the bss100_section cass is the only case
7473         where the below100 code will be triggered.
7474         (xstormy16_encode_section_info): Encode below100 attribute
7475         using the SYMBOL_FLAG_XSTORMY16_BELOW100 instead of mangling
7476         the name.
7477         (xstormy16_strip_name_encoding): Delete - this function is no
7478         longer needed.
7479         (TARGET_STRIP_NAME_ENCODING): Undefine.
7480         * config/stormy16/stormy16-protos.h: Delete prototype for
7481         xstormy16_strip_name_encoding.
7482
7483 2005-08-06  Kazu Hirata  <kazu@codesourcery.com>
7484
7485         * Makefile.in, cfgexpand.c, cfgloop.h, cfgloopmanip.c,
7486         config.gcc, ipa-cp.c, ipa-prop.c, ipa-prop.h, reg-stack.c,
7487         tree-ssa-structalias.c, tree-vrp.c, value-prof.c, vec.h,
7488         config/linux.h, config/alpha/alpha.h, config/alpha/linux.h,
7489         config/alpha/predicates.md, config/arc/arc.h,
7490         config/arm/arm.h, config/arm/ieee754-df.S,
7491         config/arm/ieee754-sf.S, config/bfin/bfin.c,
7492         config/bfin/bfin.h, config/c4x/c4x.h, config/crx/crx.c,
7493         config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h,
7494         config/i386/i386.h, config/ia64/ia64.c, config/ia64/ia64.h,
7495         config/m68hc11/m68hc11.h, config/mips/mips.c,
7496         config/mips/mips.h, config/mips/openbsd.h,
7497         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.h,
7498         config/pdp11/pdp11.h, config/rs6000/linux-unwind.h,
7499         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
7500         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
7501         config/sparc/linux.h, config/sparc/linux64.h,
7502         config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h,
7503         doc/extend.texi, doc/gcov.texi, doc/install.texi,
7504         doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix comment/doc
7505         typos.  Follow spelling conventions.
7506
7507 2005-08-06  Joseph S. Myers  <joseph@codesourcery.com>
7508
7509         PR c/23113
7510         * stmt.c (warn_if_unused_value): Check TREE_NO_WARNING at start.
7511         Don't handle NOP_EXPR, CONVERT_EXPR and NON_LVALUE_EXPR
7512         specially.  Check for side effects only for COND_EXPR.
7513         * c-typeck.c (c_finish_stmt_expr): Mark statement expression
7514         return with TREE_NO_WARNING.
7515
7516 2005-08-06  Richard Sandiford  <richard@codesourcery.com>
7517
7518         PR rtl-optimization/23233
7519         * loop.c (combine_movables): Require the modes to be the same.
7520         (move_movables): Remove handling of cases where the replacement
7521         had a different mode to the original.
7522
7523 2005-08-05  James A. Morrison  <phython@gcc.gnu.org>
7524
7525         PR tree-optimization/23128
7526         * tree-vrp.c (vrp_int_const_binop): Check if unsigned addition or
7527         subtraction wrap, and set TREE_OVERFLOW if they do.
7528
7529 2005-08-05  Richard Henderson  <rth@redhat.com>
7530
7531         PR 21728
7532         * tree-cfg.c (remove_bb): Transmute DECL_NONLOCAL labels into
7533         FORCED_LABEL labels.
7534
7535 2005-08-05  J"orn Rennecke <joern.rennecke@st.com>
7536
7537         PR middle-end/23135
7538         * reload.c (find_reloads_subreg_address): Pass down TYPE
7539         unchanged.  Change all callers except find_reloads_toplev.
7540
7541 2005-08-05  Michael Matz  <matz@suse.de>
7542
7543         * genattrtab.c (current_alternative_string): Remove.
7544         (SIMPLIFY_ALTERNATIVE): Ditto.
7545         (attr_alt_bit_p): Ditto.
7546         (alternative_name): Make const char *.
7547         (evaluate_eq_attr): Remove use of above things.
7548         (simplify_test_exp): Ditto.
7549         (simplify_test_exp <EQ_ATTR>): Guard for insn_code < 0 .
7550         (simplify_test_exp <AND>): Correct typo (test 'right' not 'left').
7551
7552 2005-08-04  James E Wilson  <wilson@specifix.com>
7553
7554         * config/ptx4.h, config/sol2.h, config/arm/freebsd.h,
7555         config/arm/linux-elf.h, config/frv/frv.h, config/i386/freebsd.h,
7556         config/i386/freebsd64.h, config/i386/netware.h, config/i386/sco5.h,
7557         config/ia64/freebsd.h, config/rs6000/sysv4.h, config/sparc/freebsd.h
7558         (LINK_SPEC): Delete useless %{Wl,*:%*} item.
7559
7560 2005-08-04  Richard Henderson  <rth@redhat.com>
7561
7562         PR 21529
7563         * params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New.
7564         * params.h (SRA_MAX_STRUCTURE_COUNT): New.
7565         * tree-sra.c (decide_block_copy): Use it.  Disable element copy
7566         if we'd have to instantiate too many members.
7567
7568 2005-08-04  Richard Henderson  <rth@redhat.com>
7569
7570         PR 21291
7571         * tree-outof-ssa.c (coalesce_asm_operands): New.
7572         (coalesce_ssa_name): Use it.  Split out ...
7573         (coalesce_phi_operands, coalesce_result_decls): ... these.
7574
7575 2005-08-04  Paul Brook  <paul@codesourcery.com>
7576
7577         * read-rtl.c (read_quoted_string): Break if EOF.
7578
7579 2005-08-04  Andrew Pinski  <pinskia@physics.uc.edu>
7580
7581         * tree.h (fold_build1): Change to macro and call fold_build1_stat.
7582         (fold_build2): Likewise.
7583         (fold_build3): Likewise.
7584         (fold_build1_stat): New function prototype.
7585         (fold_build2_stat): Likewise.
7586         (fold_build3_stat): Likewise.
7587         * fold-const.c (fold_build1): Rename to ..
7588         (fold_build1_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
7589         through to build1_stat.
7590         (fold_build2): Rename to ..
7591         (fold_build2_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
7592         through to build2_stat.
7593         (fold_build3): Rename to ..
7594         (fold_build3_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
7595         through to build3_stat.
7596
7597 2005-08-04  David Edelsohn  <edelsohn@gnu.org>
7598             Ian Lance Taylor  <ian@airs.com>
7599
7600         * function.c (assign_stack_local_1): Do not correct stack slot
7601         address if allocation size is smaller than mode size.
7602
7603 2005-08-04  Diego Novillo  <dnovillo@redhat.com>
7604
7605         PR 22037
7606         * tree-cfg.c (replace_uses_by): Call mark_new_vars_to_rename.
7607         (tree_merge_blocks): Propagate anything allowed by
7608         may_propagate_copy.
7609         Clarify documentation.
7610         * passes.c (execute_todo): If cleanup_tree_cfg invalidated the
7611         SSA form, schedule an update if necessary.
7612
7613 2005-08-04  Gerald Pfeifer  <gerald@pfeifer.com>
7614
7615         * doc/install.texi (Binaries): Remove broken link to
7616         Sinix/Reliant Unix binaries.
7617
7618 2005-08-03  Richard Henderson  <rth@redhat.com>
7619
7620         PR 23221
7621         * function.c (stack_protect_epilogue): Export.
7622         * tree.h (stack_protect_epilogue): Declare.
7623         * calls.c (expand_call): Call it.
7624
7625 2005-08-03  Eric Christopher  <echristo@apple.com>
7626
7627         * gcc.c (LINK_SSP_SPEC): Add fstack-protector-all.
7628         * config/darwin.h (LINK_COMMAND_SPEC): Add link_ssp
7629         spec.
7630
7631 2005-08-04  Jan Hubicka  <jh@suse.cz>
7632
7633         * profile.c (branch_prob): Split edges with goto locus on them
7634         to get proper line counts.
7635         * tree-cfg.c (make_cond_expr_edges): Record user goto locuses, if any.
7636
7637 2005-08-03  Paul Brook  <paul@codesourcery.com>
7638
7639         * function.c (assign_parms): Round current_function_args_size
7640         to PARM_BOUNDARY, not STACK_BOUNDARY.
7641
7642 2005-08-03  Geoffrey Keating  <geoffk@apple.com>
7643
7644         * config/i386/i386.c (x86_elf_aligned_common)
7645         (x86_output_aligned_bss): Don't try to use symbols that aren't defined.
7646
7647 2005-08-03  Zdenek Dvorak  <dvorakz@suse.cz>
7648
7649         PR tree-optimization/23157
7650         * tree-scalar-evolution.c (scev_const_prop): Unshare trees
7651         before emitting them.
7652
7653 2005-08-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7654
7655         PR tree-optimization/19899
7656         * Makefile.in (tree-scalar-evolution.o): Add real.h.
7657         * tree-scalar-evolution.c: Include real.h.
7658         (add_to_evolution): Build constant -1 of correct type.
7659
7660 2005-08-03  Jan Hubicka  <jh@suse.cz>
7661
7662         * cfgloop.h (DLTHE_FLAG_COMPLETTE_PEEL): New flag.
7663         * cfgloopmanip.c (duplicate_loop_to_header_edge): Special case
7664         profile updating for complette unrolling.
7665         * loop-unroll.c (peel_loop_completely): Use it.
7666         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
7667         (tree_unroll_loops_completely): Disable code growing unrolling of cold
7668         loops.
7669
7670 2005-08-03  Paul Brook  <paul@codesourcery.com>
7671
7672         * combine.c (can_change_dest_mode): New function.
7673         (try_combine, simplify_set): Use it.
7674
7675 2005-08-03  Eric Botcazou  <ebotcazou@adacore.com>
7676
7677         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Only force
7678         TFmode to BLKmode.
7679
7680 2005-08-03  Gerald Pfeifer  <gerald@pfeifer.com>
7681
7682         * doc/install.texi (Specific): Adjust link to openavr.org.
7683         (Specific): Remove broken reference to GCC 2.8.1 for OS/2.
7684         (Binaries): Adjust HP-UX Porting Center link.
7685         (Binaries): Adjust Free Software Foundation ordering link.
7686
7687 2005-08-03  Andrew Pinski  <pinskia@physics.uc.edu>
7688
7689         * convert.c (convert_to_integer): Use fold_build1 instead of
7690         build1 when converting an integer to an integer.
7691
7692 2005-08-02  Richard Henderson  <rth@redhat.com>
7693
7694         * combine.c (combine_instructions): Don't use reg_equal/equiv
7695         results if the mode doesn't match.
7696
7697 2005-08-02  Mark Mitchell  <mark@codesourcery.com>
7698
7699         * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Set it.
7700         * doc/fragments.texi (NATIVE_SYSTEM_HEADER_DIR): Document it.
7701
7702 2005-08-02  Richard Henderson  <rth@redhat.com>
7703
7704         PR 23196
7705         * explow.c (memory_address): Remove special-case for
7706         virtual_stack_vars_rtx and virtual_incoming_args_rtx.
7707
7708 2005-08-02  Diego Novillo  <dnovillo@redhat.com>
7709
7710         PR 23164
7711         * tree-cfgcleanup.c (cleanup_tree_cfg): Do not limit the
7712         number of calls to cleanup_tree_cfg_1.
7713
7714 2005-08-02  Martin Reinecke  <martin@mpa-garching.mpg.de>
7715
7716         * doc/invoke.texi: document file extensions .F90 and .F95
7717
7718 2005-08-02  Richard Guenther  <rguenther@suse.de>
7719
7720         * fold-const.c (tree_expr_nonnegative_p): frexp(x, &e) is
7721         positive if its first argument is positive.
7722
7723 2005-08-02  Richard Guenther  <rguenther@suse.de>
7724
7725         PR tree-optimization/23177
7726         * tree-ssa-operands.c (get_tmr_operands): Use get_expr_operands
7727         on TMR_TAG.
7728
7729 2005-08-02  James A. Morrison  <phython@gcc.gnu.org>
7730
7731         PR tree-optimization/23129
7732         * tree-vrp.c (extract_range_from_binary_expr): Set value range to
7733         varying for divisions with anti-ranges.
7734
7735 2005-08-02  Jan Hubicka  <jh@suse.cz>
7736
7737         * tree-ssa-dom.c (thread_across_edge): Remove updating here.
7738         * tree-ssa-threadupdate.c (thread_block): Add it here.
7739
7740 2005-08-01  James E Wilson  <wilson@specifix.com>
7741
7742         * config/mips/mips.c (mips_encode_section_info, mips_attribute_table,
7743         TARGET_ENCODE_SECTION_INFO, TARGET_ATTRIBUTE_TABLE): New.
7744         * config/mips/mips.h (SYMBOL_FLAG_LONG_CALL, SYMBOL_REF_LONG_CALL_P):
7745         New.
7746         * config/mips/predicates.md (const_call_insn_operand): Add check for
7747         SYMBOL_REF_LONG_CALL_P.
7748         * doc/extend.texi (long_call): Document the new attribute.
7749
7750 2005-08-01  Ian Lance Taylor  <ian@airs.com>
7751             Richard Henderson  <rth@redhat.com>
7752
7753         * Makefile.in (RTL_BASE_H): Add real.h.
7754         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Use structure copy
7755         instead of memcpy.
7756         * emit-rtl.c (const_double_from_real_value): Likewise; use rtx.u.rv
7757         directly.
7758         * rtl.c (rtl_check_failed_code_mode): New.
7759         * rtl.h (struct rtx_def): Add u.rv.
7760         (XCMWINT, XCNMPRV): New.
7761         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Use XCMWINT.
7762         (CONST_DOUBLE_REAL_VALUE): Use XCNMPRV; constify.
7763
7764 2005-08-01  Richard Henderson  <rth@redhat.com>
7765
7766         * dwarf2out.c (mem_loc_descriptor): Use XEXP, not SUBREG_REG,
7767         with auto-inc codes.
7768
7769         * config/alpha/predicates.md (and_operand): Test mode of CONST_DOUBLE.
7770
7771 2005-08-01  Jan Hubicka  <jh@suse.cz>
7772
7773         * i386-protos.h (asm_preferred_eh_data_format): Declare.
7774         * i386.c: Include dwarf2.h
7775         (asm_preferred_eh_data_format): New.
7776         * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Move offline.
7777
7778 2005-08-01  Ian Lance Taylor  <ian@airs.com>
7779
7780         * config/host-linux.c (linux_gt_pch_get_address): Add new name
7781         randomize_va_space for virtual address randomization control.
7782
7783 2005-08-01  Steven Bosscher  <stevenb@suse.de>
7784
7785         * common.opt (flag_ipa_cp): Put in right place to maintain
7786         alphabetic sort.
7787
7788 2005-08-01  Jan Hubicka  <jh@suse.cz>
7789
7790         * profile.c (compute_value_histograms): Fix thinko.
7791         * value-prof.c: Include toplev.h
7792         (check_counter): New function.
7793         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
7794         tree_mod_subtract_transform): Add sanity check.
7795
7796 2005-08-01  Richard Guenther  <rguenther@suse.de>
7797
7798         PR tree-optimization/23133
7799         * tree-ssa-math-opts.c (execute_cse_reciprocals): Walk
7800         current functions parameter decls to find defs to cse
7801         reciprocals of.
7802
7803 2005-08-01  Richard Guenther  <rguenther@suse.de>
7804
7805         PR tree-optimization/23109
7806         * tree-ssa-math-opts.c (execute_cse_reciprocals_1):
7807         If trapping math is in effect, use post-dominator information
7808         to check if we'd in any case reach a trapping point before
7809         doing the reciprocal insertion.
7810         (execute_cse_reciprocals): Compute post-dominators, if necessary.
7811         * tree-ssa-loop-im.c (determine_invariantness_stmt): RDIV
7812         expressions are invariant only if trapping math is not in effect.
7813
7814 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
7815
7816         * cgraph.h (update_call_expr, cgraph_copy_node_for_versioning,
7817         cgraph_function_versioning): New declarations.
7818         * cgraphunit.c: Add include to ipa-prop.h.
7819         (update_call_expr, cgraph_copy_node_for_versioning,
7820         cgraph_function_versioning): New functions.
7821         * integrate.c (copy_decl_for_inlining): Remove.
7822         * ipa-prop.h (ipa_replace_map): New struct.
7823         (struct ipa_node): Add ipcp_orig_node, count_scale, new fields.
7824         * ipa-cp.c (ipcp_method_orig_node, ipcp_method_is_cloned,
7825         ipcp_method_set_orig_node, ipcp_cloned_create, ipcp_method_get_scale,
7826         ipcp_method_set_scale, ipcp_method_compute_scale, ipcp_after_propagate,
7827         ipcp_iterate_stage, ipcp_method_scale_print,
7828         ipcp_profile_mt_count_print, ipcp_profile_cs_count_print,
7829         ipcp_profile_edge_print, ipcp_profile_bb_print , ipcp_profile_print,
7830         ipcp_replace_map_create, ipcp_redirect, ipcp_update_callgraph,
7831         ipcp_update_bb_counts, ipcp_update_profiling,
7832         ipcp_update_edges_counts): New functions.
7833         (ipcp_method_cval_init): Remove restriction regarding local methods.
7834         (ipcp_init_stage): Add ipcp_method_compute_scale.
7835         (ipcp_insert_stage): Add versioning.
7836         (ipcp_structures_print): Add ipcp_method_scale_print.
7837         (ipcp_driver): Dump profiling info.
7838         * Makefile.in: Remove integrate.h dependency from tree-inline.o.
7839         Add ipa-prop.h dependency to tree-inline.o and cgraphunit.o.
7840         * tree-inline.c: Remove include to integrate.h, Add include ipa-prop.h.
7841         (struct inline_data): Add versioning_p, ipa_info, new fields.
7842         (remap_decl, mark_local_for_remap_r, setup_one_parameter,
7843         declare_return_variable): Replace calls to copy_decl_for_inlining with
7844         copy_decl_for_dup.
7845         (copy_body_r, copy_bb, copy_cfg_body, copy_tree_r, inlining_p): Add
7846         versioning support.
7847         (copy_decl_for_dup): Rename from copy_decl_for_inlining.
7848         Add argument VERSIONING.
7849         (copy_arguments_for_versioning, copy_static_chain,
7850         function_versionable_p, tree_versionable_function_p,
7851         tree_function_versioning, replace_ref_tree): New functions.
7852         * tree-inline.h: Include varray.h.
7853         (tree_versionable_function_p,  tree_function_versioning,
7854         tree copy_decl_for_dup): New declarations.
7855
7856 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
7857
7858         * ipa-cp.c: New file. Contains IPCP specific functionality.
7859         * ipa-prop.h: New file. Contains structures/definitions that can be
7860         used by several interprocedural data flow optimizations (and also IPCP).
7861         * ipa-prop.c: New file.
7862         * Makefile.in: Add ipa-cp.c, ipa-prop.h, ipa-prop.c.
7863         * common.opt: Add ipa-cp flag.
7864         * timevar.def: Add IPCP optimization.
7865         * tree-optimize.c (init_tree_optimization_passes): Schedule
7866         pass_ipa_cp.
7867         * tree-pass.h (pass_ipa_cp): Declare.
7868
7869 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
7870
7871         * dwarf2out.c, fold-const.c, ipa-type-escape.c,
7872         loop-invariant.c, predict.c, predict.def, reload1.c, reorg.c,
7873         tree-sra.c, config/arm/arm.c, config/crx/crx.c,
7874         config/i386/i386.c, config/mips/mips.h,
7875         config/rs6000/rs6000.h, config/sh/sh.c,
7876         config/stormy16/stormy16.c: Fix comment typos.
7877
7878 2005-08-01  Joseph S. Myers  <joseph@codesourcery.com>
7879
7880         PR c/22311
7881         * c-typeck.c (build_binary_op): Use common_type wrapper on
7882         shortened types.
7883         (common_type): Update comment.
7884
7885 2005-07-31  Steven Bosscher  <stevenb@suse.de>
7886
7887         PR target/23095
7888         * common.opt (flag_gcse_after_reload): Don't initialize to 2.
7889         (flag_rerun_cse_after_loop): Initialize this to 2 instead.
7890         * postreload-gcse.c (hash_scan_set): Do not consider stack regs.
7891
7892 2005-07-31  Jan Hubicka  <jh@suse.cz>
7893
7894         * pretty-print.h (pp_widest_integer): New macro.
7895         * tree-pretty-print.c (dump_bb_header): Print BB frequencies and
7896         counts.
7897
7898 2005-07-31  Jan Hubicka  <jh@suse.cz>
7899
7900         * output.h (enum section_category): Export from varasm.c
7901         (categorize_decl_for_section): Likewise.
7902         * varasm.c (enum section_category): Kill.
7903         (categorize_decl_for_section): Make global.
7904         * i386-protos.h (x86_output_aligned_bss, x86_elf_aligned_common):
7905         Declare.
7906         * i386.c (ix86_section_threshold): New static variable.
7907         (ix86_in_large_data_p, ix86_encode_section_info,
7908         x86_64_elf_unique_section,
7909         x86_64_elf_select_section): New functions.
7910         (TARGET_ENCODE_SECTION_INFO): Define
7911         (override_options): Enable medium model for PIC.
7912         (ix86_expand_prologue): Expand gen_set_got_rex64.
7913         (legitimate_constant_p): Handle new UNSPECs.
7914         (legitimate_pic_address_disp_p): Likewise.
7915         (legitimize_pic_address): Lower MEDIUM model addressing.
7916         * i386.h (PIC_OFFSET_TABLE_REGNUM): Set for medium model PIC.
7917         (enum cmodel): Add MEDIUM_PIC.
7918         (SYMBOL_REF_FAR_ADDR_P): New macro.
7919         (SYMBOL_FLAG_FAR_ADDR): New flag.
7920         * i386.md (movdi): Support medium model.
7921         (set_got_rex64): New pattern.
7922         * i386.opt (mlarge-data-threshold): New flag.
7923         * predicates.md (zext_operand/sext_operand): Deal with medium model.
7924         * x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Use x86_output_aligned_bss.
7925         (ASM_OUTPUT_ALIGNED_COMMON, TARGET_ASM_SELECT_SECTION,
7926         TARGET_ASM_UNIQUE_SECTION): New.
7927
7928         * invoke.texi (-mlarge_data_threshold): Document
7929
7930 2005-07-31  Jan Hubicka  <jh@suse.cz>
7931
7932         * tree-outof-ssa.c (coalesce_ssa_name): Use coalesce_cost.
7933         (coalesce_vars): Likewise.
7934         * tree-ssa-live.c (coalesce_cost): New.
7935         (build_tree_conflict_graph): Use coalesce_cost.
7936         * tree-ssa-live.h (coalesce_cost): Declare.
7937
7938 2005-07-30  Richard Earnshaw  <richard.earnshaw@arm.com>
7939
7940         * arm.md (all peepholes for post-increment operations): Delete.
7941         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec)
7942         (loadqisi_preinc, loadqisi_predec, strsi_preinc, strsi_predec)
7943         (loadsi_preinc, loadsi_predec, strqi_shiftpreinc, strqi_shiftpredec)
7944         (loadqi_shiftpreinc, loadqi_shiftpredec, strsi_shiftpreinc)
7945         (strsishift_predec, loadsi_shiftpreinc, loadsi_shiftpredec): Delete.
7946
7947 2005-07-30  James A. Morrison  <phython@gcc.gnu.org>
7948
7949         * fold-const.c (tree_expr_nonnegative_p): Always return true for
7950         non-integral types.
7951
7952 2005-07-29  Wolfgang Bangerth <bangerth@dealii.org>
7953
7954         PR target/22582
7955         * doc/invoke.texi: Document -rdynamic.
7956
7957 2005-07-30  Joseph S. Myers  <joseph@codesourcery.com>
7958
7959         PR c/23143
7960         * c-parser.c (c_parser_parms_list_declarator): Call
7961         mark_forward_parm_decls.
7962         * c-decl.c (merge_decls): Only check DECL_IN_SYSTEM_HEADER for
7963         decls with visibility structure.
7964
7965 2005-07-30  Paul Brook  <paul@codesourcery.com>
7966
7967         * config/arm/arm.c (arm_coproc_mem_operand): Fix inaccurate comment.
7968
7969 2005-07-30  Paul Brook  <paul@codesourcery.com>
7970
7971         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
7972         prototype.
7973         * config/arm/arm.c (arm_canonicalize_comparison): Use correct limit
7974         value for mode.
7975         * config/arm/arm.h (CANONICALIZE_COMPARISON): Pass mode argument.
7976
7977 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
7978
7979         PR c/529
7980         * c-decl.c (warn_if_shadowing): Don't check for PARM_DECL in
7981         nested function declarators.
7982         (pushdecl): Don't call warn_if_shadowing for PARM_DECL.
7983         (grokparms): Call warn_if_shadowing for parameters used within the
7984         parameter list.
7985         (store_parm_decls_newstyle): Call warn_if_shadowing for parameters
7986         not used within the parameter list.
7987         (store_parm_decls_oldstyle): Call warn_if_shadowing for parameters.
7988
7989 2005-07-30  Jan Hubicka  <jh@suse.cz>
7990
7991         * expr.c (expand_expr_real_1): Do not load mem targets into register.
7992         * i386.c (ix86_fixup_binary_operands): Likewise.
7993         (ix86_expand_unary_operator): Likewise.
7994         (ix86_expand_fp_absneg_operator): Likewise.
7995         * optabs.c (expand_vec_cond_expr): Validate dest.
7996
7997 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
7998
7999         PR c/21720
8000         * real.c (real_from_string): Also set last bit if there is a
8001         nonzero hex digit beyond GCC's internal precision after ".".
8002
8003 2005-07-29  David Edelsohn  <edelsohn@gnu.org>
8004
8005         * config/rs6000/altivec.md: Convert UNSPEC numerical values to
8006         define_constants.  Change duplicate values to unassigned numbers.
8007         Change UNSPEC_SUBS to UNSPEC_VSUBS.
8008         (*altivec_vspltsf): New.
8009         (altivec_vperm_v4sf): Delete.
8010         (altivec_vperm_<mode>): Use mode macro V.
8011         (altivec_vsldoi_<mode>): Convert to mode macro pattern.
8012         (altivec_predicate_v4sf): Delete.
8013         (altivec_predicate_<mode>): Use mode macro V.
8014         (*altivec_lvesfx): New.
8015         (*altivec_stvesfx): New.
8016         (vec_realign_load_v4sf): Delete.
8017         (vec_realign_load_<mode>): Use mode macro V.
8018         * config/rs6000/rs6000.c (generate_set_vrsave): Use
8019         UNSPECV_SET_VRSAVE.
8020
8021 2005-07-29  Mark Mitchell  <mark@codesourcery.com>
8022
8023         PR bootstrap/23131
8024         * configure.ac (SYSTEM_HEADER_DIR): Avoid setting to empty
8025         string.
8026         * configure: Regenerated.
8027
8028 2005-07-29  Paul Brook  <paul@codesourcery.com>
8029
8030         * doc/install.texi: Add link to GFortran binaries wiki page.
8031
8032 2005-07-29  David Ung  <davidu@mips.com>
8033
8034         * config/mips/mips.c (mips_cpu_info_table): Add 5kf to the table.
8035         (mips_rtx_cost_data): Add costs for 5kc and 5kf.
8036         * config/mips/mips.h (processor_type): Add PROCESSOR_5KF.
8037         * config/mips/mips.md (cpu): Add 5kf name.
8038         (includes): Includes 5k.md.
8039         * config/mips/5k.md: New DFA pipeline for the 5kc/5kf.
8040         * doc/invoke.texi (MIPS Options): Updated cpu name supported with
8041         -march flag.
8042
8043 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
8044
8045         PR 22550
8046         * tree-cfgcleanup.c (cleanup_tree_cfg_1): Extract from ...
8047         (cleanup_tree_cfg): ... here.
8048         Call cleanup_tree_cfg_1 until there are no more cleanups to
8049         do.
8050
8051 2005-07-29  James A. Morrison  <phython@gcc.gnu.org>
8052
8053         * tree-vrp.c (compare_range_with_value): Return true or false
8054         for ~[VAL_1, VAL_2] OP VAL if VAL_1 <= VAL <= VAL_2 for NE_EXPR and
8055         EQ_EXPR respectively.
8056
8057 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
8058
8059         * cfg.c, tree-complex.c, config/frv/frv.c, config/i386/i386.c:
8060         Fix comment typos.
8061
8062 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
8063
8064         * tree-ssa-dom.c (struct opt_stats_d): Add field num_iterations.
8065         (tree_ssa_dominator_optimize): Increment it.
8066         (dump_dominator_optimization_stats): Print it.
8067
8068 2005-07-29  Richard Earnshaw  <richard.earnshaw@arm.com>
8069             Steven Bosscher  <stevenb@suse.de>
8070
8071         PR rtl-optimization/23117
8072         * sched-rgn.c (add_branch_dependences): Handle COND_EXEC correctly
8073         when head == tail.  Tidy comment.
8074
8075 2005-07-28  Richard Henderson  <rth@redhat.com>
8076
8077         * cse.c (exp_equiv_p): Special case CONST_DOUBLE.
8078         * cselib.c (rtx_equal_for_cselib_p): Likewise.
8079         * jump.c (rtx_renumbered_equal_p): Likewise.
8080         * loop.c (rtx_equal_for_loop_p): Tidy and special case PC, CC0,
8081         CONST_INT and CONST_DOUBLE.
8082         (rtx_equal_for_prefetch_p): Likewise, plus LABEL_REF.
8083         * reload.c (operands_match_p): Special case CONST_INT and
8084         CONST_DOUBLE; check mode earlier.
8085
8086 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
8087
8088         PR c/22240
8089         * c-typeck.c (convert_for_assignment): Do not check
8090         DECL_IN_SYSTEM_HEADER on NULL fundecl.
8091
8092 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
8093
8094         PR c/22192
8095         * c-typeck.c (composite_type): Prefer constant size arrays to
8096         VLAs.
8097
8098 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
8099
8100         PR c/21720
8101         * real.c (real_from_string): Set last bit if there is a nonzero
8102         hex digit beyond GCC's internal precision.
8103
8104 2005-07-28  Richard Henderson  <rth@redhat.com>
8105
8106         PR rtl-opt/22619
8107         * cfgcleanup.c (try_forward_edges): Watch out for end of
8108         insn chain.
8109
8110 2005-07-28  James E Wilson  <wilson@specifixinc.com>
8111
8112         PR c/23106
8113         * doc/invoke.texi (Wstrict-aliasing=2): Fix misleading wording.
8114
8115 2005-07-28  Jan Hubicka  <jh@suse.cz>
8116
8117         * Makefile.in (rtl-profile.o): Kill all traces of it.
8118         * common.opt (fspeculative-prefetching, ftree-based-profiling): Kill.
8119         * coverage.h (rtl_coverage_counter_ref): Kill.
8120         * opts.c (flag_speculative_prefetching_set): Kill.
8121         (flag_loop_optimize_set): New.
8122         (common_handle_option): Disable loop optimizer when profiling;
8123         do not handle speculative prefetching.
8124         * passes.c (init_optimization_passes): Replace pass_profiling combo
8125         by branch_prob pass.
8126         * profile.c (compute_value_histograms): Update for simplified value
8127         profiles.
8128         (rtl_register_profile_hooks): Kill.
8129         (pass_profiling): Kill.
8130         (rest_of_handle_branch_prob): Do not profile.
8131         * toplev.c (process_options): Remove speculative prefetching.
8132         * toplev.h (flag_tree_based_profiling): Kill.
8133         * tree-profile.c (prepare_instrumented_value,
8134         tree_gen_interval_profiler, tree_gen_pow2_profiler,
8135         tree_gen_one_value_profiler, do_tree_profiling): Update for
8136         simplified datastructures.
8137         * value-prof.c: Add comment that speculative prefetching was dropped;
8138         update rest of file for simplified datastructures.
8139         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX,
8140         rtl_divmod_values_to_profile, insn_prefetch_values_to_profile,
8141         find_mem_reference_1, find_mem_reference_2, find_mem_reference,
8142         rtl_values_to_profile, rtl_divmod_fixed_value, rtl_mod_pow2,
8143         rtl_mod_subtract, gen_speculative_prefetch,
8144         rtl_divmod_fixed_value_transform, rtl_mod_pow2_value_transform,
8145         rtl_mod_subtract_transform, speculative_prefetching_transform): Kill.
8146         (gate_handle_value_profile_transformations,
8147         rest_of_handle_value_profile_transformations,
8148         pass_value_profile_transformations): Kill.
8149         * value-prof.h (histogram_value_t): Remove IL based unions.
8150         (rtl_register_value_prof_hooks, rtl_register_profile_hooks,
8151         rtl_profile_hooks): Remove hooks.
8152
8153         * invoke.texi (-ftree-based-profiling, -fspeculative-prefetching): Kill.
8154
8155         * cgraph.c (cgraph_clone_edge): New UPDATE_ORIGINAL argument.
8156         (cgraph_clone_node): Likewise.
8157         * cgraph.h (cgraph_clone_edge): Update prototype.
8158         (cgraph_clone_node): Likewise.
8159         * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
8160         cgraph_clone_node.
8161         (lookup_recursive_calls): Consider profile.
8162         (cgraph_decide_recursive_inlining): Fix updating; use new
8163         probability argument; use profile.
8164         * params.def (PARAM_MIN_INLINE_RECURSIVE_PROBABILITY): New.
8165         * tree-inline.c (copy_bb): Update clal of clone_edge.
8166         * tree-optimize.c (tree_rest_of_compilation): UPdate cal of clone_node.
8167
8168         * invoke.texi (min-inline-recursive-probability): Document.
8169
8170 2005-07-28  Gerald Pfeifer  <gerald@pfeifer.com>
8171
8172         * doc/install.texi (Configuration): Update Valgrind homepage.
8173
8174 2005-07-28  Richard Henderson  <rth@redhat.com>
8175
8176         PR middle-end/21362
8177         * cfgrtl.c (rtl_merge_blocks): Call maybe_remove_eh_handler on
8178         labels we want to delete.
8179         (cfg_layout_merge_blocks): Likewise.
8180
8181 2005-07-28  Richard Henderson  <rth@redhat.com>
8182
8183         PR target/17692
8184         * config/i386/i386.c (ix86_split_sse_movcc): Emit DELETED note
8185         when expanding to nothing.
8186
8187 2005-07-28  Josh Conner  <jconner@apple.com>
8188
8189         * ipa-inline.c (update_caller_keys): Fix estimated_growth caching.
8190         (cgraph_decide_inlining_of_small_functions): Likewise.
8191
8192 2005-07-28  Josh Conner  <jconner@apple.com>
8193
8194         * ipa-inline.c (cgraph_edge_badness): Update comments.  Invert shift
8195         direction of badness if negative.
8196         (cgraph_default_inline_p): Add reason to parameters, and assign it
8197         a value.
8198         (cgraph_decide_inlining_of_small_functions): New parameter in call
8199         to cgraph_default_inline_p.
8200         (cgraph_decide_inlining_incrementally): Likewise.
8201         * cgraphunit.c (decide_is_function_needed): Likewise.
8202         * cgraph.h (cgraph_default_inline_p): Likewise.
8203
8204 2005-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8205
8206         * builtins.c: Fix comment typo(s).
8207         * genautomata.c: Likewise.
8208         * gimplify.c: Likewise.
8209         * tree-dfa.c: Likewise.
8210         * tree-flow-inline.h: Likewise.
8211         * tree-into-ssa.c: Likewise.
8212         * tree-ssa-alias.c: Likewise.
8213         * tree-ssa-ccp.c: Likewise.
8214         * tree-ssa-copy.c: Likewise.
8215         * tree-ssa-dce.c: Likewise.
8216         * tree-ssa-dom.c: Likewise.
8217         * tree-ssa-operands.c: Likewise.
8218         * tree-tailcall.c: Likewise.
8219         * tree-vectorizer.c: Likewise.
8220         * tree-vrp.c: Likewise.
8221         * tree.c: Likewise.
8222
8223 2005-07-28  Jeff Law  <law@redhat.com>
8224
8225         * tree-vrp.c (test_for_singularity): Extracted from  ...
8226         (simplify_cond_using_ranges): Attempt to simplify a relational
8227         test to NE_EXPR.  Dump information when a COND_EXPR is simplified.
8228
8229 2005-07-28  Dorit Nuzman  <dorit@il.ibm.com>
8230
8231         PR tree-optimization/22506
8232         * tree-vectorizer.c (update_phi_nodes_for_guard2): Skip loop-closed
8233         phis whose argument is constant.
8234
8235 2005-07-28  J"orn Rennecke <joern.rennecke@st.com>
8236
8237         PR rtl-optimization/18992
8238         Back out this patch:
8239           2003-10-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8240           PR optimization/12142
8241           * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the
8242           uses of the register in the SET_SRC.  Remove unnecessary argument.
8243
8244         Replace it with this:
8245         * cse.c (count_reg_usage): In INSN, JUMP_INSN and CALL_INSN cases,
8246         if flag_non_call_exceptions is set and the insn may trap, pass
8247         pc_rtx as dest for recursion.
8248         In SET_SRC part of SET case, if dest is already set, pass it down
8249         unchanged.
8250
8251 2005-07-28  Jan Hubicka  <jh@suse.cz>
8252
8253         * cfg.c (update_bb_profile_for_threading): Use RDIV.
8254         (scale_bbs_frequencies_int): Likewise, assert for possible overflow.
8255         (scale_bbs_frequencies_gcov_type): Be more curefull about overflows and
8256         roundoff errors.
8257         * tree-cfg.c (tree_duplicate_sese_region): Use counts for updating
8258         profile when available.
8259
8260 2005-07-28  Jan Beulich <jbeulich@novell.com>
8261
8262         * config/ia64/ia64.c (ia64_load_pair_ok): New.
8263         (ia64_print_operand): Describe and handle 'X'.
8264         (ia64_register_move_cost): Also handle FP_REGS.
8265         (ia64_preferred_reload_class): Likewise.
8266         (ia64_secondary_reload_class): Likewise.
8267         (ia64_dependencies_evaluation_hook): New local variable c. Initialize
8268         it. Also check for ITANIUM_CLASS_FLDP.
8269         * config/ia64/ia64.h (FP_REGNO_P): New.
8270         (HARD_REGNO_MODE_OK): Remove explusion of TImode.
8271         (reg_class): Add FP_REGS.
8272         (REG_CLASS_NAMES): Adjust for it.
8273         (REG_CLASS_CONTENTS): Likewise.
8274         (REGNO_REG_CLASS): Use FP_REGS where appropriate.
8275         (REG_CLASS_FROM_LETTER): Handle 'x'.
8276         (CLASS_MAX_NREGS): Handle FP_REGS.
8277         (MEMORY_MOVE_COST): Likewise.
8278         * config/ia64/ia64.md (itanium_class): Add fldp.
8279         (type): Handle fldp.
8280         (movti_internal): More allowable operand combinations. Use ldfp8 when
8281         splitting unnecessary. Remove predicable attribute. Adjust
8282         itanium_class attribute.
8283         (smuldi3_highpart): Remove outdated comment.
8284         (mulditi3, umulditi3, rotlti3): New expanders.
8285         (addti3, subti3, mulditi3_internal, umulditi3_internal, negti2, rotlti3_internal): New insns.
8286         (absti2): Disabled new insn for future reference.
8287         Respective new splitters.
8288         * config/ia64/itanium1.md (1_fldp, 1b_fldp): New insn reservations.
8289         * config/ia64/itanium2.md (2_fldp, 2b_fldp): Likewise.
8290         * config/ia64/ia64-protos.h (ia64_load_pair_ok): New.
8291
8292 2005-07-25  James A. Morrison  <phython@gcc.gnu.org>
8293
8294         PR rtl-optimization/23047
8295         * simplify-rtx.c (simplify_const_relational_operation): Respect
8296         flag_wrapv for comparisons with ABS.
8297
8298 2005-07-27  James A. Morrison  <phython@gcc.gnu.org>
8299
8300         PR tree-optimization/22493
8301         * tree-vrp.c (extract_range_from_unary_expr): Deal with -fwrapv and
8302         VR_ANTI_RANGEs properly for NEGATE_EXPRs and ABS_EXPRs.
8303
8304 2005-07-27  Aldy Hernandez  <aldyh@redhat.com>
8305
8306         * config/frv/frv.opt (moptimize-membar): New.
8307
8308         * doc/invoke.texi: Document -moptimize-membar and its inverse.
8309
8310         * config/frv/frv.h: Remove machine_function definition.
8311
8312         * config/frv/frv.c (struct frv_io): New.
8313         (struct machine_function): Moved from frv.h.  Add has_membar_p.
8314         (frv_same_doubleword_p, frv_io_fixed_order_p, frv_io_union)
8315         (frv_extract_membar, frv_io_check_address, frv_io_handle_set)
8316         (frv_io_handle_use_1, frv_io_handle_use, frv_optimize_membar_local)
8317         (frv_optimize_membar_global, frv_optimize_membar): New functions.
8318         (frv_reorg): Call frv_optimize_membar when appropriate.
8319         (bdesc_loads, bdesc_stores): Use the membar code as the icode field.
8320         (frv_expand_builtin): Adjust calls accordingly.
8321         (frv_io_address_cookie): New function.
8322         (frv_expand_load_builtin, frv_expand_store_builtin): Emit a normal
8323         load or store rather than a special insn.  Add ccnstant address and
8324         io-type operands to the membar.
8325         (frv_ifcvt_modify_tests): Unsign regno.
8326         (frv_ifcvt_modify_tests): Same.
8327
8328         * config/frv/frv.md: Remove UNSPEC_BUILTIN_{LOAD,STORE}.  Change
8329         UNSPEC_OPTIONAL_MEMBAR constant.
8330         (builtin_read_<mode>): Delete.
8331         (builtin_write_<mode>): Delete.
8332         ("optional_membar_<mode>"): Add operand.
8333
8334         * testsuite/gcc.target/frv/all-builtin-read8.c: Delete.
8335         * testsuite/gcc.target/frv/all-builtin-read16.c: Delete.
8336         * testsuite/gcc.target/frv/all-builtin-read32.c: Delete.
8337         * testsuite/gcc.target/frv/all-builtin-read64.c: Delete.
8338         * testsuite/gcc.target/frv/all-builtin-write8.c: Delete.
8339         * testsuite/gcc.target/frv/all-builtin-write16.c: Delete.
8340         * testsuite/gcc.target/frv/all-builtin-write32.c: Delete.
8341         * testsuite/gcc.target/frv/all-builtin-write64.c: Delete.
8342         * testsuite/gcc.target/frv/all-read-write-1.c: New.
8343
8344 2005-07-28  Kaz Kojima  <kkojima@gcc.gnu.org>
8345
8346         * df.c (df_uses_record): Handle SCRATCH.
8347
8348 2005-07-28  Steven Bosscher  <stevenb@suse.de>
8349
8350         PR debug/20161
8351         * passes.c (rest_of_decl_compilation): If decl is a type and
8352         we have encountered errors, don't emit debug information.
8353
8354 2005-07-27  Kenneth Zadeck <zadeck@naturalbridge.com>
8355
8356         * params.def: Fixed comment.
8357
8358 2005-07-27  Bjoern Haase  <bjoern.m.haase@web.de>
8359
8360         PR target/19885
8361         * config/avr/avr.c (TARGET_ASM_ALIGNED_SI_OP): Add.
8362         (TARGET_ASM_UNALIGNED_HI_OP): Add.
8363         (TARGET_ASM_UNALIGNED_SI_OP): Add.
8364
8365 2005-07-27  Steven Bosscher  <stevenb@suse.de>
8366
8367         PR c++/22003
8368         * varasm.c (assemble_start_function): Don't do anything that may
8369         require a CFG if the current function is a thunk.
8370
8371 2005-07-25  Geoffrey Keating  <geoffk@apple.com>
8372
8373         * doc/install.texi (Prerequisites): Mention that perl is needed
8374         to do export control in libstdc++ targetting Darwin.
8375
8376 2005-07-27  Steven Bosscher  <stevenb@suse.de>
8377
8378         PR rtl-optimization/17808
8379         * sched-deps.c (sched_get_condition): Enable #if 0'ed code.
8380         (sched_insns_conditions_mutex_p): Split out from...
8381         (add_dependence): ...here.  But don't call it from here.
8382         (add_dependence_list): Check sched_insns_conditions_mutex_p
8383         before calling add_dependence.
8384         (add_dependence_list_and_free): Likewise.
8385         (fixup_sched_groups): Likewise.
8386         (sched_analyze_1): Likewise.
8387         (sched_analyze_2): Likewise (and replace a "0" with REG_DEP_TRUE).
8388         (sched_analyze): Likewise.
8389         (sched_analyze_insn): Likewise.
8390         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
8391         * sched-rgn.c (add_branch_dependences): Likewise.  Also, add
8392         dependencies on all COND_EXEC insns to jumps ending basic blocks
8393         when doing intrablock scheduling.
8394         * sched-int.h (sched_insns_conditions_mutex_p): Add prototype.
8395
8396 2005-07-27  Jeff Law  <law@redhat.com>
8397
8398         * tree-vrp.c (vrp_meet): Intersect the equivalency sets when
8399         meeting a VR_ANTI_RANGE with a VR_RANGE.  When intersecting
8400         equivalency sets, correctly handle the case were vr0 has an
8401         equivalency set, but vr1 does not.
8402
8403 2005-07-27  Dorit Nuzman  <dorit@il.ibm.com>
8404
8405         PR tree-optimization/23073
8406         * tree-vect-analyze.c (vect_analyze_data_refs_alignment): Call
8407         vect_print_dump_info before fprintf.
8408
8409 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
8410
8411         PR tree-optimize/22348
8412         * tree-ssa-loop-niter.c (number_of_iterations_cond):
8413         Fold the partial computation.
8414
8415 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
8416
8417         PR tree-optimization/22325
8418         * tree-flow.h (compute_phi_arg_on_exit, force_expr_to_var_cost):
8419         Declare.
8420         * tree-scalar-evolution.c (scev_const_prop): Add generic final
8421         value replacement.
8422         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Split from ...
8423         (force_var_cost): ... this function.
8424         (compute_phi_arg_on_exit): Export.
8425
8426 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
8427
8428         PR tree-optimization/20773
8429         * tree-ssa-loop-ch.c (copy_loop_headers): Select the correct latch
8430         edge.
8431
8432 2005-07-27  Richard Guenther  <rguenther@suse.de>
8433
8434         * tree-ssa-structalias.c (push_fields_onto_fieldstack):
8435         Avoid pushing again if current struct contains only
8436         fields we decomposed.
8437
8438 2005-07-27  Jan Hubicka  <jh@suse.cz>
8439
8440         PR tree-optimization/22574
8441         * cgraph.c (cgraph_function_body_availability): Unanalyzed bodies are
8442         not available.
8443
8444         * tree-tailcall.c (decrease_profile): New function.
8445         (eliminate_tail_call): Use it.
8446
8447         * cgraphunit.c (cgraph_function_and_variable_visibility): Set
8448         visibility flags correctly in whole program mode.
8449
8450 2005-07-26  Steve Ellcey  <sje@cup.hp.com>
8451
8452         PR rtl-optimization/22472
8453         * config/pa/pa.h (HARD_REGNO_RENAME_OK): Define.
8454
8455 2005-07-26  Steven Bosscher  <stevenb@suse.de>
8456
8457         PR tree-optimization/22504
8458         * tree-complex.c (expand_complex_addition): Use 'code' instead
8459         of MINUS_EXPR for (VARYING, ONLY_IMAG) and (ONLY_IMAG, VARYING).
8460
8461 2005-07-26  Aldy Hernandez  <aldyh@redhat.com>
8462
8463         * config.gcc (cpu_type): Add frv case.
8464         (with_cpu): Add frv400-*-*linux* and frv550-*-*linux* cases.
8465         (supported_defaults): Add fr550 case.
8466
8467 2005-07-26  Diego Novillo  <dnovillo@redhat.com>
8468
8469         PR 22591
8470         * tree-ssa-alias.c (may_alias_p): Remove shortcut that tests
8471         whether a pointer of type T * may point to objects of type T *.
8472
8473 2005-07-26  DJ Delorie  <dj@redhat.com>
8474
8475         * configure: Regenerate.
8476
8477 2005-07-26  Dale Johannesen  <dalej@apple.com>
8478
8479         * postreload-gcse.c (alloc_mem):  Start CUID numbering at 1.
8480
8481 2005-07-26  Mark Mitchell  <mark@codesourcery.com>
8482
8483         * doc/install.texi (--with-build-sysroot): Fix grammatical error.
8484         Clarify use of "build" in name.
8485
8486 2005-07-26  Aldy Hernandez  <aldyh@redhat.com>
8487
8488         * doc/extend.texi (Raw read/write Functions): New section.
8489         * testsuite/gcc.target/frv/all-builtin-read8.c: New.
8490         * testsuite/gcc.target/frv/all-builtin-read16.c: New.
8491         * testsuite/gcc.target/frv/all-builtin-read32.c: New.
8492         * testsuite/gcc.target/frv/all-builtin-read64.c: New.
8493         * testsuite/gcc.target/frv/all-builtin-write8.c: New.
8494         * testsuite/gcc.target/frv/all-builtin-write16.c: New.
8495         * testsuite/gcc.target/frv/all-builtin-write32.c: New.
8496         * testsuite/gcc.target/frv/all-builtin-write64.c: New.
8497         * config/frv/frv.c: Add bdesc_loads global.
8498         Add bdesc_stores global.
8499         (frv_init_builtins): Add support for __builtin_{read/write}*.
8500         (frv_volatile_memref): New.
8501         (frv_expand_load_builtin): New.
8502         (frv_expand_store_builtin): New.
8503         * config/frv/frv.h (frv_builtins): Add FRV_BUILTIN_SCAN,
8504         FRV_BUILTIN_READ8, FRV_BUILTIN_READ16, FRV_BUILTIN_READ32,
8505         FRV_BUILTIN_READ64, FRV_BUILTIN_WRITE8, FRV_BUILTIN_WRITE16,
8506         FRV_BUILTIN_WRITE32, FRV_BUILTIN_WRITE64.
8507         * config/frv/frv.md (unspecs): Add UNSPEC_BUILTIN_LOAD,
8508         UNSPEC_BUILTIN_STORE, UNSPEC_OPTIONAL_MEMBAR.
8509         (builtin_read_<mode>): New.
8510         (builtin_write_<mode>): New.
8511         (builtin_write64): New.
8512         (optional_membar_<mode>): New.
8513
8514 2005-07-26  J"orn Rennecke <joern.rennecke@st.com>
8515
8516         * emit-rtl.c (gen_lowpart_common): Compare size of MODE in bits
8517         (rather than units) against HOST_BITS_PER_WIDE_INT.
8518
8519 2005-07-26  Kazu Hirata  <kazu@codesourcery.com>
8520
8521         * ipa-pure-const.c, ipa-reference.c, ipa-reference.h,
8522         ipa-type-escape.c, ipa-type-escape.h, ipa-utils.c,
8523         ipa-utils.h, treestruct.def, config/crx/crx-protos.h,
8524         config/crx/crx.c, config/crx/crx.h, config/crx/crx.md: Update
8525         FSF address.
8526
8527         * calls.c, fold-const.c, ipa-reference.c, ipa-type-escape.c,
8528         tree-ssa-reassoc.c, tree-ssa-structalias.c, vec.h,
8529         config/crx/crx.c, config/m32c/m32c.c, config/m32c/m32c.h: Fix
8530         comment typos.
8531         * doc/c-tree.texi, doc/tree-ssa.texi: Fix typos.
8532
8533 2005-07-26  Richard Guenther  <rguenther@suse.de>
8534
8535         PR tree-optimization/22486
8536         * fold-const.c (fold_unary): Fold away useless component
8537         references of the form (T *)&T.x, if the address
8538         doesn't change.
8539
8540 2005-07-25  James E Wilson  <wilson@specifixinc.com>
8541
8542         * dwarf2out.c (add_call_src_coords_attributes): New.
8543         (gen_inlined_subroutine_die): Call it.
8544         (maybe_emit_file, init_file_table): Add comments.
8545         (prune_unused_types_walk_attribs): Pass DW_AT_call_file through
8546         maybe_emit_file.
8547         * tree-inline.c (remap_block): Copy BLOCK_SOURCE_LOCATION.
8548         (expand_call_inline): Set BLOCK_SOURCE_LOCATION.
8549         * tree.h (BLOCK_SOURCE_LOCATION): New.
8550         (struct tree_block): New field locus.
8551
8552 2005-07-26  Andreas Schwab  <schwab@suse.de>
8553
8554         PR rtl-optimization/23043
8555         * postreload-gcse.c (eliminate_partially_redundant_load): Fix typo
8556         when allocating a struct unoccr.
8557
8558 2005-07-25  Richard Henderson  <rth@redhat.com>
8559
8560         PR 22626
8561         * tree-complex.c (gate_no_optimization): True if errors.
8562         * Makefile.in (tree-complex.o): Update dependencies.
8563
8564 2005-07-25  Aldy Hernandez  <aldyh@redhat.com>
8565
8566         * config/frv/predicates.md (integer_register_operand): Use
8567         GPR_AP_OR_PSEUDO_P.
8568
8569 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
8570
8571         PR tree-opt/22484
8572         * tree-ssa-ccp.c (fold_stmt_inplace): Strip useless type conversions
8573         after fold.
8574         * tree-ssa-propagate.c (set_rhs): Reject invalid conditional operands.
8575
8576 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
8577
8578         * tree-ssa-reassoc.c (reassociate_expr): Allow scaler floating point
8579         types when flag_unsafe_math_optimizations is true.
8580
8581 2005-07-25  Mark Mitchell  <mark@codesourcery.com>
8582
8583         * gcc.c (option_map): Add --sysroot.
8584         (process_command): Handle --sysroot.
8585         (display_help): Document it.
8586         * doc/cppopts.tex (-isysroot): Document.
8587         * doc/invoke.texi (--sysroot): Document.
8588         * doc/install.texi (--with-build-sysroot): Document.
8589
8590         * Makefile.in (inhibit_libc): New variable.
8591         (INHIBIT_LIBC_CFLAGS): Likewise.
8592         (LIBGCC2_CFLAGS): Include
8593         $(INHIBIT_LIBC_CFLAGS).
8594         (CRTSTUFF_CFLAGS): Include $(INHIBIT_LIBC_CFLAGS).
8595         ($(T)crtbegin.o): Do not use @inhibit_libc@.
8596         ($(T)crtend.o): Likewise.
8597         ($(T)crtbeginS.o): Do not use @inhibit_libc@.
8598         ($(T)crtendS.o): Likewise.
8599         ($(T)crtbeginT.o): Do not use @inhibit_libc@.
8600         ($(T)crtendT.o): Likewise.
8601         (stmp-fixinc): Do not complain about missing headers if
8602         inhibit_libc.
8603         * configure.ac (inhibit_libc): Set it to true/false.
8604         (--with-build-sysroot): New option.  Use it to set
8605         SYSTEM_HEADER_DIR.
8606         * configure: Regenerated.
8607
8608 2005-07-25  Manfred Hollstein  <mh@suse.com>
8609
8610         * calls.c (store_one_arg): Fix unsigned comparison warning.
8611
8612 2005-07-25  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
8613
8614         PR other/22337
8615         * ggc-zone.c (ggc_alloc_zone_stat): Do not use CHUNK_OVERHEAD.
8616         (ggc_print_statistics): Initialize variable before use.
8617
8618 2005-07-25  Richard Guenther  <rguenther@suse.de>
8619
8620         * tree-dfa.c (mark_new_vars_to_rename): Protect against
8621         calling with a PHI_NODE argument.
8622
8623         * tree-flow-inline.h (overlap_subvar): Protect against
8624         possible overflow.
8625
8626 2005-07-25  Paolo Bonzini  <bonzini@gnu.org>
8627
8628         * aclocal.m4 (gcc_AC_CHECK_TOOL): Add /bin to default directory.
8629         * configure: Regenerate.
8630
8631 2005-07-25  Ira Rosen  <irar@il.ibm.com>
8632
8633         * expr.c (highest_pow2_factor): Make extern.
8634         * tree-data-ref.c (ptr_decl_may_alias_p): New function.
8635         (ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
8636         record_array_differ_p, array_ptr_differ_p): Likewise.
8637         (base_object_differ_p): Rename (from array_base_name_differ_p). Support
8638         additional cases. Call the above functions.
8639         (base_addr_differ_p): Moved from tree-vect-analyze.c. Call
8640         base_object_differ_p when there are two base objects. Otherwise, compare
8641         base address and offset. Call may_alias_p.
8642         (dump_data_reference): Use a correct field name.
8643         (analyze_array): Make static. Initialize new data-ref fields.
8644         (analyze_indirect_ref): New function.
8645         (init_data_ref): Initialize new data-ref fields.
8646         (strip_conversion): Moved from tree-vect-analyze.c.
8647         (analyze_offset_expr, get_ptr_offset, address_analysis,
8648         object_analysis): Likewise.
8649         (analyze_offset): New function.
8650         (create_data_ref): Likewise.
8651         (initialize_data_dependence_relation): Call base_addr_differ_p. Compare
8652         dimensions for ARRAY_REFs only.
8653         (build_classic_dist_vector): Make static.
8654         (access_functions_are_affine_or_constant_p): Call macro to get the
8655         address of access functions.
8656         (compute_all_dependences): Add new parameter
8657         compute_self_and_read_read_dependences. Compute self and read-read
8658         dependences if it is true.
8659         (find_data_references_in_loop): Call create_data_ref. Initialize new
8660         data-ref fields.
8661         (compute_data_dependences_for_loop): Add new parameter
8662         compute_self_and_read_read_dependences. Remove parameter nb_loops,
8663         compute nb_loops. Call compute_all_dependences,
8664         build_classic_dist_vector and build_classic_dir_vector with correct
8665         parameters.
8666         (analyze_all_data_dependences): Call compute_data_dependences_for_loop
8667         with correct parameters. Compare dimensions for ARRAY_REFs only.
8668         (free_data_refs): Call macro to free access functions.
8669         * tree-data-ref.h (struct first_location_in_loop): New structure. Move
8670         fields from stmt_vinfo.
8671         (struct base_object_info): New structure.
8672         (struct data_reference): Move fields to base_object_info. Add fields
8673         first_location and object_info for above structures. Move fields from
8674         stmt_info: memtag, ptr_info, subvars, misalignment. Add new field
8675         aligned_to.  Add macros to access the new fields.
8676         Update functions declarations.
8677         * tree-flow.h (is_aliased_with): Declare.
8678         * tree-loop-linear.c (linear_transform_loops): Call
8679         compute_data_dependences_for_loop with correct parameters.
8680         * tree-ssa-alias.c (is_aliased_with): New function.
8681         * tree-vect-analyze.c (vect_get_ptr_offset): Remove.
8682         (vect_analyze_offset_expr, vect_base_addr_differ_p): Likewise.
8683         (vect_analyze_data_ref_dependence): Get ddr. Remove call to
8684         vect_base_addr_differ_p, compute_subscript_distance and
8685         build_classic_dist_vector. Add printings. Check absolute value of
8686         distance.
8687         (vect_analyze_data_ref_dependences): Go through ddrs instead of
8688         data-refs.
8689         (vect_compute_data_ref_alignment): Get the fields of data-ref instead of
8690         stmt. Check aligned_to. Check if the base is aligned. Remove conversion
8691         to bytes. Add printing.
8692         (vect_compute_data_refs_alignment): Go through loads and stores in one
8693         loop.
8694         (vect_enhance_data_refs_alignment, vect_analyze_data_refs_alignment,
8695         vect_analyze_data_ref_access): Likewise.
8696         (vect_analyze_pointer_ref_access): Remove.
8697         (vect_address_analysis, vect_object_analysis): Likewise.
8698         (vect_analyze_data_refs): Call compute_data_dependences_for_loop to find
8699         and analyze data-refs in the loop.
8700         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Get the
8701         fields of data-ref instead of stmt. Add init to the offset from the
8702         base.
8703         (vect_create_data_ref_ptr): Get the fields of data-ref instead of stmt.
8704         (vect_update_init_of_dr): Likewise.
8705         (vect_update_inits_of_drs): Go through loads and stores in one loop.
8706         * tree-vectorizer.c (new_stmt_vec_info): Remove initialization of
8707         removed fields.
8708         (new_loop_vec_info): Initialize new fields.
8709         (destroy_loop_vec_info): Free new fields.
8710         (vect_strip_conversion): Remove.
8711         * tree-vectorizer.h (enum verbosity_levels): Add new verbosity level.
8712         (struct _loop_vec_info): Unify data_ref_writes and data_ref_reads into
8713         datarefs. Add new field ddrs.
8714         Add macros for the new fields access.
8715         (struct _stmt_vec_info): Remove: base_address, initial_offset, step,
8716         base_aligned_p, misalignment, memtag, ptr_info and subvars.
8717         Remove their macros.
8718         * tree.h (highest_pow2_factor): Declare.
8719
8720 2005-07-25  Jakub Jelinek  <jakub@redhat.com>
8721
8722         * calls.c (store_one_arg): Check for sibling call MEM arguments
8723         from already clobbered incoming argument area.
8724
8725 2005-07-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8726
8727         * c-common.c (check_missing_format_attribute): New.
8728         * c-common.h (check_missing_format_attribute): Likewise.
8729         * c-typeck.c (convert_for_assignment): Use it.
8730
8731 2005-07-24  Andreas Schwab  <schwab@suse.de>
8732
8733         * config/m68k/m68k.md ("extendqidi2"): When source is an address
8734         register use a word move.  Correct operand of ext.w in 68000 code.
8735
8736 2005-07-23  Mark Mitchell  <mark@codesourcery.com>
8737
8738         * dwarf2out.c (gen_variable_die): Treat un-emitted COMDAT
8739         variables as declarations, rather than definitions.
8740
8741 2005-07-24  Ira Rosen  <irar@il.ibm.com>
8742
8743         PR tree-optimization/22526
8744         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Match the type
8745         of the zero node.
8746
8747 2005-07-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8748
8749         * builtins.def: Add DEF_EXT_C99RES_BUILTIN to define builtins
8750         that C99 reserve for future use. Use it to define clog10,
8751         clog10f and clog10l.
8752
8753 2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8754
8755         * Makefile.in (STRICT2_WARN): Add -Wmissing-format-attribute.
8756         * configure.ac: Check for -Wmissing-format-attribute.
8757
8758         * configure: Regenerate.
8759
8760 2005-07-23  Richard Henderson  <rth@redhat.com>
8761
8762         PR tree-optimization/22623
8763         * tree-complex.c (set_component_ssa_name): Use replace_ssa_name_symbol.
8764
8765 2005-07-23  Giovanni Bajo  <giovannibajo@libero.it>
8766
8767         PR target/22577
8768         * config/pa/pa.c (reloc_needed): Updated for VECs inside CONSTRUCTOR.
8769
8770 2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8771
8772         * Makefile.in (C_TREE_H): Update dependencies.
8773         * c-tree.h: Include toplev.h.
8774         * diagnostic.h (diagnostic_set_info): Add format attribute.
8775         * rtl-error.c (diagnostic_for_asm): Likewise.
8776
8777 2005-07-23  Chao-ying Fu  <fu@mips.com>
8778
8779         * config/mips/mips-dsp.md: New file.
8780         * config/mips/mips-modes.def (V4QI, V2HI, CCDSP): New modes.
8781         * config/mips/mips.c (mips_function_type): Add types for DSP builtin
8782         functions.
8783         (mips_builtin_type): Add MIPS_BUILTIN_DIRECT_NO_TARGET and
8784         MIPS_BUILTIN_BPOSGE32.
8785         (mips_expand_builtin_direct): Add one parameter to indicate that
8786         builtin functions need to return a value.
8787         (mips_expand_builtin_bposge): New for expanding "bposge" builtin
8788         functions.
8789         (mips_regno_to_class): Add classes for 12 new DSP registers.
8790         (mips_subword): Change to check four HI registers.
8791         (mips_output_move): Output move to and from 6 new DSP accumulators.
8792         (override_options): Make sure -mdsp and -mips16 are not used together.
8793         Map 'A' to DSP_ACC_REGS and 'a' to ACC_REGS.  Enable DSP accumulators
8794         for machine modes.
8795         (mips_conditional_register_usage): Disable 6 new DSP accumulators
8796         when !TARGET_DSP.
8797         (print_operand): Add 'q' for printing DSP accumulators.
8798         (mips_cannot_change_mode_class): Check ACC_REGS.
8799         (mips_secondary_reload_class): Check ACC_REGS.
8800         (mips_vector_mode_supported_p): Enable V2HI and V4QI when TARGET_DSP.
8801         (mips_register_move_cost): Check ACC_REGS.
8802         (CODE_FOR_mips_addq_ph, CODE_FOR_mips_addu_qb, CODE_FOR_mips_subq_ph)
8803         (CODE_FOR_mips_subu_qb): New code-aliasing macros.
8804         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): New macros.
8805         (dsp_bdesc): New array.
8806         (bdesc_arrays): Add DSP builtin function table.
8807         (mips_prepare_builtin_arg): Check predicate again after
8808         copy_to_mode_reg.
8809         (mips_expand_builtin): Add one more parameter to
8810         mips_expand_builtin_direct. Expand MIPS_BUILTIN_DIRECT_NO_TARGET and
8811         MIPS_BUILTIN_BPOSGE32.
8812         (mips_init_builtins): Initialize new function types.
8813         (mips_expand_builtin_direct): Check if builtin functions need to
8814         return a value and pass operands properly.
8815         (mips_expand_builtin_bposge): New function.
8816         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips_dsp.
8817         (ASM_SPEC): Map -mdsp to -mdsp in GAS.
8818         (FIRST_PSEUDO_REGISTER): Increase to 188.
8819         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
8820         Update for 12 new DSP registers.
8821         (DSP_ACC_REG_FIRST, DSP_ACC_REG_LAST, DSP_ACC_REG_NUM, AC1HI_REGNUM)
8822         (AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM, AC3HI_REGNUM, AC3LO_REGNUM):
8823         (DSP_ACC_REG_P, ACC_REG_P, ACC_HI_REG_P): New macros.
8824         (reg_class): Add DSP_ACC_REGS and ACC_REGS.
8825         (REG_CLASS_NAMES): Add names for DSP_ACC_REGS and ACC_REGS.
8826         (REG_CLASS_CONTENTS): Update for DSP_ACC_REGS, ACC_REGS and ALL_REGS.
8827         (REG_ALLOC_ORDER): Update for 12 new DSP registers.
8828         (mips_char_to_class): Add 'A' for DSP_ACC_REGS and 'a' for ACC_REGS.
8829         (UIMM6_OPERAND, IMM10_OPERAND): New macros.
8830         (EXTRA_CONSTRAINT_Y): Add YA and YB extra constraints.
8831         (REGISTER_NAMES): Add names for 12 new DSP registers.
8832         * config/mips/mips.md: Include mips-dsp.md.
8833         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
8834         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
8835         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
8836         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
8837         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
8838         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
8839         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
8840         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
8841         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
8842         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
8843         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
8844         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
8845         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
8846         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
8847         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
8848         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
8849         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
8850         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
8851         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
8852         (UNSPEC_RDDSP): New constants.
8853         (*movdi_32bit): Change 'x' to 'a' for ACC_REGS.
8854         (*movsi_internal): Change 'x' to 'a' for ACC_REGS.  Add an
8855         A<-d alternative.
8856         * config/mips/mips.opt (-mdsp): New option.
8857         * config/mips/predicates.md (const_uimm6_operand, const_imm10_operand)
8858         (reg_imm10_operand): New predicates.
8859         * doc/extend.texi (MIPS DSP Built-in Functions): New section.
8860         * doc/invoke.texi (-mdsp): Document new option.
8861
8862 2005-07-22  DJ Delorie  <dj@redhat.com>
8863
8864         * c-objc-common.c (c_cannot_inline_tree_fn): Add warning control
8865         to warning calls.
8866         * tree-inline.c (inlinable_function_p): Likewise.
8867
8868 2005-07-22  Mark Mitchell  <mark@codesourcery.com>
8869
8870         PR debug/21828
8871         * toplev.c (check_global_declarations): Do not mark undefined
8872         variables as DECL_IGNORED_P.
8873         * varasm.c (first_global_object_name): GTY it.
8874         (weak_global_object_name): Likewise.
8875         (notice_global_symbol): Use ggc_strdup, not xstrdup, when creating
8876         a string to go into {weak,first}_global_object_name.
8877
8878 2005-07-22  DJ Delorie  <dj@redhat.com>
8879
8880         * c-format.c (check_function_format): Change warning control
8881         option from OPT_Wattribute to OPT_Wmissing_format_attribute.
8882
8883 2005-07-22  Diego Novillo  <dnovillo@redhat.com>
8884
8885         * tree-ssa-alias.c (count_ptr_derefs): Do not consider
8886         &PTR->FLD a dereference of PTR.
8887         * tree-ssa-structalias.c (update_alias_info): Consider &PTR->FLD
8888         a potential dereference of PTR.
8889
8890 2005-07-22  J"orn Rennecke <joern.rennecke@st.com>
8891
8892         PR rtl-optimization/20370
8893         * ifcvt.c (dead_or_predicable): Before calling propagate_block,
8894         call allocate_reg_info if necessary.
8895
8896         PR rtl-optimization/21848
8897         * calls.c (emit_library_call_value_1): For const functions, add
8898         USEs of the stack slots to CALL_INSN_FUNCTION_USAGE.
8899
8900         PR rtl-optimization/22445
8901         * cselib.c (target.h): Include.
8902         (rtx_equal_for_cselib_p): Allow commutative matches.
8903         (cselib_hash_rtx): Don't use MODE for CONST_INT hashing.
8904         Remove MODE parameter.  Changed all callers.
8905
8906         PR rtl-optimization/22258
8907         * combine.c (likely_spilled_retval_1, likely_spilled_retval_p):
8908         New functions.
8909         (try_combine): Use likely_spilled_retval_p.
8910
8911 2005-07-22  Paul Woegerer  <paul.woegerer@nsc.com>
8912
8913         * config.gcc: Add crx-elf support.
8914
8915         * doc/contrib.texi: Mention crx.
8916         * doc/extend.texi: Document crx extensions.
8917         * doc/install.texi: Document crx install.
8918         * doc/invoke.texi: Document crx options.
8919         * doc/md.texi: Document crx constraints.
8920
8921         * config/crx/crx-protos.h: New file.
8922         * config/crx/crx.c: New file.
8923         * config/crx/crx.h: New file.
8924         * config/crx/crx.md: New file.
8925         * config/crx/crx.opt: New file.
8926         * config/crx/t-crx: New file.
8927
8928 2005-07-22  Manfred Hollstein  <mh@suse.com>
8929
8930         * tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised
8931         warnings.
8932         (int_add_graph_edge): Likewise.
8933         (collapse_nodes): Likewise.
8934         (process_unification_queue): Likewise.
8935
8936 2005-07-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8937             Laurent GUERBY  <laurent@guerby.net>
8938
8939         PR tree-optimization/22336
8940         * function.c (record_block_change): Check for
8941         cfun->ib_boundaries_block.
8942
8943 2005-07-21  James A. Morrison  <phython@gcc.gnu.org>
8944
8945         * fold-const.c (fold_unary): Don't strip signed nops from ABS_EXPRs.
8946         (tree_expr_nonnegative_p): Return try for TYPE_UNSIGNED.
8947
8948 2005-07-21  DJ Delorie  <dj@redhat.com>
8949
8950         * toplev.c (warn_deprecated_use): Add warning control to warning
8951         call.
8952         * c-typeck.c (parser_build_binary_op): Likewise.
8953         (c_finish_if_stmt): Likewise.
8954         * c-common.c (check_function_sentinel): Likewise.
8955         (check_nonnull_arg): Likewise.
8956
8957 2005-07-21  Richard Henderson  <rth@redhat.com>
8958
8959         PR tree-opt/22504
8960         * tree-complex.c (complex_ssa_name_components): New.
8961         (cvc_lookup): Allow entry not found.
8962         (create_components): Remove.
8963         (create_one_component_var, get_component_var): New.
8964         (get_component_ssa_name, set_component_ssa_name): New.
8965         (extract_component): Use get_component_ssa_name.
8966         (update_complex_components): Use set_component_ssa_name.
8967         (update_complex_components_on_edge): Likewise.
8968         (update_phi_components): Create new PHI nodes directly, instead
8969         of adding insns to edges.
8970         (tree_lower_complex): Allocate and free complex_variable_components
8971         and complex_ssa_name_components here.
8972
8973 2005-07-20  Daniel Berlin  <dberlin@dberlin.org>
8974
8975         * alias.c (nonoverlapping_component_refs_p): Use TYPE_MAIN_VARIANT,
8976         revert to returning false.
8977
8978 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
8979
8980         PR target/21149
8981         * config/i386/i386.md (sse_movhlps): Fix vec_select values.
8982
8983 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
8984
8985         PR target/22576
8986         * config/i386/i386.md (cmpxf): Change operand constraints
8987         to "nonmemory_operand".
8988
8989 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
8990
8991         * config/i386/i386.md (trap): Use "".word/t0x0b0f" instead of ud2.
8992
8993 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
8994
8995         PR middle-end/21180
8996         * fold-const.c (fold_build1): Add checksum for the operands.
8997         (fold_build2): Likewise.
8998         (fold_build3): Likewise.
8999
9000 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
9001
9002         PR middle-end/19055
9003         * fold-const.c (fold_binary): Transform "(X | Y) ^ X" to "Y & ~ X".
9004
9005 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
9006
9007         * common.opt (-fforward-propagate): Committed by mistake,
9008         removed.
9009
9010 2005-07-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
9011
9012         * reg-stack.c: Fix comment typo(s).
9013         * tree-ssa-operands.c: Likewise.
9014         * tree-vectorizer: Likewise.
9015
9016 2005-07-21  Nick Clifton  <nickc@redhat.com>
9017
9018         * config/sh/symbian.c: Replace C++ style line comments with C
9019         style line comments.
9020         (symbian_add_attribute): Do not use a ? operator on the LHS of
9021         an assignment.
9022         (sh_symbian_handle_dll_attribute): Change the type of the
9023         method vector to "VEC(tree,gc)*" and use vector accessor
9024         macros to walk over the elements.
9025         (symbian_export_vtable_and_rtti_p): Likewise.
9026         (symbian_class_needs_attribute_p): Likewise.
9027
9028 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
9029
9030         PR target/22085
9031         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not
9032         initialize targetm.resolve_overloaded_builtin here.
9033         (altivec_expand_overloaded_builtin): Make it non-static.
9034         * config/rs6000/rs6000-protos.h
9035         (altivec_expand_overloaded_builtin): New prototype.
9036         * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Initialize
9037         targetm.resolve_overloaded_builtin here.
9038         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Likewise.
9039
9040 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
9041             Zdenek Dvorak  <dvorakz@suse.cz>
9042
9043         PR tree-optimization/19210
9044         * common.opt (Wunsafe-loop-optimizations, funsafe-loop-optimizations):
9045         New.
9046         * Makefile.in (tree-ssa-loop-niter.o): Depend intl.o.
9047         * loop-iv.c (get_simple_loop_desc): If -funsafe-loop-optimizations,
9048         rely on unproven assumptions.
9049         * predict.c (predict_loops): Adjust call to number_of_iterations_exit.
9050         * tree-flow.h (number_of_iterations_exit): Add final parameter.
9051         * tree-scalar-evolution.c (number_of_iterations_in_loop): Adjust call
9052         to number_of_iterations_exit.
9053         * tree-ssa-loop-ivcanon.c (empty_loop_p): Likewise.
9054         * tree-ssa-loop-ivopts.c (niter_for_exit): Likewise.
9055         * tree-ssa-loop-niter.c (find_loop_niter,
9056         estimate_numbers_of_iterations_loop): Likewise.
9057         (number_of_iterations_exit): Honor the new options.
9058         * doc/invoke.texi (Wunsafe-loop-optimizations,
9059         funsafe-loop-optimizations): Document them.
9060
9061 2005-07-21  Richard Sandiford  <richard@codesourcery.com>
9062
9063         PR rtl-optimization/22167
9064         * gcse.c (hoist_code): Fix hoist_exprs[] check.
9065
9066 2005-07-20  Adam Nemet  <anemet@lnxw.com>
9067
9068         * config/rs6000/lynx.h: Mark __do_global_ctors_aux and
9069         __do_global_dtors_aux longcall.
9070
9071 2005-07-20  Kazu Hirata  <kazu@cs.umass.edu>
9072
9073         * gensupport.c (old_preds): Don't reference PREDICATE_CODES.
9074         (old_special_pred_table): Don't reference
9075         SPECIAL_MODE_PREDICATES.
9076         * system.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Poison.
9077         * config/arc/arc.h: Don't mention PREDICATE_CODES.
9078         * config/sh/predicates.h: Don't mention
9079         SPECIAL_MODE_PREDICATES.
9080         * doc/tm.texi (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
9081         Remove.
9082
9083 2005-07-20  DJ Delorie  <dj@redhat.com>
9084
9085         * config.gcc: Add m32c-elf support.
9086
9087         * doc/contrib.texi: Mention m32c.
9088         * doc/extend.texi: Document m32c extensions.
9089         * doc/install.texi: Mention m32c.
9090         * doc/invoke.texi: Document m32c options.
9091         * doc/md.texi: Document m32c constraints.
9092
9093         * config/m32c/addsub.md: New file.
9094         * config/m32c/bitops.md: New file.
9095         * config/m32c/cond.md: New file.
9096         * config/m32c/jump.md: New file.
9097         * config/m32c/m32c-lib1.S: New file.
9098         * config/m32c/m32c-lib2.c: New file.
9099         * config/m32c/m32c-modes.def: New file.
9100         * config/m32c/m32c-pragma.c: New file.
9101         * config/m32c/m32c-protos.h: New file.
9102         * config/m32c/m32c.abi: New file.
9103         * config/m32c/m32c.c: New file.
9104         * config/m32c/m32c.h: New file.
9105         * config/m32c/m32c.md: New file.
9106         * config/m32c/m32c.opt: New file.
9107         * config/m32c/minmax.md: New file.
9108         * config/m32c/mov.md: New file.
9109         * config/m32c/muldiv.md: New file.
9110         * config/m32c/predicates.md: New file.
9111         * config/m32c/prologue.md: New file.
9112         * config/m32c/shift.md: New file.
9113         * config/m32c/t-m32c: New file.
9114
9115 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9116
9117         * config/sh/sh.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
9118         (stack_protect_set, stack_protect_test): New expanders.
9119         (stack_protect_set_si, stack_protect_set_si_media,
9120         stack_protect_set_di_media, stack_protect_test_si,
9121         stack_protect_test_si_media, stack_protect_test_di_media):
9122         New insns.
9123
9124 2005-07-20  Andrew Pinski  <pinskia@physics.uc.edu>
9125
9126         * c-typeck.c (output_init_element): Don't copy the INTEGER_CST.
9127
9128 2005-07-20  James A. Morrison  <phython@gcc.gnu.org>
9129
9130         * tree.h (tree_expr_nonzero_p): Export.
9131         * fold-const.c (tree_expr_nonzero_p): Likewise.
9132         Return true for CALL_EXPRs that are alloca calls.
9133         (fold_binary): Use omit_one_operand when checking EQ_EXPRs or NE_EXPRs
9134         against zero.
9135         * tree-flow.h (expr_computes_nonzero): Remove.
9136         * tree-vrp.c (expr_computes_nonzero): Remove.
9137         (vrp_expr_computes_nonzero): Use tree_expr_nonzero_p.
9138         (extract_range_from_unary_expr): Likewise.
9139         * tree-ssa-dom.c (record_equivalences_from_stmt): Use
9140         tree_expr_nonzero_p.
9141
9142 2005-07-20  Bernd Schmidt  <bernd.schmidt@analog.com>
9143
9144         * config/bfin/bfin-protos.h (legitimize_pic_address): Don't declare.
9145         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Take
9146         extra arg "picreg" and use it instead of pic_offset_table_rtx.
9147         All callers changed.
9148         (frame_related_constant_load): New arg "related" which controls
9149         setting of RTX_FRAME_RELATED_P.  All callers changed.
9150         (bfin_load_pic_reg): New function, broken out of bfin_expand_prologue.
9151         (bfin_expand_prologue): Add stack limit checking.
9152         * config/bfin/bfin.md (trapifcc): New pattern.
9153
9154         * config/bfin/bfin.c: Include "langhooks.h".
9155         (def_builtin): Go through lang_hooks to call builtin_function.
9156
9157         * config/bfin/bfin-protos.h (bfin_longcall_p): Declare.
9158         * config/bfin/predicates.md (symbol_ref_operand): New.
9159         (call_insn_operand): Delete.  All callers changed to use
9160         register_no_elim_operand.
9161         * config/bfin/bfin.c (init_cumulative_args): Initialize the new
9162         call_cookie field.
9163         (function_arg): Use it to generate the call's operand 2.
9164         (bfin_longcall_p): New function.
9165         (bfin_expand_call): Extra arg "cookie".  All callers and declaration
9166         changed.  Emit extra USE in the pattern.  Use bfin_longcall_p to
9167         determine if the address needs to be in a REG.
9168         (bfin_handle_longcall_attribute): New function.
9169         (bfin_attribute_table): Add "longcall" and "shortcall".
9170         * config/bfin/bfin.h (CALL_NORMAL, CALL_LONG, CALL_SHORT): New macros.
9171         (CUMULATIVE_ARGS): New member call_cookie.
9172         (PREDICATE_CODES): Add symbol_ref_operand.
9173         * config/bfin/bfin.md (call, call_value, sibcall, sibcall_value): Add
9174         extra USE to the pattern.
9175         (call_symbol, sibcall_symbol, call_value_symbol, sibcall_value_symbol):
9176         New patterns, split off call_insn, sibcall_insn, call_value_insn and
9177         sibcall_value_insn; now the new patterns handle direct calls and the
9178         old ones indirect calls.
9179         * doc/extend.texi: Mention Blackfin in longcall/shortcall docs.
9180
9181 2005-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
9182
9183         * doc/trouble.texi: Update section on handling of empty loops.
9184
9185 2005-07-20  Kazu Hirata  <kazu@codesourcery.com>
9186
9187         * config.gcc: Remove support for sparc-*-openbsd*,
9188         i860-*-sysv4*, ip2k-*-elf, ns32k-*-netbsdelf*,
9189         ns32k-*-netbsd*.
9190         * config.host: Remove support for i860-*-sysv4* as a host.
9191         * config/i860/*, config/ip2k/*, config/ns32k/*,
9192         config/sparc/openbsd.h, config/sparc/t-openbsd: Remove.
9193         * doc/install.texi, doc/invoke.texi, doc/md.texi: Don't
9194         mention obsolete ports.
9195
9196 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9197
9198         * config/sh/sh.c (regno_reg_class): Add GENERAL_REGS for
9199         soft frame pointer.
9200         (sh_expand_prologue): Use hard_frame_pointer_rtx instead
9201         of frame_pointer_rtx.
9202         (sh_expand_epilogue): Likewise.
9203         (sh_set_return_address): Likewise.
9204         (initial_elimination_offset): Use HARD_FRAME_POINTER_REGNUM
9205         instead of FRAME_POINTER_REGNUM if needed.  Add elimination
9206         offsets from FRAME_POINTER_REGNUM.
9207         * config/sh/sh.h (SH_REGISTER_NAMES_INITIALIZER): Add sfp.
9208         (sh_register_names): Add initializer for sfp.
9209         (GENERAL_OR_AP_REGISTER_P): Permit FRAME_POINTER_REGNUM.
9210         (VALID_REGISTER_P): Likewise.
9211         (FIRST_PSEUDO_REGISTER): Update.
9212         (DWARF_FRAME_REGISTERS): Define.
9213         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add sfp.
9214         (HARD_FRAME_POINTER_REGNUM): Define.
9215         (FRAME_POINTER_REGNUM): Redefine.
9216         (ELIMINABLE_REGS): Never eliminate to FRAME_POINTER_REGNUM,
9217         but HARD_FRAME_POINTER_REGNUM instead.  Add eliminations
9218         from FRAME_POINTER_REGNUM.
9219         (CAN_ELIMINATE): Use HARD_FRAME_POINTER_REGNUM instead of
9220         FRAME_POINTER_REGNUM.
9221         (REG_CLASS_CONTENTS): Add sfp.
9222         (REG_ALLOC_ORDER): Likewise.
9223         (FRAME_GROWS_DOWNWARD): Set to 1.  Update comment.
9224         (GO_IF_LEGITIMATE_ADDRESS): Use hard_frame_pointer_rtx instead
9225         of frame_pointer_rtx.
9226         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
9227
9228 2005-07-19  James A. Morrison  <phython@gcc.gnu.org>
9229
9230         * fold-const.c (tree_expr_nonnegative_p): Only return true for
9231         ABS_EXPR when flag_wrapv is false because of INT_MIN.
9232         (tree_expr_nonzero_p): Always call tree_expr_nonzero_p on the argument
9233         of an ABS_EXPR.
9234         (fold_unary): Always fold ABS_EXPR<ABS_EXPR<x>> into
9235         ABS_EXPR<x>.
9236
9237 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
9238
9239         Make CONSTRUCTOR use VEC to store initializers.
9240         * c-common.c (complete_array_type): Update to cope with VEC in
9241         CONSTRUCTOR_ELTS.
9242         * c-pretty-print.c (pp_c_initializer_list): Use pp_c_constructor_elts.
9243         (pp_c_constructor_elts): New function.
9244         * c-pretty-print.h (pp_c_constructor_elts): Declare.
9245         * c-typeck.c (build_function_call, build_c_cast, digest_init,
9246         struct constructor_stack, struct initializer_stack,
9247         constructor_elements, push_init_level, pop_init_level,
9248         add_pending_init, find_init_member, output_init_element): Update to
9249         cope with VEC in CONSTRUCTOR_ELTS.
9250         * coverage.c (build_fn_info_value, build_ctr_info_value,
9251         build_gcov_info): Likewise.
9252         * expr.c (categorize_ctor_elements_1, store_constructor,
9253         expand_expr_real_1): Likewise.
9254         * fold-const.c (fold_ternary): Likewise.
9255         * gimplify.c (gimplify_init_ctor_preeval, zero_sized_field_decl,
9256         gimplify_init_constructor, gimplify_expr): Likewise.
9257         * tree-dump.c (dequeue_and_dump): Likewise.
9258         * tree-inline.c (copy_tree_r): Add code to duplicate a CONSTRUCTOR
9259         node.
9260         * tree-pretty-print.c (dump_generic_node): Update to cope with VEC in
9261         CONSTRUCTOR_ELTS.
9262         * tree-sra.c (generate_element_init_1): Likewise.
9263         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
9264         * tree-ssa-operands.c (get_expr_operands): Likewise.
9265         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
9266         * tree-vect-transform.c (vect_get_vec_def_for_operand):
9267         (get_initial_def_for_reduction): Likewise.
9268         * tree-vn.c (set_value_handle, get_value_handle): CONSTURCTOR uses
9269         value handle in annotations.
9270         * tree.c (tree_node_kind, tree_code_size, make_node_stat,
9271         tree_node_structure): Add support for constr_kind.
9272         (build_vector_from_ctor, build_constructor_single,
9273         build_constructor_from_list): New functions.
9274         (build_constructor): Update to take a VEC instead of a TREE_LIST.
9275         (simple_cst_equal, iterative_hash_expr, initializer_zerop, walk_tree):
9276         Update to cope with VEC in CONSTRUCTOR_ELTS.
9277         * tree.def (CONSTRUCTOR): Make it a tcc_exceptional node.
9278         * tree.h (FOR_EACH_CONSTRUCTOR_VALUE, FOR_EACH_CONSTRUCTOR_ELT,
9279         CONSTRUCTOR_APPEND_ELT): New macros.
9280         (struct constructor_elt, struct tree_constructor): New data types.
9281         (union tree_node): Add tree_constructor field.
9282         * treestruct.def: Define TS_CONSTRUCTOR.
9283         * varasm.c (const_hash_1, compare_constant, copy_constant,
9284         compute_reloc_for_constant, output_addressed_constants,
9285         initializer_constant_valid_p, output_constant,
9286         array_size_for_constructor, output_constructor): Update to cope with
9287         VEC in CONSTRUCTOR_ELTS.
9288         * vec.h (VEC_empty, VEC_copy): New macros.
9289
9290 2005-07-19  Devang Patel  <dpatel@apple.com>
9291
9292         * dbxout.c (dbxout_type): Check Objective-C++ lang.
9293
9294 2005-07-19  Richard Henderson  <rth@redhat.com>
9295
9296         PR tree-opt/22278
9297         * gimplify.c (gimplify_expr): Use main variant type for the temp
9298         destination for a discarded volatile read.
9299         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't elide
9300         casts between non-void types that change volatility.
9301
9302 2005-07-15  DJ Delorie  <dj@redhat.com>
9303
9304         * toplev.h: Add comment about the first parameter for warning().
9305         * errors.h: Likewise.
9306
9307         * c.opt (Wpragmas): New.
9308         * doc/invoke.texi: Document it.
9309
9310         * function.c (do_warn_unused_parameter): Add warning control to
9311         warning call.
9312         * c-decl.c (warn_if_shadowing): Likewise.
9313         * c-lex.c (cb_def_pragma): Likewise.
9314         * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
9315         (pop_alignment): Likewise.
9316         (handle_pragma_pack): Likewise.
9317         (apply_pragma_weak): Likewise.
9318         (handle_pragma_weak): Likewise.
9319         (handle_pragma_redefine_extname): Likewise.
9320         (add_to_renaming_pragma_list): Likewise.
9321         (handle_pragma_extern_prefix): Likewise.
9322         (maybe_apply_renaming_pragma): Likewise.
9323         (handle_pragma_visibility): Likewise.
9324
9325         * config/c4x/c4x-c.c (BAD): Likewise.
9326         (c4x_parse_pragma): Likewise.
9327         * config/ia64/ia64-c.c (ia64_hpux_handle_builtin_pragma): Likewise.
9328         * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
9329         (rs6000_pragma_longcall): Likewise.
9330         * config/v850/v850-c.c (pop_data_area): Likewise.
9331         (ghs_pragma_section): Likewise.
9332         (ghs_pragma_section): Likewise.
9333         (ghs_pragma_interrupt): Likewise.
9334         (ghs_pragma_starttda): Likewise.
9335         (ghs_pragma_startsda): Likewise.
9336         (ghs_pragma_startzda): Likewise.
9337         (ghs_pragma_endtda): Likewise.
9338         (ghs_pragma_endsda): Likewise.
9339         (ghs_pragma_endzda): Likewise.
9340
9341 2005-07-19  Danny Berlin <dberlin@dberlin.org>
9342             Kenneth Zadeck <zadeck@naturalbridge.com>
9343
9344         * Makefile.in: Removed tree-promote-statics.c
9345         * tree-promote-statics.c: Removed.
9346         * common.opt: Removed flag-promote-statics.
9347         * opts.c: Ditto.
9348         * passes.c: Removed tree-promote-statics pass.
9349         * tree-pass.h: Ditto.
9350         * timevar.def: Removed TV_PROMOTE_STATICS.
9351
9352
9353 2005-07-19  Gerald Pfeifer  <gerald@pfeifer.com>
9354
9355         * config.gcc: Add support for *-*-freebsd7, *-*-freebsd8,
9356         and *-*-freebsd9.
9357         * config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Ditto.
9358
9359 2005-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9360
9361         PR c/22476
9362         * c-common.c (check_function_arguments): Call
9363         'check_function_format' if either -Wformat or
9364         -Wmissing-format-attribute are specified.
9365         * c-format.c (check_function_format): Check -Wformat before
9366         calling 'check_format_info'.
9367         * c-opts.c (c_common_post_options): Don't warn for
9368         -Wmissing-format-attribute without -Wformat.
9369         * c-typeck.c (convert_for_assignment): Detect additional cases for
9370         -Wmissing-format-attribute.
9371         * doc/invoke.texi (-Wmissing-format-attribute): Document new
9372         behavior.
9373
9374 2005-07-19  Richard Guenther  <rguenther@suse.de>
9375
9376         * config/i386/i386.md (lrint<mode>2): Use temporary
9377         instead of clobbering non-existent memory.
9378
9379 2005-07-19  Nick Clifton  <nickc@redhat.com>
9380
9381         * config/avr/avr.c (legitimate_address_p): Fix debugging print
9382         statement to avoid displaying ASCII control characters.
9383
9384 2005-07-19  Ben Elliston  <bje@au.ibm.com>
9385
9386         * bt-load.c (link_btr_uses): Fix uninitialised warnings.
9387         * cfganal.c (find_edge_index): Ditto.
9388         * combine.c (combine_instructions): Ditto.
9389         * ddg.c (create_scc): Ditto.
9390         (find_successors): Ditto.
9391         (find_predecessors): Ditto.
9392         (find_nodes_on_paths): Ditto.
9393         (longest_simple_path): Ditto.
9394         * flow.c (update_life_info): Ditto.
9395         (count_or_remove_death_notes): Ditto.
9396         (clear_log_links): Ditto.
9397         * modulo-sched.c (generate_reg_moves): Ditto.
9398         (find_max_asap): Ditto.
9399         (find_max_hv_min_mob): Ditto.
9400         (find_max_dv_min_mob): Ditto.
9401         * sbitmap.c (sbitmap_first_set_bit): Ditto.
9402         * sched-rgn.c (extract_edgelst): Ditto.
9403         * tree-into-ssa.c (prepare_names_to_update): Ditto.
9404         (dump_update_ssa): Ditto.
9405         (ssa_names_to_replace) Ditto.
9406         (switch_virtuals_to_full_rewrite): Ditto.
9407         (update_ssa): Ditto.
9408         * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
9409
9410 2005-07-18  Daniel Berlin  <dberlin@dberlin.org>
9411
9412         Fix PR tree-optimization/22483
9413
9414         * tree-complex.c (create_components): Use
9415         safe_referenced_var_iterator and FOR_EACH_REFERENCED_VAR_SAFE.
9416         * tree-flow-inline.h (fill_referenced_var_vec): New function.
9417         * tree-flow.h (safe_referenced_var_iterator): New structure.
9418         (FOR_EACH_REFERENCED_VAR_SAFE): New macro.
9419         * tree-ssa-alias.c (setup_pointers_and_addressables): Use
9420         safe_referenced_var iterator.
9421         (add_type_alias): Ditto.
9422
9423 2005-07-19  Steven Bosscher  <stevenb@suse.de>
9424
9425         * loop-init.c (rest_of_handle_loop2): Remove.
9426         (rtl_loop_init, rtl_loop_done, rtl_move_loop_invariants,
9427         rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): New functions.
9428         (pass_rtl_loop_init, pass_rtl_loop_done,
9429         pass_rtl_move_loop_invariants, pass_rtl_unswitch,
9430         pass_rtl_unroll_and_peel_loops, pass_rtl_doloop): New passes.
9431         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_loop_done,
9432         pass_unswitch): Rename to pass_tree_loop, pass_tree_loop_init,
9433         pass_tree_loop_done, and pass_tree_unswitch.
9434         (gate_loop): Rename to gate_tree_loop.
9435         * passes.c (init_optimization_passes): Update for renamed tree
9436         loop passes.  Add the new loop2 passes as subpasses of loop2.
9437         * tree-pass.h: Add extern declarations for the new loop2 subpasses.
9438         Update for the renamed tree loop passes.
9439
9440 2005-07-18  Ian Lance Taylor  <ian@airs.com>
9441
9442         PR middle-end/22057
9443         * tree-cfgcleanup.c (cleanup_tree_cfg): Only remove forwarder
9444         blocks when optimizing.
9445
9446 2005-07-18  Steve Ellcey  <sje@cup.hp.com>
9447
9448         * common.opt (frename-registers): Initialize to 2.
9449         (fweb): Ditto.
9450         (fgcse-after-reload): Ditto.
9451         * toplev.c (AUTODETECT_FLAG_VAR_TRACKING): Rename to AUTODETECT_VALUE.
9452         (process_options): Only change flag_web, flag_rename_registers,
9453         and flag_rerun_cse_after_loop if not explicitly set by user.
9454
9455 2005-07-18  Jan Beulich  <jbeulich@novell.com>
9456
9457         * config/i386/i386.c (ix86_expand_branch, ix86_expand_setcc,
9458         ix86_expand_carry_flag_compare, ix86_expand_int_movcc): Handle TImode
9459         in 64-bit mode the same as DImode in 32-bit mode.
9460         (ix86_expand_ashl_const, ix86_split_ashl, ix86_split_ashr,
9461         ix86_split_lshr): Likewise. Rename to no longer refer to a specific
9462         mode. Add new mode parameter.
9463         * config/i386/i386.h (CONST_OK_FOR_LETTER_P): Describe and handle 'O'.
9464         * config/i386/i386.md (cmpti, addti3, subti3, negti2, ashlti3, ashrti3,
9465         x86_64_shift_adj): New expanders.
9466         (*addti3_1, *subti3_1, *negti2_1, ashlti3_1, *ashlti3_2, ashrti3_1,
9467         *ashrti3_2, lshrti3_1, *lshrti3_2, x86_64_shld, x86_64_shrd): New
9468         insns.
9469         Respective new splitters. Use renamed shift splitter helpers in 32-bit
9470         DImode shift splitters.
9471         * config/i386/i386-protos.h (ix86_split_ashl, ix86_split_ashr,
9472         ix86_split_lshr): Renamed from ix86_split_[al]sh[rl]di. Added new
9473         mode parameter.
9474
9475 2005-07-18  Jan Beulich  <jbeulich@novell.com>
9476
9477         * i386.md (movdi_extzv_1): New.
9478         (zero_extendhidi2): Combine alternatives and never force use of
9479         REX64 prefix.
9480         (zero_extendqidi2): Likewise. Don't restrict input selection.
9481
9482 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
9483
9484         Fix PR tree-optimization/22531
9485         * tree-ssa-pre.c (do_eustores):  Make sure LHS is a decl for the
9486          moment.
9487
9488 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
9489
9490         * tree-promote-statics.c (pass_promote_statics): Change dump file
9491          name.
9492
9493 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
9494
9495         * tree-optimize.c (init_tree_optimization_passes): Add
9496         pass_eliminate_useless_stores pass.
9497         * tree-pass.h (pass_eliminate_useless_stores): New pass structure.
9498         * tree-ssa-pre.c (is_copy_stmt): New function.
9499         (follow_copies_till_vuse): Ditto.
9500         (do_eustores): Ditto.
9501         (gate_eustores): Ditto.
9502
9503 2005-07-16  Richard Henderson  <rth@redhat.com>
9504
9505         * gcc.c (MFWRAP_SPEC): Don't wrap pthread_join or pthread_exit.
9506
9507 2005-07-16 Danny Berlin <dberlin@dberlin.org>
9508            Kenneth Zadeck <zadeck@naturalbridge.com>
9509
9510         * Makefile.in: Added rules for ipa-pure-const.c, ipa-reference.c,
9511         ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c,
9512         ipa-type-escape.h, tree-promote-statics.c
9513         * ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c,
9514         ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h,
9515         tree-promote-statics.c: new files.
9516         * alias.c: (nonlocal_mentioned_p_1, nonlocal_mentioned_p,
9517         nonlocal_referenced_p_1, nonlocal_referenced_p, nonlocal_set_p_1,
9518         int nonlocal_set_p, mark_constant_function): Deleted.
9519         (rest_of_handle_cfg): Removed call to mark_constant_function.
9520         (nonoverlapping_component_refs_p): Added calls to support
9521         type based aliasing.
9522         * tree-ssa-alias.c (may_alias_p,
9523         compute_flow_insensitive_aliasing): Ditto.
9524         * calls.c (flags_from_decl_or_type): Removed reference to
9525         cgraph_rtl_info.
9526         * c-typeck.c (convert_arguments): Make builtins tolerant of having
9527         too many arguments.  This is necessary for Spec 2000.
9528         * cgraph.h (const_function, pure_function): Removed.
9529         * common.opt: Added "fipa-pure-const", "fipa-reference",
9530         "fipa-type-escape", and "ftree-promote-static".
9531         * opts.c: Ditto.
9532         * passes.c: Added ipa and tree-promote-statics passes.
9533         * timevar.def: Added TV_IPA_PURE_CONST, TV_IPA_REFERENCE,
9534         TV_IPA_TYPE_ESCAPE, and TV_PROMOTE_STATICS.
9535         * tree-dfa.c (referenced_var_lookup_if_exists): New function.
9536         * tree-flow.h: Added exposed sra calls and addition of
9537         reference_vars_info field for FUNCTION_DECLS.
9538         * tree-pass.h: Added passes.
9539         * tree-sra.c: (sra_init_cache): New function.
9540         (sra_insert_before, sra_insert_after) Made public.
9541         (type_can_be_decomposed_p): Renamed from type_can_be_decomposed_p
9542         and made public.
9543         * tree-ssa-alias.c (dump_alias_stats): Added stats for type based
9544         aliasing. (may_alias_p): Added code to use type escape analysis to
9545         improve alias sets.
9546         * tree-ssa-operands.c (add_call_clobber_ops): Added parameter and
9547         code to prune clobbers of static variables based on information
9548         produced in ipa-reference pass.  Changed call clobbering so that
9549         statics are not marked as clobbered if the call does not clobber
9550         them.
9551
9552 2005-07-16  Daniel Berlin  <dberlin@dberlin.org>
9553
9554         * tree-ssa-structalias.c (need_to_solve): Need to check for preds,
9555         too.
9556
9557 2005-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
9558
9559         * doc/install.texi (*-*-solaris2*): Document recommended version
9560         of GNU binutils and mention GNU linker problem on Solaris 10.
9561
9562 2005-07-16  Joseph S. Myers  <joseph@codesourcery.com>
9563
9564         PR c/22421
9565         * c-decl.c (c_build_bitfield_integer_type): New function.
9566         (finish_struct): Call it.
9567         * c-pretty-print.c (pp_c_type_specifier): Handle bit-field types.
9568
9569 2005-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9570
9571         * c-typeck.c (digest_init): Call 'convert_for_assignment'
9572         before returning.
9573
9574 2005-07-16  Jan Hubicka  <jh@suse.cz>
9575
9576         * cfg.c (update_bb_profile_for_threading): Fix profile updating.
9577         (scale_bbs_frequencies_int): Watch roundoff errors.
9578         * predict.c (return_prediction): Initialize return_stmt.
9579
9580 2005-07-16  Jan Hubicka  <jh@suse.cz>
9581
9582         * profile.c (rest_of_handle_branch_prob): Fix handling of estimation
9583         after RTL profiling.
9584
9585 2005-07-11  Andrew Pinski  <pinskia@physics.uc.edu>
9586
9587         PR middle-end/22398
9588         * fold-const.c (build_range_check): Convert high/low to etype
9589         if we are only comparing against exp.
9590
9591 2005-07-13  Daniel Berlin  <dberlin@dberlin.org>
9592
9593         Fix PR tree-optimization/22376
9594         * tree-ssa-structalias.c (build_constraint_graph): We really meant
9595         special var here.
9596         (need_to_solve): New function.
9597         (compute_points_to_sets): Use it.
9598
9599 2005-07-15  Jan Hubicka  <jh@suse.cz>
9600
9601         * cfg.c (update_bb_profile_for_threading): More diagnostic.
9602         * tree-ssa-threadupdate.c (redirect_edges): Update profile of dup_block.
9603
9604 2005-07-15  Richard Guenther  <rguenther@suse.de>
9605
9606         * c-common.c (handle_flatten_attribute): New function.
9607         Add flatten function attribute.
9608         * doc/extend.texi: Document flatten function attribute.
9609         * Makefile.in (ipa-inline.o): Depend on hashtab.h.
9610         * ipa-inline.c (cgraph_find_cycles, cgraph_flatten_node):
9611         New functions.
9612         (cgraph_decide_inlining): Handle functions with flatten
9613         attribute.
9614
9615 2005-07-14  David Edelsohn  <edelsohn@gnu.org>
9616
9617         * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_LWSYNC,
9618         UNSPEC_ISYNC, UNSPEC_SYNC_OP, UNSPEC_ATOMIC, UNSPEC_CMPXCHG,
9619         UNSPEC_XCHG, UNSPEC_AND): New.
9620         (UNSPECV_ATOMIC, UNSPECV_SYNC, UNSPECV_SYNC_OP, UNSPECV_CMPXCHG,
9621         UNSPECV_LWSYNC, UNSPECV_ISYNC): Delete.
9622         * config/rs6000/sync.md (FETCHOP): New code macro.
9623         (fetchop_name, fetchop_pred, fetchopsi_constr, fetchopdi_constr):
9624         New code attrs.
9625         (memory_barrier, sync_internal): Use unspec instead of unspec_volatile.
9626         (sync_compare_and_swap<mode>): Same.
9627         (sync_lock_test_and_set<mode>): Same.
9628         (sync_<fetchop><mode>, sync_nand<mode>): Only use rs6000_emit_sync
9629         for QImode and HImode, and not PPC405.
9630         (sync_old_<fetchop><mode>, sync_old_nand<mode>): Same.
9631         (sync_new_<fetchop><mode>, sync_new_nand<mode>): Same.
9632         (sync_<fetchop>{si,di}_internal): New.
9633         (sync_nand{si,di}_internal): New.
9634         (sync_old_<fetchop>{si,di}_internal): New.
9635         (sync_old_nand{si,di}_internal): New
9636         (sync_new_<fetchop>{si,di}_internal): New.
9637         (sync_new_nand{si,di}_internal): New.
9638         (atomic_and{si,di}): New.
9639         (sync_new_nand{si,di}_internal): New.
9640         (atomic_and{si,di}): New.
9641         (sync_add<mode>_internal): Delete.
9642         (sync_addshort_internal): Use unspec instead of unspec_volatile.
9643         (sync_sub<mode>_internal): Delte.
9644         (sync_subshort_internal): New.
9645         (sync_andsi_internal): Use unspec instead of unspec_volatile.
9646         (sync_anddi_internal): Delete.
9647         (sync_boolsi_internal): Use unspec instead of unspec_volatile.
9648         (sync_booldi_internal): Delete.
9649         (sync_boolc<mode>_internal): Delete.
9650         (sync_boolcshort_internal): Use unspec instead of unspec_volatile.
9651         (sync_boolc<mode>_internal2): Delete.
9652         (sync_boolcc<mode>_internal): Delete.
9653         (isync, lwsync): Use unspec instead of unspec_volatile.
9654         * config/rs6000/rs6000.c (rs6000_emit_sync): Implement MINUS.
9655         Revert UNSPEC_VOLATILE.
9656         (rs6000_split_atomic_op): New.
9657         * config/rs6000/rs6000-protos.h (rs6000_split_atomic_op): Declare.
9658
9659 2005-07-14  Eric Christopher  <echristo@redhat.com>
9660
9661         * config/mips/mips.c (mips_canonicalize_comparison): Cast
9662         argument of trunc_int_for_mode to unsigned HOST_WIDE_INT.
9663
9664 2005-07-14  Eric Christopher  <echristo@redhat.com>
9665
9666         * config/s390/t-tpf (SHLIB_MAPFILES): Remove.
9667
9668 2005-07-14  Steven Bosscher  <stevenb@suse.de>
9669
9670         PR tree-optimization/22230
9671         * tree-vrp.c (extract_range_from_binary_expr): Fix logics thinko in
9672         the computation of the four cross productions for "range op range".
9673
9674 2005-07-14  Alexandre Oliva  <aoliva@redhat.com>
9675             Ulrich Weigand  <uweigand@de.ibm.com>
9676
9677         PR target/20126
9678         * loop.c (loop_givs_rescan): Do not ICE if unable to reduce an IV
9679         in some insn.
9680
9681 2005-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
9682
9683         * config/s390/s390.h (TARGET_TPF_PROFILING): Add default definition.
9684
9685 2005-07-14  Steve Ellcey  <sje@cup.hp.com>
9686
9687         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Support ILP32 mode.
9688
9689 2005-07-14  Richard Guenther  <rguenther@suse.de>
9690
9691         PR middle-end/22347
9692         * config/i386/i386-protos.h (ix86_function_value): Change
9693         prototype to match new target hook.
9694         * config/i386/i386.c (ix86_value_regno): Change prototype
9695         to take extra type argument.
9696         (TARGET_FUNCTION_VALUE): Define.
9697         (ix86_function_ok_for_sibcall): Pass extra argument to
9698         ix86_value_regno, check return slot rtx for exact match.
9699         (ix86_function_value): Take extra parameter.  Dispatch to
9700         ix86_value_regno with fndecl/fntype as provided.
9701         (ix86_value_regno): Handle extra type argument.
9702         * config/i386/i386.h (FUNCTION_VALUE): No longer define.
9703
9704         * testsuite/gcc.target/i386/sseregparm-3.c: New testcase.
9705         * testsuite/gcc.target/i386/sseregparm-4.c: New testcase.
9706         * testsuite/gcc.target/i386/sseregparm-5.c: New testcase.
9707         * testsuite/gcc.target/i386/sseregparm-6.c: New testcase.
9708         * testsuite/gcc.target/i386/sseregparm-7.c: New testcase.
9709
9710 2005-07-14  Richard Guenther  <rguenther@suse.de>
9711
9712         * Makefile.in (explow.o, reg-stack.o): Depend on target.h.
9713         * calls.c (expand_call): Pass fntype to hard_function_value.
9714         (emit_library_call_value_1): Likewise.
9715         * explow.c: Include target.h.
9716         (hard_function_value): Take extra argument, the fntype.
9717         Use new target hook for function_value.
9718         * expr.h (hard_function_value): Change prototype.
9719         * function.c (aggregate_value_p): Pass 0 as fntype to
9720         hard_function_value.
9721         (assign_parms): Use new target hook for function_value.
9722         Pass 0 as fntype to hard_function_value.
9723         (expand_function_end): Likewise.
9724         * reg-stack.c: Include target.h.
9725         (stack_result): Use new target hook for function_value.
9726         * target-def.h: New target hook function_value.
9727         * target.h: Likewise.
9728         * targhooks.c (default_function_value): New function.
9729         * targhooks.h (default_function_value): Declare.
9730
9731 2005-07-13  Ian Lance Taylor  <ian@airs.com>
9732
9733         * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
9734
9735 2005-07-14  Jan Hubicka  <jh@suse.cz>
9736
9737         * tree-dfa.c (dump_variable): Use default_def function.
9738         * tree-ssa-alias.c (dump_points_to_info): Likewise.
9739         * tree-ssa.c (verify_use): Likewise.
9740         * tree-ssanames.c (release_ssa_name): Likewise.
9741         * tree-tailcall.c (eliminate_tail_call): Likewise.
9742         (tree_optimize_tail_calls_1): Likewise.
9743         * tree-vrp.c (get_value_range): Likewise.
9744
9745 2005-07-14  Ben Elliston  <bje@au.ibm.com>
9746
9747         * gcc.c (main): Compare language[0] with '*' when iterating over
9748         the infiles.
9749
9750 2005-07-13  Adrian Strae½tling  <straetling@de.ibm.com>
9751
9752         * config/s390/s390.c: (s390_cc_modes_compatible): Move before
9753         "s390_emit_compare".  Add handling of CCZ1mode.
9754         (s390_canonicalize_comparison): Simplify cascaded EQ, NE.
9755         (390_emit_compare): Use "s390_cc_modes_compatible" for mode
9756         checking.
9757         (s390_branch_condition_mask): Add CCZ1mode handling.
9758         * config/s390/s390.md: ("seq", "*seq"): New pattern.
9759         ("sync_compare_and_swap_cc<mode>", "*sync_compare_and_swap_cc<mode>"):
9760         Use CCZ1mode instead of CCZmode.
9761         * config/s390/s390-modes.def: Add CCZ1mode.  Comment new mode.
9762
9763 2005-07-13  Adrian Strae½tling  <straetling@de.ibm.com>
9764
9765         * config/s390/s390.md: ("cmpstrsi", "*cmpstr<mode>"): New
9766         pattern.
9767         ("strlen<mode>", "*strlen<mode>"): Use hard reg 0 in SImode.
9768
9769 2005-07-13  Eric Christopher  <echristo@redhat.com>
9770
9771         * config/mips/mips.c (mips_canonicalize_comparison): New.
9772         (mips_emit_int_relational): Use.
9773
9774 2005-07-13  Eric Christopher  <echristo@redhat.com>
9775
9776         * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
9777         static extra parts.
9778         * config/s390/s390.md: Include tpf.md. Move tpf specific
9779         patterns...
9780         * config/s390/tpf.md: To here.
9781         * config/s390/s390.opt: Move tpf specific options...
9782         * config/s390/tpf.opt: to here. Add mmain option.
9783         * config/s390/tpf-unwind.h: Remove unnecessary defines.
9784         * config/s390/tpf.h: Rewrite.
9785
9786 2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>
9787
9788         * doc/tm.texi: Remove @xref{Cross-profiling}.
9789
9790 2005-07-13  Jeff Law  <law@redhat.com>
9791
9792         * fold-const.c (fold_binary): When comparing two simple ADDR_EXPR
9793         expressions, test their _DECL operands for pointer equality rather
9794         than using operand_equal_p.
9795
9796 2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>
9797
9798         * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Renamed to ...
9799         (TARGET_POSIX_IO): This.
9800         * config/darwin.h: Likewise.
9801         * config/freebsd.h: Likewise.
9802         * config/linux.h: Likewise.
9803         * config/lynx.h: Likewise.
9804         * config/netbsd.h: Likewise.
9805         * config/rs6000/linux64.h: Likewise.
9806         * config/rs6000/linux.h: Likewise.
9807         * config/s390/tpf.h: Likewise.
9808         * config/sh/embed-elf.h: Likewise.
9809         * config/sparc/linux64.h: Likewise.
9810         * config/sparc/linux.h: Likewise.
9811         * config/svr4.h: Likewise.
9812         * gcov-io.h: Likewise.
9813
9814         * doc/tm.texi: Updated.
9815
9816         * libgcov.c (create_file_directory): Defined only if
9817         TARGET_POSIX_IO is defined.
9818         (gcov_exit): Call create_file_directory only if TARGET_POSIX_IO
9819         is defined.
9820
9821 2005-07-13  Jan Hubicka  <jh@suse.cz>
9822
9823         * tree-ssa-operands.c (get_expr_operands): Fix typo in previous patch.
9824
9825 2005-07-13  David Edelsohn  <edelsohn@gnu.org>
9826
9827         * tree-ssa-dom.c (lookup_avail_expr): Do not pass member in freed
9828         structure as argument.
9829
9830 2005-07-13  Paolo Bonzini  <bonzini@gnu.org>
9831
9832         PR tree-optimization/21921
9833         * tree-iterator.c (tsi_link_before): Support the case when
9834         tsi_end_p (tsi) == true.
9835
9836 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
9837
9838         PR tree-optimization/22442
9839         * tree-chrec.c (chrec_fold_multiply_poly_poly): Associate chrecs
9840         correctly.
9841
9842 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
9843
9844         PR rtl-optimization/20376
9845         * toplev.c (process_options): Enable -fweb and -frename-registers when
9846         unrolling.
9847         * doc/invoke.texi: Update the information about when -fweb and
9848         -frename-registers are enabled.
9849
9850 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
9851
9852         PR tree-opt/21840
9853         * tree-ssa-pre.c (eliminate): Convert the sprime to the correct type
9854         if *rhs_p is not a SSA_NAME.
9855
9856 2005-07-12  Daniel Berlin  <dberlin@dberlin.org>
9857
9858         Fix PR tree-optimization/22422
9859         * tree-ssa-structalias.c (struct variable_info): Add flag for
9860         special vars.
9861         (get_varinfo): Now a static function.
9862         (new_varinfo): init has_union and is_special_var to false.
9863         (solution_set_add): Check has_union.
9864         (do_da_constraint): Move temporary variable so it gets reset
9865         properly.
9866         Also check for special variable.
9867         (do_ds_constraint): Ditto.
9868         (do_sd_constraint): Ditto.
9869         (do_structure_copy): Check for special variable.
9870         (find_func_aliases): Ditto.
9871         (init_base_vars): Set special vars properly.
9872
9873 2005-07-13  Jan Hubicka  <jh@suse.cz>
9874
9875         * cfgexpand.c (expand_one_stack_var): Do not expand variables when we
9876         do unit-at-a-time.
9877
9878         * tree-ssa-operands.c (parse_ssa_operands): Fix formatting.
9879         (get_expr_operands): Fix thinko wrt flags and subvars.
9880
9881         PR tree-optimize/22379
9882         * tree-inline.c (expand_call_inline): Do not output sorry in early
9883         inlining.
9884
9885 2005-07-12  Dale Johannesen  <dalej@apple.com>
9886
9887         * config/rs6000.c (rs6000_rtx_cost):  Move FLOAT_EXTEND.
9888
9889 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
9890
9891         PR bootstrap/21704
9892         * host-linux.h: Include limits.h.
9893
9894 2005-07-12  Dale Johannesen  <dalej@apple.com>
9895
9896         * expr.c (compress_float_constant):  Add cost check.
9897         * config/rs6000.c (rs6000_rtx_cost):  Adjust FLOAT_EXTEND cost.
9898
9899 2005-07-12  Dale Johannesen  <dalej@apple.com>
9900
9901         * gcc.target/i386/compress-float-sse.c:  New.
9902         * gcc.target/i386/compress-float-sse-pic.c:  New.
9903         * gcc.target/i386/compress-float-387.c:  New.
9904         * gcc.target/i386/compress-float-387-pic.c:  New.
9905         * gcc.dg/compress-float-ppc.c:  New.
9906         * gcc.dg/compress-float-ppc-pic.c:  New.
9907
9908 2005-07-12  Eric Christopher  <echristo@redhat.com>
9909
9910         * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
9911         static extra parts.
9912         * config/s390/s390.md: Include tpf.md. Move tpf specific
9913         patterns...
9914         * config/s390/tpf.md: To here.
9915         * config/s390/s390.opt: Move tpf specific options...
9916         * config/s390/tpf.opt: to here. Add mmain option.
9917         * config/s390/tpf-unwind.h: Remove unnecessary defines.
9918         * config/s390/tpf.h: Rewrite.
9919
9920 2005-07-12  Eric Christopher  <echristo@redhat.com>
9921
9922         * gcc.c (struct infile): Update comment for language.
9923         (main): Rewrite input file resetting code.
9924
9925 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
9926
9927         PR tree-opt/22335
9928         * tree-ssa-dom.c (eliminate_redundant_computations): Reject the prop if
9929         requiring a cast in a non RHS of modify_expr.  Add a cast when required.
9930         (lookup_avail_expr): Use constant_boolean_node instead
9931         of boolean_false_node/boolean_true_node.
9932
9933 2005-07-12  Ben Elliston  <bje@au.ibm.com>
9934
9935         * tree-cfg.c (dump_cfg_stats): Add a new fmt_str_2 format string
9936         and use it when printing num_edges.
9937
9938 2005-07-12  Bernd Schmidt  <bernd.schmidt@analog.com>
9939
9940         * doc/extend.texi (Blackfin Built-in Functions): New section.
9941         * doc/invoke.texi (mcsync-anomaly, mno-csync-anomaly): Fix the
9942         @opindex.
9943
9944 2005-07-12  Adrian Straetling  <straetling@de.ibm.com>
9945
9946         * builtins.c: (expand_builtin_memcmp, expand_builtin_strncmp):
9947         s/cmpstrsi/cmpstrnsi
9948         (expand_builtin_strcmp): Rewrite to support both 'cmpstrsi' and
9949         'cmpstrnsi'.
9950         * optabs.c: (prepare_cmp_insn): Add availability of 'cmpstrn'.
9951         (init_optabs): Initialize cmpstrn_optab.
9952         * optabs.h: (enum insn_code cmpstrn_optab): Declare.
9953         * genopinit.c: (optabs[]): Add 'cmpstrn' to initialisation.
9954         * expr.c: (enum insn_code cmpstrn_optab): Declare.
9955         * config/i386/i386.md: s/cmpstr/cmpstrn
9956         * config/c4x/c4x.md: s/cmpstr/cmpstrn
9957         * doc/md.texi: Update documentation.
9958
9959 2005-07-11  Richard Henderson  <rth@redhat.com>
9960
9961         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use
9962         build_va_arg_indirect_ref.
9963         (alpha_gimplify_va_arg): Likewise.
9964         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
9965         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
9966         * config/mips/mips.c (mips_gimplify_va_arg_expr): Likewise.
9967         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
9968         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
9969         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg):
9970         Likewise.
9971         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
9972
9973 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
9974
9975         * tree-flow.h (remove_empty_loops, single_dom_exit): Declare.
9976         * passes.c (init_optimization_passes): Add pass_empty_loop.
9977         * tree-pass.h (pass_empty_loop): Declare.
9978         * tree-ssa-loop-ivcanon.c (empty_loop_p, remove_empty_loop,
9979         try_remove_empty_loop, remove_empty_loops): New functions.
9980         * tree-ssa-loop-ivopts.c (single_dom_exit): Export.
9981         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): New.
9982
9983 2005-07-12  Peter Barada  <peter@the-baradas.com>
9984
9985         PR middle-end/16719
9986         PR middle-end/18421
9987         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Disallow bytes
9988         in address registers.
9989         * config/m68k/m68k.c (hard_regno_mode_ok): Likewise.
9990         * config/m68k/m68k.md: Replace 's' with 'i' in 4th
9991         alternative of addsi3_5200.
9992
9993 2005-07-11  Ian Lance Taylor  <ian@airs.com>
9994
9995         * config/mips/mips.md (ffs<mode>2): Remove.
9996
9997 2005-07-11  Ian Lance Taylor  <ian@airs.com>
9998
9999         * doc/tree-ssa.texi (Cleanups): Improve description of
10000         TRY_FINALLY_EXPR.
10001         (GIMPLE Exception Handling): Clarify TRY_CATCH_EXPR cases.
10002
10003 2005-07-11  Daniel Berlin  <dberlin@dberlin.org>
10004
10005         * print-tree.c (print_node): Use DECL_ARGUMENT_FLD.
10006         * tree.h (DECL_ARGUMENT_FLD): New macro.
10007
10008 2005-07-11  Daniel Berlin  <dberlin@dberlin.org>
10009
10010         Fix PR tree-optimization/22404
10011
10012         * tree-ssa-structalias.c (create_variable_info_for): Use
10013         correct offset.
10014
10015 2005-07-11  Bernd Schmidt  <bernd.schmidt@analog.com>
10016
10017         * config/bfin/bfin.md (cmpsi, compare_eq, compare_ne, compare_lt,
10018         compare_le, compare_leu, compare_ltu): Use reg_or_const_int_operand
10019         for second comparison operand.
10020         * config/bfin/predicates.md (reg_or_const_int_operand): New.
10021
10022         * config/bfin/bfin.md (define_attr "type"): Add "sync".
10023         (define_insn_reservation "alu"): Likewise.
10024         (csync, ssync): Now of type sync.
10025         * config/bfin/bfin.h (TARGET_DEFAULT): Defaults to
10026         -mcsync-anomaly -mspecld-anomaly.
10027         * config/bfin/bfin.opt (mcsync): Remove.
10028         (mcsync-anomaly, mspecld-anomaly): Add.
10029         * config/bfin/bfin.c: Include "insn-codes.h".
10030         (bfin_reorg): Extend to handle the CSYNC anomaly as well.
10031         (TARGET_DEFAULT_TARGET_FLAGS): New.
10032         * doc/invoke.texi: Document -mcsync-anomaly, -mspecld-anomaly.
10033
10034 2005-07-11  Steven Bosscher  <stevenb@suse.de>
10035
10036         * basic-block.h: Give the BB flags enum a name, bb_flags.
10037         Add new flags BB_FORWARDER_BLOCK, and BB_NONTHREADABLE_BLOCK.
10038         * cfgcleanup.c (enum bb_flags): Remove here.
10039         (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG): Remove.
10040         (notice_new_block): Set/test bb->flags instead of aux via BB_FLAGS.
10041         (update_forwarder_flag): Likewise.
10042         (thread_jump): Likewise.
10043         (try_forward_edges): Likewise.
10044         (try_optimize_cfg): Likewise.  Clear bb->flags before updating the
10045         forwarder flags.  Don't clear bb->aux for all basic blocks.  Only
10046         reset the BB_FORWARDER_BLOCK and BB_NONTHREADABLE_BLOCK flags.
10047
10048 2005-07-11  Richard Guenther  <rguenther@suse.de>
10049
10050         * config/i386/i386.opt: New target option -msseregparm.
10051         * config/i386/i386.c (override_options): Error out for
10052         -msseregparm but no SSE support.
10053         (ix86_function_sseregparm): Check for global sseregparm.
10054         * doc/invoke.texi: Document -msseregparm.
10055
10056 2005-07-11  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
10057
10058         * config.gcc (m32r-*-linux*): Use the default extra_parts.
10059         (m32rle-*-linux*): Ditto.
10060
10061 2005-07-11  Jakub Jelinek  <jakub@redhat.com>
10062
10063         * cfgexpand.c (stack_protect_classify_type): Use TYPE_SIZE_UNIT (type)
10064         instead of TYPE_MAX_VALUE (TYPE_DOMAIN (type)) to get array size in
10065         bytes.
10066
10067 2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10068
10069         PR middle-end/22239
10070         PR target/20126
10071         * loop.c (loop_givs_rescan): Use expand_simple_binop instead of
10072         gen_rtx_MINUS to handle non-replaceable (plus ((x) (const)).
10073
10074 2005-07-07  Daniel Berlin  <dberlin@dberlin.org>
10075
10076         * tree-ssa-structalias.c (struct variable_info): Heapify complex.
10077         (varmap): Heapify varmap.
10078         (constraints): Heapify constraints.
10079         (struct constraint_graph): Heapify succs and preds.
10080         (constraint_vec_find): Update for heapification.
10081         (constraint_set_union): Ditto.
10082         (insert_into_complex): Ditto.
10083         (constraint_edge_vec_find): Ditto.
10084         (erase_graph_self_edge): Ditto.
10085         (add_graph_edge): Ditto.
10086         (get_graph_weights): Ditto.
10087         (merge_graph_nodes): Ditto.
10088         (build_constraint_graph): Ditto.
10089         (topo_visit): Ditto.
10090         (solve_graph): Ditto.
10091         (create_variable_info_for): Ditto.
10092         (init_base_vars): Ditto.
10093         (delete_points_to_sets): Free graph, varmap, and complex constraints.
10094         (condese_varmap_nodes): Free complex vector.
10095         (clear_edges_for_node): Clear succs and preds vector.
10096
10097 2005-07-10  Daniel Berlin  <dberlin@dberlin.org>
10098
10099         * tree-ssa-structalias.c (update_alias_info): Change counting of
10100         references to not include vdefs.
10101
10102 2005-07-10  Daniel Berlin  <dberlin@dberlin.org>
10103
10104         * tree-ssa-alias.c (free_used_part_map): Add missing free.
10105         (up_insert): Ditto.
10106
10107 2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10108
10109         * pa.c (pa_commutative_p): Make PLUS commutative when
10110         TARGET_NO_SPACE_REGS is true.
10111
10112 2005-07-09  Diego Novillo  <dnovillo@redhat.com>
10113
10114         * Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.h
10115         * tree-cfg.c (CHECK_OP): Only test for is_gimple_val.
10116         * tree-dfa.c (dump_subvars_for): New.
10117         (debug_subvars_for): New.
10118         (dump_variable): Show subvariables if VAR has them.
10119         * tree-flow-inline.h (get_subvar_at): New.
10120         (overlap_subvar): Change offset and size to unsigned HOST_WIDE_INT.
10121         * tree-flow.h (struct ptr_info_def): Remove field pt_malloc.
10122         Update all users.
10123         (struct subvar): Change fields offset and size to unsigned
10124         HOST_WIDE_INT.
10125         (dump_subvars_for): Declare.
10126         (debug_subvars_for): Declare.
10127         (get_subvar_at): Declare.
10128         (okay_component_ref_for_subvars): Change 2nd and 3rd argument
10129         to unsigned HOST_WIDE_INT *.
10130         (overlap_subvar): Likewise.
10131         * tree-gimple.c (is_gimple_reg): Always return false for
10132         SFTs and memory tags.
10133         * tree-pass.h (pass_build_pta, pass_del_pta): Remove.
10134         Update all callers.
10135         * tree-ssa-alias.c: Include tree-ssa-structalias.h.
10136         (compute_may_aliases): Call compute_points_to_sets.
10137         (collect_points_to_info_for): Remove.
10138         (compute_points_to_and_addr_escape): Remove.
10139         (delete_alias_info): Call delete_points_to_sets.
10140         (compute_flow_sensitive_aliasing): If the call to
10141         find_what_p_points_to returns false, call set_pt_anything.
10142         (add_may_alias): Set TREE_ADDRESSABLE when adding a new alias.
10143         (set_pt_anything): Clear pi->pt_vars.
10144         (set_pt_malloc): Remove.
10145         (merge_pointed_to_info): Remove.
10146         (add_pointed_to_expr): Remove.
10147         (add_pointed_to_var): Remove.
10148         (collect_points_to_info_r): Remove.
10149         (is_escape_site): Make extern.
10150         (create_sft): New.
10151         (create_overlap_variables_for): Call it.
10152         * tree-ssa-copy.c (merge_alias_info): Never merge
10153         flow-sensitive alias information.
10154         * tree-ssa-operands.c (get_expr_operands): Adjust variables
10155         offset and size to be unsigned HOST_WIDE_INT.
10156         (add_to_addressable_set): Rename from note_addressable.
10157         Set TREE_ADDRESSABLE as the variables are added to the set.
10158         Update all users.
10159         (add_stmt_operand): Do not try to micro-optimize unmodifiable
10160         operands into VUSEs when adding V_MAY_DEFs for members in an
10161         alias set.
10162         * tree-ssa-operands.h (add_to_addressable_set): Declare.
10163         * tree-ssa-structalias.c: Include tree-ssa-structalias.h last.
10164         (struct variable_info): Add bitfield is_heap_var.
10165         (var_anyoffset, anyoffset_tree, anyoffset_id): Declare.
10166         (new_var_info): Initialize is_heap_var.
10167         (get_constraint_for): Add HEAP variables to the symbol table.
10168         Mark them with is_heap_var.
10169         (update_alias_info): New.  Taken mostly from the old
10170         compute_points_to_and_addr_escape.
10171         (handle_ptr_arith): New.
10172         (find_func_aliases): Call update_alias_info.
10173         Call handle_ptr_info for tcc_binary expressions.
10174         Call mark_stmt_modified.
10175         (create_variable_info_for): If DECL has subvars, do not create
10176         variables for its subvars.  Always add all the fields.
10177         (set_uids_in_ptset): If the solution includes ANYOFFSET and
10178         SFTs, then add all the SFTs of the structure.
10179         If VI->DECL is an aggregate with subvariables, add the SFT at
10180         VI->OFFSET.
10181         (find_what_p_points_to): If VI is an artificial variable,
10182         translate to bitfields in SSA_NAME_PTR_INFO.
10183         If the solution is empty, set pi->pt_vars to NULL
10184         (init_base_vars): Create ANYOFFSET.
10185         (compute_points_to_sets): Rename from create_alias_vars.
10186         Make extern.
10187         (pass_build_pta): Remove.
10188         (delete_points_to_sets): Rename from delete_alias_vars.
10189         (pass_del_pta): Remove.
10190         * tree-ssa-structalias.h (struct alias_info): Move from
10191         tree-ssa-alias.h.
10192         (NUM_REFERENCES, NUM_REFERENCES_CLEAR, NUM_REFERENCES_INC,
10193         NUM_REFERENCES_SET): Likewise.
10194         (compute_points_to_sets, delete_points_to_sets): Declare.
10195
10196 2005-07-09  Richard Henderson  <rth@redhat.com>
10197
10198         * config/alpha/alpha.c (emit_insxl, alpha_expand_compare_and_swap_12,
10199         alpha_split_compare_and_swap_12, alpha_expand_lock_test_and_set_12,
10200         alpha_split_lock_test_and_set_12): New functions.
10201         * config/alpha/alpha-protos.h: Update.
10202         * config/alpha/alpha.md (UNSPEC_MB, UNSPEC_ATOMIC,
10203         UNSPEC_CMPXCHG, UNSPEC_XCHG): Rename from UNSPECV_FOO.
10204         * config/alpha/sync.md (I12MODE): New.
10205         (memory_barrier, mb_internal): Use unspec instead of unspec_volatile.
10206         (sync_<fetchop_name><I48MODE>): Likewise.
10207         (sync_nand<I48MODE>): Likewise.
10208         (sync_old_<fetchop_name><I48MODE>): Likewise.
10209         (sync_new_<fetchop_name><I48MODE>): Likewise.
10210         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
10211         (sync_compare_and_swap<I48MODE>): Likewise.
10212         (sync_lock_test_and_set<I48MODE>): Likewise.
10213         (sync_compare_and_swap<I12MODE>): New.
10214         (sync_compare_and_swap<I12MODE>_1): New.
10215         (sync_lock_test_and_set<I12MODE>): New.
10216         (sync_lock_test_and_set<I12MODE>_1): New.
10217
10218 2005-07-09  Diego Novillo  <dnovillo@redhat.com>
10219
10220         PR 21356
10221         PR 22332
10222         * passes.c (execute_todo): Cleanup the CFG before updating SSA.
10223
10224 2005-07-09  Jakub Jelinek  <jakub@redhat.com>
10225
10226         * config/i386/i386.c (output_set_got): Don't omit OFFSET FLAT:
10227         in Intel syntax add %reg, OFFSET FLAT:_GLOBAL_OFFSET_TABLE_+(.-.Lx).
10228
10229 2005-07-09  Richard SAndiford  <richard@codesourcery.com>
10230
10231         PR target/21656
10232         * config/mips/elf.h (NO_IMPLICIT_EXTERN_C): Define.
10233
10234 2005-07-08  David Edelsohn  <edelsohn@gnu.org>
10235
10236         * config/rs6000/sync.md (load_locked_<mode>): Use Z for
10237         memory_operand constraint.
10238         (store_conditional_<mode>): Same.
10239         (sync_compare_and_swap<mode>): Same.
10240         (sync_lock_test_and_set<mode>): Same.
10241
10242 2005-07-08  Hans-Peter Nilsson  <hp@axis.com>
10243
10244         Rewrite PIC support to more closely model actual instructions.
10245         * config/cris/cris-protos.h (cris_gotless_symbol, cris_got_symbol)
10246         (cris_symbol): Remove prototypes for removed functions.
10247         (cris_pic_symbol_type_of, cris_valid_pic_const)
10248         (cris_expand_pic_call_address): Prototypes for new functions.
10249         * config/cris/cris/cris.c (cris_pic_sympart_only): Remove unused
10250         variable.
10251         (cris_print_operand) <case 'v', 'P'>: Remove cases for unused
10252         modifiers.
10253         <case ':'>: Add case for new punctuation character.
10254         <case 'd'>: Temporarily set flag_pic = 2 instead of incorrectly
10255         emitting (extra) PIC modifier.
10256         <case UNSPEC>: Do not assert for PLT.
10257         (cris_initial_frame_pointer_offset, cris_simple_epilogue)
10258         (cris_expand_prologue, cris_expand_epilogue): Check
10259         for pic_offset_table_rtx usage instead of taking
10260         current_function_uses_pic_offset_table as the final word.
10261         (cris_rtx_costs, cris_address_cost, cris_side_effect_mode_ok):
10262         Remove flag_pic difference.
10263         (cris_valid_pic_const, cris_pic_symbol_type_of): New functions,
10264         the moral equivalents of...
10265         (cris_symbol, cris_gotless_symbol, cris_got_symbol): Remove
10266         functions.
10267         (cris_legitimate_pic_operand): Just call cris_valid_pic_const.
10268         (cris_handle_option): Mark ARG as unused.
10269         (cris_expand_pic_call_address): New worker function for "call",
10270         "call_value".
10271         (cris_asm_output_symbol_ref, cris_asm_output_label_ref): Do not
10272         output PIC constructs here.
10273         (cris_output_addr_const_extra): Changes for emitting PIC modifiers
10274         as symbol-specific modifers, not whole or part of operands.
10275         * config/cris/cris/cris.h (EXTRA_CONSTRAINT): Remove 'U' case.
10276         (EXTRA_CONSTRAINT_S): Changed semantics: allow only CONST-wrapped
10277         constants and flag_pic.
10278         (CONSTANT_INDEX_P): Adjust for new functions.
10279         (enum cris_pic_symbol_type): New helper type.
10280         (PRINT_OPERAND_PUNCT_VALID_P): Add ':'.
10281         * config/cris/cris/cris.md (CRIS_UNSPEC_GOTREL)
10282         (CRIS_UNSPEC_GOTREAD, CRIS_UNSPEC_PLTGOTREAD): New
10283         define_constants.
10284         ("movsi"): Emit actual instructions for GOT and relative access.
10285         ("*movsi_got_load"): New pattern to set up the register holding
10286         the GOT pointer.
10287         ("*movsi_internal"): Operand 1 is not a plain general_operand.
10288         Adjust FIXME for 'S'.
10289         <output for 'S' alternative>: Sanity-check UNSPEC types for PIC.
10290         Use "movs" for -fpic cases.
10291         ("addsi3"): Add alternative for 'S'; use adds.w when possible.
10292         ("uminsi3","*expanded_call_value"): Remove 'S' alternative.
10293         ("call", "call_value"): Just call cris_expand_pic_call_address for
10294         PIC addresses.
10295         ("*expanded_call_no_gotplt", "*expanded_call_value_no_gotplt"):
10296         Remove special pattern.
10297         ("*expanded_call_side", "*expanded_call_value_side"): New
10298         patterns.
10299         (gotplt-to-plt, gotplt-to-plt-side-call)
10300         (gotplt-to-plt-side-call-value, gotplt-to-plt-side): New
10301         peephole2:s.
10302         * config/cris/cris/predicates.md
10303         ("cris_general_operand_or_gotless_symbol"): Remove unused
10304         predicate.
10305         ("cris_general_operand_or_symbol"): Adjust for new functions.
10306
10307 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
10308
10309         * config/darwin.h (TARGET_C99_FUNCTIONS): Define to 1.
10310
10311 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
10312
10313         * Makefile.in (TREE_H): Add treestruct.def.
10314         (c-decl.o): Add pointer-set.h
10315         * c-decl.c (diagnose_mismatched_decls): Don't attempt to look at
10316         visibility on regular DECL's.
10317         (merge_decls): Fix the copying of decl nodes of various types for
10318         the new structures.  Don't update RTL, section name, weak status,
10319         etc, on DECL's without RTL.
10320         (grokdeclarator): DECL_ARG_TYPE_AS_WRITTEN is gone.
10321         Don't check volatile on non-variable types.
10322         (store_parm_decls_oldstyle): Use pointer_set instead of DECL_WEAK
10323         to check whether we have seen arguments.
10324         * c-objc-common.c (c_tree_printer): Reverse order of tests so that
10325         flag is checked before field (flag is common, field is not).
10326         * dwarf2out.c (decl_ultimate_origin):  Only DECL's with
10327         TS_DECL_COMMON could have an origin.
10328         (add_location_or_const_value_attribute): Don't check section name
10329         on non-var/function decls.
10330         (dwarf2out_var_location): Reverse order of tests.
10331         * emit-rtl.c (set_reg_attrs_for_parm): DECL_CHECK is dead, replace
10332         with DECL_WRTL_CHECK.
10333         * expmed.c (make_tree): rtl is now in decl_with_rtl.
10334         * fold-const.c (fold_binary): Don't check weakness on
10335         non-var/function decls.
10336         (tree_expr_nonzero_p): Ditto.
10337         (fold_checksum_tree): Use tree_decl_extra as sizeof
10338         buffer.
10339         * ggc-page.c (extra_order_size_table): Add sizes for
10340         tree_decl_non_common, tree_parm_decl,  tree_var_decl, and
10341         tree_field_decl.
10342         * gimplify.c (gimplify_bind_expr): Only set
10343         DECL_SEEN_IN_BIND_EXPR_P on VAR_DECL.
10344         * integrate.c (copy_decl_for_inlining): Don't set RTL on decl's
10345         without RTL.
10346         * langhooks-def.h (LANG_HOOK_INIT_TS): New.
10347         * langhooks.h (init_ts). New langhook.
10348         * passes.c (rest_of_decl_compilation): Reverse order of tests.
10349         * print-tree.c (print_node): Update to only print fields that
10350         exist in the structures the passed decl has.
10351         * toplev.c (wrapup_global_declarations): Don't reset
10352         DECL_DEFER_OUTPUT on DECL's that don't contain it.
10353         * tree-browser.c (browse_tree): DECL_ARG_TYPE_AS_WRITTEN removed.
10354         * tree-inline.c (remap_decl): Ditto.
10355         * tree-outof-ssa.c (create_temp): Reverse order of tests.
10356         * tree-pretty-print.c (print_declaration): Don't print
10357         DECL_REGISTER on things that don't contain it.
10358         * tree-vrp.c (expr_computes_nonzero): Don't check weakness on
10359         non-var/function decls.
10360         * tree.c (tree_contains_struct): New structure.
10361         (init_priority_for_decl): New hashtable.
10362         (tree_int_map): New structure.
10363         (tree_int_map_eq): New function.
10364         (tree_int_map_marked_p): Ditto.
10365         (tree_int_map_hash): Ditto.
10366         (tree_map): Move to tree.h.
10367         (tree_map_eq): Externalize.
10368         (tree_map_hash): Ditto.
10369         (tree_map_marked_p): Ditto.
10370         (init_ttree): Set up tree_contains_struct and call langhook.
10371         (decl_assembler_name): Use DECL_NON_COMMON_CHECK..
10372         (tree_code_size): Update for new structures.
10373         (tree_node_structure): Update for new structures.
10374         (make_node_stat): Don't try to set DECL_IN_SYSTEM_HEADER on decls
10375         without the field.
10376         (copy_node_stat):  Copy init priority.
10377         (build_decl_stat): Ditto for visibility.
10378         (ts_enum_names): New.
10379         (tree_contains_struct_check_failed): New function.
10380         (decl_init_priority_lookup): Ditto.
10381         (decl_init_priority_insert): Ditto.
10382         * treestruct.def: New file.
10383         * tree.h (CODE_CONTAINS_STRUCT): New macro.
10384         (CONTAINS_STRUCT_CHECK): Ditto.
10385         (tree_contains_struct_check_failed): New prototype.
10386         (DECL_CHECK): Removed.
10387         (DECL_MINIMAL_CHECK): New.
10388         (DECL_COMMON_CHECK): Ditto.
10389         (DECL_WRTL_CHECK): Ditto.
10390         (DECL_NON_COMMON_CHECK): Ditto.
10391         (DECL_WITH_VIS_CHECK): Ditto.
10392         (VAR_OR_FUNCTION_DECL_P): Ditto
10393         (struct tree_decl_minimal): New structure.
10394         (struct tree_decl_common): Ditto.
10395         (struct tree_decl_with_rtl): Ditto.
10396         (struct tree_decl_with_vis): Ditto.
10397         (struct tree_decl_non_common): Ditto.
10398         (struct tree_field_decl): Ditto.
10399         (struct tree_parm_decl): Ditto.
10400         (struct tree_var_decl): Ditto.
10401         (struct tree_function_decl): Ditto.
10402         (struct tree_const_decl): Ditto.
10403         (struct tree_result_decl): Ditto.
10404         (union tree_node): Add new structures.
10405         * var-tracking.c (track_expr_p): Reverse order of tests.
10406
10407         * doc/c-tree.texi: Add documentation on DECL node internal structure.
10408
10409 2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
10410
10411         * cfgexpand.c (tree_expand_cfg): Don't use FINALIZE_PIC.
10412         * system.h: Poison FINALIZE_PIC.
10413         * doc/tm.texi (FINALIZE_PIC): Remove.
10414
10415 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
10416
10417         PR tree-opt/22329
10418         * tree-ssa-propagate.c (fold_predicate_in): Convert the value
10419         to the correct type if we have a MODIFY_EXPR.
10420
10421 2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
10422
10423         PR tree-optimization/22360
10424         * tree.c (upper_bound_in_type): Fix calculations for casting
10425         to a non-wider signed type and casting a signed value to a
10426         wider unsigned type.
10427         (lower_bound_in_type): Fix calculations for casting to a
10428         non-wider signed type.
10429
10430         PR tree-optimization/20139
10431         * tree-cfg.c (remove_bb): Check in_ssa_p before calling
10432         release_defs.
10433         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call
10434         fold_cond_expr_cond.
10435         * tree-ssanames.c (release_defs): Assert in_ssa_p.
10436         * tree.c (upper_bound_in_type, lower_bound_in_type): Rewrite.
10437
10438 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
10439
10440         PR tree-opt/22356
10441         * tree-complex.c (expand_complex_libcall): Produce
10442         REALPART_EXPR/IMAGPART_EXPR with the correct type.
10443
10444 2005-07-08  Kenneth Zadeck <zadeck@naturalbridge.com>
10445
10446         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
10447         bitmap_and_compl_into, bitmap_xor, bitmap_xor_into): Removed "a !=
10448         b" assert and inserted fastpath code for this case.
10449         (bitmap_ior): Removed "a != b" assert.
10450
10451 2005-07-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
10452
10453         * config/m32r/linux.h (STARTFILE_SPEC): Support PIE.
10454         (ENDFILE_SPEC): Likewise.
10455         * config/m32r/m32r.h (ASM_SPEC): Likewise.
10456
10457         * config/m32r/m32r.c (m32r_output_function_epilogue): Care for
10458         a large stack frame at epilogue.
10459
10460 2005-07-08  David Billinghurst  <David.Billinghurst@riotinto.com>
10461
10462         * final.c: Include sdbout.h when required.
10463
10464 2005-07-07  Geoffrey Keating  <geoffk@apple.com>
10465
10466         * config.gcc (*-*-darwin*): Only one target-specific header file
10467         for generic darwin.
10468         (powerpc-*-darwin*): Add version-specific header files.
10469         * configure.in (gcc_AC_CHECK_DECLS): Add strverscmp.
10470         * config.in: Regenerate.
10471         * configure: Regenerate.
10472         * gcc.c: Include xregex.h.
10473         (version_compare_spec_function): New.
10474         (spec_function): Add version-compare.
10475         (replace_outfile_spec_function): Reformat comment.
10476         (compare_version_strings): New.
10477         * config/darwin-c.c (version_as_macro): New.
10478         (builtin_define): New.
10479         (darwin_cpp_builtins): New.
10480         * config/darwin-protos.h (darwin_cpp_builtins): New.
10481         * config/darwin.h (CPP_SPEC): Don't define APPLE_CC here.
10482         (LIB_SPEC): Make unconditional, update comment.
10483         (TARGET_C99_FUNCTIONS): Define.
10484         * config/darwin.opt: Sort.
10485         (mmacosx-version-min=): New.
10486         * config/darwin7.h: Delete.
10487         * config/darwin8.h: Delete.
10488         * config/i386/darwin.h (): Call darwin_cpp_builtins.
10489         * config/rs6000/darwin.h (): Call darwin_cpp_builtins.
10490         (TARGET_C99_FUNCTIONS): Define.
10491         * config/rs6000/darwin7.h: New.
10492         * config/rs6000/darwin8.h: New.
10493         * doc/invoke.texi (Darwin Options): Add -mmacosx-version-min=
10494         (-mmacosx-version-min): Document.
10495
10496 2005-07-07  Ian Lance Taylor  <ian@airs.com>
10497
10498         * config/mips/mips.md (abs<mode>2) [GPR]: Remove.
10499
10500 2005-07-07  John David Anglin  <dave.anglin@nrc-crc.gc.ca>
10501
10502         PR middle-end/22239
10503         * loop.c (loop_givs_rescan): Check that v->new_reg is a REG.
10504
10505 2005-07-07  Khem Raj  <kraj@mvista.com>
10506
10507         * config/arm/arm.c (thumb_output_function_prologue): Calculate offset
10508         in bytes, not words.
10509
10510 2005-07-07  Paul Brook  <paul@codesourcery.com>
10511
10512         * config/arm/arm.c (arm_pad_arg_upward): Compare return value of
10513         DEFAULT_FUNCTION_ARG_PADDING to upward.
10514
10515 2005-07-07  Richard Henderson  <rth@redhat.com>
10516
10517         * function.c (locate_and_pad_parm): Record parameter alignment in
10518         stack_alignment_needed.
10519
10520 2005-07-07  David Edelsohn  <edelsohn@gnu.org>
10521
10522         * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_SYNC_OP,
10523         UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC, UNSPEC_ISYNC): Delete.
10524         (UNSPECV_LL, UNSPECV_SC, UNSPECV_ATOMIC, UNSPECV_SYNC,
10525         UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, UNSPECV_LWSYNC, UNSPECV_ISYNC): New.
10526         (define_attr "type"): Add isync, sync, load_l, store_c.
10527         * config/rs6000/sync.md (memory_barrier): Change to define_expand.
10528         Create scratch volatile MEM.
10529         (sync_internal): New.  POWER mnemonic is dcs, not ics.  Attribute
10530         sync.
10531         (load_locked_<mode>): New.
10532         (store_conditional_<mode>): New.
10533         (sync_compare_and_swap<mode>): Replace with splitter.
10534         (sync_lock_test_and_set<mode>): Replace with splitter.
10535         (sync_<fetchop><mode>): Change to unspec_volatile UNSPECV_SYNC_OP
10536         and UNSPECV_ISYNC.
10537         (isync): Change to unspec_volatile UNSPECV_ISYNC.  POWER mnemonic
10538         is ics.  Attribute isync.
10539         (lwsync): Change to unspec_volatile UNSPECV_LWSYNC.  Attribute
10540         lwsync.
10541         * config/rs6000/rs6000.c (rs6000_emit_sync): Use UNSPEC_VOLATILE
10542         and UNSPECV_SYNC_OP.
10543         (emit_unlikely_jump): New.
10544         (emit_load_locked): New.
10545         (emit_store_conditional): New.
10546         (rs6000_split_compare_and_swap): New.
10547         (rs6000_split_lock_test_and_set): New.
10548         (is_dispatch_slot_restricted): Return 4 for TYPE_LOAD_L,
10549         TYPE_STORE_C, TYPE_ISYNC, TYPE_SYNC.
10550         * config/rs6000/rs6000-protos.h (rs6000_split_compare_and_swap,
10551         rs6000_split_lock_test_and_set): Declare.
10552         * config/rs6000/{40x.md,440.md,603.md,6xx.md,7450.md,7xx.md,8540.md,
10553         mpc.md,power4.md,power5.md,rios1.md,rios2.md,rs64.md): Add load_l,
10554         store_c, isync, sync.
10555
10556 2005-07-07  Kelley Cook  <kcook@gcc.gnu.org>
10557
10558         * Makefile.in (echo_quoted_to_gtyp): New template for outputing
10559         filenames to gtyp-gen.h.
10560         (s-typ-gen): Use it in place of for loops.
10561
10562 2005-07-07  J"orn Rennecke <joern.rennecke@st.com>
10563
10564         * hooks.c (hook_bool_rtx_int_false): New function.
10565         * hooks.h (hook_bool_rtx_int_false): Declare.
10566         * target-def.h (TARGET_COMMUTATIVE_P): Define.
10567         (TARGET_INITIALIZER): Add TARGET_COMMUTATIVE_P.
10568         * target.h (struct gcc_target): Add commutative_p member.
10569         * targhooks.c (hook_bool_rtx_commutative_p): New function.
10570         * targhooks.h (hook_bool_rtx_commutative_p): Declare.
10571         * pa.c (TARGET_COMMUTATIVE_P): Redefine.
10572         (pa_commutative_p): New function.
10573         * jump.c (target.h): Include.
10574         (rtx_renumbered_equal_p): Use targetm.commutative_p.
10575         * doc/tm.texi: Document TARGET_COMMUTATIVE_P.
10576
10577 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
10578
10579         * config/s390/s390-protos.h (s390_expand_clrmem): Delete.
10580         (s390_expand_setmem): New.
10581         * config/s390/s390.c: Likewise.
10582         (print_shift_count_operand): Truncate to 12 bits instead of 6.
10583         Adapt comments.
10584         * config/s390/s390.md: ("setmem<mode>"): Accept character as
10585         general_operand.  Call new function "s390_expand_setmem".
10586         ("clrmem_long", "*clrmem_long"): Rewrite to ...
10587         ("setmem_long", "*setmem_long"): ... this.
10588
10589 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
10590
10591         * config/s390/s390.c: (optimization_options): Enable
10592         TARGET_MVCLE at -Os.
10593         * doc/invoke.texi: Document changes in default behaviour.
10594         * config/s390/s390.opt: ("mvcle"): Fix typo: is "mmvcle".
10595
10596 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
10597
10598         * expr.c: (set_storage_via_setmem): Convert opchar to mode
10599         defined by back-end.
10600
10601 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
10602
10603         * config/sparc/sparc.md (stack_protect_testsi): Put clobbers after
10604         all sets in the pattern.
10605         * config/rs6000/rs6000.md (stack_protect_testsi,
10606         stack_protect_testdi): Likewise.
10607
10608 2005-07-06  Jeff Law  <law@redhat.com>
10609
10610         * tree-vrp.c (simplify_using_ranges): Kill.
10611         (vrp_finalize): Remove call to simplify_using_ranges.
10612         (simplify_stmt_using_ranges): New function extracted from
10613         simplify_using_ranges.
10614         (simplify_div_or_mod_using_ranges): Likewise.
10615         (simplify_abs_using_ranges): Likewise.
10616         (simplify_cond_using_ranges): New function.
10617         * tree-flow.h (simplify_stmt_using_ranges): Prototype.
10618         * tree-ssa-propagate.c (substitute_and_fold): Call
10619         simplify_stmt_using_ranges if we have range information.
10620
10621 2005-07-06  James E. Wilson  <wilson@specifixinc.com>
10622
10623         * config/ia64/ia64.c (ia64_reorg): Check optimize before
10624         ia64_flag_schedule_isns2.
10625
10626         * config/ia64/ia64.c (ia64_expand_movxf_movrf): Don't word swap when
10627         reading/writing general registers.
10628         (ia64_function_arg): Revert 2005-06-18 change.
10629
10630 2005-07-06  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
10631
10632         * pa.c (legitimize_pic_address): Use gcc_assert instead of abort.
10633         (legitimize_tls_address): Use gcc_unreachable instead of abort.
10634
10635 2005-07-06  Kaz Kojima  <kkojima@gcc.gnu.org>
10636
10637         * function.c (expand_function_end): Revert part of 2005-06-27
10638         patch.  Do sjlj_emit_function_exit_after after return_label.
10639
10640 2005-07-06  Kazu Hirata  <kazu@codesourcery.com>
10641
10642         * doc/install.texi (--disable-libssp): New.
10643
10644 2005-07-06  Fariborz Jahanian <fjahanian@apple.com>
10645
10646         * doc/invoke.texi: Update -fforce-mem documentation.
10647         * dojump.c (compare_from_rtx,do_compare_rtx_and_jump): Remove
10648         code for -fforce-mem.
10649         * expmed.c: (store_bit_field,store_fixed_bit_field,
10650         extract_bit_field): Ditto.
10651         * expr.c: (convert_move): Ditto.
10652         * optabs.c: (expand_binop,expand_twoval_unop,expand_twoval_binop,
10653         expand_unop,emit_unop_insn,prepare_cmp_insn,emit_conditional_move,
10654         emit_conditional_add,expand_float,expand_fix): Ditto.
10655         * opts.c: (decode_options): Remove setting of flag_force_mem flag.
10656         (common_handle_option): Issue warning when -fforce-mem specified.
10657
10658 2005-07-06  Paul Brook  <paul@codesourcery.com>
10659
10660         * aclocal.m4: Work around a bug in AC_PATH_PROGS when its last
10661         argument is empty.
10662         * configure: Regenerate.
10663
10664 2005-07-06  J"orn Rennecke <joern.rennecke@st.com>
10665
10666         * sh.c (final_prescan_insn): Undo bogus change from 2005-05-09.
10667
10668 2005-07-06  Daniel Berlin  <dberlin@dberlin.org>
10669
10670         Fix PR tree-optimization/22319
10671         Fix PR tree-optimization/22140
10672         Fix PR tree-optimization/22310
10673
10674         * tree-ssa-structalias.c (do_structure_copy): Give up earlier on
10675         variable sized types.
10676         Use correct type for intermediate structure on *a = *b structure
10677         copies.
10678
10679 2005-07-06  Jakub Jelinek  <jakub@redhat.com>
10680
10681         * config/rs6000/rs6000.h (RS6000_VARARGS_AREA, RS6000_VARARGS_SIZE):
10682         Remove.
10683         (STARTING_FRAME_OFFSET): Don't add RS6000_VARARGS_AREA.
10684         (machine_function): Move typedef to...
10685         * config/rs6000/rs6000.c (machine_function): ... here.  Add
10686         varargs_save_offset field.
10687         (rs6000_stack_t): Remove varargs_size field.
10688         (setup_incoming_varargs): Allocate varargs save area using
10689         assign_stack_local, try to make it as small as possible.
10690         Save offset from virtual_stack_vars_rtx to the save area
10691         in cfun->machine->varargs_save_offset.  Use UNITS_PER_FP_WORD
10692         instead of magic 8 when fp word byte size is used.
10693         (rs6000_va_start): Use cfun->machine->varargs_save_offset
10694         instead of -RS6000_VARARGS_SIZE.
10695         (rs6000_stack_info, debug_stack_info,
10696         rs6000_initial_elimination_offset): Remove all traces of
10697         varargs_size.
10698         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Remove.
10699         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Don't add
10700         RS6000_VARARGS_AREA.
10701
10702 2005-07-06  Zdenek Dvorak  <dvorakz@suse.cz>
10703
10704         PR tree-optimization/21963
10705         * tree-ssa-loop-ivopts.c (get_computation_aff): Use
10706         constant_multiple_of in the same way get_computation_cost_at does.
10707
10708 2005-07-06  Jakub Jelinek  <jakub@redhat.com>
10709
10710         * config/sparc/sparc.h (sparc_compare_emitted): New extern.
10711         * config/sparc/sparc.c (sparc_compare_emitted): New variable.
10712         (gen_compare_reg): If sparc_compare_emitted is set, clear it
10713         and return its previous value.
10714         (emit_v9_brxx_insn): Assert sparc_compare_emitted is NULL.
10715         * config/sparc/sparc.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
10716         constants.
10717         (stack_protect_set, stack_protect_test): New expanders.
10718         (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
10719         stack_protect_testdi): New insns.
10720         * config/sparc/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
10721         * config/sparc/linux64.h (TARGET_THREAD_SSP_OFFSET): Define.
10722
10723 2005-07-06  Jeff Law  <law@redhat.com>
10724
10725         * tree-ssa-dce.c (cfg_altered): New global.
10726         (tree_dce_init): Initialize cfg_altered.
10727         (remove_dead_stmt): If we remove an edge in the CFG, then set
10728         CFG_ALTERED.
10729         (perform_tree_ssa_dce): If we altered the CFG, then invalidate
10730         the dominators.
10731
10732 2005-07-06  Kazu Hirata  <kazu@codesourcery.com>
10733
10734         * Makefile.in (stamp-collect-ld): Use
10735         $(ORIGINAL_LD_FOR_TARGET) instead of $<.  Don't remove
10736         ./collect-ld if it already exists.
10737         (stamp-nm): Use $(ORIGINAL_NM_FOR_TARGET) instead of $<.
10738         Don't remove ./nm if it already exists.
10739
10740 2005-07-05  Devang Patel  <dpatel@apple.com>
10741
10742         * tree-vectorizer.h (struct _loop_vec_info): Remove loop_line_number.
10743         (LOOP_VINFO_LOC, LOOP_LOC): Remove.
10744         * tree-vectorizer.c (vect_loop_location): New.
10745         (vect_print_dump_info): Use vect_loop_location.
10746         (new_loop_vec_info): Do not set LOOP_VINFO_LOC.
10747         (vectorize_loops): Set vect_loop_location.
10748         * tree-vect-analyze.c (vect_analyze_offset_expr,
10749         vect_determin_vectorization_factor, vect_analyze_operations,
10750         vect_analyze_scalar_cycles, vect_analyze_data_ref_dependence,
10751         vect_analyze_data_ref_dependences, vect_compute_data_ref_alignment,
10752         vect_analyze_data_refs_alignment, vect_analyze_data_ref_access,
10753         vect_analyze_data_ref_accesses, vect_analyze_pointer_ref_access,
10754         vect_object_analysis, vect_analyze_data_refs, vect_mark_relevant,
10755         vect_stmt_relevant_p, vect_mark_stmts_to_be_vectorized,
10756         vect_can_advance_ivs_p, vect_get_loop_niters, vect_analyze_loop_form,
10757         vect_analyze_loop): Adjust vect_print_dump_info API.
10758         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
10759         vect_create_data_ref_ptr, vect_init_vector, vect_get_vec_def_for_operand,
10760         vect_finish_stmt_generation, vectorizable_assignment,
10761         vectorizable_operation, vectorizable_store, vectorizable_load,
10762         vectorizable_live_operation, vectorizable_condition, vect_transform_stmt,
10763         vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
10764         vect_gen_ninters_for_prolog_loop, vect_do_peeling_for_alignment,
10765         vect_transform_loop): Same.
10766         * tree-vectorizer.c (get_vectype_for_scalar_type, vect_is_simple_use,
10767         vect_is_simple_reduction, vect_is_simple_iv_evolution, vectorize_loops):
10768         Same.
10769
10770 2005-07-05  Randolph Chung  <tausq@debian.org>
10771
10772         * configure.ac (hppa*-*-linux*: Check for a TLS capable gas.
10773         * configure: Regenerate.
10774         * config/pa/pa-protos.h (tls_symbolic_operand): Declare.
10775         (pa_tls_referenced_p): Declare.
10776         * config/pa/pa.c (legitimize_pic_address): Reject TLS operands.
10777         (gen_tls_tga, gen_tls_get_addr, hppa_tls_call): New.
10778         (legitimize_tls_address): New.
10779         (hppa_legitimize_address): Handle TLS addresses.
10780         (pa_tls_symbol_ref_1, pa_tls_referenced_p): New.
10781         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
10782         (emit_move_sequence): Handle TLS addresses.
10783         (pa_encode_section_info): Call default handler to handle common
10784         sections.
10785         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): New.
10786         (CONSTANT_ADDRESS_P): Reject TLS operands.
10787         (TARGET_HAVE_TLS) [HAVE_AS_TLS]: Define.
10788         * config/pa/pa.md (UNSPEC_TP, UNSPEC_TLSGD, UNSPEC_TLSLDM)
10789         (UNSPEC_TLSLDO, UNSPEC_TLSLDBASE, UNSPEC_TLSIE)
10790         (UNSPEC_TLSLE): Define new constants.
10791         (tgd_load, tld_load, tld_offset_load, tp_load, tie_load, tle_load): New.
10792         * config/pa/predicates.md (symbolic_operand): Reject TLS operands.
10793         (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand)
10794         (tie_symbolic_operand, tle_symbolic_operand): New
10795
10796 2005-07-06  Kelley Cook  <kcook@gcc.gnu.org>
10797
10798         * aclocal.m4: Update macros for autoconf 2.59 style.
10799         * configure.ac: Likewise.
10800
10801 2005-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10802
10803         * pa.c (function_value): Handle small aggregates on 32-bit targets.
10804         (function_arg): Pass small aggregates in general registers on 32-bit
10805         targets.
10806         * som.h (MEMBER_TYPE_FORCES_BLK): Delete define.
10807
10808 2005-07-05  Andrew Pinski  <pinskia@physics.uc.edu>
10809
10810         * Makefile.in (final.o): Fix dependencies.
10811
10812 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
10813
10814         PR c/22013
10815         PR c/22098
10816         * langhooks.h (struct lang_hooks): Add expr_to_decl.
10817         * langhooks.c (lhd_expr_to_decl): New.
10818         * langhooks-def.h (lhd_expr_to_decl, LANG_HOOKS_EXPR_TO_DECL):
10819         New.
10820         (LANG_HOOKS_INITIALIZER): Update.
10821         * tree.c (recompute_tree_invarant_for_addr_expr): Call
10822         expr_to_decl langhook.
10823         * c-tree.h (c_expr_to_decl): Declare.
10824         * c-typeck.c (c_expr_to_decl): New.
10825         (build_unary_op): Do not handle ADDR_EXPR of COMPOUND_LITERAL_EXPR
10826         specially.
10827         * c-objc-common.h (LANG_HOOKS_EXPR_TO_DECL): Define.
10828
10829 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
10830
10831         PR c/22308
10832         * c-decl.c (finish_struct): Also copy C_TYPE_FIELDS_READONLY,
10833         C_TYPE_FIELDS_VOLATILE and C_TYPE_VARIABLE_SIZE to type variants.
10834
10835 2005-07-05  Paolo Bonzini  <bonzini@gnu.org>
10836
10837         * Makefile.in: Adjust dependencies.
10838         * tree-pass.h: Add new passes and passes formerly in tree-optimize.c.
10839         * basic-block.h (duplicate_computed_gotos): Remove, it is now static.
10840         * alias.c (rest_of_handle_cfg, pass_cfg): New.
10841         * bb-reorder.c (duplicate_computed_gotos): Make it static.
10842         * cfgexpand.c (tree_expand_cfg): Add code formerly at the beginning of
10843         rest_of_compilation.
10844
10845         * bb-reorder.c (gate_duplicate_computed_gotos,
10846         pass_duplicate_computed_gotos, gate_handle_reorder_blocks,
10847         rest_of_handle_reorder_blocks, pass_reorder_blocks,
10848         gate_handle_partition_blocks, rest_of_handle_partition_blocks,
10849         pass_partition_blocks): New.
10850         * bt-load.c (gate_handle_branch_target_load_optimize,
10851         rest_of_handle_branch_target_load_optimize,
10852         pass_branch_target_load_optimize): New.
10853         * cfgcleanup.c (rest_of_handle_jump, pass_jump, rest_of_handle_jump2,
10854         pass_jump2): New.
10855         * cfglayout.c (pass_insn_locators_initialize): New.
10856         * cfgrtl.c (pass_free_cfg): New.
10857         * combine.c (gate_handle_combine, rest_of_handle_combine,
10858         pass_combine): New.
10859         * cse.c (gate_handle_cse, rest_of_handle_cse, pass_cse,
10860         gate_handle_cse2, rest_of_handle_cse2, pass_cse2): New.
10861         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): New.
10862         * except.c (pass_set_nothrow_function_flags,
10863         pass_convert_to_eh_region_ranges, gate_handle_eh, rest_of_handle_eh,
10864         pass_rtl_eh): New.
10865         * final.c (pass_compute_alignments, rest_of_handle_final, pass_final,
10866         rest_of_handle_shorten_branches, pass_shorten_branches,
10867         rest_of_clean_state, pass_clean_state): New.
10868         * flow.c (pass_recompute_reg_usage, gate_remove_death_notes,
10869         rest_of_handle_remove_death_notes, pass_remove_death_notes,
10870         rest_of_handle_life, pass_life, rest_of_handle_flow2,
10871         pass_flow2): New.
10872         * function.c (pass_instantiate_virtual_regs, pass_init_function,
10873         rest_of_handle_check_leaf_regs, pass_leaf_regs): New.
10874         * gcse.c (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
10875         pass_jump_bypass, gate_handle_gcse, rest_of_handle_gcse,
10876         pass_gcse): New.
10877         * global.c (rest_of_handle_global_alloc, pass_global_alloc): New.
10878         * ifcvt.c (gate_handle_if_conversion, rest_of_handle_if_conversion,
10879         pass_rtl_ifcvt, gate_handle_if_after_combine,
10880         rest_of_handle_if_after_combine, pass_if_after_combine,
10881         gate_handle_if_after_reload, rest_of_handle_if_after_reload,
10882         pass_if_after_reload): New.
10883         * integrate.c (pass_initial_value_sets): New.
10884         * jump.c (pass_cleanup_barriers, purge_line_number_notes,
10885         pass_purge_lineno_notes): New.
10886         * mode-switching.c (rest_of_handle_mode_switching,
10887         pass_mode_switching): New.
10888         * local-alloc.c (rest_of_handle_local_alloc, pass_local_alloc): New.
10889         * loop-init.c (gate_handle_loop2, rest_of_handle_loop2,
10890         pass_loop2): New.
10891         * loop.c (gate_handle_loop_optimize, rest_of_handle_loop_optimize,
10892         pass_loop_optimize): New.
10893         * modulo-sched.c (gate_handle_sms, rest_of_handle_sms,
10894         pass_sms): New.
10895         * postreload-gcse.c (gate_handle_gcse2, rest_of_handle_gcse2,
10896         pass_gcse2): New.
10897         * postreload.c (gate_handle_postreload, rest_of_handle_postreload,
10898         pass_postreload_cse): New.
10899         * profile.c (gate_handle_profiling, pass_profiling,
10900         rest_of_handle_branch_prob, pass_branch_prob): New.
10901         * recog.c (pass pass_split_for_shorten_branches, gate_do_final_split,
10902         pass_split_before_regstack, gate_handle_split_before_regstack,
10903         gate_handle_peephole2, rest_of_handle_peephole2, pass_peephole2,
10904         rest_of_handle_split_all_insns, pass_split_all_insns): New.
10905         * reg-stack.c (gate_handle_stack_regs, rest_of_handle_stack_regs,
10906         pass_stack_regs): New.
10907         * regmove.c (gate_handle_regmove, rest_of_handle_regmove, pass_regmove,
10908         gate_handle_stack_adjustments, rest_of_handle_stack_adjustments,
10909         pass_stack_adjustments): New.
10910         * regrename.c (gate_handle_regrename, rest_of_handle_regrename,
10911         pass_regrename): New.
10912         * reorg.c (gate_handle_delay_slots, rest_of_handle_delay_slots,
10913         pass_delay_slots, gate_handle_machine_reorg,
10914         rest_of_handle_machine_reorg, pass_machine_reorg): New.
10915         * rtl.h (extern void purge_line_number_notes): New.
10916         * sched-rgn.c (gate_handle_sched, rest_of_handle_sched,
10917         gate_handle_sched2, rest_of_handle_sched2, pass_sched,
10918         pass_sched2): New.
10919         * tracer.c (gate_handle_tracer, rest_of_handle_tracer,
10920         pass_tracer): New.
10921         * value-prof.c (gate_handle_value_profile_transformations,
10922         rest_of_handle_value_profile_transformations,
10923         pass_value_profile_transformations): New.
10924         * var-tracking.c (gate_handle_var_tracking,
10925         pass_variable_tracking): New.
10926         * web.c (gate_handle_web, rest_of_handle_web, pass_web): New.
10927
10928         * passes.c (open_dump_file, close_dump_file, rest_of_handle_final,
10929         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
10930         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
10931         rest_of_handle_old_regalloc, rest_of_handle_regrename,
10932         rest_of_handle_reorder_blocks, rest_of_handle_partition_blocks,
10933         rest_of_handle_sms, rest_of_handle_sched, rest_of_handle_sched2,
10934         rest_of_handle_gcse2, rest_of_handle_regmove,
10935         rest_of_handle_tracer, rest_of_handle_if_conversion,
10936         rest_of_handle_if_after_combine, rest_of_handle_if_after_reload,
10937         rest_of_handle_web, rest_of_handle_branch_prob,
10938         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
10939         rest_of_handle_jump_bypass, rest_of_handle_combine,
10940         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
10941         rest_of_handle_gcse, rest_of_handle_loop_optimize,
10942         rest_of_handle_loop2, rest_of_handle_branch_target_load_optimize,
10943         rest_of_handle_mode_switching, rest_of_handle_jump,
10944         rest_of_handle_eh, rest_of_handle_stack_adjustments,
10945         rest_of_handle_flow2, rest_of_handle_jump2,
10946         rest_of_handle_peephole2, rest_of_handle_postreload,
10947         rest_of_handle_shorten_branches, rest_of_clean_state,
10948         rest_of_compilation): Remove.
10949
10950         * cgraphunit.c (ipa_passes): Moved from tree-optimize.c.
10951         * passes.c (dump_flags, in_gimple_form, all_passes,
10952         all_ipa_passes, all_lowering_passes, register_one_dump_file,
10953         register_dump_files, next_pass_1, last_verified, execute_todo,
10954         execute_one_pass, execute_pass_list, execute_ipa_pass_list): Moved
10955         from tree-optimize.c.
10956         (init_optimization_passes): Moved from tree-optimize.c,
10957         adding the RTL optimizations.
10958         * tree-dump.h (dump_info_p, dump_flag): Moved from tree.h.
10959         * tree-optimize.c (dump_flags, in_gimple_form, all_passes,
10960         all_ipa_passes, all_lowering_passes, register_one_dump_file,
10961         register_dump_files, next_pass_1, last_verified, execute_todo,
10962         execute_one_pass, execute_pass_list, execute_ipa_pass_list,
10963         init_tree_optimization_passes, ipa_passes): Delete.
10964         * tree-pass.h (enum tree_dump_index): Moved from tree.h, removing
10965         the RTL dumps.
10966         (TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p,
10967         dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved
10968         from tree.h.
10969         (ipa_passes): Remove.
10970         (all_passes, all_ipa_passes, all_lowering_passes): Now extern.
10971         * tree.h (enum tree_dump_index, TDF_*, get_dump_file_name,
10972         dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node,
10973         dump_switch_p, dump_flag_name): Moved to tree-pass.h.
10974         (dump_info_p, dump_flag): Moved to tree-dump.h.
10975
10976         * Makefile.in: Adjust dependencies for tree-pretty-print.c,
10977         cgraph.c, opts.c.
10978         * passes.c (finish_optimization_passes): Use dump_begin
10979         and dump_end, TDI_end.
10980         (gate_rest_of_compilation): New.
10981         (pass_rest_of_compilation): Use it.
10982         (gate_postreload, pass_postreload): New.
10983         * toplev.c (general_init): Rename init_tree_optimization_passes.
10984         * toplev.h (init_tree_optimization_passes): Rename to
10985         init_optimizations_passes.
10986         * tree-dump.c (dump_flag): Make static.
10987         (dump_files): Remove RTL dumps.
10988         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
10989         pass_cleanup_cfg, pass_free_cfg_annotations,
10990         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
10991         pass_init_datastructures, pass_fixup_cfg): Make non-static.
10992         * tree-pretty-print.c: Include tree-pass.h.
10993         * cgraph.c: Include tree-dump.h.
10994
10995 2005-07-04  Daniel Berlin  <dberlin@dberlin.org>
10996
10997         * tree-ssa-structalias.c (get_constraint_exp_from_ssa_var):
10998         Only fall back to saying it points to readonly memory if
10999         we can't do better.
11000
11001 2005-07-05  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11002
11003         * config/m32r/m32r-protos.h: Remove m32r_finalize_pic.
11004         * config/m32r/m32r.c (m32r_compute_frame_size,
11005         m32r_expand_prologue): Take current_function_profile into
11006         account whenever we reference
11007         current_function_uses_pic_offset_table.
11008         (m32r_finalize_pic): Remove.
11009         * config/m32r/m32r.h (FINALIZE_PIC): Likewise.
11010
11011 2005-07-05  Kazu Hirata  <kazu@codesourcery.com>
11012
11013         * Makefile.in (stamp-as): Use $(ORIGINAL_AS_FOR_TARGET)
11014         instead of $<.  Don't remove ./as if it already exists.
11015
11016 2005-07-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11017
11018         PR target/21723
11019         * pa.md: Remove fcpy alternative from movhi and movqi patterns.
11020         * pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers
11021         for complex modes when generating code for PA 1.0.
11022         (VALID_FP_MODE_P): New macro.
11023         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
11024         sets for all general and floating point modes.  Align wide floating
11025         point modes to even register boundaries to comply with architectural
11026         requirements.
11027         (CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS.
11028         * pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting.
11029         (VALID_FP_MODE_P): New macro.
11030         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
11031         sets for all general and floating point modes.  Align wide floating
11032         point modes to even register boundaries to comply with architectural
11033         requirements.
11034
11035 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
11036
11037         * tree-dump.c (dump_files): Initialize dump number for .cgraph
11038         to 0.
11039
11040 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
11041
11042         * tree-ssa-structalias.c: Don't include expr.h.
11043
11044 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
11045
11046         * tree-iterator.h (TSI_NEW_STMT, TSI_SAME_STMT): Fix
11047         comments.
11048
11049 2005-07-04  Daniel Berlin  <dberlin@dberlin.org>
11050
11051         Fix PR tree-optimization/22279
11052
11053         * tree-ssa-structalias.c (offset_overlaps_with_access): Use
11054         correct operator.
11055
11056 2005-07-04  J"orn Rennecke <joern.rennecke@st.com>
11057
11058         * sh.c (output_ieee_ccmpeq): Replace "\\;" with "\n\t".
11059
11060 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
11061
11062         * bb-reorder.c, c-pch.c, c-pragma.c, c.opt, cfghooks.c, cfgloop.c,
11063         cfgrtl.c, cgraphunit.c, config/c4x/c4x.c, config/cris/cris.c,
11064         config/frv/frv.c, config/host-darwin.c, config/iq2000/iq2000.c,
11065         config/lynx.h, config/m68k/m68k.c, config/pa/pa.c, config/sh/sh.h,
11066         config/stormy16/stormy16.c, config/v850/v850.c,
11067         config/vax/netbsd-elf.h, coverage.c, dwarf2out.c, emit-rtl.c,
11068         except.c, gcc.c, tree-cfg.c, tree-eh.c, tree-ssa.c, xcoffout.c:
11069         Avoid "." or "\n" at end of diagnostics and capital letters at
11070         start of diagnostics.
11071         * combine.c, cse.c: Don't translate dump file output.
11072         * toplev.c (print_version): Only translate output if going to
11073         stderr.
11074
11075 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
11076
11077         * c-decl.c, tree-object-size.c, tree-vectorizer.c,
11078         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Fix comment
11079         typos.
11080
11081 2005-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11082
11083         * pa.c (fix_range): Fix typo in comment.
11084
11085 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
11086
11087         * tree-vrp.c (extract_range_from_assert): Replace
11088         fold (build (...)) with fold_build2.
11089
11090 2005-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11091
11092         * c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs,
11093         gcc_gfc_char_table, init_dynamic_gfc_info): New.
11094         (format_types_orig, handle_format_attribute): Add support for
11095         format "gcc_gfc".
11096
11097 2005-07-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11098
11099         * varasm.c (assemble_variable): Fix format specifier thinko.
11100
11101 2005-07-03  Ira Rosen  <irar@il.ibm.com>
11102
11103         PR tree-optimization/22029 (and 22135)
11104         * tree-pretty-print.c (dump_generic_node): Check that the node is not
11105         a phi node before calling dump_vops.
11106
11107 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11108
11109         * tree-dump.h (dump_string_field): Declare.
11110         * tree-dump.c: Use it instead of dump_string.
11111         (dump_string_field): Make non-static.
11112
11113 2005-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
11114
11115         * config/sh/sh.c (sh_output_mi_thunk): Initialize and clean
11116         up the minimal CFG stuff always when optimize > 0.  Call
11117         split_all_insns_noflow in PIC case if needed.
11118
11119 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11120             Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
11121
11122         PR c++/18279
11123         * c-decl.c (c_write_global_declarations): Dump contents of
11124         external scope to.
11125         * tree-dump.c (dequeue_and_dump): Dump abstract origin of a decl.
11126         <TRY_FINALLY_EXPR>, <RETURN_EXPR>, <CASE_LABEL_EXPR>, <LABEL_EXPR>,
11127         <GOTO_EXPR>, <SWITCH_EXPR>: Add.
11128         (dump_enabled_p): Return TRUE if PHASE is TDI_all and any dump
11129         is enabled.
11130
11131 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
11132
11133         * c-common.h (GCC_DIAG_STYLE): Define.
11134         * c-tree.h (GCC_DIAG_STYLE): Do not define.  Change minimum GCC
11135         version for format checking to 4.1.
11136         * c-format.c: Include toplev.h after c-common.h.
11137         (enum format_type): Add gcc_tdiag_format_type.
11138         (gcc_tdiag_length_specs, gcc_tdiag_flag_pairs,
11139         gcc_tdiag_flag_specs, gcc_tdiag_char_table): New.
11140         (format_types_orig): Add gcc_tdiag.
11141         (init_dynamic_diag_info): Support gcc_tdiag formats.
11142         (handle_format_attribute): Likewise.
11143         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove.
11144         (GCC_DIAG_STYLE): Default to __gcc_tdiag__.  Change minimum GCC
11145         version for format checking to 4.1.
11146         (warning0, warning, error, pedwarn, sorry): Use
11147         ATTRIBUTE_GCC_DIAG.
11148         * config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c
11149         (finish_aliases_1): Do not use %qE.
11150         * config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c,
11151         config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c:
11152         Correct format bugs.
11153         * config/v850/v850-protos.h (v850_output_aligned_bss): Change size
11154         parameter to unsigned HOST_WIDE_INT.
11155         * config/v850/v850.c (v850_output_aligned_bss): Likewise.
11156
11157 2005-07-02  David Edelsohn  <edelsohn@gnu.org>
11158
11159         PR middle-end/21742
11160         * expr.c (write_complex_part): Use adjust_address for MEM.
11161         (read_complex_part): Same.
11162
11163 2005-07-02  Daniel Berlin  <dberlin@dberlin.org>
11164
11165         Fix PR tree-optimization/22280
11166
11167         * tree-sra.c (generate_element_init): Remove useless loop.
11168
11169 2005-07-02  Richard Henderson  <rth@redhat.com>
11170
11171         * config/alpha/alpha.c (alpha_legitimize_address): Check for
11172         TLS_MODEL_NONE.
11173         (alpha_stdarg_optimize_hook): Use DECL_UID with va_list_vars.
11174
11175 2005-07-02  Andrew Pinski  <pinskia@physics.uc.edu>
11176
11177         PR middle-end/14490
11178         * fold-const.c (fold_binary): Handle the return value of
11179         fold_to_nonsharp_ineq_using_bound if we get back the same operand back.
11180         Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1".
11181
11182 2005-07-02  Jeff Law  <law@redhat.com>
11183
11184         * tree-ssa-dom.c (find_equivalent_equality_comparison): Do not
11185         a eliminate type conversion which feeds an equality comparison
11186         if the original type or either operand in the comparison is a
11187         function pointer.
11188
11189 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
11190
11191         * c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
11192         config/rs6000/rs6000.opt, params.def: Remove "." from end of help
11193         texts.
11194         * config/avr/avr.c: Do not use '`' as left quote.
11195         * config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
11196         Remove "." from end of diagnostics.  Make diagnostics start with
11197         lowercase letter.
11198
11199 2005-07-02  Zack Weinberg  <zack@codesourcery.com>
11200             Joseph S. Myers  <joseph@codesourcery.com>
11201
11202         * toplev.c (default_tree_printer): Handle setting location with
11203         '+' flag.
11204         * c-objc.common.c (c_tree_printer): Likewise.
11205         * c-format.c (gcc_diag_flag_specs): Add '+'.
11206         (gcc_cdiag_char_table): Allow '+' flag for tree formats.
11207         (format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag
11208         formats.
11209         * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c,
11210         config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c,
11211         config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c,
11212         config/v850/v850.c, function.c, stor-layout.c, toplev.c,
11213         tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag
11214         instead of %J or %H.  Use 'q' flag for quoting.  Avoid '.' at end
11215         of diagnostics.  Use %q+D not %s for a decl.  Do not pass excess
11216         format arguments where %J is used without %D.
11217
11218 2005-07-02  Jakub Jelinek  <jakub@redhat.com>
11219
11220         * gcc.c (LINK_SSP_SPEC): Define.
11221         (link_ssp_spec): New variable.
11222         (LINK_COMMAND_SPEC): Add %(link_ssp).
11223         (static_specs): Add link_ssp_spec.
11224         * configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
11225         * configure: Rebuilt.
11226         * config.in: Rebuilt.
11227
11228         * config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
11229         * config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
11230         * config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
11231         * config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
11232         * config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
11233         If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
11234         -0x7008(2) instead of reading __stack_chk_guard variable.
11235         * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
11236         number.
11237         (UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
11238         (stack_protect_set, stack_protect_test): Use *_tls* patterns
11239         if TARGET_THREAD_SSP_OFFSET is defined.
11240         (stack_tls_protect_set_si, stack_tls_protect_set_di,
11241         stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.
11242
11243         Revert:
11244         2005-06-27  Richard Henderson  <rth@redhat.com>
11245         * libgcc-std.ver (GCC_4.1.0): New.
11246         * libgcc.h (__stack_chk_guard): Declare.
11247         (__stack_chk_fail, __stack_chk_fail_local): Declare.
11248         * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
11249         * mklibgcc.in (lib2funcs): Add them.
11250
11251 2005-07-01  Richard Henderson  <rth@redhat.com>
11252
11253         * config/i386/linux-unwind.h (x86_64_fallback_frame_state): Cast to
11254         void * before struct sigcontext *.
11255         (x86_fallback_frame_state): Likewise.
11256
11257 2005-07-01  James E. Wilson  <wilson@specifixinc.com>
11258
11259         * doc/invoke.texi (-funit-at-a-time): Correct grammar in second bullet.
11260
11261 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
11262
11263         PR tree-opt/22269
11264         * tree-ssa-reassoc.c (should_transpose): Fix which operand
11265         we check for SSA_NAME for.
11266
11267 2005-07-01  Daniel Berlin  <dberlin@dberlin.org>
11268
11269         Fix PR tree-optimization/22071
11270
11271         * tree-ssa-structalias.c (offset_overlaps_with_access): New
11272         function.
11273         (get_constraint_for_component_ref): Use it.
11274
11275 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
11276
11277         PR other/22264
11278         * diagnostic.c (diagnostic_report_current_module): Use pp_newline to
11279         print out the last new line.
11280
11281 2005-07-01  Hans-Peter Nilsson  <hp@axis.se>
11282
11283         * config/cris/cris.md (CRIS_CC0_REGNUM): New constant.
11284         Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM.
11285         * config/cris/cris.c (cris_conditional_register_usage): Adjust
11286         reg_names[CRIS_CC0_REGNUM] for early CRIS versions.
11287         (cris_print_operand) <case REG>: Handle CRIS_CC0_REGNUM.
11288         (cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms.
11289         * config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro.
11290         (enum reg_class): New member CC0_REGS.
11291         (REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS.
11292         (FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
11293         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES)
11294         (CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
11295         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
11296         Adjust for register now described.
11297
11298 2005-07-01  Jakub Jelinek  <jakub@redhat.com>
11299
11300         PR target/22262
11301         * config/i386/i386.md (stack_protect_test_si,
11302         stack_protect_test_di): Add earlyclobber for scratch 3.
11303         * config/rs6000/rs6000.md (stack_protect_testsi,
11304         stack_protect_testdi): Add earlyclobber for scratch 3,
11305         remove earlyclobber from scratch 4.
11306
11307 Older entries for 2005 can be found in ChangeLog-2005.