OSDN Git Service

* varpool.c (varpool_last_needed_node): Fix comment typo.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-08-24  Tom Tromey  <tromey@redhat.com>
2
3         * varpool.c (varpool_last_needed_node): Fix comment typo.
4         * c-decl.c (duplicate_decls): Fix comment typo.
5         (clone_underlying_type): Update comment.
6
7 2007-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8
9         * config/alpha/alpha.c (alpha_mangle_type, decl_has_samegp,
10         alpha_in_small_data_p, alpha_split_complex_arg,
11         alpha_stdarg_optimize_hook, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
12         Constify.
13         * config/arm/arm-protos.h (arm_mangle_type): Likewise.
14         * config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type):
15         Likewise.
16         * config/bfin/bfin.c (funkind, bfin_comp_type_attributes,
17         TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
18         * config/darwin-protos.h (darwin_binds_local_p): Likewise.
19         * config/darwin.c (darwin_binds_local_p): Likewise.
20         * config/frv/frv.c (frv_string_begins_with, frv_in_small_data_p):
21         Likewise.
22         * config/i386/i386-protos.h (i386_pe_binds_local_p,
23         i386_pe_valid_dllimport_attribute_p): Likewise.
24         * config/i386/i386.c (ix86_function_regparm,
25         ix86_comp_type_attributes, ix86_ms_bitfield_layout_p,
26         x86_can_output_mi_thunk, ix86_mangle_type,
27         TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
28         * config/i386/winnt.c (i386_pe_valid_dllimport_attribute_p,
29         i386_pe_binds_local_p): Likewise.
30         * config/ia64/ia64.c
31         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
32         ia64_needs_block_p, ia64_in_small_data_p, ia64_mangle_type,
33         ia64_invalid_conversion, ia64_invalid_unary_op,
34         ia64_invalid_binary_op, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
35         Likewise.
36         * config/m32c/m32c.c (m32c_comp_type_attributes): Likewise.
37         * config/m32r/m32r.c (m32r_in_small_data_p): Likewise.
38         * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
39         * config/mips/mips.c (mips_use_blocks_for_constant_p,
40         mips_in_small_data_p, mips_use_anchors_for_symbol_p,
41         mips_comp_type_attributes, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
42         mips_near_type_p, mips_far_type_p, mips_global_symbol_p,
43         mips_symbol_binds_local_p, mips_classify_symbol): Likewise.
44         * config/pa/pa.c (pa_commutative_p): Likewise.
45         * config/rs6000/rs6000-protos.h (rs6000_elf_in_small_data_p):
46         Likewise.
47         * config/rs6000/rs6000.c (rs6000_invalid_within_doloop,
48         rs6000_ms_bitfield_layout_p, rs6000_mangle_type,
49         rs6000_use_blocks_for_constant_p,
50         rs6000_vector_alignment_reachable, rs6000_is_opaque_type,
51         invalid_arg_for_unprototyped_fn, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
52         TARGET_SPLIT_COMPLEX_ARG, rs6000_elf_in_small_data_p): Likewise.
53         * config/s390/s390.c (s390_mangle_type,
54         TARGET_ASM_CAN_OUTPUT_MI_THUNK, TARGET_INVALID_WITHIN_DOLOOP):
55         Likewise.
56         * config/score/score.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
57         th_in_small_data_p): Likewise.
58         * config/sh/sh.c (sh_ms_bitfield_layout_p,
59         sh_dwarf_calling_convention, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
60         Likewise.
61         * config/sparc/sparc.c (sparc_can_output_mi_thunk,
62         sparc_mangle_type): Likewise.
63         * config/spu/spu.c (spu_vector_alignment_reachable): Likewise.
64         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): Likewise.
65         * emit-rtl.c (const_fixed_htab_hash, const_fixed_htab_eq):
66         Likewise.
67         * hooks.c (hook_bool_mode_const_rtx_false,
68         hook_bool_mode_const_rtx_true,
69         hook_bool_const_tree_hwi_hwi_const_tree_false,
70         hook_bool_const_tree_hwi_hwi_const_tree_true,
71         hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
72         hook_constcharptr_const_tree_null,
73         hook_constcharptr_const_rtx_null,
74         hook_constcharptr_const_tree_const_tree_null,
75         hook_constcharptr_int_const_tree_null,
76         hook_constcharptr_int_const_tree_const_tree_null): New.
77         (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
78         hook_bool_tree_hwi_hwi_tree_false,
79         hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
80         hook_int_tree_tree_1, hook_constcharptr_tree_null,
81         hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
82         hook_constcharptr_int_tree_null,
83         hook_constcharptr_int_tree_tree_null): Delete.
84         (default_can_output_mi_thunk_no_vcall): Constify.
85         * hooks.h (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
86         hook_bool_tree_hwi_hwi_tree_false,
87         hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
88         hook_int_tree_tree_1, hook_constcharptr_tree_null,
89         hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
90         hook_constcharptr_int_tree_null,
91         hook_constcharptr_int_tree_tree_null): Delete.
92         (hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
93         hook_bool_const_tree_hwi_hwi_const_tree_false,
94         hook_bool_const_tree_hwi_hwi_const_tree_true,
95         hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
96         hook_constcharptr_const_tree_null,
97         hook_constcharptr_const_rtx_null,
98         hook_constcharptr_const_tree_const_tree_null,
99         hook_constcharptr_int_const_tree_null,
100         hook_constcharptr_int_const_tree_const_tree_null): New.
101         (default_can_output_mi_thunk_no_vcall): Constify.
102         * integrate.c (function_attribute_inlinable_p): Likewise.
103         * integrate.h (function_attribute_inlinable_p): Likewise.
104         * jump.c (rtx_renumbered_equal_p): Likewise.
105         * output.h (decl_readonly_section, categorize_decl_for_section,
106         default_use_anchors_for_symbol_p, default_binds_local_p,
107         default_binds_local_p_1): Likewise.
108         * rtl.h (rtx_renumbered_equal_p, decl_default_tls_model):
109         Likewise.
110         * target-def.h (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
111         TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, TARGET_VECTOR_OPAQUE_P,
112         TARGET_COMMUTATIVE_P, TARGET_USE_BLOCKS_FOR_CONSTANT_P,
113         TARGET_COMP_TYPE_ATTRIBUTES,
114         TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P,
115         TARGET_MS_BITFIELD_LAYOUT_P, TARGET_MANGLE_TYPE,
116         TARGET_IN_SMALL_DATA_P, TARGET_INVALID_CONVERSION,
117         TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
118         TARGET_DWARF_CALLING_CONVENTION): Likewise.
119         * target.h (can_output_mi_thunk, needs_block_p,
120         first_cycle_multipass_dfa_lookahead_guard_spec,
121         vector_alignment_reachable, comp_type_attributes,
122         function_attribute_inlinable_p, ms_bitfield_layout_p, mangle_type,
123         commutative_p, use_blocks_for_constant_p,
124         use_anchors_for_symbol_p, in_small_data_p, binds_local_p,
125         vector_opaque_p, dwarf_calling_convention, stdarg_optimize_hook,
126         invalid_within_doloop, valid_dllimport_attribute_p,
127         split_complex_arg, invalid_arg_for_unprototyped_fn,
128         invalid_conversion, invalid_unary_op, invalid_binary_op):
129         Likewise.
130         * targhooks.c (default_invalid_within_doloop,
131         hook_invalid_arg_for_unprototyped_fn,
132         default_builtin_vector_alignment_reachable): Likewise.
133         (hook_bool_rtx_commutative_p): Delete.
134         (hook_bool_const_rtx_commutative_p): New.
135         * targhooks.h (default_invalid_within_doloop,
136         default_builtin_vector_alignment_reachable,
137         hook_invalid_arg_for_unprototyped_fn): Constify.
138         (hook_bool_rtx_commutative_p): Delete.
139         (hook_bool_const_rtx_commutative_p): New.
140         * varasm.c (bss_initializer_p, decl_default_tls_model,
141         categorize_decl_for_section, decl_readonly_section,
142         default_use_anchors_for_symbol_p, default_binds_local_p,
143         default_binds_local_p_1): Constify.
144
145 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
146
147         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
148         __NO_BUILTIN if -fno-builtin.
149
150 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
151
152         * config/bfin/bfin.c (print_operand): Report error instead of
153         ICE for wrong operand.
154
155 2007-08-24  Michael Matz  <matz@suse.de>
156
157         * Makefile.in (GTFILES_H): Use $(patsubst) instead of $(subst).
158
159 2007-08-24  Richard Guenther  <rguenther@suse.de>
160
161         PR middle-end/33166
162         * tree-ssa.c (useless_type_conversion_p): Split into a
163         recursive and a non-recursive part.
164         (useless_type_conversion_p_1): New function.
165         * tree-ssa-ccp.c (fold_stmt_r): Make sure that the result
166         from maybe_fold_offset_to_reference is trivially convertible
167         to the desired type before doing the simplification.
168
169 2007-08-24  Jakub Jelinek  <jakub@redhat.com>
170
171         * expr.c (store_expr): Optimize initialization of an array
172         with STRING_CST.
173         * expr.h (builtin_strncpy_read_str): New prototype.
174         * builtins.c (builtin_strncpy_read_str): Remove prototype.
175         No longer static.
176
177 2007-08-24  Uros Bizjak  <ubizjak@gmail.com>
178
179         PR middle-end/33157
180         * ifcvt.c (noce_find_if_block): Do not clear if_info.cond_earliest
181         field when initializing if_info structure.
182
183 2007-08-24  Richard Guenther  <rguenther@suse.de>
184
185         * Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H)
186         dependencies.
187         * c-objc-common.c (c_cannot_inline_tree_fn): Remove.
188         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Likewise.
189         * tree-inline.c (inlinable_function_p): Fold in common parts of
190         the cannot_inline_tree_fn langhook.
191         * langhooks-def.h (lhd_tree_inlining_cannot_inline_tree_fn): Remove.
192         (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): Likewise.
193         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
194         cannot_inline_tree_fn langhook.
195         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
196         cannot_inline_tree_fn member.
197
198 2007-08-24  Richard Guenther  <rguenther@suse.de>
199
200         * expr.c (get_inner_reference): Do computation of bitoffset
201         from offset in a way we can detect overflow reliably.
202
203 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
204
205         * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define for uClibc.
206
207 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
208
209         * config/bfin/bfin.opt (mfast-fp): Add.
210         * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Let
211         libbffastfp override libgcc if -mfast-fp.
212         * config/bfin/bfin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
213         * doc/invoke.texi (Option Summary): Mention -mfast-fp.
214         (Blackfin Options): Document -mfast-fp.
215
216 2007-08-24  Jakub Jelinek  <jakub@redhat.com>
217
218         PR tree-optimization/32573
219         PR middle-end/32946
220         * tree-data-ref.c (initialize_data_dependence_relation): Clear
221         DDR_SUBSCRIPTS, DDR_DIR_VECTS and DDR_DIST_VECTS at the beginning.
222         (finalize_ddr_dependent): Clear DDR_SUBSCRIPTS after freeing it.
223         (build_classic_dist_vector): Return false rather than true if
224         DDR_ARE_DEPENDENT is non-NULL at the beginning.  Return false
225         if either subscript_dependence_tester_1 or build_classic_dist_vector_1
226         returned false.  Don't call save_dist_v before calling
227         build_classic_dist_vector_1.
228         (free_dependence_relation): Don't guard freeing DDR_SUBSCRIPTS
229         with NULL DDR_ARE_DEPENDENT.  Also free DDR_DIST_VECTS and/or
230         DDR_DIR_VECTS vectors.
231
232 2007-08-23  Brian Sidebotham  <brian.sidebotham@gmail.com>
233
234         * configure.ac (leb128): Modify sed statement to work with any binutils
235         version string.
236         * configure: Regenerate
237
238 2007-08-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
239
240         * config/arc/arc-protos.h arc_select_cc_mode, gen_compare_reg):
241         Wrap in RTX_CODE macro guard.
242         * config/arm/pe.c (arm_dllexport_p, arm_dllimport_p,
243         arm_dllexport_name_p, arm_dllimport_name_p, arm_mark_dllexport,
244         arm_mark_dllimport, arm_pe_encode_section_info,
245         arm_pe_unique_section): Use ISO-C function declarations.
246         * config/c4x/c4x-c.c (c4x_parse_pragma, c4x_pr_CODE_SECTION,
247         c4x_pr_DATA_SECTION, c4x_pr_FUNC_IS_PURE,
248         c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, c4x_pr_ignored):
249         Likewise.
250         * config/iq2000/iq2000.h (ASM_OUTPUT_SKIP): Fix format warning.
251         * config/m68hc11/m68hc11.h (ASM_OUTPUT_EXTERNAL): Undef before
252         defining.
253         * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Fix format
254         warnings.
255         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Likewise.
256         * config/pdp11/pdp11.c (pdp11_output_function_epilogue): Likewise.
257         (register_move_cost): Use ISO-C function declarations.
258         * config/pdp11/pdp11.h (PRINT_OPERAND): Fix format warnings.
259         * config/score/score-protos.h (score_declare_object): Add
260         ATTRIBUTE_PRINTF_4.
261         * config/score/score.h (ASM_DECLARE_OBJECT_NAME): Fix format
262         warnings.
263         * final.c (profile_function): Avoid empty if-bodies.
264         
265         
266         * calls.c (must_pass_in_stack_var_size,
267         must_pass_in_stack_var_size_or_pad): Constify.
268         * config/alpha/alpha-protos.h (function_value): Likewise.
269         * config/alpha/alpha.c (alpha_return_in_memory,
270         alpha_pass_by_reference, function_value,
271         unicosmk_must_pass_in_stack, TARGET_PROMOTE_FUNCTION_ARGS,
272         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
273         Likewise.
274         * config/arc/arc.c (arc_return_in_memory, arc_pass_by_reference,
275         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
276         TARGET_PROMOTE_PROTOTYPES): Likewise.
277         * config/arm/arm-protos.h (arm_return_in_memory,
278         arm_pad_arg_upward, arm_function_value): Likewise.
279         * config/arm/arm.c (arm_pass_by_reference,
280         arm_promote_prototypes, arm_return_in_msb, arm_must_pass_in_stack,
281         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
282         arm_function_value, arm_return_in_memory, arm_pad_arg_upward):
283         Likewise.
284         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
285         * config/avr/avr-protos.h (avr_function_value): Likewise.
286         * config/avr/avr.c (avr_return_in_memory,
287         gas_output_limited_string, gas_output_ascii, avr_function_value,
288         avr_return_in_memory): Likewise.
289         * config/bfin/bfin-protos.h (bfin_return_in_memory): Likewise.
290         * config/bfin/bfin.c (bfin_pass_by_reference,
291         bfin_return_in_memory, TARGET_PROMOTE_PROTOTYPES,
292         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN):
293         Likewise.
294         * config/cris/cris.c (cris_pass_by_reference,
295         TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
296         * config/crx/crx.c (crx_return_in_memory): Likewise.
297         * config/darwin.c (function_base, machopic_function_base_name):
298         Likewise.
299         * config/fr30/fr30.c (fr30_must_pass_in_stack,
300         TARGET_PROMOTE_PROTOTYPES): Likewise.
301         * config/frv/frv.c (frv_must_pass_in_stack): Likewise.
302         * config/h8300/h8300.c (h8300_return_in_memory): Likewise.
303         * config/i386/i386-protos.h (ix86_return_in_memory,
304         ix86_sol10_return_in_memory): Likewise.
305         * config/i386/i386.c (ix86_function_value,
306         ix86_function_sseregparm, ix86_must_pass_in_stack,
307         type_natural_mode, classify_argument, examine_argument,
308         construct_container, ix86_pass_by_reference, function_value_32,
309         function_value_64, ix86_function_value_1, return_in_memory_32,
310         return_in_memory_64, return_in_memory_ms_64,
311         ix86_return_in_memory, ix86_sol10_return_in_memory,
312         TARGET_PROMOTE_PROTOTYPES): Likewise.
313         * config/ia64/ia64-protos.h (ia64_function_value,
314         ia64_hpux_function_arg_padding): Likewise.
315         * config/ia64/ia64.c (hfa_element_mode, ia64_return_in_memory,
316         ia64_function_value, bundle_state_hash, bundle_state_eq_p,
317         ia64_hpux_function_arg_padding): Likewise.
318         * config/iq2000/iq2000-protos.h (function_arg,
319         iq2000_function_value): Likewise.
320         * config/iq2000/iq2000.c (iq2000_return_in_memory,
321         iq2000_pass_by_reference, TARGET_PROMOTE_FUNCTION_ARGS,
322         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
323         function_arg, iq2000_function_value): Likewise.
324         * config/m32c/m32c-protos.h (m32c_function_value,
325         m32c_promote_function_return): Likewise.
326         * config/m32c/m32c.c (m32c_pass_by_reference,
327         m32c_promote_prototypes, m32c_promote_function_return,
328         m32c_function_value): Likewise.
329         * config/m32r/m32r.c (m32r_return_in_memory,
330         m32r_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
331         m32r_in_small_data_p): Likewise.
332         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg_padding):
333         Likewise.
334         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory,
335         m68hc11_function_arg_padding): Likewise.
336         * config/m68k/m68k-protos.h (m68k_function_value): Likewise.
337         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES,
338         m68k_function_value): Likewise.
339         * config/mcore/mcore-protos.h (mcore_num_arg_regs,
340         mcore_function_value): Likewise.
341         * config/mcore/mcore.c (handle_structs_in_regs,
342         mcore_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
343         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
344         mcore_num_arg_regs, mcore_function_value): Likewise.
345         * config/mips/mips-protos.h (mips_pad_arg_upward,
346         mips_function_value): Likewise.
347         * config/mips/mips.c (mips_fpr_return_fields, mips_return_in_msb,
348         mips_return_in_memory, mips_pass_by_reference, mips_callee_copies,
349         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
350         TARGET_PROMOTE_PROTOTYPES, mips_pad_arg_upward,
351         mips_function_value): Likewise.
352         * config/mmix/mmix-protos.h (mmix_function_outgoing_value):
353         Likewise.
354         * config/mmix/mmix.c (mmix_pass_by_reference,
355         TARGET_PROMOTE_FUNCTION_ARGS, mmix_function_outgoing_value,
356         mmix_encode_section_info): Likewise.
357         * config/mn10300/mn10300-protos.h (mn10300_function_value):
358         Likewise.
359         * config/mn10300/mn10300.c (mn10300_return_in_memory,
360         mn10300_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
361         mn10300_function_value): Likewise.
362         * config/mt/mt-protos.h (mt_function_value): Likewise.
363         * config/mt/mt.c (mt_pass_by_reference, mt_function_value,
364         mt_pass_in_stack, TARGET_PROMOTE_PROTOTYPES): Likewise.
365         * config/pa/pa-protos.h (function_arg_padding, function_value,
366         pa_return_in_memory): Likewise.
367         * config/pa/pa.c (pa_pass_by_reference,
368         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
369         function_arg_padding, function_value, pa_return_in_memory):
370         Likewise.
371         * config/pdp11/pdp11.c (pdp11_return_in_memory): Likewise.
372         * config/rs6000/rs6000-protos.h (rs6000_function_value,
373         function_arg_padding): Likewise.
374         * config/rs6000/rs6000.c (rs6000_return_in_memory,
375         rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
376         rs6000_pass_by_reference, rs6000_must_pass_in_stack,
377         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
378         function_arg_padding, altivec_expand_dst_builtin,
379         altivec_expand_builtin, rs6000_expand_builtin, spe_init_builtins,
380         altivec_init_builtins, rs6000_common_init_builtins,
381         rs6000_function_value): Likewise.
382         * s390/s390-protos.h (s390_function_value): Likewise.
383         * config/s390/s390.c (s390_function_arg_size,
384         s390_pass_by_reference, s390_return_in_memory,
385         s390_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
386         TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
387         * config/score/score-protos.h (score_function_value): Likewise.
388         * config/score/score.c (score_arg_partial_bytes,
389         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
390         TARGET_PROMOTE_PROTOTYPES, score_return_in_memory,
391         score_pass_by_reference, score_add_offset, score_function_value):
392         Likewise.
393         * config/sh/sh-protos.h (sh_attr_renesas_p,
394         sh_promote_prototypes): Likewise.
395         * config/sh/sh.c (sh_return_in_memory, sh_pass_by_reference,
396         sh_callee_copies, sh_promote_prototypes, shcompact_byref,
397         sh_attr_renesas_p): Likewise.
398         * config/sparc/sparc-protos.h (function_value,
399         function_arg_padding): Likewise.
400         * config/sparc/sparc.c (sparc_promote_prototypes,
401         sparc_return_in_memory, sparc_pass_by_reference,
402         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
403         function_arg_record_value_2, function_arg_record_value_1,
404         function_arg_record_value, function_arg_record_value,
405         function_arg_padding, function_value): Likewise.
406         * config/spu/spu-protos.h (spu_function_value): Likewise.
407         * config/spu/spu.c (spu_pass_by_reference, spu_return_in_memory,
408         spu_function_value): Likewise.
409         * config/stormy16/stormy16-protos.h (xstormy16_function_value):
410         Likewise.
411         * config/stormy16/stormy16.c (xstormy16_return_in_memory,
412         xstormy16_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
413         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
414         Likewise.
415         * config/v850/v850.c (v850_return_in_memory,
416         v850_pass_by_reference, TARGET_PROMOTE_PROTOTYPES): Likewise.
417         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): Likewise.
418         * config/xtensa/xtensa.c (xtensa_return_in_msb,
419         xtensa_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
420         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
421         Likewise.
422         * explow.c (promote_mode, hard_function_value): Likewise.
423         * expr.h (hard_function_value, promote_mode): Likewise.
424         * function.c (aggregate_value_p): Likewise.
425         * hooks.c (hook_bool_const_tree_true): New.
426         * hooks.h (hook_bool_const_tree_true): New.
427         * sdbout.c (SET_KNOWN_TYPE_TAG, plain_type_1): Constify.
428         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
429         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
430         TARGET_RETURN_IN_MSB): Likewise.
431         * target.h (promote_function_args, promote_function_return,
432         promote_prototypes, return_in_memory, return_in_msb,
433         pass_by_reference, must_pass_in_stack, callee_copies,
434         function_value): Likewise.
435         * targhooks.c (default_return_in_memory,
436         hook_pass_by_reference_must_pass_in_stack,
437         hook_callee_copies_named,
438         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
439         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
440         default_function_value): Likewise. 
441         * targhooks.h (default_return_in_memory,
442         hook_pass_by_reference_must_pass_in_stack,
443         hook_callee_copies_named,
444         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
445         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
446         default_function_value): Likewise.
447         * tree-ssa-structalias.c (const_equiv_class_label_t): New.
448         (equiv_class_label_hash, equiv_class_label_eq): Constify.
449         * tree-vectorizer.c (bb_in_loop_p): Likewise.
450         * tree.c (needs_to_live_in_memory): Likewise.
451         * tree.h (struct tree_type, needs_to_live_in_memory,
452         aggregate_value_p, must_pass_in_stack_var_size,
453         must_pass_in_stack_var_size_or_pad): Likewise.
454         * vmsdbgout.c (write_debug_addr, write_debug_delta4,
455         write_debug_string, ASM_OUTPUT_DEBUG_STRING, write_rtnbeg,
456         lookup_filename): Likewise.
457
458 2007-08-23  Uros Bizjak  <ubizjak@gmail.com>
459
460         PR target/17390
461         * config/i386/i386.c (ix86_expand_fp_compare): Expand fp comparison to
462         fake fcomi i387 instruction for !TARGET_CMOVE.
463         (ix86_expand_branch): Expand natural sequence with one jump for
464         all targets, not only TARGET_CMOVE.
465         * config/i386/i386.md (*cmpfp_0_cc): New define_insn_and_split
466         pattern to implement fake fcomi sequence.  Split instruction after
467         reload to correct compare sequences.
468         (*cmpfp_xf_cc): Ditto.
469         (*cmpfp_<mode>_cc): Ditto.
470         (*cmpfp_u_cc): Ditto.
471         (*cmpfp_<mode>_cc): Ditto.
472
473 2007-08-23  Richard Guenther  <rguenther@suse.de>
474
475         * tree-pretty-print.c (dump_generic_node): Annotate
476         GIMPLE_MODIFY_STMTs with volatile ops with "{v}".
477
478 2007-08-23  Richard Guenther  <rguenther@suse.de>
479
480         * builtins.c (expand_builtin_mathfn): Wrap argument in
481         save_expr directly instead of re-building the call.
482         (expand_builtin_mathfn_2): Likewise.
483         (expand_builtin_mathfn_3): Likewise.
484         (expand_builtin_interclass_mathfn): Likewise.
485         (expand_builtin_int_roundingfn): Set arg.
486         (expand_builtin_int_roundingfn_2): Likewise.
487
488 2007-08-23  Paolo Bonzini  <bonzini@gnu.org>
489
490         * config/i386/sse.md (*sse_and<mode>3, *sse_ior<mode>3,
491         *sse_nand<mode>3, *sse_xor<mode>3): New.
492
493 2007-08-23  Uros Bizjak  <ubizjak@gmail.com>
494
495         * config/i386/i386.h (PRINT_OPERAND_PUNCT_VALID_P): Add ';' code.
496         * config/i386/i386.c (print_operand): Handle ';' code.  Output
497         semicolon for TARGET_MACHO.
498         * config/i386/sync.md (*sync_compare_and_swap<mode>): Use '%;' to
499         emit semicolon after 'lock' prefix.
500         (sync_double_compare_and_swap<mode>): Ditto.
501         (*sync_double_compare_and_swapdi_pic): Ditto.
502         (*sync_compare_and_swap_cc<mode>): Ditto.
503         (sync_double_compare_and_swap_cc<mode>): Ditto.
504         (*sync_double_compare_and_swap_ccdi_pic): Ditto.
505         (sync_old_add<mode>): Ditto.
506         (sync_add<mode>): Ditto.
507         (sync_sub<mode>): Ditto.
508         (sync_ior<mode>): Ditto.
509         (sync_and<mode>): Ditto.
510         (sync_xor<mode>): Ditto.
511
512 2007-08-22  Chao-ying Fu  <fu@mips.com>
513
514         * rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes
515         in DEF_RTL_EXPR.
516         (copy_rtx): Handle CONST_FIXED.
517         (rtx_equal_p): Likewise.
518         * rtl.h (fixed_value.h): New include.
519         (rtx_def): Add a new field of fixed_value to u.
520         (XCNMPFV): Define for accessing fixed_value.
521         (CONST_FIXED_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW):
522         Define.
523         * rtl.def (CONST_FIXED): New constant.
524         (SS_MULT, US_MULT, SS_DIV, US_DIV, FRACT_CONVERT,
525         UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, US_NEG,
526         US_ASHIFT): New codes.
527         * doc/rtl.texi (Expressions): Document const_fixed, us_neg, ss_mult,
528         us_mult, ss_div, us_div, us_ashift, fract_convert, sat_fract,
529         unsigned_fract_convert, unsigned_sat_fract): Document them.
530         * varasm.c (assemble_integer): Extend to support fixed-point constants
531         by using different machine classes.
532         (decode_addr_const): Handle FIXED_CST.
533         (const_hash_1): Likewise.
534         (compare_constant): Likewise.
535         (copy_constant): Likewise.
536         (const_rtx_hash_1): Handle CONST_FIXED.
537         (output_constant_pool_2): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
538         MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
539         MODE_VECTOR_UACCUM.
540         (initializer_constant_valid_p): Handle FIXED_CST.
541         (output_constant): Support FIXED_POINT_TYPE.
542         * gengenrtl.c (excluded_rtx): Check CONST_FIXED to exclude.
543         * cse.c (hash_rtx): Support CONST_FIXED.
544         (exp_equiv_p): Likewise.
545         (cannon_reg): Likewise.
546         (fold_rtx): Likewise.
547         (equiv_constant): Likewise.
548         (cse_process_notes_1): Likewise.
549         (count_reg_usage): Likewise.
550         * cselib.c (entry_and_rtx_equal_p): Check CONST_FIXED.
551         (rtx_equal_for_cselib_p): Handle CONST_FIXED.
552         (wrap_constant): Check CONST_FIXED.
553         (cselib_hash_rtx): Support CONST_FIXED.
554         (cselib_subst_to_values): Likewise.
555         * df-scan.c (df_uses_record): Likewise.
556         * gcse.c (want_to_gcse_p): Likewise.
557         (oprs_unchanged_p): Likewise.
558         (oprs_not_set_p): Likewise.
559         (compute_transp): Likewise.
560         (extract_mentioned_regs_helper): Likewise.
561         * genemit.c (gen_exp): Likewise.
562         * local-alloc.c (equiv_init_varies_p): Likewise.
563         (contains_replace_regs): Likewise.
564         (memref_referenced_p): Likewise.
565         * loop-invariant.c (check_maybe_invariant): Likewise.
566         (hash_invariant_expr_1): Likewise.
567         (invariant_expr_equal_p): Likewise.
568         * postreload-gcse.c (oprs_unchanged_p): Likewise.
569         * regclass.c (reg_scan_mark_refs): Likewise.
570         * regrename.c (scan_rtx): Likewise.
571         * resource.c (mark_referenced_resources): Likewise.
572         (mark_set_resources): Likewise.
573         * rtlanal.c (rtx_unstable_p): Likewise.
574         (rtx_varies_p): Likewise.
575         (count_occurrences): Likewise.
576         (reg_mentioned_p): Likewise.
577         (modified_between_p): Likewise.
578         (modified_in_p): Likewise.
579         (volatile_insn_p): Likewise.
580         (volatile_refs_p): Likewise.
581         (side_effects_p): Likewise.
582         (may_trap_p_1): Likewise.
583         (inequality_comparisons_p): Likewise.
584         (computed_jump_p_1): Likewise.
585         (commutative_operand_precedence): Likewise.
586         * sched-deps.c (sched_analyze_2): Likewise.
587         * sched-vis.c (print_value): Likewise.
588         * reload.c (operands_match_p): Likewise.
589         (subst_reg_equivs): Likewise.
590         * reload1.c (eliminate_regs_1): Likewise.
591         (elimination_effects): Likewise.
592         (scan_paradoxical_subregs): Likewise.
593         * alias.c (rtx_equal_for_memref_p): Likewise.
594         * Makefile.in (RTL_BASE_H): Add fixed-value.h.
595         * emit-rtl.c (const_fixed_htab): New hash table.
596         (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed):
597         Declare.
598         (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed,
599         const_fixed_from_fixed_value): New functions.
600         (verify_rtx_sharing): Handle CONST_FIXED.
601         (copy_rtx_if_shared_1): Likewise.
602         (reset_used_flags): Likewise.
603         (set_used_flags): Likewise.
604         (copy_insn_1): Likewise.
605         (init_emit_once): Create const_fixed_htab.
606         Store fixed-point scalar and vector zero and one to const_tiny_rtx.
607
608 2007-08-22  Zdenek Dvorak  <ook@ucw.cz>
609
610         PR tree-optimization/32949
611         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Test nowrap_type_p
612         before failing for ivs with non-constant step.
613
614 2007-08-22  Hans-Peter Nilsson  <hp@axis.com>
615
616         * doc/md.texi (Iterators): Renamed from Macros.  All contents
617         changed to reflect rename of respectively define_code_macro and
618         define_mode_macro to define_code_iterator and define_mode_iterator.
619         (Mode Iterators, Code Iterators): Similar.
620         * read-rtl.c (struct iterator_group, struct iterator_traverse_data)
621         (uses_mode_iterator_p, apply_mode_iterator, uses_code_iterator_p)
622         (apply_iterator_to_string, uses_iterator_p, apply_iterator_traverse)
623         (initialize_iterators, find_iterator, check_code_iterator)
624         (map_attr_string, apply_mode_maps, apply_iterator_to_rtx, add_mapping)
625         (read_mapping, read_rtx_1): Similar.
626         * config/alpha/sync.md, config/alpha/alpha.md, config/frv/frv.md,
627         config/s390/s390.md, config/m32c/blkmov.md, config/m32c/m32c.md,
628         config/spu/spu.md, config/sparc/sparc.md, config/sparc/sync.md,
629         config/i386/i386.md, config/i386/mmx.md, config/i386/sse.md,
630         config/i386/sync.md, config/crx/crx.md, config/xtensa/xtensa.md,
631         config/cris/cris.c, config/cris/cris.md, config/ia64/sync.md,
632         config/ia64/div.md, config/ia64/vect.md, config/ia64/ia64.md,
633         config/m68k/m68k.md, config/rs6000/spe.md, config/rs6000/altivec.md,
634         config/rs6000/sync.md, config/rs6000/rs6000.md,
635         config/arm/vec-common.md, config/arm/neon.md, config/arm/iwmmxt.md,
636         config/arm/arm.md, config/mips/mips-dsp.md, config/mips/mips.md,
637         config/vax/vax.md, config/bfin/bfin.md: Similar.
638
639 2007-08-22  David Daney  <ddaney@avtrex.com>
640
641         * doc/install.texi (Testing): Mention testing on a simulator.
642
643 2007-08-22  Janis Johnson  <janis187@us.ibm.com>
644
645         * config/dfp-bit.c (DFP_TO_DFP): Check for overflow.
646
647         * doc/libgcc.texi (Decimal float library routines): Fix formatting
648         and rearrange floating point conversion functions into different
649         categories.
650
651 2007-08-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
652
653         * target.h (struct gcc_target.sched: dfa_pre_advance_cycle,
654         dfa_post_advance_cycle): New scheduler hooks.
655         * target-def.h (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
656         TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): New macros to initialize
657         new hooks.
658         (TARGET_SCHED): Use them.
659         * doc/tm.texi (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
660         TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Document new hooks.
661         * haifa-sched.c (advance_one_cycle): Invoke new hooks.
662
663         * genautomata.c (insn_has_dfa_reservation_p): New DFA interface
664         function to facilitate debugging.
665         (INSN_HAS_DFA_RESERVATION_P_FUNC_NAME): New macro.
666         (output_insn_has_dfa_reservation_p): New static function to output
667         insn_has_dfa_reservation_p ().
668         (write_automata): Use it.
669         * genattr.c (main): Output declaration for
670         insn_has_dfa_reservation_p ().
671
672 2007-08-22  Christian Bruel  <christian.bruel@st.com>   
673             Richard Guenther <rguenther@suse.de>
674         
675         * fold-const.c (fold_binary): Optimize A-A if -ffinite-math-only.
676         * simplify_rtx (simplify_binary_operation_1): Likewise.
677                 
678 2007-08-22  Rask Ingemann Lambertsen  <rask@sygehus.dk>
679
680         PR rtl-optimization/32557
681         * df-problems.c (df_note_bb_compute): Use mws->start_regno instead
682         of REGNO (mws->mw_reg).
683
684 2007-08-22  Richard Guenther  <rguenther@suse.de>
685
686         PR middle-end/33007
687         * builtins.c (expand_builtin_int_roundingfn): Replace call
688         argument wrapped with SAVE_EXPR directly.
689         (expand_builtin_int_roundingfn_2): Likewise.
690
691 2007-08-22  Richard Guenther  <rguenther@suse.de>
692
693         * tree-inline.c (inlinable_function_p): Restore disregarding
694         inline limits for GNU extern inline functions.
695
696 2007-08-22  Richard Guenther  <rguenther@suse.de>
697
698         PR middle-end/32563
699         * tree.c (host_integerp): Treat sizetype as signed as it is
700         sign-extended.
701
702 2007-08-21  Ian Lance Taylor  <iant@google.com>
703
704         PR tree-optimization/33134
705         * tree-vrp.c (adjust_range_with_scev): Call
706         set_value_range_to_value.
707
708 2007-08-21  Aldy Hernandez  <aldyh@redhat.com>
709
710         * value-prof.h (gimple_remove_histogram_value): Remove duplicate
711         prototype.
712         
713 2007-08-21  Aldy Hernandez  <aldyh@redhat.com>
714
715         * tree-flow-inline.h (next_imm_use_stmt): Remove unecessary
716         whitespace.
717
718 2007-08-21  Nathan Froyd  <froydnj@codesourcery.com>
719
720         * config/rs6000/rs6000.c (expand_block_clear): Add TARGET_SPE
721         cases to set eight bytes at a time.
722         (expand_block_move): Likewise.
723         
724 2007-08-21  Jakub Jelinek  <jakub@redhat.com>
725
726         PR debug/32610
727         * dwarf2out.c (gen_decl_die): Don't call
728         gen_tagged_type_instantiation_die if decl doesn't have tagged type.
729
730 2007-08-21  Paul Brook  <paul@codesourcery.com>
731             Nathan Sidwell  <nathan@codesourcery.com>
732             Mark Mitchell  <mark@codesourcery.com>
733             Joseph Myers  <joseph@codesourcery.com>
734
735         * configure.ac: Add --with-pkgversion and --with-bugurl.
736         * configure: Regenerate.
737         * doc/install.texi: Document them.
738         * version.c (version_string): Remove VERSUFFIX.
739         (VERSUFFIX): Remove.
740         (pkgversion_string): New.
741         (bug_report_url): Do not hard-code initializer.
742         * version.h (pkgversion_string): Declare.
743         * Makefile.in (PKGVERSION_s, BUGURL_s, PKGVERSION, BUGURL_TEXI):
744         Define.
745         (version.o): Define PKGVERSION and BUGURL.
746         (gcc-vers.texi): Define VERSION_PACKAGE and BUGURL.
747         (%.pod): Define BUGURL.
748         * gcc.c (process_command, main): Use pkgversion_string.
749         * toplev.c (compile_file, print_version): Likewise.
750         * protoize.c (main): Likewise.
751         * gcov.c (print_version): Likewise.  Update copyright date.
752         * gcov-dump.c (print_version): Likewise.  Update copyright date.
753         * mips-tdump.c (main): Likewise.  Update copyright date.
754         * mips-tfile.c (main): Likewise.  Update copyright date.
755         * doc/include/gcc-common.texi: Include VERSION_PACKAGE as subtitle.
756         * doc/bugreport.texi: Use BUGURL for bug-reporting instructions;
757         shorten description.
758         * doc/gcc.texi: Include VERSION_PACKAGE in version description.
759         * doc/gccint.texi: Likewise.
760         * doc/invoke.texi: Use BUGURL for bug-reporting instructions.
761         Update copyright date.
762
763 2007-08-21  Uros Bizjak  <ubizjak@gmail.com>
764
765         * config/i386/i386.c (ix86_expand_clear): Use FLAGS_REG.
766         (ix86_expand_strlensi_unroll_1): Ditto.
767         (ix86_expand_branch): Use FLAGS_REG and FPSR_REG.
768         (ix86_expand_carry_flag_compare): Update comment.
769
770 2007-08-21  Jakub Jelinek  <jakub@redhat.com>
771
772         PR middle-end/32912
773         * fold-const.c (fold_unary): Optimize BIT_NOT_EXPR of VECTOR_CST.
774         (fold_binary): Handle vectors in X | ~X and X ^ ~X optimizations.
775
776 2007-08-21  Richard Guenther  <rguenther@suse.de>
777
778         * fold-const.c (fold_binary): Revert removing of index +p PTR folding.
779
780 2007-08-21  Richard Guenther  <rguenther@suse.de>
781
782         PR middle-end/33122
783         * fold-const.c (fold_binary): Remove index +p PTR folding.
784         Fix types of POINTER_PLUS_EXPR generated by folding of
785         (PTR +p B) +p A.
786
787 2007-08-20  Chao-ying Fu  <fu@mips.com>
788
789         * c-common.h (enum rid): Add new enumeration values of RID_SAT,
790         RID_FRACT, and RID_ACCUM.  RID_SAT needs to be inserted before
791         RID_ONEWAY, so that it can be checked in declspecs_add_type.
792         (c_common_fixed_point_type_for_size): Declare.
793         * c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
794         (c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
795         (c_token_starts_declspecs): Likewise.
796         (c_parser_declspecs): Likewise.
797         (c_parser_attributes): Likewise.
798         * c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
799         (c_declspecs): Add saturating_p.
800         * c-decl.c (build_null_declspecs): Initialize saturating_p.
801         (declspecs_add_type): Avoid using complex with _Fract, _Accum, or
802         _Sat.  Handle RID_SAT.
803         Avoid using void, bool, char, int, float, double, _Decimal32,
804         _Decimal64, _Decimal128, and complex with _Sat.
805         Handle RID_FRACT and RID_ACCUM.
806         Make sure _Sat is used with _Fract or _Accum.
807         (finish_declspecs): Handle cts_fract and cts_accum.
808         * c-common.c (fixed-value.h): New include.
809         (constant_expression_warning): Handle FIXED_CST.
810         (overflow_warning): Likewise.
811         (warnings_for_convert_and_check): Likewise.
812         (c_common_fixed_point_type_for_size): New.
813         (c_common_type_for_mode): Handle fixed-point modes to
814         return various saturating/non-saturating, signed/unsigned types.
815         (c_common_signed_or_unsigned_type): Support fixed-point types.
816         (shorten_compare): Check fixed-point zero.
817         Handle FIXED_POINT_TYPE.
818         (c_common_truthvalue_conversion): Handle FIXED_CST.
819         Handle FIXED_POINT_TYPE.
820         (c_common_nodes_and_builtins): Record builtin types for fixed-point
821         types.
822         (handle_mode_attribute): Handle fixed-point modes.  Need to check
823         if the signness of base type and fixed-point modes are consistent.
824         (handle_vector_size_attribute): Handle fixed-point modes.
825         (same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE.
826         (warn_for_div_by_zero): Check fixed-point zero.
827         * c-typeck.c (c_common_type): Check FIXED_POINT_TYPE.  Build
828         a common fixed-point type based on fbit, ibit, sign, and saturation.
829         (build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR,
830         NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR,
831         PREDECREMENT_EXPR, and POSTDECREMENT_EXPR.
832         (convert_for_assignment): Support FIXED_POINT_TYPE.
833         (digest_init): Handle FIXED_POINT_TYPE.
834         (build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR,
835         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
836         TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR,
837         GE_EXPR, LT_EXPR, GT_EXPR.
838         * target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New.
839         (TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P.
840         * target.h (gcc_target): Add fixed_point_supported_p.
841         * targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT,
842         MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM.
843         (default_fixed_point_supported_p): Define.
844         * targhooks.h (default_fixed_point_supported_p): Declare.
845         * doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add.
846         * doc/install.texi (Configuration): Add --enable-fixed-point.
847         * configure.ac (--enable-fixed-point): New to enable fixed-point
848         arithmetic extension to C.  For mips targets, we enable it by default.
849         * configure, config.in: Regenerate.
850
851 2007-08-20  Pawel Sikora  <pluto@pld-linux.org>
852
853         * doc/invoke.texi (-Wnon-virtual-dtor): Update documentation.
854
855 2007-08-20  David Edelsohn  <edelsohn@gnu.org>
856
857         * dwarf2out.c (text_section_used): Move declaration outside ifdef
858         DWARF2_DEBUGGING_INFO.
859         (cold_text_section_used): Same.
860         (cold_text_section): Same.
861
862 2007-08-20  Richard Guenther  <rguenther@suse.de>
863
864         * c-typeck.c (convert_for_assignment): Use the type of
865         the member for the initialization.
866
867 2007-08-20  Richard Guenther  <rguenther@suse.de>
868
869         * c-objc-common.c (c_disregard_inline_limits): Remove.
870         * c-objc-common.h (c_disregard_inline_limits): Likewise.
871         * cgraphunit.c (cgraph_process_new_functions): Call
872         disregard_inline_limits_p.
873         (cgraph_preserve_function_body_p): Likewise.
874         * ipa-inline.c (compute_inline_parameters): Likewise.
875         * langhooks-def.h (lhd_tree_inlining_disregard_inline_limits):
876         Remove.
877         (LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS): Remove.
878         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
879         disregard_inline_limits langhook.
880         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
881         Remove.
882         * langhooks.h (lang_hooks_for_tree_inlining): Remove
883         disregard_inline_limits langhook.
884         * tree-inline.c (disregard_inline_limits_p): New function.
885         * tree-inline.h (disregard_inline_limits_p): Declare.
886
887 2007-08-20  Richard Guenther  <rguenther@suse.de>
888
889         * langhooks-def.h (lhd_tree_inlining_auto_var_in_fn_p): Remove.
890         (LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P): Likewise.
891         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
892         auto_var_in_fn_p langhook.
893         * langhooks.c (lhd_tree_inlining_auto_var_in_fn_p): Rename and
894         move ...
895         * tree.c (auto_var_in_fn_p): ... here.
896         (find_var_from_fn): Call auto_var_in_fn_p directly.
897         * langhooks.h (lang_hooks_for_tree_inlining): Remove
898         auto_var_in_fn_p langhook.
899         * tree-inline.c (remap_decls): Call auto_var_in_fn_p directly.
900         (copy_body_r): Likewise.
901         (self_inlining_addr_expr): Likewise.
902         * tree.h (auto_var_in_fn_p): Declare.
903
904 2007-08-20  Richard Guenther  <rguenther@suse.de>
905
906         * tree.c (WALK_SUBTREE): Call walk_tree_1.
907         (walk_type_fields): Take lh parameter.
908         (walk_tree): Rename to ...
909         (walk_tree_1): ... this.  Do not call the walk_subtrees
910         langhook but the now passed callback.  Pass lh on recursion.
911         (walk_tree_without_duplicates): Rename to ...
912         (walk_tree_without_duplicates_1): ... this.  Take lh parameter
913         and call walk_tree_1.
914         * tree.h (walk_tree_lh): New typedef.
915         (walk_tree_1): Declare.
916         (walk_tree_without_duplicates_1): Likewise.
917         (walk_tree): New define to walk_tree_1 with NULL lh parameter.
918         (walk_tree_without_duplicates): New define to
919         walk_tree_without_duplicates_1 with NULL lh parameter.
920         * langhooks.c (lhd_tree_inlining_walk_subtrees): Remove.
921         * langhooks.h (lang_hooks_for_tree_inlining): Remove walk_subtrees
922         langhook.
923         * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Remove.
924         (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
925         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove walk_subtrees
926         initializer.
927
928 2007-08-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
929
930         PR middle-end/30564
931         * tree-inline.c (optimize_inline_calls): Move the cgraph checking
932         code in front of the compacting of basic blocks.
933         Move the folding of statements inbetween the cgraph checking
934         and compacting of basic blocks.
935
936 2007-08-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
937            Serge Belyshev  <belyshev@depni.sinp.msu.ru>
938
939         PR target/32522
940         * config/alpha/alpha.c (va_list_skip_additions): Check for
941         POINTER_PLUS_EXPR in addition to PLUS_EXPR.
942         (alpha_stdarg_optimize_hook): Look for POINTER_PLUS_EXPR instead of
943         PLUS_EXPR when checking ap.__base.
944         (alpha_va_start): Create POINTER_PLUS_EXPR instead of PLUS_EXPR
945         when doing addition on pointer types.  Use size_int instead of
946         build_int_cst.
947         (alpha_gimplify_va_arg_1): Likewise, but use sizetype instead of
948         ptr_type in the second operand.
949
950 2007-08-19  Andrew Pinski  <pinskia@gmail.com>
951
952         PR target/33115
953         * config/i386/darwin.h (CC1_SPEC): Add %(cc1_cpu) in front.
954
955 2007-08-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
956
957         PR middle-end/32940
958         * cfgexpand.c  (expand_one_register_var): Mark pointer
959         DECL_ARTIFICIAL as REG_POINTER also.
960         * stmt.c (expand_decl): Likewise.
961
962 2007-08-19  Daniel Berlin  <dberlin@dberlin.org>
963
964         Fix PR 32772
965         Fix PR 32716
966         Fix PR 32328
967         Fix PR 32303
968
969         * tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call.
970         * tree-ssa-alias.c (init_transitive_clobber_worklist): Add
971         on_worklist argument and avoid adding things to worklist multiple
972         times.
973         (add_to_worklist): Ditto.
974         (mark_aliases_call_clobbered): Mark entire structure clobbered if
975         single SFT is clobbered.
976         (set_initial_properties): Ditto.
977         (compute_call_clobbered): Update for changes to function
978         arguments.
979         (create_overlap_variables_for): Always create SFT for offset 0.
980         (create_structure_vars): Handle PHI's, since we are in SSA form at
981         this point.
982         * tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars.
983         * tree-ssa-operands.c (access_can_touch_variable): Don't handle
984         TARGET_MEM_REF.
985         (add_vars_for_offset): Figure out aliases from access + points-to.
986         (add_virtual_operand): Use add_vars-for_offset.
987         (get_tmr_operands): Update for NMT changes, rewrite to be correct.
988         (add_call_clobber_ops): Remove makes_clobbering_call set.
989         (get_expr_operands): Always pass through the INDIRECT_REF
990         reference.
991         * tree-ssa-structalias.c (struct constraint_graph): Remove
992         variables member.
993         Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to,
994         address_taken, pt_used, number_incoming.
995         (FIRST_ADDR_NODE): Removed.
996         (merge_graph_nodes): Remove broken code for the moment.
997         (init_graph): New function.
998         (build_pred_graph): Remove code to init_graph.
999         Add location equivalence support.
1000         (struct scc_info): Rename roots to deleted.
1001         (scc_visit): Ditto.
1002         (init_scc_info): Ditto
1003         (init_topo_info): Use graph->size.
1004         (compute_topo_order): Ditto.
1005         (do_da_constraint): Removed.
1006         (do_sd_constraint): Remove calls to find().
1007         set_union_with_increment should always get 0 as last arg here.
1008         (do_complex_constraint): Replace do_da_constraint with assert.
1009         Stop calling find.
1010         (struct equiv_class_label): New.
1011         (pointer_equiv_class_table): Ditto.
1012         (location_equiv_class_table): Ditto.
1013         (equiv_class_label_hash): Ditto.
1014         (equiv_class_label_eq): Ditto
1015         (equiv_class_lookup): Ditto.
1016         (equiv_class_ladd): Ditto.
1017         (pointer_equiv_class): Ditto.
1018         (location_equiv_class): Ditto.
1019         (condense_visit): Rename and rewrite from label_visit to do only
1020         SCC related stuff for HU.
1021         (label_visit): Do HU work for HU.
1022         (perform_var_substitution): Update to do HU and location
1023         equivalence.
1024         (free_var_substitution_info): Update to free HU and location
1025         equivalence structures.  */
1026         (find_equivalent_node): Update for pointer but not location
1027         equivalence.
1028         (unite_pointer_equivalences): New function.
1029         (move_complex_constraints): Rewrite to only do moving.
1030         (rewrite_constraints): Split out of move_complex_constraints.
1031         (solve_graph): Use graph->size.
1032         (process_constraint_1): Add from_call argument, use it.
1033         Split *a = &b into two constraints.
1034         (process_constraint): Use new process_constraint_1.
1035         (get_constraint_for_component_ref): Handle bitmaxsize == -1 case.
1036         (get_constraint_for): Handle non-pointer integers properly.
1037         Remove code that used to handle structures.
1038         (handle_ptr_arith): Fix a few bugs in pointer arithmetic handling
1039         with unknown addends.
1040         (handle_rhs_call): New function.
1041         (find_func_aliases): Use handle_rhs_call.
1042         (set_uids_in_ptset): Add an assert.
1043         (set_used_smts): Fix bug in not considering unified vars.
1044         (compute_tbaa_pruning): Stop initing useless iteration_obstack.
1045         (compute_points_to_sets): Update for other function changes.
1046         (delete_points_to_sets): Ditto.
1047         (ipa_pta_execute): Ditto.
1048         (pass_ipa_pta): We need to update SSA after ipa_pta.
1049         
1050 2007-08-19  Jan Hubicka  <jh@suse.cz>
1051
1052         * i386.md: Replace "rim" and "mri" constraints by "g".
1053
1054 2007-08-19  Joseph Myers  <joseph@codesourcery.com>
1055
1056         * dwarf2out.c (text_section_used, cold_text_section_used,
1057         cold_text_section, dwarf2out_note_section_used): New.
1058         (dwarf2out_init): Initialize cold_text_section.
1059         (dwarf2out_switch_text_section, dwarf2out_begin_function): Call
1060         dwarf2out_note_section_used.
1061         (size_of_aranges): Only count entry for text section if it was
1062         used.  Count entry for cold text section if it was used.
1063         (output_aranges): Only output entries for text section and cold
1064         text section if they were used.
1065
1066 2007-08-19  Andrew Pinski  <pinskia@gmail.com>
1067
1068         * tree-pretty-print.c (debug_generic_expr): Add a comment about
1069         the function.
1070         (debug_generic_stmt): Likewise.
1071         (debug_tree_chain): Likewise.
1072
1073 2007-08-19  Dorit Nuzman  <dorit@il.ibm.com>
1074
1075         * tree-data-refs.c (split_constant_offset): Expose.
1076         * tree-data-refs.h (split_constant_offset): Add declaration.
1077
1078         * tree-vectorizer.h (dr_alignment_support): Renamed
1079         dr_unaligned_software_pipeline to dr_explicit_realign_optimized.
1080         Added a new value dr_explicit_realign.
1081         (_stmt_vec_info): Added new fields: dr_base_address, dr_init,
1082         dr_offset, dr_step, and dr_aligned_to, along with new access
1083         functions for these fields: STMT_VINFO_DR_BASE_ADDRESS,
1084         STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET, STMT_VINFO_DR_STEP, and
1085         STMT_VINFO_DR_ALIGNED_TO.
1086
1087         * tree-vectorizer.c (vect_supportable_dr_alignment): Add
1088         documentation.
1089         In case of outer-loop vectorization with non-fixed misalignment - use
1090         the dr_explicit_realign scheme instead of the optimized realignment
1091         scheme.
1092         (new_stmt_vec_info): Initialize new fields.
1093
1094         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Handle the
1095         'nested_in_vect_loop' case. Change verbosity level.
1096         (vect_analyze_data_ref_access): Handle the 'nested_in_vect_loop' case.
1097         Don't fail on zero step in the outer-loop for loads.
1098         (vect_analyze_data_refs): Call split_constant_offset to calculate
1099         base, offset and init relative to the outer-loop.
1100
1101         * tree-vect-transform.c (vect_create_data_ref_ptr): Replace the unused
1102         BSI function argument with a new function argument - at_loop.
1103         Simplify the condition that determines STEP. Takes additional argument
1104         INV_P. Support outer-loop vectorization (handle the
1105         nested_in_vect_loop case), including zero step in the outer-loop. Call
1106         vect_create_addr_base_for_vector_ref with additional argument.
1107         (vect_create_addr_base_for_vector_ref): Takes additional argument LOOP.
1108         Updated function documentation. Handle the 'nested_in_vect_loop' case.
1109         Fixed and simplified calculation of step.
1110         (vectorizable_store): Call vect_create_data_ref_ptr with loop instead
1111         of bsi, and with additional argument. Call bump_vector_ptr with
1112         additional argument. Fix typos. Handle the 'nested_in_vect_loop' case.
1113         (vect_setup_realignment): Takes additional arguments INIT_ADDR and
1114         DR_ALIGNMENT_SUPPORT. Returns another value AT_LOOP. Handle the case
1115         when the realignment setup needs to take place inside the loop.
1116         Support the dr_explicit_realign scheme. Allow generating the optimized
1117         realignment scheme for outer-loop vectorization. Added documentation.
1118         (vectorizable_load): Support the dr_explicit_realign scheme. Handle
1119         the 'nested_in_vect_loop' case, including loads that are invariant in
1120         the outer-loop and the realignment schemes. Handle the case when the
1121         realignment setup needs to take place inside the loop. Call
1122         vect_setup_realignment with additional arguments.  Call
1123         vect_create_data_ref_ptr with additional argument and with loop instead
1124         of bsi. Fix 80-column overflow. Fix typos. Rename PHI_STMT to PHI.
1125         (vect_gen_niters_for_prolog_loop): Call
1126         vect_create_addr_base_for_vector_ref with additional arguments.
1127         (vect_create_cond_for_align_checks): Likewise.
1128         (bump_vector_ptr): Updated to support the new dr_explicit_realign
1129         scheme: takes additional argument bump; argument ptr_incr is now
1130         optional; updated documentation.
1131         (vect_init_vector): Takes additional argument (bsi). Use it, if
1132         available, to insert the vector initialization.
1133         (get_initial_def_for_induction): Pass additional argument in call to
1134         vect_init_vector.
1135         (vect_get_vec_def_for_operand): Likewise.
1136         (vect_setup_realignment): Likewise.
1137         (vectorizable_load): Likewise.
1138
1139 2007-08-19  Dorit Nuzman  <dorit@il.ibm.com>
1140
1141         * tree-vectorizer.h (vect_is_simple_reduction): Takes a loop_vec_info
1142         as argument instead of struct loop.
1143         (nested_in_vect_loop_p): New function.
1144         (vect_relevant): Add enum values vect_used_in_outer_by_reduction and
1145         vect_used_in_outer.
1146         (is_loop_header_bb_p): New. Used to differentiate loop-header phis
1147         from other phis in the loop.
1148         (destroy_loop_vec_info): Add additional argument to declaration.
1149
1150         * tree-vectorizer.c (supportable_widening_operation): Also check if
1151         nested_in_vect_loop_p (don't allow changing the order in this case).
1152         (vect_is_simple_reduction): Takes a loop_vec_info as argument instead
1153         of struct loop. Call nested_in_vect_loop_p and don't require
1154         flag_unsafe_math_optimizations if it returns true.
1155         (new_stmt_vec_info): When setting def_type for phis differentiate 
1156         loop-header phis from other phis.
1157         (bb_in_loop_p): New function.
1158         (new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so
1159         just update their loop_vinfo.  Order of BB traversal now matters -
1160         call dfs_enumerate_from with bb_in_loop_p.
1161         (destroy_loop_vec_info): Takes additional argument to control whether
1162         stmt_vinfo of the loop stmts should be destroyed as well.
1163         (vect_is_simple_reduction): Allow the "non-reduction" use of a
1164         reduction stmt to be defines by a non loop-header phi.
1165         (vectorize_loops): Call destroy_loop_vec_info with additional argument.
1166
1167         * tree-vect-transform.c (vectorizable_reduction): Call
1168         nested_in_vect_loop_p. Check for multitypes in the inner-loop.
1169         (vectorizable_call): Likewise.
1170         (vectorizable_conversion): Likewise.
1171         (vectorizable_operation): Likewise.
1172         (vectorizable_type_promotion): Likewise.
1173         (vectorizable_type_demotion): Likewise.
1174         (vectorizable_store): Likewise.
1175         (vectorizable_live_operation): Likewise.
1176         (vectorizable_reduction): Likewise. Also pass loop_info to
1177         vect_is_simple_reduction instead of loop.
1178         (vect_init_vector): Call nested_in_vect_loop_p.
1179         (get_initial_def_for_reduction): Likewise.
1180         (vect_create_epilog_for_reduction): Likewise.
1181         (vect_init_vector): Check which loop to work with, in case there's an
1182         inner-loop.
1183         (get_initial_def_for_inducion): Extend to handle outer-loop
1184         vectorization. Fix indentation.
1185         (vect_get_vec_def_for_operand): Support phis in the case vect_loop_def.
1186         In the case vect_induction_def get the vector def from the induction
1187         phi node, instead of calling get_initial_def_for_inducion.
1188         (get_initial_def_for_reduction): Extend to handle outer-loop 
1189         vectorization.
1190         (vect_create_epilog_for_reduction): Extend to handle outer-loop
1191         vectorization.
1192         (vect_transform_loop): Change assert to just skip this case.  Add a
1193         dump printout.
1194         (vect_finish_stmt_generation): Add a couple asserts.
1195
1196         (vect_estimate_min_profitable_iters): Multiply
1197         cost of inner-loop stmts (in outer-loop vectorization) by estimated
1198         inner-loop bound.
1199         (vect_model_reduction_cost): Don't add reduction epilogue cost in case
1200         this is an inner-loop reduction in outer-loop vectorization.
1201
1202         * tree-vect-analyze.c (vect_analyze_scalar_cycles_1): New function.
1203         Same code as what used to be vect_analyze_scalar_cycles, only with
1204         additional argument loop, and loop_info passed to
1205         vect_is_simple_reduction instead of loop.
1206         (vect_analyze_scalar_cycles): Code factored out into
1207         vect_analyze_scalar_cycles_1. Call it for each relevant loop-nest.
1208         Updated documentation.
1209         (analyze_operations): Check for inner-loop loop-closed exit-phis during
1210         outer-loop vectorization that are live or not used in the outerloop,
1211         cause this requires special handling.
1212         (vect_enhance_data_refs_alignment): Don't consider versioning for
1213         nested-loops.
1214         (vect_analyze_data_refs): Check that there are no datarefs in the
1215         inner-loop.
1216         (vect_mark_stmts_to_be_vectorized): Also consider vect_used_in_outer
1217         and vect_used_in_outer_by_reduction cases.
1218         (process_use): Also consider the case of outer-loop stmt defining an
1219         inner-loop stmt and vice versa.
1220         (vect_analyze_loop_1): New function.
1221         (vect_analyze_loop_form): Extend, to allow a restricted form of nested
1222         loops.  Call vect_analyze_loop_1.
1223         (vect_analyze_loop): Skip (inner-)loops within outer-loops that have
1224         been vectorized.  Call destroy_loop_vec_info with additional argument.
1225
1226         * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Don't allow
1227         in the inner-loop when doing outer-loop vectorization. Add
1228         documentation and printout.
1229         (vect_recog_dot_prod_pattern): Likewise. Also add check for
1230         GIMPLE_MODIFY_STMT (in case we encounter a phi in the loop).
1231
1232 2007-08-18  Andrew Pinski  <pinskia@gmail.com>
1233
1234         * tree-affine.h (print_aff): New prototype.
1235         (debug_aff): Likewise.
1236         * tree-affine.c (print_aff): New function.
1237         (debug_aff): Likewise.
1238
1239 2007-08-18  Paul Brook  <paul@codesourcery.com>
1240             Joseph Myers  <joseph@codesourcery.com>
1241
1242         * common.opt (-fdebug-prefix-map=): New option.
1243         * opts.c: Include debug.h.
1244         (common_handle_option): Handle -fdebug-prefix-map.
1245         * final.c: Include ggc.h.
1246         (struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
1247         remap_debug_filename): New.
1248         * Makefile.in (final.o, opts.o): Update dependencies.
1249         * debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
1250         * configure.ac: Check for assembler --debug-prefix-map support.
1251         * configure, config.in: Regenerate.
1252         * gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
1253         (ASM_DEBUG_SPEC): Include ASM_MAP.
1254         * doc/install.texi (--with-debug-prefix-map): Document.
1255         * doc/invoke.texi (-fdebug-prefix-map): Document.
1256         * dbxout.c (dbxout_init, dbxout_start_source_file,
1257         dbxout_source_file): Call remap_debug_filename.
1258         * dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
1259         dwarf2out_start_source_file, dwarf2out_finish): Call
1260         remap_debug_filename.
1261         (file_table_relative_p): Do not check d->emitted_number.
1262         * toplev.c (output_file_directive): Call remap_debug_filename.
1263         * vmsdbgout.c (write_srccorr): Call remap_debug_filename.
1264         * xcoffout.c (xcoffout_source_file): Call remap_debug_filename.
1265
1266 2007-08-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1267
1268         * loop-invariant.c (find_invariants_to_move): Add missing macro
1269         argument.
1270
1271 2007-08-17  Tom Tromey  <tromey@redhat.com>
1272
1273         * tree.h (struct tree_label_decl): Removed old "java" fields.
1274
1275 2007-08-17  Richard Sandiford  <richard@codesourcery.com>
1276             Nigel Stephens  <nigel@mips.com>
1277
1278         * config/mips/sde.h (DRIVER_SELF_SPECS): Add commas.
1279         Treat -mno-data-in-code and -mcode-xonly as aliases for
1280         -mcode-readable=no and -mcode-readable=pcrel respectively.
1281         * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly.
1282         (MULTILIB_OPTIONS): Add -mcode-readable=no multilibs.
1283         (MULTILIB_DIRNAMES): Update accordingly.
1284
1285 2007-08-17  H.J. Lu  <hongjiu.lu@intel.com>
1286
1287         * Makefile.in (version.o): Depend on $(REVISION) only if
1288         REVISION_s is defined.
1289
1290 2007-08-17  Sa Liu  <saliu@de.ibm.com>
1291             Ulrich Weigand  <uweigand@de.ibm.com>
1292
1293         PR middle-end/32970
1294         * tree.c (reconstruct_complex_type): For a pointer to a vector,
1295         use build_qualified_type to retain qualifiers of the base type.
1296
1297 2007-08-17  Chen Liqin  <liqin@sunnorth.com.cn>
1298
1299         * config/score/score.md : Update pattern tablejump.
1300         * config/score/score.c : Update score_initialize_trampoline 
1301         function.
1302         * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro.
1303         (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro.
1304         * doc/contrib.texi: Add my entry.
1305
1306 2007-08-16  H.J. Lu  <hongjiu.lu@intel.com>
1307
1308         * Makefile.in (REVISION): New.
1309         (REVISION_c): New.
1310         (REVISION_s): New.
1311         (version.o): Also depend on $(REVISION). Add
1312         -DREVISION=$(REVISION_s).
1313
1314         * version.c (version_string): Add REVISION.
1315
1316 2007-08-16  Seongbae Park <seongbae.park@gmail.com>
1317
1318         * tree-eh.c (lower_try_finally_onedest): Reset the locus
1319         of GOTO that's relocated to a different block.
1320
1321 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1322
1323         * c-common.c (const_strip_array_types): New.
1324         * c-common.h (lang_missing_noreturn_ok_p): Delete.
1325         (const_strip_array_types): New.
1326         * c-objc-common.c (c_disregard_inline_limits,
1327         c_warn_unused_global_decl): Constify.
1328         * c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl,
1329         c_vla_type_p, c_incomplete_type_error): Likewise.
1330         * c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise.
1331         * hooks.c (hook_bool_const_tree_false): New.
1332         * hooks.h (hook_bool_const_tree_false): Likewise.
1333         * langhooks-def.h (lhd_warn_unused_global_decl,
1334         lhd_incomplete_type_error, lhd_expr_size,
1335         lhd_tree_inlining_disregard_inline_limits,
1336         lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
1337         LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify.
1338         * langhooks.c (lhd_warn_unused_global_decl,
1339         lhd_incomplete_type_error,
1340         lhd_tree_inlining_disregard_inline_limits,
1341         lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
1342         lhd_expr_size): Likewise.
1343         * langhooks.h (lang_hooks_for_tree_inlining,
1344         lang_hooks_for_tree_dump, lang_hooks_for_types,
1345         lang_hooks_for_decls, lang_hooks): Likewise.
1346         * pointer-set.c (pointer_set_t, pointer_set_create,
1347         pointer_set_contains, insert_aux, pointer_set_insert,
1348         pointer_set_traverse, pointer_map_t, pointer_map_create,
1349         pointer_map_contains, pointer_map_insert, pointer_map_traverse):
1350         Likewise.
1351         * pointer-set.h (pointer_set_contains, pointer_set_insert,
1352         pointer_set_traverse, pointer_map_contains, pointer_map_insert,
1353         pointer_map_traverse): Likewise.
1354         * predict.c (assert_is_empty): Likewise.
1355         * tree-affine.c (free_name_expansion): Likewise.
1356         * tree-cfg.c (edge_to_cases_cleanup): Likewise.
1357         * tree.c (size_in_bytes, max_int_size_in_bytes): Likewise.
1358         * tree.h (size_in_bytes, max_int_size_in_bytes): Likewise.
1359
1360 2007-08-16  Victor Kaplansky <victork@il.ibm.com>
1361
1362         * tree-vectorizer.c (new_loop_vec_info): Initialize new 
1363         field.
1364         (destroy_loop_vec_info): Add call to VEC_free.
1365         * tree-vectorizer.h (may_alias_ddrs): Define.
1366         (LOOP_VINFO_MAY_ALIAS_DDRS): Define.
1367         * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
1368         Change reporting to dump.
1369         (vect_is_duplicate_ddr): New.
1370         (vect_mark_for_runtime_alias_test): New.
1371         (vect_analyze_data_ref_dependences) Add call to
1372         vect_mark_for_runtime_alias_test.
1373         (vect_enhance_data_refs_alignment): Define local variable
1374         vect_versioning_for_alias_required, don't perform
1375         peeling for alignment if versioning for alias is
1376         required.
1377         (vect_enhance_data_refs_alignment): Use
1378         PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS instead of
1379         PARAM_VECT_MAX_VERSION_CHECKS.
1380         * tree-vect-transform.c
1381         (vect_create_cond_for_alias_checks): New.
1382         (vect_transform_loop): Add call to
1383         vect_create_cond_for_alias_checks.
1384         (vect_vfa_segment_size): New.
1385         * params.def (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS):
1386         Rename.
1387         (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS): Define.
1388         * gcc/doc/invoke.texi
1389         (vect-max-version-for-alignment-checks): Document.
1390         (vect-max-version-for-alias-checks): Document.
1391         (vect-max-version-checks): Remove.
1392      
1393 2007-08-16  Uros Bizjak  <ubizjak@gmail.com>
1394
1395         * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on
1396         the same line as the instruction for all asm dialects.
1397         (*rep_movsi): Ditto.
1398         (*rep_movsi_rex64): Ditto.
1399         (*rep_movqi): Ditto.
1400         (*rep_movqi_rex64): Ditto.
1401         (*rep_stosdi_rex64): Ditto.
1402         (*rep_stossi): Ditto.
1403         (*rep_stossi_rex64): Ditto.
1404         (*rep_stosqi): Ditto.
1405         (*rep_stosqi_rex64): Ditto.
1406         (*cmpstrnqi_nz_1): Ditto.
1407         (*cmpstrnqi_nz_rex_1): Ditto.
1408         (*cmpstrnqi_1): Ditto.
1409         (*cmpstrnqi_rex_1): Ditto.
1410         (*strlenqi_1): Ditto.
1411         (*strlenqi_rex_1): Ditto.
1412         * config/i386/sync.md (*sync_compare_and_swap<mode>): Emit "lock"
1413         prefix on the same line as the instruction for all asm dialects.
1414         (sync_double_compare_and_swap<mode>): Ditto.
1415         (*sync_double_compare_and_swapdi_pic): Ditto.
1416         (*sync_compare_and_swap_cc<mode>): Ditto.
1417         (sync_double_compare_and_swap_cc<mode>): Ditto.
1418         (*sync_double_compare_and_swap_ccdi_pic): Ditto.
1419         (sync_old_add<mode>): Ditto.
1420         (sync_add<mode>): Ditto.
1421         (sync_sub<mode>): Ditto.
1422         (sync_ior<mode>): Ditto.
1423         (sync_and<mode>): Ditto.
1424         (sync_xor<mode>): Ditto.
1425
1426 2007-08-16  Richard Sandiford  <richard@codesourcery.com>
1427
1428         PR middle-end/32897
1429         * reload.c (find_reloads): Check that the memory returned by
1430         find_reloads_toplev was not the result of forcing a constant
1431         to memory.
1432         (find_reloads_toplev): Always use simplify_gen_subreg to get
1433         the subreg of a constant.  If the result is also a constant,
1434         but not a legitimate one, force it into the constant pool
1435         and reload its address.
1436
1437 2007-08-15  David Edelsohn  <edelsohn@gnu.org>
1438
1439         * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
1440         POPCOUNT.
1441
1442 2007-08-15  Daniel Jacobowitz  <dan@codesourcery.com>
1443
1444         * config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute
1445         directive for the current vector ABI.
1446
1447 2007-08-15  Steve Ellcey  <sje@cup.hp.com>
1448
1449         PR target/32963
1450         * caller-save.c (reg_save_code): Set invalide status on restore code.
1451         
1452 2007-08-15  Diego Novillo  <dnovillo@google.com>
1453
1454         * tree-ssa-alias.c (compute_memory_partitions): Use
1455         alias_bitmap_obstack to allocate bitmaps.
1456         (reset_alias_info): Factor out of init_alias_info.
1457         Mark all name tags not associated to an SSA name for renaming.
1458         (init_alias_info): Call it.
1459         (create_name_tags): Tidy.  Add comments.
1460         (dump_points_to_info_for): Do not call get_mem_sym_stats_for.
1461
1462 2007-08-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
1463
1464         * config/mips/mips.c (vr4130_swap_insns_p): Use new interface to
1465         scheduler dependencies.
1466
1467 2007-08-15  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1468
1469         * config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for
1470         "register_operand".
1471         (*iorsi_1_zext): Likewise.
1472         (*iorsi_1_zext_imm): Likewise.
1473         * config/i386/sse.md: (*sse4_1_extractps): Use "nonimmediate_operand"
1474         with "rm"/"xm" constraint.
1475         (sse2_vmsqrtv2df2): Likewise.
1476
1477 2007-08-15  Jakub Jelinek  <jakub@redhat.com>
1478
1479         PR middle-end/33074
1480         * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
1481         REG_LIBCALL note.
1482
1483 2007-08-14  Daniel Berlin  <dberlin@dberlin.org>
1484
1485         * tree-pass.h (PROP_pta): Removed.
1486         (TODO_rebuild_alias): New.
1487         (pass_may_alias): Removed.
1488         * tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild
1489         aliasing if we changed something.
1490         * tree-ssa-alias.c (compute_may_aliases): Make non-static.  Update
1491         SSA internally.
1492         (pass_may_alias): Removed.
1493         (create_structure_vars): Return TODO_rebuild_alias.
1494         * tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias.
1495         * tree-sra.c (tree_sra): Only rebuild aliasing if something
1496         changed.
1497         (tree_sra_early): We never affect aliasing right now.
1498         * tree-flow.h (compute_may_aliases): New prototype.
1499         * passes.c: Remove pass_may_alias from the passes.
1500         (execute_function_todo): Support TODO_rebuild_alias.    
1501
1502 2007-08-14  Kai Tietz  <kai.tietz@onevision.com>
1503
1504         * i386.c: (legitimize_address): Move dllimported variable check
1505         infront of legitimizing pic address of CONST symbols.
1506
1507 2007-08-14  Steve Ellcey  <sje@cup.hp.com>
1508
1509         PR tree-optimization/32941
1510         * tree-eh.c (struct leh_tf_state): Add goto_queue_map field.
1511         (goto_queue_cmp): Remove.
1512         (find_goto_replacement): Change search method.
1513         (maybe_record_in_goto_queue): Add assert.
1514         (lower_try_finally): Remove qsort call, add pointer_map_destroy call.
1515         * Makefile.in (tree-eh.o): Add pointer-set.h dependency.
1516
1517 2007-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1518
1519         * alias.c (component_uses_parent_alias_set): Constify.
1520         * alias.h (component_uses_parent_alias_set): Likewise.
1521         * cfgrtl.c (print_rtl_with_bb): Likewise.
1522         * double-int.c (tree_to_double_int, double_int_fits_to_tree_p,
1523         mpz_get_double_int): Likewise.
1524         * double-int.h (double_int_fits_to_tree_p, tree_to_double_int,
1525         mpz_get_double_int): Likewise.
1526         * expr.c (is_aligning_offset, undefined_operand_subword_p,
1527         mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset):
1528         Likewise.
1529         * expr.h (safe_from_p): Likewise.
1530         * gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
1531         Likewise.
1532         * gimplify.c (should_carry_locus_p, zero_sized_field_decl,
1533         zero_sized_type, goa_lhs_expr_p): Likewise.
1534         * omp-low.c (is_variable_sized, use_pointer_for_field): Likewise.
1535         * rtl.h (print_rtl_with_bb): Likewise.
1536         * sched-vis.c (print_exp, print_value, print_pattern): Likewise.
1537         * tree-cfg.c (const_first_stmt, const_last_stmt): New.
1538         * tree-flow-inline.h (bb_stmt_list): Constify.
1539         (cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev,
1540         cbsi_stmt): New.
1541         * tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last,
1542         const_first_stmt, const_last_stmt): New.
1543         (block_may_fallthru, empty_block_p): Constify.
1544         * tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY,
1545         EXPR_ONLY_BODY): New.
1546         (expr_first, expr_last, expr_only): Use macro for body.
1547         (const_expr_first, const_expr_last, const_expr_only): New.
1548         * tree-iterator.h (const_tree_stmt_iterator, ctsi_start,
1549         ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next,
1550         ctsi_prev, ctsi_stmt): New.
1551         * tree-scalar-evolution.c (get_loop_exit_condition): Constify.
1552         * tree-scalar-evolution.h (get_loop_exit_condition): Likewise.
1553         * tree-ssa-loop-niter.c (loop_only_exit_p,
1554         derive_constant_upper_bound): Likewise.
1555         * tree-ssa-phiopt.c (empty_block_p): Likewise.
1556         * tree-ssa-threadupdate.c (redirection_block_p): Likewise.
1557         * tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise.
1558         * tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise.
1559         * tree-vrp.c (vrp_bitmap_equal_p): Likewise.
1560         * tree.c (get_type_static_bounds): Likewise.
1561         * tree.h (const_expr_first, const_expr_last, const_expr_only): New.
1562         (get_type_static_bounds): Constify.
1563
1564 2007-08-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1565
1566         PR target/30315
1567         * config/i386/i386.h (CANONICALIZE_COMPARISON): New.
1568         * config/i386/i386.md (plusminus)(addsub)(SWI): New.
1569         (*<addsub><mode>3_cc_overflow): New.
1570         (*add<mode>3_cconly_overflow): New.
1571         (*sub<mode>3_cconly_overflow): New.
1572         (*<addsub>si3_zext_cc_overflow): New.
1573         * config/i386/predicates.md (fcmov_comparison_operator): Accept
1574         CCCmode for LTU, GTU, LEU and GEU.
1575         (ix86_comparison_operator): Likewise.
1576         (ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
1577         * config/i386/i386.c (put_condition_code): Support CCCmode.
1578         (ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
1579         or MINUS expressions.
1580
1581 2007-08-14  Andrew Pinski  <pinskia@gmail.com>
1582
1583         PR c/30428
1584         * c-typeck.c (build_binary_op): Disallow vector float types with
1585         BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
1586
1587 2007-08-14  Maxim Kuvyrkov  <maxim@codesourcery.com>
1588
1589         * sched-int.h (struct _dep): Rename field 'kind' to 'type'.
1590         (DEP_KIND): Rename to DEP_TYPE.  Update all uses.
1591         (dep_def): New typedef.
1592         (init_dep_1, sd_debug_dep): Declare functions.
1593         (DEP_LINK_KIND): Rename to DEP_LINK_TYPE.
1594         (debug_dep_links): Remove.
1595         (struct _deps_list): New field 'n_links'.
1596         (DEPS_LIST_N_LINKS): New macro.
1597         (FOR_EACH_DEP_LINK): Remove.
1598         (create_deps_list, free_deps_list, delete_deps_list): Remove
1599         declaration.
1600         (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
1601         (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
1602         (copy_deps_list_change_con, move_dep_link): Ditto.
1603         (struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps'
1604         and 'spec_back_deps'.  New field 'resolved_forw_deps'.  Remove field
1605         'dep_count'.
1606         (INSN_BACK_DEPS): Remove.
1607         (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
1608         New macros.
1609         (INSN_DEP_COUNT): Remove.
1610         (enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP.  Fix comments.
1611         (spec_info, haifa_recovery_block_was_added_during_scheduling_p):
1612         Declare global variables.
1613         (deps_pools_are_empty_p, sched_free_deps): Declare functions.
1614         (add_forw_dep, compute_forward_dependences): Remove declarations.
1615         (add_or_update_back_dep, add_or_update_back_forw_dep): Ditto.
1616         (add_back_forw_dep, delete_back_forw_dep): Ditto.
1617         (debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare
1618         functions.
1619         (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW):
1620         New constants.
1621         (SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto.
1622         (sd_list_types_def): New typedef.
1623         (sd_next_list): Declare function.
1624         (struct _sd_iterator): New type.
1625         (sd_iterator_def): New typedef.
1626         (sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline
1627         functions.
1628         (FOR_EACH_DEP): New cycle wrapper.
1629         (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
1630         Declare functions.
1631         (sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto.
1632         (sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists):
1633         Ditto.
1634
1635         * sched-deps.c (init_dep_1): Make global.
1636         (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
1637         constants.
1638         (dump_dep): New static function.
1639         (dump_dep_flags): New static variable.
1640         (sd_debug_dep): New function.
1641         (add_to_deps_list, remove_from_deps_list): Update 'n_links' field of
1642         the list.
1643         (move_dep_link): Use remove_from_deps_list (), instead of
1644         detach_dep_link ().
1645         (dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove.
1646         (dep_link_is_detached_p): New static function.
1647         (deps_obstack, dl_obstack, dn_obstack): Remove.  Use dn_pool, dl_pool
1648         instead.
1649         (dn_pool, dl_pool): New alloc_pools.
1650         (dn_pool_diff, dl_pool_diff): New static variables.
1651         (create_dep_node, delete_dep_node): New static function.
1652         (create_deps_list): Make it static.  Use alloc_pool 'dl_pool'.
1653         (deps_list_empty_p): Make it static.  Use 'n_links' field.
1654         (deps_pools_are_empty_p): New static function.
1655         (alloc_deps_list, delete_deps_list): Remove.
1656         (dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove.
1657         (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
1658         (copy_deps_list_change_con): Remove.  Use sd_copy_back_deps () instead.
1659         (forward_dependency_cache): Remove.
1660         (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove
1661         'back' from the names.  Change signature to use dep_t instead of
1662         equivalent quad.
1663         (add_back_dep): Ditto.  Make global.
1664         (check_dep_status): Rename to check_dep ().
1665         (sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn):
1666         New functions.
1667         (sd_finish_insn): Ditto.
1668         (sd_find_dep_between_no_cache): New static function.
1669         (sd_find_dep_between): New function.
1670         (ask_dependency_caches, set_dependency_caches): New static functions.
1671         (update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto.
1672         (add_or_update_dep_1): Separate pieces of functionality into
1673         ask_dependency_caches (), update_dependency_caches (),
1674         change_spec_dep_to_hard (), update_dep ().
1675         (get_back_and_forw_lists): New static function.
1676         (sd_add_dep): Separate setting of dependency caches into
1677         set_dependency_caches ().
1678         (sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps):
1679         New functions.
1680         (sd_delete_dep): Ditto.
1681         (DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants.
1682         (dump_lists): New static function.
1683         (sd_debug_lists): New debug function.
1684         (delete_all_dependences, fixup_sched_groups): Update to use
1685         sd_* infrastructure.
1686         (sched_analyze_2): Create data-speculative dependency only if
1687         data-speculation is enabled.
1688         (sched_analyze_insn): If insn cannot be speculative, make all its
1689         dependencies non-speculative.
1690         (sched_analyze): Use sd_init_insn ().
1691         (add_forw_dep, compute_forward_dependencies): Remove.
1692         (delete_dep_nodes_in_back_deps): New static function.
1693         (sched_free_deps): New function.
1694         (init_dependency_caches): Init alloc_pools.
1695         (extend_depedency_caches): Update after removing of
1696         forward_dependency_cache.
1697         (free_dependency_caches): Ditto.  Free alloc_pools.
1698         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove.
1699         (delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep):
1700         Ditto.
1701         (add_back_forw_dep, delete_back_forw_dep): Ditto.
1702         (add_dependence): Use init_dep ().
1703         (get_dep_weak_1): New static function.
1704         (get_dep_weak): Move logic to get_dep_weak_1 ().
1705         (dump_ds): New static function moved from haifa-sched.c:
1706         debug_spec_status ().
1707         (debug_ds): New debug function.
1708         (check_dep_status): Rename to check_dep ().  Update to check whole
1709         dependencies.
1710
1711         * haifa-sched.c (spec_info): Make global.
1712         (added_recovery_block_p): Rename to
1713         'haifa_recovery_block_was_added_during_current_schedule_block_p'.
1714         (haifa_recovery_block_was_added_during_scheduling_p): New variable.
1715         (dep_cost, priority, rank_for_schedule, schedule_insn): Update
1716         to use new interfaces.
1717         (ok_for_early_queue_removal): Ditto.
1718         (schedule_block): Initialize logical uids of insns emitted by the
1719         target.
1720         (sched_init): Initialize new variable.
1721         (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
1722         interfaces.
1723         (extend_global): Initialize insn data.
1724         (init_h_i_d): Remove code that is now handled in sd_init_insn ().
1725         (process_insn_forw_deps_be_in_spec): Change signature.  Update to use
1726         new interfaces.
1727         (add_to_speculative_block): Update to use new interfaces.
1728         (create_recovery_block): Set new variables.
1729         (create_check_block_twin, fix_recovery_deps): Update to use new
1730         interfaces.
1731         (sched_insn_is_legitimate_for_speculation_p): New function.
1732         (speculate_insn): Move checking logic to
1733         sched_insn_is_legitimate_for_speculation_p ().
1734         (sched_remove_insn): Finalize sched-deps information of instruction.
1735         (clear_priorities, add_jump_dependencies): Update to use new
1736         interfaces.
1737         (debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
1738         
1739         * sched-rgn.c (set_spec_fed, find_conditional_protection): Update
1740         to use new interfaces.
1741         (is_conditionally_protected, is_pfree, is_prisky) Ditto.
1742         (new_ready): Try to use control speculation only if it is available.
1743         (add_branch_dependences): Update to use new interfaces.
1744         (compute_block_backward_dependences): Rename to
1745         compute_block_dependences ().  Call
1746         targetm.sched.dependencies_evaluation_hook ().
1747         (free_block_dependencies): New static function.
1748         (debug_dependencies): Update to use new interfaces.
1749         (schedule_region): Remove separate computation of forward dependencies.
1750         Move call of targetm.sched.dependencies_evaluation_hook () to
1751         compute_block_dependences ().  Free dependencies at the end of
1752         scheduling the region.
1753
1754         * sched-ebb.c (earliest_block_with_similiar_load): Update to use
1755         new interfaces.
1756         (add_deps_for_risky_insns): Ditto.
1757         (schedule_ebb): Remove separate computation of forward dependencies.
1758         Free dependencies at the end of scheduling the ebb.
1759
1760         * ddg.c (create_ddg_dependence): Update to use new interfaces.
1761         (build_intra_loop_deps): Ditto.  Remove separate computation of
1762         forward dependencies.  Free sched-deps dependencies.
1763
1764         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
1765         to use new interfaces.
1766         (ia64_dfa_new_cycle, ia64_gen_check): Ditto.
1767
1768         * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
1769         new interfaces.
1770         (is_costly_group): Ditto.
1771
1772 2007-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1773
1774         * alias.c (rtx_equal_for_memref_p): Constify.
1775         * basic-block.h (const_edge, const_basic_block): New.
1776         (reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p,
1777         single_pred_p, single_succ_edge, single_pred_edge, single_succ,
1778         single_pred, maybe_hot_bb_p, probably_cold_bb_p,
1779         probably_never_executed_bb_p, edge_probability_reliable_p,
1780         br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print,
1781         inside_basic_block_p, control_flow_insn_p, dominated_by_p):
1782         Likewise.
1783         * bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise.
1784         * bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up):
1785         Likewise.
1786         * cfganal.c (flow_active_insn_p, forwarder_block_p,
1787         flow_nodes_print, dfs_enumerate_from): Likewise.
1788         * cfgbuild.c (count_basic_blocks, inside_basic_block_p,
1789         control_flow_insn_p, count_basic_blocks): Likewise.
1790         * cfgloop.c (flow_bb_inside_loop_p, glb_enum_p,
1791         get_loop_body_with_size, loop_exit_edge_p): Likewise.
1792         * cfgloop.h (flow_bb_inside_loop_p, num_loop_insns,
1793         average_num_loop_insns, loop_exit_edge_p,
1794         just_once_each_iteration_p, can_duplicate_loop_p): Likewise.
1795         * cfgloopanal.c (just_once_each_iteration_p, num_loop_insns,
1796         average_num_loop_insns, seq_cost): Likewise.
1797         * cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise.
1798         * dominance.c (dominated_by_p): Likewise.
1799         * emit-rtl.c (validate_subreg): Likewise.
1800         * except.c (can_throw_internal, can_throw_external): Likewise.
1801         * except.h (can_throw_internal, can_throw_external): Likewise.
1802         * gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p,
1803         oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p,
1804         compute_transp, load_killed_in_block_p, reg_killed_on_edge,
1805         simple_mem, store_ops_ok, load_kills_store, find_loads,
1806         store_killed_in_insn, store_killed_after, store_killed_before,
1807         gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat):
1808         Likewise.
1809         * ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok,
1810         noce_mem_write_may_trap_or_fault_p): Likewise.
1811         * pointer-set.c (pointer_set_contains, pointer_map_contains):
1812         Likewise.
1813         * pointer-set.h (pointer_set_contains, pointer_map_contains):
1814         Likewise.
1815         * predict.c (can_predict_insn_p, maybe_hot_bb_p,
1816         probably_cold_bb_p, probably_never_executed_bb_p,
1817         edge_probability_reliable_p, br_prob_note_reliable_p,
1818         can_predict_insn_p): Likewise.
1819         * regclass.c (reg_set_to_hard_reg_set): Likewise.
1820         * resource.c (return_insn_p): Likewise.
1821         * rtl.h (reg_set_between_p, reg_set_p, validate_subreg):
1822         Likewise.
1823         * rtlanal.c (reg_set_between_p, reg_set_p): Likewise.
1824         * tracer.c (count_insns, ignore_bb_p, better_p): Likewise.
1825         * tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr,
1826         verify_gimple_modify_stmt): Likewise.
1827         * tree-chrec.c (is_not_constant_evolution,
1828         is_multivariate_chrec_rec, is_multivariate_chrec,
1829         chrec_contains_symbols, chrec_contains_undetermined,
1830         tree_contains_chrecs, evolution_function_is_affine_multivariate_p,
1831         evolution_function_is_univariate_p, avoid_arithmetics_in_type_p,
1832         eq_evolutions_p, scev_direction): Likewise.
1833         * tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec,
1834         eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols,
1835         chrec_contains_symbols_defined_in_loop,
1836         chrec_contains_undetermined, tree_contains_chrecs,
1837         evolution_function_is_affine_multivariate_p,
1838         evolution_function_is_univariate_p, chrec_zerop,
1839         evolution_function_is_constant_p, evolution_function_is_affine_p,
1840         evolution_function_is_affine_or_constant_p,
1841         tree_does_not_contain_chrecs, chrec_type): Likewise.
1842         * tree-data-ref.c (tree_fold_divides_p,
1843         object_address_invariant_in_loop_p, dr_may_alias_p,
1844         ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p,
1845         same_access_functions, constant_access_functions,
1846         access_functions_are_affine_or_constant_p, find_vertex_for_stmt):
1847         Likewise.
1848         * tree-flow.h (scev_direction): Likewise.
1849         * tree-gimple.c (is_gimple_stmt): Likewise.
1850         * tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p):
1851         Likewise.
1852         * tree-pretty-print.c (op_prio): Likewise.
1853         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
1854         analyzable_condition, backedge_phi_arg_p): Likewise.
1855         * tree-scalar-evolution.h (get_chrec_loop): Likewise.
1856         * tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise.
1857         * tree-ssa-threadupdate.c (dbds_continue_enumeration_p):
1858         Likewise.
1859
1860 2007-08-13  Dan Hipschman  <dsh@google.com>
1861
1862         PR c/32953
1863         * c-format.c (check_format_arg): Move check for zero-length
1864         format strings below the check for unterminated strings.
1865
1866 2007-08-13  Andrew Pinski  <pinskia@gmail.com>
1867
1868         PR C/30427
1869         * c-typeck.c (build_unary_op <case BIT_NOT_EXPR>): Reject vector float
1870         types.
1871
1872 2007-08-13  Nick Clifton  <nickc@redhat.com>
1873
1874         * config/arm/arm_neon.h: Revert GPLv3 patch to this file.
1875
1876 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1877
1878         PR fortran/32860
1879         * c-format.c (gcc_gfc_length_specs): New array.
1880         (gcc_gfc_char_table): Add unsigned specifier, and references to
1881         the l length modifier.
1882         (format_types_orig): Use the new gcc_gfc_length_specs.
1883
1884 2007-08-12  Sa Liu  <saliu@de.ibm.com>
1885
1886         * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
1887         and with REG_RETVAL note after split.
1888
1889 2007-08-11  David Daney  <ddaney@avtrex.com>
1890
1891         * config/mips/mips.c (mips_sched_reorder):  Mark cycle parameter
1892         as ATTRIBUTE_UNUSED.
1893
1894 2007-08-11  David Edelsohn  <edelsohn@gnu.org>
1895             Segher Boessenkool  <segher@kernel.crashing.org>
1896
1897         * config/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if
1898         HAVE_LOCAL_CPU_DETECT not defined.
1899
1900 2007-08-11  Jan Hubicka  <jh@suse.cz>
1901
1902         * cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined.
1903         (cgraph_process_new_functions): Honor previous value of
1904         disregard_inline_limits.
1905         * ipa-inline.c (compute_inline_parameters): Likewise.
1906
1907 2007-08-11  Ian Lance Taylor  <iant@google.com>
1908
1909         * alias.h (alias_set_type): Define new type.
1910         (ALIAS_SET_MEMORY_BARRIER): Use it.
1911         * rtl.h: Include alias.h.
1912         (struct mem_attrs): Use alias_set_type.
1913         * tree.h: Include alias.h
1914         (struct tree_type): Use alias_set_type.
1915         (struct tree_struct_field_tag): Likewise.
1916         (struct tree_decl_common): Likewise.
1917         * alias.c (struct alias_set_entry): Use alias_set_type.
1918         (get_alias_set_entry, alias_set_subset_of): Likewise.
1919         (alias_sets_conflict_p): Likewise.
1920         (alias_sets_must_conflict_p): Likewise.
1921         (objects_must_conflict_p): Likewise.
1922         (get_alias_set, new_alias_set): Likewise.
1923         (record_alias_subset, record_component_aliases): Likewise.
1924         (varargs_set, frame_set): Change to alias_set_type.
1925         (get_varargs_alias_set): Use alias_set_type.
1926         (get_frame_alias_set): Likewise.
1927         * builtins.c (setjmp_alias_set): Change to alias_set_type.
1928         * dse.c (struct store_info): Use alias_set_type.
1929         (struct read_info, struct clear_alias_mode_holder): Likewise.
1930         (clear_alias_set_lookup, canon_address): Likewise.
1931         (record_store, check_mem_read_rtx): Likewise.
1932         (dse_record_singleton_alias_set): Likewise.
1933         (dse_invalidate_singleton_alias_set): Likewise.
1934         * emit-rtl.c (get_mem_attrs): Likewise.
1935         (set_mem_attributes_minus_bitpos): Likewise.
1936         (set_mem_alias_set): Likewise.
1937         * expr.c (store_constructor_field, store_field): Likewise.
1938         * gimplify.c (struct gimplify_init_ctor_preeval_data): Likewise.
1939         * langhooks.c (lhd_get_alias_set): Likewise.
1940         * langhooks-def.h (lhd_get_alias_set): Likewise.
1941         * reload1.c (alter_reg): Likewise.
1942         * tree-flow.h (struct fieldoff): Likewise.
1943         * tree-ssa-alias.c (struct alias_map_d): Likewise.
1944         (may_alias_p, get_smt_for, create_sft): Likewise.
1945         * tree-ssa-alias-warnings.c (nonstandard_alias_types_p): Likewise.
1946         * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
1947         (merge_smts_into): Likewise.
1948         * varasm.c (const_alias_set): Likewise.
1949         * c-common.c (strict_aliasing_warning): Likewise.
1950         (c_common_get_alias_set): Likewise.
1951         * dse.h (dse_record_singleton_alias_set): Update declaration.
1952         (dse_invalidate_singleton_alias_set): Likewise.
1953         * emit-rtl.h (set_mem_alias_set): Likewise.
1954         * c-common.h (c_common_get_alias_set): Likewise.
1955         * print-rtl.c (print_rtx): Cast MEM_ALIAS_SET when printing it.
1956         * print-tree.c (print_node): Likewise.
1957         * config/alpha/alpha.c (alpha_sr_alias_set): Change to
1958         alias_set_type.
1959         (alpha_setup_incoming_varargs): Use alias_set_type.
1960         * config/i386/i386.c (setup_incoming_varargs_64): Use
1961         alias_set_type.
1962         (setup_incoming_varargs_ms_64): Likewise.
1963         (ix86_GOT_alias_set): Likewise.
1964         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
1965         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
1966         (set): Change to alias_set_type.
1967         (get_TOC_alias_set): Use alias_set_type.
1968         * config/rs6000/rs6000-protos.h (get_TOC_alias_set): Update
1969         declaration.
1970         * config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type.
1971         * config/sparc/sparc.c (sparc_sr_alias_set): Change to
1972         alias_set_type.
1973         (struct_value_alias_set): Likewise.
1974         * Makefile.in (GTFILES): Add $(srcdir)/alias.h.
1975
1976 2007-08-11  Richard Sandiford  <richard@codesourcery.com>
1977
1978         * config/vxworks-dummy.h (TARGET_VXWORKS): Define.
1979         * config/vxworks.h (TARGET_VXWORKS): Override.
1980         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define
1981         "mips" if TARGET_VXWORKS.
1982
1983 2007-08-11  Richard Sandiford  <richard@codesourcery.com>
1984
1985         * calls.c (avoid_likely_spilled_reg): New function.
1986         (expand_call): Use it.
1987
1988 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1989
1990         * c-typeck.c (build_c_cast): Add OPT_Wcast_qual to warnings.
1991
1992 2007-08-10  Adam Nemet  <anemet@caviumnetworks.com>
1993
1994         * config/mips/predicates.md (const_call_insn_operand): Invoke
1995         SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.
1996
1997 2007-08-10  David Edelsohn  <edelsohn@gnu.org>
1998
1999         PR target/33042
2000         * config/rs6000/driver-rs6000.c: Include link.h.
2001         Use ElfW instead of wordsize-specif typedef.
2002
2003 2007-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2004
2005         * system.h (CONST_CAST): New.
2006         * c-decl.c (c_make_fname_decl): Use it.
2007         * c-lex.c (cb_ident, lex_string): Likewise.
2008         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
2009         * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
2010         give_switch, set_multilib_dir): Likewise.
2011         * gengtype-parse.c (string_seq, typedef_name): Likewise.
2012         * passes.c (execute_one_pass): Likewise.
2013         * prefix.c (update_path): Likewise.
2014         * pretty-print.c (pp_base_destroy_prefix): Likewise.
2015         * tree.c (build_string): Likewise.
2016
2017 2007-08-10  Aldy Hernandez  <aldyh@redhat.com>
2018
2019         * tree-flow-inline.h (is_exec_stmt): Remove.
2020         (is_label_stmt): Remove.
2021         * tree-flow.h: Remove prototypes for is_exec_stmt, get_filename, and
2022         is_label_stmt.
2023
2024 2007-08-10  Andreas Krebbel  <krebbel1@de.ibm.com>
2025
2026         * lower-subreg.c (resolve_shift_zext): Don't adjust
2027         src_reg_num for wordmode operands.
2028
2029 2007-08-10  Sandra Loosemore  <sandra@codesourcery.com>
2030             David Ung  <davidu@mips.com>
2031
2032         * config/mips/mips.c (TARGET_SCHED_INIT): Define.
2033         (TARGET_SCHED_REORDER2): Define.
2034         (mips_maybe_swap_ready): New.
2035         (mips_last_74k_agen_insn): New.
2036         (mips_74k_agen_init): New.
2037         (mips_74k_agen_reorder): New function to group loads and stores
2038         in the ready queue.
2039         (mips_sched_init): New.  
2040         (mips_sched_reorder): Don't do initialization here.  Call
2041         mips_74k_agen_reorder.
2042         (mips_variable_issue): Call mips_74k_agen_init.
2043
2044 2007-08-10  Aldy Hernandez  <aldyh@redhat.com>
2045
2046         * tree-flow-inline.h (get_filename): Remove.
2047
2048 2007-08-10  Richard Sandiford  <richard@codesourcery.com>
2049
2050         * config/mips/mips-protos.h (mips_address_insns): Add a boolean
2051         argument.
2052         (mips_fetch_insns): Delete in favor of...
2053         (mips_load_store_insns): ...this new function.
2054         * config/mips/mips.c (mips_address_insns): Add a boolean argument
2055         to say whether multiword moves _might_ be split.
2056         (mips_fetch_insns): Delete in favor of...
2057         (mips_load_store_insns): ...this new function.
2058         (mips_rtx_costs): Update the call to mips_address_insns.
2059         (mips_address_cost): Likewise.
2060         * config/mips/mips.md (length): Use mips_load_store_insns instead
2061         of mips_fetch_insns.
2062         * config/mips/constraints.md (R): Use mips_address_insns rather
2063         than mips_fetch_insns.  Assume that the move never needs to be split.
2064
2065 2007-08-09  Sandra Loosemore  <sandra@codesourcery.com>
2066
2067         * config/mips/mips.opt (mhard-float, msoft-float):  Make these
2068         control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather
2069         than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT.  
2070         * config/mips/mips.h (mips16_hard_float): Delete.
2071         (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI):  Delete these
2072         definitions, and replace with....
2073         (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define.
2074         * config/mips/mips.c (mips16_hard_float): Delete.  Replace
2075         all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI).
2076         (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments.
2077         (override_options):  Replace MASK_SOFT_FLOAT references with
2078         MASK_SOFT_FLOAT_ABI.  Delete twiddling with MASK_SOFT_FLOAT
2079         and mips16_hard_float when TARGET_MIPS16.
2080         
2081 2007-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2082
2083         PR c/32796
2084         * c-typeck.c (build_binary_op): Check for non pointer types before
2085         calling int_fits_type_p.
2086
2087 2007-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2088
2089         PR middle-end/32813
2090         * fold-const.c (omit_one_operand): Return only the ommitted expression
2091         if the result is an empty statement.
2092         (pedantic_omit_one_operand): Likewise.
2093
2094 2007-08-09  Daniel Berlin  <dberlin@dberlin.org>
2095
2096         * c-typeck.c (readonly_error): Improve error for assignment.
2097         
2098         * c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus
2099         expression. 
2100         (pp_c_expression): Ditto.
2101
2102 2007-08-09  Simon Baldwin  <simonb@google.com>
2103
2104         * simplify-rtx.c (simplify_binary_operation_1): Removed erroneous
2105         break that was preventing simplify_associative_operation() for xor.
2106
2107 2007-08-09  Sandra Loosemore  <sandra@codesourcery.com>
2108             Nigel Stephens  <nigel@mips.com>
2109
2110         * doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO):
2111         Document change in interpretation of value from boolean to
2112         tri-state integer.
2113         * optabs.c (expand_ffs, expand_ctz): New functions to compute
2114         ffs and ctz using clz.
2115         (expand_unop):  Call them.
2116         * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its
2117         result value.
2118         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
2119         * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Likewise, to
2120         enable the new ffs expansion on this target.
2121
2122 2007-08-09  Jan Hubicka  <jh@suse.cz>
2123
2124         * optabs.c (expand_widen_pattern_expr): Use optabs accestors.
2125         (expand_ternary_op): Likewise.
2126         (expand_vec_shift_expr): Likewise.
2127         (expand_binop_directly): Likewise.
2128         (expand_binop): Likewise.
2129         (sign_expand_binop): Likewise.
2130         (expand_twoval_unop): Likewise.
2131         (expand_twoval_binop): Likewise.
2132         (expand_twoval_binop_libfunc): Likewise.
2133         (widen_clz): Likewise.
2134         (widen_bswap): Likewise.
2135         (expand_parity): Likewise.
2136         (expand_unop): Likewise.
2137         (expand_abs_nojump): Likewise.
2138         (expand_copysign): Likewise.
2139         (emit_no_conflict_block): Likewise.
2140         (emit_libcall_block): Likewise.
2141         (can_compare_p): Likewise.
2142         (prepare_cmp_insn): Likewise.
2143         (emit_cmp_and_jump_insn_1): Likewise.
2144         (prepare_float_lib_cmp): Likewise.
2145         (emit_conditional_add): Likewise.
2146         (gen_add2_insn): Likewise.
2147         (have_add2_insn): Likewise.
2148         (gen_sub2_insn): Likewise.
2149         (have_sub2_insn): Likewise.
2150         (can_extend_p): Likewise.
2151         (can_fix_p): Likewise.
2152         (can_float_p): Likewise.
2153         (expand_float): Likewise.
2154         (expand_fix): Likewise.
2155         (expand_sfix_optab): Likewise.
2156         (new_optab): Likewise.
2157         (new_convert_optab): Likewise.
2158         (init_libfuncs): Likewise.
2159         (init_interclass_conv_libfuncs): Likewise.
2160         (init_intraclass_conv_libfuncs): Likewise.
2161         (set_conv_libfunc): Likewise.
2162         (init_optabs): Likewise.
2163         (debug_optab_libfuncs): Likewise.
2164         (gen_cond_trap): Likewise.
2165         * optabs.h (optab_handler, convert_optab_hanlder): New.
2166         * genopinit.c: Update optabs generation table.
2167         * reload.c (find_reloads_address_1): Use optabs accestors.
2168         * builtins.c (expand_builtin_mathfn): Likewise.
2169         (expand_builtin_mathfn_2): Likewise.
2170         (expand_builtin_mathfn_3): Likewise.
2171         (expand_builtin_interclass_mathfn): Likewise.
2172         (expand_builtin_sincos): Likewise.
2173         (expand_builtin_cexpi): Likewise.
2174         (expand_builtin_powi): Likewise.
2175         (expand_builtin_strlen): Likewise.
2176         * dojump.c (do_jump): Likewise.
2177         * expr.c (convert_move): Likewise.
2178         (move_by_pieces): Likewise.
2179         (move_by_pieces_ninsns): Likewise.
2180         (can_store_by_pieces): Likewise.
2181         (store_by_pieces_1): Likewise.
2182         (emit_move_via_integer): Likewise.
2183         (emit_move_complex): Likewise.
2184         (emit_move_ccmode): Likewise.
2185         (emit_move_insn_1): Likewise.
2186         (emit_single_push_insn): Likewise.
2187         (store_constructor): Likewise.
2188         (expand_expr_real_1): Likewise.
2189         (do_store_flag): Likewise.
2190         * ada/misc.c (gnat_compute_largest_alignment): Likewise.
2191         (enumerate_modes): Likewise.
2192         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
2193         (supportable_widening_operation): Likewise.
2194         (supportable_narrowing_operation): Likewise.
2195         * expmed.c (store_bit_field_1): Likewise.
2196         (extract_bit_field_1): Likewise.
2197         (expand_mult_highpart_optab): Likewise.
2198         (expand_smod_pow2): Likewise.
2199         (expand_divmod): Likewise.
2200         (emit_store_flag): Likewise.
2201         * tree-vect-patterns.c
2202         (vect_pattern_recog_1): Likewise.
2203         * tree-ssa-loop-prefetch.c
2204         (nontemporal_store_p): Likewise.
2205         * tree-vect-transform.c (vect_model_reduction_cost): Likewise.
2206         (vect_create_epilog_for_reduction): Likewise.
2207         (vectorizable_reduction): Likewise.
2208         (vectorizable_operation): Likewise.
2209         (vect_strided_store_supported): Likewise.
2210         (vectorizable_store): Likewise.
2211         (vect_strided_load_supported): Likewise.
2212         (vectorizable_load): Likewise.
2213         * combine.c (simplify_comparison): Likewise.
2214         * tree-vect-generic.c
2215         (type_for_widest_vector_mode): Likewise.
2216         (expand_vector_operations_1): Likewise.
2217         * config/spu/spu.c (spu_expand_mov): Likewise.
2218         (spu_emit_vector_compare): Likewise.
2219         * config/rs6000/rs6000.c
2220         (rs6000_emit_vector_compare): Likewise.
2221         * stmt.c (add_case_node): Likewise.
2222         * reload1.c (gen_reload):
2223
2224 2007-08-09  Michael Matz  <matz@suse.de>
2225
2226         * tree.h (fixed_zerop): Declare as taking a const_tree.
2227         * tree.c (fixed_zerop): Take a const_tree.
2228
2229 2007-08-09  Ira Rosen  <irar@il.ibm.com>
2230
2231         * tree-vect-transform.c (vectorizable_store): Remove call to
2232         copy_virtual_operands() and call mark_symbols_for_renaming() for
2233         the created vector store.
2234         (vect_setup_realignment): Don't call copy_virtual_operands() and
2235         update_vuses_to_preheader(). 
2236         (vectorizable_load): Don't call copy_virtual_operands(). 
2237         (update_vuses_to_preheader): Remove.
2238
2239 2007-08-08  Chao-ying Fu  <fu@mips.com>
2240
2241         * tree.def (FIXED_POINT_TYPE): New type.
2242         (FIXED_CST): New constant.
2243         (FIXED_CONVERT_EXPR): New expr.
2244         * doc/c-tree.texi (Types): Document FIXED_POINT_TYPE.
2245         (Expressions): Document FIXED_CST and FIXED_CONVERT_EXPR.
2246         * tree.h (struct tree_base): Add saturating_flag.
2247         Remove one bit of spare for saturating_flag.
2248         (NUMERICAL_TYPE_CHECK): Support FIXED_POINT_TYPE.
2249         (NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P,
2250         FIXED_POINT_TYPE_P): Define.
2251         (TYPE_SATURATING): Define.
2252         (TREE_FIXED_CST_PTR, TREE_FIXED_CST): Define.
2253         (struct tree_fixed_cst): New.
2254         (TYPE_IBIT, TYPE_FBIT): Define.
2255         (tree_node): Add fixed_cst.
2256         (enum tree_index): Add new enumeration values of
2257         TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE,
2258         TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE,
2259         TI_SAT_ULFRACT_TYPE, TI_SAT_ULLFRACT_TYPE, TI_SFRACT_TYPE,
2260         TI_FRACT_TYPE, TI_LFRACT_TYPE, TI_LLFRACT_TYPE, TI_USFRACT_TYPE,
2261         TI_UFRACT_TYPE, TI_ULFRACT_TYPE, TI_ULLFRACT_TYPE,
2262         TI_SAT_SACCUM_TYPE, TI_SAT_ACCUM_TYPE, TI_SAT_LACCUM_TYPE,
2263         TI_SAT_LLACCUM_TYPE, TI_SAT_USACCUM_TYPE, TI_SAT_UACCUM_TYPE,
2264         TI_SAT_ULACCUM_TYPE, TI_SAT_ULLACCUM_TYPE, TI_SACCUM_TYPE,
2265         TI_ACCUM_TYPE, TI_LACCUM_TYPE, TI_LLACCUM_TYPE, TI_USACCUM_TYPE,
2266         TI_UACCUM_TYPE, TI_ULACCUM_TYPE, TI_ULLACCUM_TYPE,
2267         TI_QQ_TYPE, TI_HQ_TYPE,_TYPE, TI_SQ_TYPE, TI_DQ_TYPE, TI_TQ_TYPE,
2268         TI_UQQ_TYPE, TI_UHQ_TYPE, TI_USQ_TYPE, TI_UDQ_TYPE, TI_UTQ_TYPE,
2269         TI_SAT_QQ_TYPE, TI_SAT_HQ_TYPE, TI_SAT_SQ_TYPE, TI_SAT_DQ_TYPE,
2270         TI_SAT_TQ_TYPE, TI_SAT_UQQ_TYPE, TI_SAT_UHQ_TYPE, TI_SAT_USQ_TYPE,
2271         TI_SAT_UDQ_TYPE, TI_SAT_UTQ_TYPE, TI_HA_TYPE, TI_SA_TYPE, TI_DA_TYPE,
2272         TI_TA_TYPE, TI_UHA_TYPE, TI_USA_TYPE, TI_UDA_TYPE, TI_UTA_TYPE,
2273         TI_SAT_HA_TYPE, TI_SAT_SA_TYPE, TI_SAT_DA_TYPE, TI_SAT_TA_TYPE,
2274         TI_SAT_UHA_TYPE, TI_SAT_USA_TYPE, TI_SAT_UDA_TYPE, TI_SAT_UTA_TYPE.
2275         (sat_short_fract_type_node, sat_fract_type_node,
2276         sat_long_fract_type_node, sat_long_long_fract_type_node,
2277         sat_unsigned_short_fract_type_node, sat_unsigned_fract_type_node,
2278         sat_unsigned_long_fract_type_node,
2279         sat_unsigned_long_long_fract_type_node, short_fract_type_node,
2280         fract_type_node, long_fract_type_node, long_long_fract_type_node,
2281         unsigned_short_fract_type_node, unsigned_fract_type_node,
2282         unsigned_long_fract_type_node, unsigned_long_long_fract_type_node,
2283         sat_short_accum_type_node, sat_accum_type_node,
2284         sat_long_accum_type_node, sat_long_long_accum_type_node,
2285         sat_unsigned_short_accum_type_node, sat_unsigned_accum_type_node,
2286         sat_unsigned_long_accum_type_node,
2287         sat_unsigned_long_long_accum_type_node, short_accum_type_node,
2288         accum_type_node, long_accum_type_node, long_long_accum_type_node,
2289         unsigned_short_accum_type_node, unsigned_accum_type_node,
2290         unsigned_long_accum_type_node, unsigned_long_long_accum_type_node,
2291         qq_type_node, hq_type_node, sq_type_node, dq_type_node, tq_type_node,
2292         uqq_type_node, uhq_type_node, usq_type_node, udq_type_node,
2293         utq_type_node, sat_qq_type_node, sat_hq_type_node, sat_sq_type_node,
2294         sat_dq_type_node, sat_tq_type_node, sat_uqq_type_node,
2295         sat_uhq_type_node, sat_usq_type_node, sat_udq_type_node,
2296         sat_utq_type_node, ha_type_node, sa_type_node, da_type_node,
2297         ta_type_node, uha_type_node, usa_type_node, uda_type_node,
2298         uta_type_node, sat_ha_type_node, sat_sa_type_node, sat_da_type_node,
2299         sat_ta_type_node, sat_uha_type_node, sat_usa_type_node,
2300         sat_uda_type_node, sat_uta_type_node): New macro.
2301         (make_fract_type, make_accum_type): Declare.
2302         (make_signed_fract_type, make_unsigned_fract_type,
2303         make_sat_signed_fract_type, make_sat_unsigned_fract_type,
2304         make_signed_accum_type, make_unsigned_accum_type,
2305         make_sat_signed_accum_type, make_sat_unsigned_accum_type,
2306         make_or_reuse_signed_fract_type, make_or_reuse_unsigned_fract_type,
2307         make_or_reuse_sat_signed_fract_type,
2308         make_or_reuse_sat_unsigned_fract_type, make_or_reuse_signed_accum_type,
2309         make_or_reuse_unsigned_accum_type, make_or_reuse_sat_signed_accum_type,
2310         make_or_reuse_sat_unsigned_accum_type): New macro.
2311         (fixed_zerop): Declare.
2312         * defaults.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
2313         LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
2314         SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
2315         LONG_LONG_ACCUM_TYPE_SIZE): Define.
2316         * treestruct.def: Add TS_FIXED_CST.
2317         * Makefile.in (c-pretty-print.o): Add dependence on fixed-value.h.
2318         (tree.o): Likewise.
2319         (tree-dump.o): Likewise.
2320         (print-tree.o): Likewise.
2321         (tree-pretty-print.o): Likewise.
2322         (fold-const.o): Likewise.
2323         * tree-complex.c (some_nonzerop): Handle FIXED_CST.
2324         * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle FIXED_CST.
2325         (is_gimple_min_invariant): Handle FIXED_CST.
2326         * stor-layout.c (int_mode_for_mode): Handle MODE_FRACT, MODE_UFRACT,
2327         MODE_ACCUM, MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
2328         MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
2329         (layout_type): Handle FIXED_POINT_TYPE.
2330         (make_fract_type, make_accum_type): New functions.
2331         * tree-browser.c (browse_tree): Handle FIXED_POINT_TYPE.
2332         * tree-dump.c (fixed-value.h): New include.
2333         (dump_fixed): New function.
2334         (dequeue_and_dump): Handle FIXED_POINT_TYPE and FIXED_CST.
2335         * tree-inline.c (remap_type_1): Handle FIXED_POINT_TYPE.
2336         (estimate_num_insns_1): Handle FIXED_CST and FIXED_CONVERT_EXPR.
2337         * tree-pretty-print.c (fixed-value.h): New include.
2338         (dump_generic_node): Handle FIXED_POINT_TYPE, FIXED_CST, and
2339         FIXED_CONVERT_EXPR.
2340         * tree-scalar-evolution.c (get_scalar_evolution): Handle FIXED_CST.
2341         * tree-ssa-loop-im.c (for_each_index): Handle FIXED_CST.
2342         * tree-ssa-pre.c (poolify_tree): Handle FIXED_CST.
2343         * tree-ssa-reassoc.c (break_up_subtract_bb): We can do reassociation
2344         for non-saturating fixed-point types.
2345         (reassociate_bb): Likewise.
2346         * emit-rtl.c (fixed-value.h): New include.
2347         (fconst0, fconst1): New array.
2348         (init_emit_once): Initialize fconst0 and fconst1 for fixed-point modes.
2349         * tree-vect-generic.c expand_vector_operation): Support
2350         MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, and
2351         MODE_VECTOR_UACCUM.
2352         (type_for_widest_vector_mode): Add one parameter for the 
2353         saturating flag.
2354         Check scalar FRACT, UFRACT, ACCUM, and UACCUM mode to select their
2355         vector mode.
2356         Pass the satp parameter to type_for_mode for fixed-point types.
2357         (expand_vector_operations_1): Pass the saturating flag to
2358         type_for_widest_vector_mode.
2359         Support MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
2360         and MODE_VECTOR_UACCUM.
2361         * tree-vect-transform.c (vect_is_simple_cond): Support FIXED_CST.
2362         (vectorizable_condition): Likewise.
2363         * tree.c (fixed-value.h): New include.
2364         (tree_code_size): Support FIXED_CST.
2365         (build_fixed): New function.
2366         (build_one_cst): Support FIXED_POINT_TYPE for accum types.
2367         (fixed_zerop): New function.
2368         (tree_node_structure): Support FIXED_CST.
2369         (type_contains_placeholder_1): Support FIXED_POINT_TYPE.
2370         (build_type_attribute_qual_variant): Handle FIXED_POINT_TYPE.
2371         (type_hash_eq): Handle FIXED_POINT_TYPE.
2372         (simple_cst_equal): Support FIXED_CST.
2373         (iterative_hash_expr): Handle FIXED_CST.
2374         (get_unwidened): Make sure type is not FIXED_POINT_TYPE.
2375         (get_narrower): Likewise.
2376         (variably_modified_type_p): Handle FIXED_POINT_TYPE.
2377         (make_or_reuse_fract_type, make_or_reuse_accum_type): New functions.
2378         (build_common_tree_nodes_2): Use MAKE_FIXED_TYPE_NODE_FAMILY and
2379         MAKE_FIXED_MODE_NODE macros to initialize fixed-point type
2380         nodes.
2381         (build_vector_type_for_mode): Handle MODE_VECTOR_FRACT,
2382         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
2383         (initializer_zerop): Support FIXED_CST.
2384         (walk_tree): Handle FIXED_CST and FIXED_POINT_TYPE.
2385         * dwarf2out.c (base_type_die): Use DW_ATE_signed_fixed or
2386         DW_ATE_unsigned_fixed to describe FIXED_POINT_TYPE.
2387         (is_base_type): Handle FIXED_POINT_TYPE.
2388         (add_type_attribute): Handle FIXED_POINT_TYPE.
2389         (gen_type_die_with_usage): Handle FIXED_POINT_TYPE.
2390         * print-tree.c (fixed-value.h): New include.
2391         (print_node_brief): Support FIXED_CST.
2392         (print_node): Support FIXED_POINT_TYPE and FIXED_CST.
2393         * c-pretty-print.c (fixed-value.h): New include.
2394         (pp_c_type_specifier): Handle FIXED_POINT_TYPE.  Need to pass
2395         TYPE_SATURATING to c_common_type_for_mode for fixed-point modes.
2396         (pp_c_direct_abstract_declarator): Handle FIXED_POINT_TYPE.
2397         Support fixed-point types for inner items in VECTOR_TYPE.
2398         (pp_c_direct_declarator): Likewise.
2399         (pp_c_declarator): Likewise.
2400         (pp_c_fixed_constant): New function.
2401         (pp_c_constant): Handle FIXED_CST.
2402         (pp_c_primary_expression): Likewise.
2403         (pp_c_expression): Likewise.
2404         * fold-const.c (fixed-value.h): New include.
2405         (negate_expr_p): Return true for FIXED_CST.
2406         (fold_negate_expr): Support FIXED_CST.
2407         (split_tree): Support FIXED_CST.
2408         (const_binop): Support FIXED_CST.
2409         (fold_convert_const_int_from_fixed): New function to convert from
2410         fixed to int.
2411         (fold_convert_const_real_from_fixed): New function to convert from
2412         fixed to real.
2413         (fold_convert_const_fixed_from_fixed): New function to convert from
2414         fixed to another fixed.
2415         (fold_convert_const_fixed_from_int): New function to convert from
2416         int to fixed.
2417         (fold_convert_const_fixed_from_real): New function to convert from
2418         real to fixed.
2419         (fold_convert_const): Support conversions from fixed to int, from
2420         fixed to real, from fixed to fixed, from int to fixed, and from real
2421         to fixed.
2422         (fold_convert): Support FIXED_CST and FIXED_POINT_TYPE.
2423         (operand_equal_p): Support FIXED_CST.
2424         (make_range): For fixed-point modes, we need to pass the
2425         saturating flag as the 2nd parameter.
2426         (tree_swap_operands_p): Handle FIXED_CST.
2427         (fold_plusminus_mult_expr): For fract modes, we cannot generate
2428         constant 1.
2429         (fold_unary): Support FIXED_CONVERT_EXPR.
2430         (fold_binary): Handle FIXED_CST.
2431         Make sure the type is not saturating, before associating operations.
2432         Ex: A + B + C, A * B * C, (A1 * C1) +/- (A2 * C2).
2433         (tree_expr_nonnegative_warnv_p): Handle FIXED_CST.
2434         (fold_negate_const): Support FIXED_CST.
2435         (fold_relational_const): Support FIXED_CST.
2436         * gimplify.c (omp_firstprivatize_type_sizes): Handle FIXED_POINT_TYPE.
2437         (gimplify_expr): Handle FIXED_CST.
2438         (gimplify_type_sizes): Handle FIXED_POINT_TYPE.
2439         * ipa-prop.c (ipa_callsite_compute_param): Support FIXED_CST.
2440         * ipa-type-escape.c (type_to_consider): Handle FIXED_POINT_TYPE.
2441         * doc/tm.texi (Type Layout): Document SHORT_FRACT_TYPE_SIZE,
2442         FRACT_TYPE_SIZE, LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
2443         SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
2444         LONG_LONG_ACCUM_TYPE_SIZE.
2445         * dbxout.c (dbxout_type): Handle FIXED_POINT_TYPE.
2446         * c-aux-info.c (gen_type): Handle FIXED_POINT_TYPE.
2447         * tree-sra.c (is_sra_scalar_type): Support FIXED_POINT_TYPE.
2448         * expmed.c (extract_bit_field): Support MODE_FRACT, MODE_UFRACT,
2449         MODE_ACCUM, and MODE_UACCUM.
2450         * tree-vectorizer.c (vect_is_simple_reduction): Check for saturating
2451         fixed-point types to disable reduction.
2452         * explow.c (promote_mode): Support FIXED_POINT_TYPE.
2453
2454 2007-08-08  David Edelsohn  <edelsohn@gnu.org>
2455
2456         * config/rs6000/x-rs6000: New file.
2457         * config/rs6000/darwin.h (CC1_SPEC): Add cc1_cpu.
2458         * config/rs6000/rs6000.h (EXTRA_SPECS): Add cc1_cpu.
2459         (EXTRA_SPEC_FUNCTIONS): Define.
2460         (HAVE_LOCAL_CPU_DETECT): Define.
2461         (CC1_CPU_SPEC): Define.
2462         * config/rs6000/driver-rs6000.c: New file.
2463         * config/rs6000/aix.h (CC1_SPEC): Define.
2464         * config/rs6000/sysv4.h (CC1_SPEC): Add cc1_cpu.
2465         * config.host: Add x-rs6000 to host_xmake_file if host and target
2466         are rs6000 or powerpc.
2467
2468 2007-08-08  Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
2469
2470         * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=.
2471
2472 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
2473             Sandra Loosemore  <sandra@codesourcery.com>
2474             Chao-ying Fu  <fu@mips.com>
2475             Nigel Stephens  <nigel@mips.com>
2476             David Ung  <davidu@mips.com>
2477
2478         * doc/invoke.texi (-mcode-readable): Document.
2479         * config/mips/mips.opt (mcode-readable): New option.
2480         * config/mips/mips-protos.h (SYMBOL_32_HIGH): New symbol type.
2481         * config/mips/mips.h (mips_code_readable_setting): New enum.
2482         (mips_code_readable): Declare.
2483         (TARGET_MIPS16_TEXT_LOADS, TARGET_MIPS16_PCREL_LOADS): New macros.
2484         (TARGET_MIPS16_SHORT_JUMP_TABLES): New macro.
2485         (JUMP_TABLES_IN_TEXT_SECTION): Use it.
2486         (CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE): Likewise.  Remove
2487         boiler-plate comments.
2488         (ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
2489         * config/mips/mips.c (mips_code_readable): New variable.
2490         (mips_classify_symbol): Only return SYMBOL_PC_RELATIVE for
2491         MIPS16 labels if TARGET_MIPS16_SHORT_JUMP_TABLES.  Use both the
2492         context and -mcode-readable setting to restrict the use of
2493         SYMBOL_PC_RELATIVE for MIPS16 constant pool references.
2494         Only return TARGET_FORCE_TO_MEM if PC-relative loads are allowed.
2495         (mips_symbolic_constant_p): Handle SYMBOL_32_HIGH.
2496         (mips_blocks_for_constant_p): Only return false for
2497         TARGET_MIPS16_PCREL_LOADS.
2498         (mips_symbol_insns_1): Treat HIGHs as 2 extended instructions
2499         for MIPS16.  Handle SYMBOL_32_HIGH.
2500         (mips_const_insns): Allow HIGHs for MIPS16 too.
2501         (mips_unspec_address_offset): New function, split out from...
2502         (mips_unspec_address): ...here.
2503         (mips_output_move): Handle MIPS16 HIGH moves.  Use "li" to load
2504         16-bit symbolic constants.  Assert approropiate conditions for
2505         using the "la" and "dla" macros.
2506         (mips_handle_option): Handle -mcode-readable=.
2507         (override_options): Use %hi/%lo relocations for TARGET_MIPS16 too.
2508         Set up mips_lo_relocs[SYMBOL_32_HIGH].
2509         (mips_strip_unspec_address): New function, split out from...
2510         (print_operand_reloc): ...here.
2511         (print_operand): Pass constants through mips_strip_unspec_address.
2512         (print_operand_address): Likewise.
2513         (mips_output_mi_thunk): Remove guard of mips16_lay_out_constants.
2514         (mips_select_rtx_section): Remove MIPS16 handling.
2515         (mips16_gp_pseudo_reg): Check currently_expanding_to_rtl.
2516         (mips16_rewrite_pool_refs): Wrap the labels in an address UNSPEC.
2517         (mips16_lay_out_constants): Do nothing unless
2518         TARGET_MIPS16_PCREL_LOADS.
2519         (mips_avoid_hazards): Remove guard of mips16_lay_out_constants.
2520         * config/mips/mips.md: Split HIGHs for MIPS16.
2521         (tablejump): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
2522
2523 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
2524
2525         * config/mips/mips-protos.h (mips_emit_move): Declare.
2526         * config/mips/mips.c (mips_emit_move): New function.
2527         (mips_force_temporary): Use mips_emit_move instead of emit_move_insn.
2528         (mips_legitimize_const_move): Likewise.
2529         (mips_legitimize_move): Likewise.
2530         (mips_split_64bit_move): Likewise.
2531         (mips_restore_gp): Likewise.
2532         (mips_load_call_address): Likewise.
2533         (mips_emit_fcc_reload): Likewise.
2534         (mips_set_return_address): Likewise.
2535         (mips_block_move_straight): Likewise.
2536         (mips_block_move_loop): Likewise.
2537         (mips_setup_incoming_varargs): Likewise.
2538         (mips_save_reg): Likewise.
2539         (mips_expand_prologue): Likewise.
2540         (mips_restore_reg): Likewise.
2541         (mips_expand_epilogue): Likewise.
2542         (mips_output_mi_thunk): Likewise.
2543         (build_mips16_call_stub): Likewise.
2544         (mips_builtin_branch_and_move): Likewise.
2545         * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise.
2546         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
2547         (fixuns_truncdfdi2): Likewise.
2548         (fixuns_truncsfsi2): Likewise.
2549         (fixuns_truncsfdi2): Likewise.
2550         (loadgp_absolute): Likewise.
2551         (builtin_setjmp_setup): Likewise.
2552         (builtin_longjmp): Likewise.
2553         (untyped_call): Likewise.
2554
2555 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
2556
2557         * config/mips/mips-protos.h (mips_split_symbol): Add a mode and
2558         an "rtx *" argument.  Return a bool.
2559         * config/mips/mips.c (mips_split_symbol): Accept arbitrary source
2560         values and return true if they can be split.  Take the same kind of
2561         mode argument as mips_symbol_insns.  Add a "lo_sum_out" parameter
2562         and store the lo_sum there if nonnull.  Use the symbol type to
2563         determine whether a $gp or HIGH is needed.
2564         (mips_legitimize_address): Update call to mips_split_symbol and
2565         simplify accordingly.
2566         (mips_legitimize_const_move): Likewise.
2567         * config/mips/mips.md: In the combine define_split,
2568         check mips_split_symbol instead of splittable_symbolic_operand.
2569         Update use of mips_split_symbol in the generator code.
2570         * config/mips/predicates.md (splittable_symbolic_operand): Delete.
2571
2572 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
2573
2574         * config/mips/mips.c (mips_symbolic_address_p): Delete.
2575         (mips_symbol_insns_1): New function, split out from...
2576         (mips_symbol_insns): ...here.  Take a mode argument.  Treat loads
2577         and stores separately from load addresses.
2578         (mips_classify_address): Replace uses of mips_symbolic_address_p
2579         with uses of mips_symbol_insns.
2580         (mips_address_insns): Update calls to mips_symbol_insns.
2581         (mips_const_insns): Likewise.
2582         (mips_legitimize_address): Likewise.
2583
2584 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
2585
2586         * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): New symbol type.
2587         * config/mips/mips.c (mips_classify_symbol): Skip TARGET_ABICALLS
2588         block for locally-binding symbols if TARGET_ABSOLUTE_ABICALLS.
2589         Return SYMBOL_FORCE_TO_MEM instead of SYMBOL_ABSOLUTE for
2590         non-call contexts if TARGET_MIPS16.
2591         (mips_symbolic_constant_p): Handle SYMBOL_FORCE_TO_MEM.
2592         (mips_symbolic_address_p): Likewise.  Remove special TARGET_MIPS16
2593         code for SYMBOL_ABSOLUTE.
2594         (mips_symbol_insns): Likewise.
2595
2596 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
2597
2598         * config/mips/mips-protos.h (mips_symbol_context): New enumeration.
2599         * config/mips/mips.c (mips_classify_symbol): Take a context argument.
2600         (mips_symbolic_constant_p): Likewise.  Update the call to
2601         mips_classify_symbol.
2602         (mips_classify_address): Update the calls to mips_symbolic_constant_p.
2603         (mips_const_insns): Likewise.  Update the call to mips_classify_symbol.
2604         (mips_legitimize_address): Update the call to mips_symbolic_constant_p.
2605         (print_operand_reloc): Add a context argument.  Update the call to
2606         mips_symbolic_constant_p.
2607         (print_operand): Update the calls to print_operand_reloc.
2608         (print_operand_address): Use print_operand_reloc rather than
2609         print_operand.
2610         (mips_rewrite_small_data_p): Add a context argument.  Update the call
2611         to mips_symbolic_constant_p.
2612         (mips_small_data_pattern_1): Make DATA the containing mem.
2613         Update the call to mips_rewrite_small_data_p.
2614         (mips_rewrite_small_data_1): Likewise.
2615         (mips_use_anchors_for_symbol_p): Update the call to
2616         mips_symbolic_constant_p.
2617         * config/mips/predicates.md (const_call_insn_operand): Likewise.
2618         (splittable_symbolic_operand): Likewise.
2619         (move_operand): Likewise.
2620         (absolute_symbolic_operand): Likewise.
2621         (got_disp_operand): Likewise.
2622         (got_page_ofst_operand): Likewise.
2623
2624 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
2625
2626         * config/mips/mips-protos.h (SYMBOL_GENERAL): Rename to...
2627         (SYMBOL_ABSOLUTE): ...this.
2628         (SYMBOL_SMALL_DATA): Rename to...
2629         (SYMBOL_GP_RELATIVE): ...this.
2630         (SYMBOL_CONSTANT_POOL): Rename to...
2631         (SYMBOL_PC_RELATIVE): ...this.
2632         * config/mips/mips.c (mips_classify_symbol, mips_symbolic_constant_p)
2633         (mips_symbolic_address_p, mips_symbol_insns, override_options)
2634         (mips_rewrite_small_data_p, mips_use_anchors_for_symbol_p): Update
2635         after above changes.
2636         * config/mips/predicates.md (const_call_insn_operand): Likewise.
2637         (general_symbolic_operand): Rename to...
2638         (absolute_symbolic_operand): ...this.
2639         * config/mips/mips.md: Update after above changes.
2640
2641 2007-08-08  Vladimir Yanovsky  <yanov@il.ibm.com>
2642             Revital Eres  <eres@il.ibm.com>
2643
2644         * ddg.c (print_ddg): Add dump information.
2645         * modulo-sched.c (print_node_sched_params): Add parameter and
2646         verbosity.
2647         (calculate_maxii): Remove function.
2648         (undo_generate_reg_moves): Likewise.
2649         (undo_permute_partial_schedule): Likewise.
2650         (kernel_number_of_cycles): Likewise.
2651         (MAXII_FACTOR): New definition to calculate the upper bound of II.
2652         (sms_schedule): Use it.  Remove profitability checks.
2653         (sms_schedule_by_order): Fix order of nodes within the cycle.
2654
2655 2007-08-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>
2656
2657         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add
2658         -profile option, add pie support.
2659         (ENDFILE_SPEC): New spec.
2660         * config/gnu.h (LIB_SPEC): Add -profile option.
2661
2662 2007-08-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>
2663
2664         * config/i386/gnu.h (CPP_SPEC): Add -pthread option.
2665         * config/gnu.h (LIB_SPEC): Likewise.
2666
2667 2007-08-07  Yaz Saito  <saito@google.com>
2668             Ian Lance Taylor  <iant@google.com>
2669
2670         * common.opt (finstrument-functions-exclude-function-list): New
2671         option.
2672         (finstrument-functions-exclude-file-list): New option.
2673         * opts.c (char_p): Define and DEF_VEC.
2674         (flag_instrument_functions_exclude_functions): New static
2675         variable.
2676         (flag_instrument_functions_exclude_files): New static variable.
2677         (add_instrument_functions_exclude_list): New static function.
2678         (flag_instrument_functions_exclude_p): New function.
2679         (common_handle_option): Handle new options.
2680         * flags.h (flag_instrument_functions_exclude_p): Declare.
2681         * gimplify.c (gimplify_function_tree): Call
2682         flag_instrument_functions_exclude_p.
2683         * doc/invoke.texi (Option Summary): Mention new options.
2684         (Code Gen Options): Document new options.
2685
2686 2007-08-07  Ian Lance Taylor  <iant@google.com>
2687
2688         PR rtl-optimization/32776
2689         * lower-subreg.c (resolve_clobber): Call resolve_reg_notes.
2690         (resolve_use): Likewise.
2691         (decompose_multiword_subregs): Remove "changed" local variable.
2692
2693 2007-08-07  Carlos O'Donell  <carlos@codesourcery.com>
2694
2695         * configure.ac: Define HAVE_GNU_AS if $gas_flag is yes.
2696         * configure: Regenerate.
2697         * config.in: Regenerate.
2698         * gcc.c [HAVE_GNU_AS]: Add "%{v} %{w:-W} %{I*} " to asm_options
2699         spec string.
2700
2701 2007-08-07  Ian Lance Taylor  <iant@google.com>
2702
2703         * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL
2704         note, just delete the insn.
2705
2706 2007-08-07  Andreas Schwab  <schwab@suse.de>
2707
2708         PR bootstrap/32973
2709         * gengtype-lex.l: Ignore backslash/newline pair while scanning a
2710         struct definition.
2711
2712 2007-08-07  Andreas Krebbel  <krebbel1@de.ibm.com>
2713
2714         * lower-subreg.c (resolve_subreg_use): Remove assertion.
2715         (find_decomposable_shift_zext, resolve_shift_zext): New functions.
2716         (decompose_multiword_subregs): Use the functions above to decompose
2717         multiword shifts and zero-extends.
2718
2719 2007-08-07  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2720
2721         * doc/sourcebuild.texi (Test Directives): Fix "compile" and
2722         "assemble" descriptions which were swapped.
2723
2724 2007-08-06  Chao-ying Fu  <fu@mips.com>
2725
2726         * fixed-value.h: New file.
2727         * fixed-value.c: New file.
2728         * Makefile.in (OBJS-common): Add fixed-value.o.
2729         (fixed-value.o): New rule.
2730         (GTFILES): Add fixed-value.h.
2731         * double-int.c (double_int_scmp): We should use unsigned HOST_WIDE_INT
2732         to compare a.low and b.low.
2733         * gengtype.c (main): Handle FIXED_VALUE_TYPE type as scalar typedef.
2734
2735 2007-08-06  H.J. Lu  <hongjiu.lu@intel.com>
2736             Daniel Jacobowitz  <dan@codesourcery.com>
2737
2738         PR target/31868
2739         * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to
2740         tmake_file.
2741         (x86_64-*-netbsd*): Likewise.
2742         (x86_64-*-linux*): Likewise.
2743         (x86_64-*-kfreebsd*-gnu): Likewise.
2744         (x86_64-*-knetbsd*-gnu): Likewise.
2745         (i[34567]86-*-solaris2.1[0-9]*): Likewise.
2746
2747         * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed.
2748
2749         * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments.
2750         Add -fno-asynchronous-unwind-tables.
2751
2752         * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS).
2753         * config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise.
2754         * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise.
2755         * config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise.
2756         * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise.
2757
2758 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
2759
2760         * config/ia64/ia64.c (ia64_c_mode_for_suffix): New.
2761         (TARGET_C_MODE_FOR_SUFFIX): New.
2762
2763 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
2764
2765         * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'.
2766
2767 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
2768
2769         * config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo.
2770
2771 2007-08-06  H.J. Lu  <hongjiu.lu@intel.com>
2772
2773         * config/i386/i386.md: Check TARGET_ macros and optimize_size
2774         before checking function returns in conditional expressions.
2775
2776 2007-08-06  Alfred Minarik  <a.minarik@aon.at>
2777
2778         PR pch/13676
2779         * doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header.
2780
2781 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2782
2783         PR middle-end/32988
2784         * tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check
2785         for INTEGRAL_TYPE_P.
2786
2787 2008-08-05  Paolo Bonzini  <bonzini@gnu.org>
2788
2789         * configure.ac: Remove --enable-checking=df from default settings.
2790         * tree-pass.h (TODO_df_verify): New.  Shift TODO_mark_first_instance.
2791         * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification
2792         if the parameter is true.
2793         (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the
2794         DF_VERIFY_SCHEDULED flag is true.
2795         * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED.
2796         (df_finish_pass): Adjust prototype.
2797         * passes.c (execute_todo): Schedule verification if TODO_df_verify is
2798         true.
2799
2800         * see.c (pass_see): Add TODO_df_verify.
2801         * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify.
2802         * global.c (rest_of_handle_global_alloc): Schedule verification
2803         after the pass.
2804         * local-alloc.c (rest_of_handle_local_alloc): Schedule verification
2805         before the pass.
2806         * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify.
2807         * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass.
2808         * loop-iv.c (iv_analysis_done): Schedule verification after the pass.
2809
2810         * config/sh/sh.c (sh_output_mi_thunk): Remove dead code.
2811         * config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass.
2812         * config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass.
2813
2814 2007-08-05  Vladimir Yanovsky  <yanov@il.ibm.com>
2815             Revital Eres <eres@il.ibm.com>
2816
2817         * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Document new
2818         flag.
2819         * ddg.c (create_ddg_dependence): Rename to...
2820         (create_ddg_dep_from_intra_loop_link): This.  Do not check
2821         for interloop edges.  Do not create anti dependence edge when
2822         a true dependence edge exists in the opposite direction and
2823         -fmodulo-sched-allow-regmoves is set.
2824         (build_intra_loop_deps): Call create_ddg_dep_from_intra_loop_link.
2825         (add_cross_iteration_register_deps): Create anti dependence edge
2826         when -fno-modulo-sched-allow-regmoves is set.
2827         * common.opt (-fmodulo-sched-allow-regmoves): New flag.
2828
2829 2007-08-04  Richard Sandiford  <richard@codesourcery.com>
2830
2831         * config/arm/arm.md (movsi): Add braces.
2832
2833 2007-08-04  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2834
2835         PR middle-end/32780
2836         * fold-const.c (fold_binary <case MINUS_EXPR>): Fix the type of
2837         operands for the folding of "A - (A & B)" into "~B & A"; cast them
2838         to type.
2839
2840 2007-08-03  Zdenek Dvorak  <ook@ucw.cz>
2841
2842         * tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops'
2843         state accessor functions.
2844         * cfgloopmanip.c (remove_path, create_preheaders,
2845         force_single_succ_latches, fix_loop_structure): Ditto.
2846         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
2847         tree_duplicate_loop_to_header_edge): Ditto.
2848         * cfgloopanal.c (mark_irreducible_loops): Ditto.
2849         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize):
2850         Ditto.
2851         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures,
2852         cleanup_tree_cfg): Ditto.
2853         * tree-cfg.c (tree_merge_blocks): Ditto.
2854         * cfgloop.c (rescan_loop_exit, record_loop_exits,
2855         release_recorded_exits, get_loop_exit_edges, verify_loop_structure,
2856         loop_preheader_edge, single_exit): Ditto.
2857         (flow_loops_find): Do not clear loops->state.
2858         * cfgloop.h (loops_state_satisfies_p, loops_state_set,
2859         loops_state_clear): New functions.
2860
2861 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2862
2863         PR middle-end/32399
2864         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
2865         when adding to the base and convert ELT to sizetype instead of type.
2866
2867 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2868
2869         PR middle-end/32304
2870         * ipa-reference.c (has_proper_scope_for_analysis): Return false when
2871         the decl's type has TYPE_NEEDS_CONSTRUCTING set.
2872
2873 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2874
2875         PR middle-end/32935
2876         * fold-convert.c (fold_negate_expr <NOP_EXPR>): Convert back to the
2877          correct type the negate expression.
2878
2879 2007-08-03  Jan Hubicka  <jh@suse.cz>
2880
2881         * i386.c (setup_incoming_varargs_64): Tolerate 64bit preferred
2882         stack boundary.
2883
2884 2007-08-03  David Edelsohn  <edelsohn@gnu.org>
2885
2886         * config/rs6000/rs6000.c (struct processor_cost): Change
2887         l1_cache_lines to l1_cache_size.  Add l2_cache_size.
2888         (*_cost): Convert l1 cache information to kilobytes.  Add l2 cache
2889         information.
2890         (rios1_costs, rios2_cost): Correct cache line size.
2891         (rs6000_override_options): Set l2-cache-size parameter.
2892
2893 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2894             Diego Novillo  <dnovillo@google.com>
2895
2896         PR 31521
2897         * tree-vrp.c (simplify_div_or_mod_using_ranges): Also simplify
2898         if the range includes 0.
2899
2900 2007-08-03  Ben Elliston  <bje@au.ibm.com>
2901
2902         * config/spu/spu.md (dftsv, dftsv_celledp): Attach the appropriate
2903         mode to unspec expressions to silence a warning from the generator
2904         programs.
2905         
2906 2007-08-02  Steve Ellcey  <sje@cup.hp.com>
2907
2908         * config/ia64/constraints.md ("U"): Make constraint vector only.
2909
2910 2007-08-02  Nathan Froyd  <froydnj@codesourcery.com>
2911
2912         PR middle-end/25446
2913         * c-objc-common.c (c_cannot_inline_tree_fn): Check for an
2914         always_inline attribute on the function decl.
2915
2916 2007-08-02  Nathan Froyd  <froydnj@codesourcery.com>
2917
2918         PR middle-end/25445
2919         * varasm.c (default_binds_local_p_1): Consult flag_whole_program
2920         if we are compiling with -fPIC.
2921
2922 2007-08-02  Sandra Loosemore  <sandra@codesourcery.com>
2923             Nigel Stephens  <nigel@mips.com>
2924
2925         * longlong.h [__mips__] (count_leading_zeros, COUNT_LEADING_ZEROS_0):
2926         Define for MIPS32 and MIPS64.
2927
2928 2007-08-02  Nick Clifton  <nickc@redhat.com>
2929
2930         * config/host-hpux.c: Change copyright header to refer to version
2931         3 of the GNU General Public License and to point readers at the
2932         COPYING3 file and the FSF's license web page.
2933         * config/alpha/predicates.md, config/alpha/vms-ld.c,
2934         config/alpha/linux.h, config/alpha/alpha.opt,
2935         config/alpha/linux-elf.h, config/alpha/vms.h, config/alpha/elf.h,
2936         config/alpha/vms-unwind.h, config/alpha/ev4.md,
2937         config/alpha/ev6.md, config/alpha/alpha.c, config/alpha/vms-cc.c,
2938         config/alpha/alpha.h, config/alpha/sync.md,
2939         config/alpha/openbsd.h, config/alpha/alpha.md,
2940         config/alpha/alpha-modes.def, config/alpha/ev5.md,
2941         config/alpha/alpha-protos.h, config/alpha/freebsd.h,
2942         config/alpha/osf5.h, config/alpha/netbsd.h, config/alpha/vms64.h,
2943         config/alpha/constraints.md, config/alpha/osf.h,
2944         config/alpha/xm-vms.h, config/alpha/unicosmk.h, config/linux.h,
2945         config/frv/predicates.md, config/frv/frv.h, config/frv/linux.h,
2946         config/frv/frv.md, config/frv/frv.opt, config/frv/frv-modes.def,
2947         config/frv/frv-asm.h, config/frv/frv-protos.h,
2948         config/frv/frv-abi.h, config/frv/frv.c, config/s390/tpf.h,
2949         config/s390/s390.c, config/s390/predicates.md, config/s390/s390.h,
2950         config/s390/linux.h, config/s390/tpf.md, config/s390/tpf.opt,
2951         config/s390/2064.md, config/s390/2084.md, config/s390/s390.md,
2952         config/s390/s390.opt, config/s390/s390-modes.def,
2953         config/s390/fixdfdi.h, config/s390/constraints.md,
2954         config/s390/s390-protos.h, config/s390/s390x.h, config/elfos.h,
2955         config/dbxcoff.h, config/m32c/predicates.md, config/m32c/cond.md,
2956         config/m32c/m32c.c, config/m32c/minmax.md, config/m32c/blkmov.md,
2957         config/m32c/m32c-pragma.c, config/m32c/m32c.h,
2958         config/m32c/prologue.md, config/m32c/m32c.abi,
2959         config/m32c/muldiv.md, config/m32c/bitops.md, config/m32c/mov.md,
2960         config/m32c/addsub.md, config/m32c/m32c.md, config/m32c/m32c.opt,
2961         config/m32c/t-m32c, config/m32c/m32c-modes.def,
2962         config/m32c/jump.md, config/m32c/shift.md,
2963         config/m32c/m32c-protos.h, config/libgloss.h,
2964         config/spu/spu-protos.h, config/spu/predicates.md,
2965         config/spu/spu-builtins.h, config/spu/spu.c,
2966         config/spu/spu-builtins.def, config/spu/spu-builtins.md,
2967         config/spu/spu.h, config/spu/spu-elf.h, config/spu/constraints.md,
2968         config/spu/spu.md, config/spu/spu-c.c, config/spu/spu.opt,
2969         config/spu/spu-modes.def, config/spu/t-spu-elf, config/interix.h,
2970         config/sparc/hypersparc.md, config/sparc/predicates.md,
2971         config/sparc/linux.h, config/sparc/sp64-elf.h,
2972         config/sparc/supersparc.md, config/sparc/cypress.md,
2973         config/sparc/openbsd1-64.h, config/sparc/openbsd64.h,
2974         config/sparc/niagara.md, config/sparc/sparc.md,
2975         config/sparc/long-double-switch.opt, config/sparc/ultra3.md,
2976         config/sparc/sparc.opt, config/sparc/sync.md,
2977         config/sparc/sp-elf.h, config/sparc/sparc-protos.h,
2978         config/sparc/ultra1_2.md, config/sparc/biarch64.h,
2979         config/sparc/sparc.c, config/sparc/little-endian.opt,
2980         config/sparc/sysv4-only.h, config/sparc/sparc.h,
2981         config/sparc/linux64.h, config/sparc/freebsd.h,
2982         config/sparc/sol2.h, config/sparc/rtemself.h,
2983         config/sparc/netbsd-elf.h, config/sparc/vxworks.h,
2984         config/sparc/sparc-modes.def, config/sparc/sparclet.md,
2985         config/sparc/sysv4.h, config/vx-common.h, config/netbsd-aout.h,
2986         config/flat.h, config/m32r/m32r.md, config/m32r/predicates.md,
2987         config/m32r/little.h, config/m32r/m32r.c, config/m32r/m32r.opt,
2988         config/m32r/linux.h, config/m32r/constraints.md,
2989         config/m32r/m32r.h, config/m32r/m32r-protos.h, config/vxworks.opt,
2990         config/darwin-c.c, config/darwin.opt, config/i386/i386.h,
2991         config/i386/cygming.h, config/i386/linux.h, config/i386/cygwin.h,
2992         config/i386/i386.md, config/i386/netware-crt0.c,
2993         config/i386/sco5.h, config/i386/mmx.md, config/i386/vx-common.h,
2994         config/i386/kaos-i386.h, config/i386/winnt-stubs.c,
2995         config/i386/netbsd64.h, config/i386/djgpp.h, config/i386/gas.h,
2996         config/i386/sol2.h, config/i386/constraints.md,
2997         config/i386/netware-libgcc.c, config/i386/sysv5.h,
2998         config/i386/predicates.md, config/i386/geode.md,
2999         config/i386/x86-64.h, config/i386/kfreebsd-gnu.h,
3000         config/i386/freebsd64.h, config/i386/vxworksae.h,
3001         config/i386/pentium.md, config/i386/lynx.h, config/i386/i386elf.h,
3002         config/i386/rtemself.h, config/i386/netbsd-elf.h,
3003         config/i386/ppro.md, config/i386/k6.md, config/i386/netware.c,
3004         config/i386/netware.h, config/i386/i386-modes.def,
3005         config/i386/sysv4-cpp.h, config/i386/i386-interix.h,
3006         config/i386/cygwin1.c, config/i386/djgpp.opt, config/i386/uwin.h,
3007         config/i386/unix.h, config/i386/ptx4-i.h, config/i386/xm-djgpp.h,
3008         config/i386/att.h, config/i386/winnt.c, config/i386/beos-elf.h,
3009         config/i386/sol2-10.h, config/i386/darwin64.h, config/i386/sse.md,
3010         config/i386/i386.opt, config/i386/bsd.h, config/i386/cygming.opt,
3011         config/i386/xm-mingw32.h, config/i386/linux64.h,
3012         config/i386/openbsdelf.h, config/i386/xm-cygwin.h,
3013         config/i386/sco5.opt, config/i386/darwin.h, config/i386/mingw32.h,
3014         config/i386/winnt-cxx.c, config/i386/i386-interix3.h,
3015         config/i386/nwld.c, config/i386/nwld.h, config/i386/host-cygwin.c,
3016         config/i386/cygwin2.c, config/i386/i386-protos.h,
3017         config/i386/sync.md, config/i386/openbsd.h,
3018         config/i386/host-mingw32.c, config/i386/i386-aout.h,
3019         config/i386/nto.h, config/i386/biarch64.h,
3020         config/i386/i386-coff.h, config/i386/freebsd.h,
3021         config/i386/driver-i386.c, config/i386/knetbsd-gnu.h,
3022         config/i386/host-i386-darwin.c, config/i386/vxworks.h,
3023         config/i386/crtdll.h, config/i386/i386.c, config/i386/sysv4.h,
3024         config/darwin-protos.h, config/linux.opt, config/sol2.c,
3025         config/sol2.h, config/sh/symbian.c, config/sh/sh-protos.h,
3026         config/sh/linux.h, config/sh/elf.h, config/sh/superh.h,
3027         config/sh/sh4.md, config/sh/coff.h, config/sh/newlib.h,
3028         config/sh/embed-elf.h, config/sh/symbian-pre.h, config/sh/rtems.h,
3029         config/sh/kaos-sh.h, config/sh/sh4a.md, config/sh/constraints.md,
3030         config/sh/sh64.h, config/sh/sh.opt, config/sh/symbian-post.h,
3031         config/sh/sh-c.c, config/sh/predicates.md, config/sh/sh.c,
3032         config/sh/sh.h, config/sh/shmedia.md, config/sh/sh-modes.def,
3033         config/sh/little.h, config/sh/sh1.md, config/sh/sh4-300.md,
3034         config/sh/superh64.h, config/sh/rtemself.h,
3035         config/sh/netbsd-elf.h, config/sh/sh.md, config/sh/vxworks.h,
3036         config/usegas.h, config/svr3.h, config/pdp11/pdp11-protos.h,
3037         config/pdp11/2bsd.h, config/pdp11/pdp11.md, config/pdp11/pdp11.c,
3038         config/pdp11/pdp11.opt, config/pdp11/pdp11-modes.def,
3039         config/pdp11/pdp11.h, config/avr/rtems.h, config/avr/avr-protos.h,
3040         config/avr/predicates.md, config/avr/constraints.md,
3041         config/avr/avr.md, config/avr/avr.c, config/avr/avr.opt,
3042         config/avr/avr.h, config/sol2-protos.h, config/dbxelf.h,
3043         config/lynx.opt, config/crx/crx.h, config/crx/crx-protos.h,
3044         config/crx/crx.md, config/crx/crx.c, config/crx/crx.opt,
3045         config/c4x/c4x-c.c, config/c4x/c4x.c, config/c4x/c4x.opt,
3046         config/c4x/c4x-modes.def, config/c4x/rtems.h,
3047         config/c4x/predicates.md, config/c4x/c4x.h,
3048         config/c4x/c4x-protos.h, config/c4x/c4x.md, config/kfreebsd-gnu.h,
3049         config/xtensa/predicates.md, config/xtensa/xtensa.c,
3050         config/xtensa/linux.h, config/xtensa/xtensa.h,
3051         config/xtensa/elf.h, config/xtensa/xtensa.md,
3052         config/xtensa/xtensa.opt, config/xtensa/constraints.md,
3053         config/xtensa/xtensa-protos.h, config/dbx.h,
3054         config/stormy16/predicates.md, config/stormy16/stormy16.md,
3055         config/stormy16/stormy16.c, config/stormy16/stormy16.opt,
3056         config/stormy16/stormy16.h, config/stormy16/stormy16-protos.h,
3057         config/host-solaris.c, config/fr30/fr30.h,
3058         config/fr30/predicates.md, config/fr30/fr30-protos.h,
3059         config/fr30/fr30.md, config/fr30/fr30.c, config/fr30/fr30.opt,
3060         config/vxworksae.h, config/sol2-c.c, config/lynx.h,
3061         config/m68hc11/m68hc11-protos.h, config/m68hc11/predicates.md,
3062         config/m68hc11/m68hc11.md, config/m68hc11/m68hc11.c,
3063         config/m68hc11/m68hc11.opt, config/m68hc11/m68hc11.h,
3064         config/m68hc11/m68hc12.h, config/openbsd-oldgas.h,
3065         config/host-linux.c, config/interix3.h, config/cris/cris.c,
3066         config/cris/predicates.md, config/cris/linux.h,
3067         config/cris/cris.h, config/cris/aout.h, config/cris/cris.md,
3068         config/cris/linux.opt, config/cris/cris.opt, config/cris/elf.opt,
3069         config/cris/aout.opt, config/cris/cris-protos.h,
3070         config/vxworks-dummy.h, config/netbsd.h, config/netbsd-elf.h,
3071         config/iq2000/iq2000.h, config/iq2000/predicates.md,
3072         config/iq2000/iq2000-protos.h, config/iq2000/iq2000.md,
3073         config/iq2000/iq2000.c, config/iq2000/iq2000.opt,
3074         config/host-darwin.c, config/mt/mt.md, config/mt/mt.c,
3075         config/mt/mt.opt, config/mt/t-mt, config/mt/mt.h,
3076         config/mt/mt-protos.h, config/svr4.h, config/host-darwin.h,
3077         config/chorus.h, config/mn10300/mn10300.c,
3078         config/mn10300/mn10300.opt, config/mn10300/predicates.md,
3079         config/mn10300/mn10300.h, config/mn10300/linux.h,
3080         config/mn10300/constraints.md, config/mn10300/mn10300-protos.h,
3081         config/mn10300/mn10300.md, config/ia64/predicates.md,
3082         config/ia64/itanium1.md, config/ia64/unwind-ia64.h,
3083         config/ia64/ia64-c.c, config/ia64/sync.md, config/ia64/ia64.c,
3084         config/ia64/itanium2.md, config/ia64/ia64.h, config/ia64/vect.md,
3085         config/ia64/freebsd.h, config/ia64/ia64.md,
3086         config/ia64/ia64-modes.def, config/ia64/constraints.md,
3087         config/ia64/hpux.h, config/ia64/ia64-protos.h, config/windiss.h,
3088         config/gofast.h, config/rtems.h, config/sol2-10.h,
3089         config/m68k/predicates.md, config/m68k/m68k.md,
3090         config/m68k/linux.h, config/m68k/m68k-modes.def,
3091         config/m68k/print-sysroot-suffix.sh, config/m68k/m68k-protos.h,
3092         config/m68k/coff.h, config/m68k/m68k-none.h, config/m68k/ieee.opt,
3093         config/m68k/openbsd.h, config/m68k/m68k-aout.h,
3094         config/m68k/m68k.opt, config/m68k/m68020-elf.h,
3095         config/m68k/m68kelf.h, config/m68k/m68k-devices.def,
3096         config/m68k/uclinux-oldabi.h, config/m68k/m68k.c,
3097         config/m68k/constraints.md, config/m68k/rtemself.h,
3098         config/m68k/netbsd-elf.h, config/m68k/m68k.h,
3099         config/m68k/uclinux.h, config/rs6000/power4.md,
3100         config/rs6000/host-darwin.c, config/rs6000/6xx.md,
3101         config/rs6000/linux.h, config/rs6000/eabi.h,
3102         config/rs6000/aix41.opt, config/rs6000/xcoff.h,
3103         config/rs6000/secureplt.h, config/rs6000/linuxspe.h,
3104         config/rs6000/eabialtivec.h, config/rs6000/8540.md,
3105         config/rs6000/darwin8.h, config/rs6000/kaos-ppc.h,
3106         config/rs6000/windiss.h, config/rs6000/603.md,
3107         config/rs6000/aix41.h, config/rs6000/cell.md,
3108         config/rs6000/mpc.md, config/rs6000/aix43.h, config/rs6000/beos.h,
3109         config/rs6000/gnu.h, config/rs6000/rtems.h, config/rs6000/aix.opt,
3110         config/rs6000/darwin.md, config/rs6000/darwin64.h,
3111         config/rs6000/default64.h, config/rs6000/7xx.md,
3112         config/rs6000/darwin.opt, config/rs6000/spe.md,
3113         config/rs6000/rs6000.opt, config/rs6000/rs6000-c.c,
3114         config/rs6000/rios2.md, config/rs6000/linuxaltivec.h,
3115         config/rs6000/7450.md, config/rs6000/linux64.h,
3116         config/rs6000/constraints.md, config/rs6000/440.md,
3117         config/rs6000/darwin.h, config/rs6000/host-ppc64-darwin.c,
3118         config/rs6000/rs6000.c, config/rs6000/aix52.h,
3119         config/rs6000/rs6000.h, config/rs6000/power6.md,
3120         config/rs6000/predicates.md, config/rs6000/altivec.md,
3121         config/rs6000/aix64.opt, config/rs6000/rios1.md,
3122         config/rs6000/rs6000-modes.def, config/rs6000/rs64.md,
3123         config/rs6000/eabisim.h, config/rs6000/sysv4le.h,
3124         config/rs6000/darwin7.h, config/rs6000/dfp.md,
3125         config/rs6000/linux64.opt, config/rs6000/sync.md,
3126         config/rs6000/vxworksae.h, config/rs6000/power5.md,
3127         config/rs6000/lynx.h, config/rs6000/biarch64.h,
3128         config/rs6000/rs6000.md, config/rs6000/sysv4.opt,
3129         config/rs6000/eabispe.h, config/rs6000/e500.h,
3130         config/rs6000/freebsd.h, config/rs6000/rs6000-protos.h,
3131         config/rs6000/netbsd.h, config/rs6000/e500-double.h,
3132         config/rs6000/aix.h, config/rs6000/vxworks.h,
3133         config/rs6000/40x.md, config/rs6000/aix51.h,
3134         config/rs6000/sysv4.h, config/arc/arc-protos.h, config/arc/arc.md,
3135         config/arc/arc.c, config/arc/arc.opt, config/arc/arc-modes.def,
3136         config/arc/arc.h, config/mcore/mcore-elf.h,
3137         config/mcore/mcore-protos.h, config/mcore/predicates.md,
3138         config/mcore/mcore.md, config/mcore/mcore.c,
3139         config/mcore/mcore.opt, config/mcore/mcore.h,
3140         config/mcore/mcore-pe.h, config/darwin.c, config/freebsd-nthr.h,
3141         config/score/predicates.md, config/score/score-version.h,
3142         config/score/score-protos.h, config/score/misc.md,
3143         config/score/elf.h, config/score/score.c, config/score/mac.md,
3144         config/score/score7.md, config/score/score.h,
3145         config/score/score-conv.h, config/score/score-mdaux.c,
3146         config/score/score.md, config/score/score.opt,
3147         config/score/score-modes.def, config/score/score-mdaux.h,
3148         config/score/mul-div.S, config/arm/uclinux-elf.h,
3149         config/arm/semi.h, config/arm/ecos-elf.h, config/arm/arm1020e.md,
3150         config/arm/symbian.h, config/arm/linux-elf.h,
3151         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
3152         config/arm/elf.h, config/arm/aout.h, config/arm/arm.c,
3153         config/arm/thumb2.md, config/arm/vec-common.md, config/arm/coff.h,
3154         config/arm/strongarm-pe.h, config/arm/arm.h,
3155         config/arm/cortex-a8-neon.md, config/arm/semiaof.h,
3156         config/arm/cortex-a8.md, config/arm/uclinux-eabi.h,
3157         config/arm/arm-modes.def, config/arm/linux-eabi.h,
3158         config/arm/rtems-elf.h, config/arm/neon-schedgen.ml,
3159         config/arm/arm-cores.def, config/arm/arm-protos.h,
3160         config/arm/vfp.md, config/arm/aof.h, config/arm/linux-gas.h,
3161         config/arm/wince-pe.h, config/arm/neon.md,
3162         config/arm/constraints.md, config/arm/neon.ml,
3163         config/arm/xscale-elf.h, config/arm/strongarm-coff.h,
3164         config/arm/arm.opt, config/arm/arm926ejs.md,
3165         config/arm/predicates.md, config/arm/iwmmxt.md,
3166         config/arm/arm_neon.h, config/arm/unknown-elf.h,
3167         config/arm/kaos-arm.h, config/arm/bpabi.h, config/arm/pe.opt,
3168         config/arm/neon-testgen.ml, config/arm/arm.md,
3169         config/arm/xscale-coff.h, config/arm/pe.c,
3170         config/arm/arm-generic.md, config/arm/pe.h,
3171         config/arm/kaos-strongarm.h, config/arm/freebsd.h,
3172         config/arm/neon-docgen.ml, config/arm/netbsd.h, config/arm/fpa.md,
3173         config/arm/strongarm-elf.h, config/arm/cirrus.md,
3174         config/arm/netbsd-elf.h, config/arm/vxworks.h,
3175         config/arm/neon-gen.ml, config/kaos.h, config/darwin-driver.c,
3176         config/pa/predicates.md, config/pa/pa64-hpux.h,
3177         config/pa/pa-hpux.opt, config/pa/som.h, config/pa/pa-hpux1010.opt,
3178         config/pa/pa-hpux1111.opt, config/pa/pa-pro-end.h,
3179         config/pa/elf.h, config/pa/fptr.c, config/pa/pa64-linux.h,
3180         config/pa/pa.md, config/pa/pa.opt, config/pa/pa-hpux.h,
3181         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
3182         config/pa/pa-hpux1010.h, config/pa/pa-protos.h,
3183         config/pa/pa-osf.h, config/pa/pa-hpux1111.h, config/pa/pa-64.h,
3184         config/pa/milli64.S, config/pa/pa.c, config/pa/pa-linux.h,
3185         config/pa/pa.h, config/pa/pa32-linux.h, config/pa/pa64-hpux.opt,
3186         config/pa/pa64-regs.h, config/pa/pa-modes.def,
3187         config/pa/constraints.md, config/darwin9.h, config/mips/4100.md,
3188         config/mips/linux.h, config/mips/elfoabi.h, config/mips/elf.h,
3189         config/mips/sdb.h, config/mips/windiss.h, config/mips/rtems.h,
3190         config/mips/3000.md, config/mips/iris5.h, config/mips/5000.md,
3191         config/mips/7000.md, config/mips/9000.md, config/mips/4600.md,
3192         config/mips/linux64.h, config/mips/elforion.h,
3193         config/mips/constraints.md, config/mips/generic.md,
3194         config/mips/predicates.md, config/mips/4300.md,
3195         config/mips/mips-ps-3d.md, config/mips/iris.h, config/mips/24k.md,
3196         config/mips/mips.md, config/mips/mips.opt, config/mips/4k.md,
3197         config/mips/5k.md, config/mips/vr4120-div.S,
3198         config/mips/openbsd.h, config/mips/iris6.h, config/mips/4000.md,
3199         config/mips/mips-protos.h, config/mips/6000.md,
3200         config/mips/mips.c, config/mips/mips.h, config/mips/r3900.h,
3201         config/mips/74k.md, config/mips/netbsd.h, config/mips/vxworks.h,
3202         config/mips/mips-modes.def, config/mips/vr.h,
3203         config/soft-fp/t-softfp, config/openbsd.h, config/ptx4.h,
3204         config/freebsd-spec.h, config/vax/vax.c, config/vax/openbsd.h,
3205         config/vax/vax.h, config/vax/elf.h, config/vax/vax.md,
3206         config/vax/bsd.h, config/vax/vax.opt, config/vax/vax-modes.def,
3207         config/vax/openbsd1.h, config/vax/netbsd.h,
3208         config/vax/vax-protos.h, config/vax/netbsd-elf.h,
3209         config/vax/vaxv.h, config/vax/ultrix.h, config/freebsd.h,
3210         config/h8300/rtems.h, config/h8300/predicates.md,
3211         config/h8300/h8300.c, config/h8300/h8300.h, config/h8300/elf.h,
3212         config/h8300/h8300.md, config/h8300/h8300.opt,
3213         config/h8300/coff.h, config/h8300/h8300-protos.h,
3214         config/v850/v850.md, config/v850/predicates.md,
3215         config/v850/v850-c.c, config/v850/v850.c, config/v850/v850.opt,
3216         config/v850/v850.h, config/v850/v850-protos.h, config/vxworks.c,
3217         config/knetbsd-gnu.h, config/sol2-6.h, config/vxworks.h,
3218         config/mmix/mmix.h, config/mmix/predicates.md,
3219         config/mmix/mmix-protos.h, config/mmix/mmix.md,
3220         config/mmix/mmix.c, config/mmix/mmix.opt,
3221         config/mmix/mmix-modes.def, config/bfin/bfin.opt,
3222         config/bfin/rtems.h, config/bfin/bfin-modes.def,
3223         config/bfin/predicates.md, config/bfin/bfin-protos.h,
3224         config/bfin/bfin.c, config/bfin/bfin.h, config/bfin/bfin.md:
3225         Likewise.
3226
3227 2007-08-02  Richard Sandiford  <richard@codesourcery.com>
3228
3229         * emit-rtl.c (reset_used_decls): Rename to...
3230         (set_used_decls): ...this.  Set the used flag rather than clearing it.
3231         (unshare_all_rtl_again): Update accordingly.  Set flags on argument
3232         DECL_RTLs rather than resetting them.
3233
3234 2007-08-02  Andreas Krebbel  <krebbel1@de.ibm.com>
3235
3236         * config/s390/s390.md ("*xordi3_cconly"): Change xr to xg.
3237
3238 2007-08-01  Sandra Loosemore  <sandra@codesourcery.com>
3239
3240         * reload.c (find_reloads_address_part):  Pass correct MEMREFLOC
3241         argument to find_reloads_address.
3242
3243 2007-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
3244
3245         PR tree-optimization/32919
3246         * tree-ssa-sccvn.c (visit_phi): Do not visit abnormal PHIs.
3247         * tree-ssa-coalesce.c (ssa_conflicts_dump): New.
3248         (coalesce_ssa_name): Call it.
3249
3250 2007-08-01  Sandra Loosemore  <sandra@codesourcery.com>
3251             David Ung  <davidu@mips.com>
3252
3253         * config/mips/mips16.S (__mips16_unordsf2, __mips16_floatunsisf): New.
3254         (__mips16_unorddf2, __mips16_floatunsidf): New.
3255         * config/mips/mips.c (mips_init_libfuncs): Add optab entries for
3256         above functions.
3257         * config/mips/t-libgcc-mips16 (LIB1ASMFUNCS): Add new functions.
3258
3259 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
3260
3261         * tree-pretty-print.c (dump_generic_node): Dump OMP_SECTIONS_SWITCH.
3262         Display new operands of OMP_SECTIONS and OMP_CONTINUE.
3263         * tree.h (OMP_SECTIONS_CONTROL): New macro.
3264         (OMP_DIRECTIVE_P): Add OMP_SECTIONS_SWITCH.
3265         * omp-low.c (get_ws_args_for, determine_parallel_type,
3266         expand_omp_for_generic, expand_omp_for_static_nochunk,
3267         expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
3268         Work with more precise CFG.
3269         (build_omp_regions_1): Handle OMP_SECTIONS_SWITCH.
3270         (lower_omp_sections): Emit OMP_SECTIONS_SWITCH.  Add arguments to
3271         OMP_CONTINUE.
3272         * tree-gimple.c (is_gimple_stmt): Handle OMP_SECTIONS_SWITCH.
3273         * gimple-low.c (lower_stmt): Ditto.
3274         * tree-inline.c (estimate_num_insns_1): Ditto.
3275         * tree.def (OMP_SECTIONS, OMP_CONTINUE): Added new operands.
3276         (OMP_SECTIONS_SWITCH): New.
3277         * tree-cfgcleanup.c (cleanup_omp_return): New.
3278         (cleanup_tree_cfg_bb): Call cleanup_omp_return.
3279         * tree-cfg.c (make_edges): Create back edges for OMP_CONTINUE
3280         and exit edge for OMP_FOR.  Handle OMP_SECTIONS_SWITCH.
3281         (tree_redirect_edge_and_branch): Handle omp constructs.
3282
3283         * fortran/trans-openmp.c (gfc_trans_omp_sections): Build OMP_SECTIONS
3284         with three arguments.
3285
3286 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
3287
3288         * tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only
3289         in loop closed ssa.
3290
3291 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
3292
3293         * tree-ssa-threadupdate.c (thread_through_all_blocks): Record that
3294         the loop structures may need fixing.
3295         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
3296         New functions.
3297         (cleanup_tree_cfg_loop): Removed.
3298         (cleanup_tree_cfg): If loops need fixing, call repair_loop_structures.
3299         * tree-predcom.c (tree_predictive_commoning): Return TODO_cleanup_cfg
3300         instead of running cleanup_tree_cfg_loop.
3301         * cfgloop.h (LOOPS_NEED_FIXUP): New constant.
3302         * tree-flow.h (cleanup_tree_cfg_loop): Declaration removed.
3303         (tree_predictive_commoning): Declaration changed.
3304         * passes.c (execute_function_todo): Do not use cleanup_tree_cfg_loop.
3305
3306 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
3307
3308         * doc/invoke.texi (l1-cache-size): Update documentation.
3309         (l2-cache-size): Document.
3310         * params.h (L2_CACHE_SIZE): New macro.
3311         * tree-ssa-loop-prefetch.c (L1_CACHE_SIZE_BYTES): Reflect
3312         that L1_CACHE_SIZE is in kB now.
3313         (L2_CACHE_SIZE_BYTES): New macro.
3314         (tree_ssa_prefetch_arrays): Show size in kB.
3315         * config/i386/i386.h (struct processor_costs): Add l1_cache_size
3316         and l2_cache_size fields.
3317         * config/i386/driver-i386.c (describe_cache): Detect cache size
3318         in kB.
3319         * config/i386/i386.c (size_cost, i386_cost, i486_cost,pentium_cost,
3320         pentiumpro_cost, geode_cost, k6_cost, athlon_cost, k8_cost,
3321         amdfam10_cost, pentium4_cost, nocona_cost, core2_cost,
3322         generic64_cost, generic32_cost): Add l1_cache_size and l2_cache_size.
3323         (override_options): Set l1-cache-size and l2-cache-size to default
3324         values if not specified otherwise.
3325         * params.def (PARAM_L1_CACHE_SIZE): Change to set in kB.
3326         (PARAM_L2_CACHE_SIZE): New.
3327