]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
alpha.c (alpha_mangle_type, [...]): Constify.
[thirdparty/gcc.git] / gcc / ChangeLog
1 2007-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2
3 * config/alpha/alpha.c (alpha_mangle_type, decl_has_samegp,
4 alpha_in_small_data_p, alpha_split_complex_arg,
5 alpha_stdarg_optimize_hook, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
6 Constify.
7 * config/arm/arm-protos.h (arm_mangle_type): Likewise.
8 * config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type):
9 Likewise.
10 * config/bfin/bfin.c (funkind, bfin_comp_type_attributes,
11 TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
12 * config/darwin-protos.h (darwin_binds_local_p): Likewise.
13 * config/darwin.c (darwin_binds_local_p): Likewise.
14 * config/frv/frv.c (frv_string_begins_with, frv_in_small_data_p):
15 Likewise.
16 * config/i386/i386-protos.h (i386_pe_binds_local_p,
17 i386_pe_valid_dllimport_attribute_p): Likewise.
18 * config/i386/i386.c (ix86_function_regparm,
19 ix86_comp_type_attributes, ix86_ms_bitfield_layout_p,
20 x86_can_output_mi_thunk, ix86_mangle_type,
21 TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
22 * config/i386/winnt.c (i386_pe_valid_dllimport_attribute_p,
23 i386_pe_binds_local_p): Likewise.
24 * config/ia64/ia64.c
25 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
26 ia64_needs_block_p, ia64_in_small_data_p, ia64_mangle_type,
27 ia64_invalid_conversion, ia64_invalid_unary_op,
28 ia64_invalid_binary_op, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
29 Likewise.
30 * config/m32c/m32c.c (m32c_comp_type_attributes): Likewise.
31 * config/m32r/m32r.c (m32r_in_small_data_p): Likewise.
32 * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
33 * config/mips/mips.c (mips_use_blocks_for_constant_p,
34 mips_in_small_data_p, mips_use_anchors_for_symbol_p,
35 mips_comp_type_attributes, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
36 mips_near_type_p, mips_far_type_p, mips_global_symbol_p,
37 mips_symbol_binds_local_p, mips_classify_symbol): Likewise.
38 * config/pa/pa.c (pa_commutative_p): Likewise.
39 * config/rs6000/rs6000-protos.h (rs6000_elf_in_small_data_p):
40 Likewise.
41 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop,
42 rs6000_ms_bitfield_layout_p, rs6000_mangle_type,
43 rs6000_use_blocks_for_constant_p,
44 rs6000_vector_alignment_reachable, rs6000_is_opaque_type,
45 invalid_arg_for_unprototyped_fn, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
46 TARGET_SPLIT_COMPLEX_ARG, rs6000_elf_in_small_data_p): Likewise.
47 * config/s390/s390.c (s390_mangle_type,
48 TARGET_ASM_CAN_OUTPUT_MI_THUNK, TARGET_INVALID_WITHIN_DOLOOP):
49 Likewise.
50 * config/score/score.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
51 th_in_small_data_p): Likewise.
52 * config/sh/sh.c (sh_ms_bitfield_layout_p,
53 sh_dwarf_calling_convention, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
54 Likewise.
55 * config/sparc/sparc.c (sparc_can_output_mi_thunk,
56 sparc_mangle_type): Likewise.
57 * config/spu/spu.c (spu_vector_alignment_reachable): Likewise.
58 * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): Likewise.
59 * emit-rtl.c (const_fixed_htab_hash, const_fixed_htab_eq):
60 Likewise.
61 * hooks.c (hook_bool_mode_const_rtx_false,
62 hook_bool_mode_const_rtx_true,
63 hook_bool_const_tree_hwi_hwi_const_tree_false,
64 hook_bool_const_tree_hwi_hwi_const_tree_true,
65 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
66 hook_constcharptr_const_tree_null,
67 hook_constcharptr_const_rtx_null,
68 hook_constcharptr_const_tree_const_tree_null,
69 hook_constcharptr_int_const_tree_null,
70 hook_constcharptr_int_const_tree_const_tree_null): New.
71 (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
72 hook_bool_tree_hwi_hwi_tree_false,
73 hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
74 hook_int_tree_tree_1, hook_constcharptr_tree_null,
75 hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
76 hook_constcharptr_int_tree_null,
77 hook_constcharptr_int_tree_tree_null): Delete.
78 (default_can_output_mi_thunk_no_vcall): Constify.
79 * hooks.h (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
80 hook_bool_tree_hwi_hwi_tree_false,
81 hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
82 hook_int_tree_tree_1, hook_constcharptr_tree_null,
83 hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
84 hook_constcharptr_int_tree_null,
85 hook_constcharptr_int_tree_tree_null): Delete.
86 (hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
87 hook_bool_const_tree_hwi_hwi_const_tree_false,
88 hook_bool_const_tree_hwi_hwi_const_tree_true,
89 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
90 hook_constcharptr_const_tree_null,
91 hook_constcharptr_const_rtx_null,
92 hook_constcharptr_const_tree_const_tree_null,
93 hook_constcharptr_int_const_tree_null,
94 hook_constcharptr_int_const_tree_const_tree_null): New.
95 (default_can_output_mi_thunk_no_vcall): Constify.
96 * integrate.c (function_attribute_inlinable_p): Likewise.
97 * integrate.h (function_attribute_inlinable_p): Likewise.
98 * jump.c (rtx_renumbered_equal_p): Likewise.
99 * output.h (decl_readonly_section, categorize_decl_for_section,
100 default_use_anchors_for_symbol_p, default_binds_local_p,
101 default_binds_local_p_1): Likewise.
102 * rtl.h (rtx_renumbered_equal_p, decl_default_tls_model):
103 Likewise.
104 * target-def.h (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
105 TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, TARGET_VECTOR_OPAQUE_P,
106 TARGET_COMMUTATIVE_P, TARGET_USE_BLOCKS_FOR_CONSTANT_P,
107 TARGET_COMP_TYPE_ATTRIBUTES,
108 TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P,
109 TARGET_MS_BITFIELD_LAYOUT_P, TARGET_MANGLE_TYPE,
110 TARGET_IN_SMALL_DATA_P, TARGET_INVALID_CONVERSION,
111 TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
112 TARGET_DWARF_CALLING_CONVENTION): Likewise.
113 * target.h (can_output_mi_thunk, needs_block_p,
114 first_cycle_multipass_dfa_lookahead_guard_spec,
115 vector_alignment_reachable, comp_type_attributes,
116 function_attribute_inlinable_p, ms_bitfield_layout_p, mangle_type,
117 commutative_p, use_blocks_for_constant_p,
118 use_anchors_for_symbol_p, in_small_data_p, binds_local_p,
119 vector_opaque_p, dwarf_calling_convention, stdarg_optimize_hook,
120 invalid_within_doloop, valid_dllimport_attribute_p,
121 split_complex_arg, invalid_arg_for_unprototyped_fn,
122 invalid_conversion, invalid_unary_op, invalid_binary_op):
123 Likewise.
124 * targhooks.c (default_invalid_within_doloop,
125 hook_invalid_arg_for_unprototyped_fn,
126 default_builtin_vector_alignment_reachable): Likewise.
127 (hook_bool_rtx_commutative_p): Delete.
128 (hook_bool_const_rtx_commutative_p): New.
129 * targhooks.h (default_invalid_within_doloop,
130 default_builtin_vector_alignment_reachable,
131 hook_invalid_arg_for_unprototyped_fn): Constify.
132 (hook_bool_rtx_commutative_p): Delete.
133 (hook_bool_const_rtx_commutative_p): New.
134 * varasm.c (bss_initializer_p, decl_default_tls_model,
135 categorize_decl_for_section, decl_readonly_section,
136 default_use_anchors_for_symbol_p, default_binds_local_p,
137 default_binds_local_p_1): Constify.
138
139 2007-08-24 Jie Zhang <jie.zhang@analog.com>
140
141 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
142 __NO_BUILTIN if -fno-builtin.
143
144 2007-08-24 Jie Zhang <jie.zhang@analog.com>
145
146 * config/bfin/bfin.c (print_operand): Report error instead of
147 ICE for wrong operand.
148
149 2007-08-24 Michael Matz <matz@suse.de>
150
151 * Makefile.in (GTFILES_H): Use $(patsubst) instead of $(subst).
152
153 2007-08-24 Richard Guenther <rguenther@suse.de>
154
155 PR middle-end/33166
156 * tree-ssa.c (useless_type_conversion_p): Split into a
157 recursive and a non-recursive part.
158 (useless_type_conversion_p_1): New function.
159 * tree-ssa-ccp.c (fold_stmt_r): Make sure that the result
160 from maybe_fold_offset_to_reference is trivially convertible
161 to the desired type before doing the simplification.
162
163 2007-08-24 Jakub Jelinek <jakub@redhat.com>
164
165 * expr.c (store_expr): Optimize initialization of an array
166 with STRING_CST.
167 * expr.h (builtin_strncpy_read_str): New prototype.
168 * builtins.c (builtin_strncpy_read_str): Remove prototype.
169 No longer static.
170
171 2007-08-24 Uros Bizjak <ubizjak@gmail.com>
172
173 PR middle-end/33157
174 * ifcvt.c (noce_find_if_block): Do not clear if_info.cond_earliest
175 field when initializing if_info structure.
176
177 2007-08-24 Richard Guenther <rguenther@suse.de>
178
179 * Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H)
180 dependencies.
181 * c-objc-common.c (c_cannot_inline_tree_fn): Remove.
182 * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Likewise.
183 * tree-inline.c (inlinable_function_p): Fold in common parts of
184 the cannot_inline_tree_fn langhook.
185 * langhooks-def.h (lhd_tree_inlining_cannot_inline_tree_fn): Remove.
186 (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): Likewise.
187 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
188 cannot_inline_tree_fn langhook.
189 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
190 cannot_inline_tree_fn member.
191
192 2007-08-24 Richard Guenther <rguenther@suse.de>
193
194 * expr.c (get_inner_reference): Do computation of bitoffset
195 from offset in a way we can detect overflow reliably.
196
197 2007-08-24 Jie Zhang <jie.zhang@analog.com>
198
199 * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define for uClibc.
200
201 2007-08-24 Jie Zhang <jie.zhang@analog.com>
202
203 * config/bfin/bfin.opt (mfast-fp): Add.
204 * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Let
205 libbffastfp override libgcc if -mfast-fp.
206 * config/bfin/bfin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
207 * doc/invoke.texi (Option Summary): Mention -mfast-fp.
208 (Blackfin Options): Document -mfast-fp.
209
210 2007-08-24 Jakub Jelinek <jakub@redhat.com>
211
212 PR tree-optimization/32573
213 PR middle-end/32946
214 * tree-data-ref.c (initialize_data_dependence_relation): Clear
215 DDR_SUBSCRIPTS, DDR_DIR_VECTS and DDR_DIST_VECTS at the beginning.
216 (finalize_ddr_dependent): Clear DDR_SUBSCRIPTS after freeing it.
217 (build_classic_dist_vector): Return false rather than true if
218 DDR_ARE_DEPENDENT is non-NULL at the beginning. Return false
219 if either subscript_dependence_tester_1 or build_classic_dist_vector_1
220 returned false. Don't call save_dist_v before calling
221 build_classic_dist_vector_1.
222 (free_dependence_relation): Don't guard freeing DDR_SUBSCRIPTS
223 with NULL DDR_ARE_DEPENDENT. Also free DDR_DIST_VECTS and/or
224 DDR_DIR_VECTS vectors.
225
226 2007-08-23 Brian Sidebotham <brian.sidebotham@gmail.com>
227
228 * configure.ac (leb128): Modify sed statement to work with any binutils
229 version string.
230 * configure: Regenerate
231
232 2007-08-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
233
234 * config/arc/arc-protos.h arc_select_cc_mode, gen_compare_reg):
235 Wrap in RTX_CODE macro guard.
236 * config/arm/pe.c (arm_dllexport_p, arm_dllimport_p,
237 arm_dllexport_name_p, arm_dllimport_name_p, arm_mark_dllexport,
238 arm_mark_dllimport, arm_pe_encode_section_info,
239 arm_pe_unique_section): Use ISO-C function declarations.
240 * config/c4x/c4x-c.c (c4x_parse_pragma, c4x_pr_CODE_SECTION,
241 c4x_pr_DATA_SECTION, c4x_pr_FUNC_IS_PURE,
242 c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, c4x_pr_ignored):
243 Likewise.
244 * config/iq2000/iq2000.h (ASM_OUTPUT_SKIP): Fix format warning.
245 * config/m68hc11/m68hc11.h (ASM_OUTPUT_EXTERNAL): Undef before
246 defining.
247 * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Fix format
248 warnings.
249 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Likewise.
250 * config/pdp11/pdp11.c (pdp11_output_function_epilogue): Likewise.
251 (register_move_cost): Use ISO-C function declarations.
252 * config/pdp11/pdp11.h (PRINT_OPERAND): Fix format warnings.
253 * config/score/score-protos.h (score_declare_object): Add
254 ATTRIBUTE_PRINTF_4.
255 * config/score/score.h (ASM_DECLARE_OBJECT_NAME): Fix format
256 warnings.
257 * final.c (profile_function): Avoid empty if-bodies.
258
259
260 * calls.c (must_pass_in_stack_var_size,
261 must_pass_in_stack_var_size_or_pad): Constify.
262 * config/alpha/alpha-protos.h (function_value): Likewise.
263 * config/alpha/alpha.c (alpha_return_in_memory,
264 alpha_pass_by_reference, function_value,
265 unicosmk_must_pass_in_stack, TARGET_PROMOTE_FUNCTION_ARGS,
266 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
267 Likewise.
268 * config/arc/arc.c (arc_return_in_memory, arc_pass_by_reference,
269 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
270 TARGET_PROMOTE_PROTOTYPES): Likewise.
271 * config/arm/arm-protos.h (arm_return_in_memory,
272 arm_pad_arg_upward, arm_function_value): Likewise.
273 * config/arm/arm.c (arm_pass_by_reference,
274 arm_promote_prototypes, arm_return_in_msb, arm_must_pass_in_stack,
275 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
276 arm_function_value, arm_return_in_memory, arm_pad_arg_upward):
277 Likewise.
278 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
279 * config/avr/avr-protos.h (avr_function_value): Likewise.
280 * config/avr/avr.c (avr_return_in_memory,
281 gas_output_limited_string, gas_output_ascii, avr_function_value,
282 avr_return_in_memory): Likewise.
283 * config/bfin/bfin-protos.h (bfin_return_in_memory): Likewise.
284 * config/bfin/bfin.c (bfin_pass_by_reference,
285 bfin_return_in_memory, TARGET_PROMOTE_PROTOTYPES,
286 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN):
287 Likewise.
288 * config/cris/cris.c (cris_pass_by_reference,
289 TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
290 * config/crx/crx.c (crx_return_in_memory): Likewise.
291 * config/darwin.c (function_base, machopic_function_base_name):
292 Likewise.
293 * config/fr30/fr30.c (fr30_must_pass_in_stack,
294 TARGET_PROMOTE_PROTOTYPES): Likewise.
295 * config/frv/frv.c (frv_must_pass_in_stack): Likewise.
296 * config/h8300/h8300.c (h8300_return_in_memory): Likewise.
297 * config/i386/i386-protos.h (ix86_return_in_memory,
298 ix86_sol10_return_in_memory): Likewise.
299 * config/i386/i386.c (ix86_function_value,
300 ix86_function_sseregparm, ix86_must_pass_in_stack,
301 type_natural_mode, classify_argument, examine_argument,
302 construct_container, ix86_pass_by_reference, function_value_32,
303 function_value_64, ix86_function_value_1, return_in_memory_32,
304 return_in_memory_64, return_in_memory_ms_64,
305 ix86_return_in_memory, ix86_sol10_return_in_memory,
306 TARGET_PROMOTE_PROTOTYPES): Likewise.
307 * config/ia64/ia64-protos.h (ia64_function_value,
308 ia64_hpux_function_arg_padding): Likewise.
309 * config/ia64/ia64.c (hfa_element_mode, ia64_return_in_memory,
310 ia64_function_value, bundle_state_hash, bundle_state_eq_p,
311 ia64_hpux_function_arg_padding): Likewise.
312 * config/iq2000/iq2000-protos.h (function_arg,
313 iq2000_function_value): Likewise.
314 * config/iq2000/iq2000.c (iq2000_return_in_memory,
315 iq2000_pass_by_reference, TARGET_PROMOTE_FUNCTION_ARGS,
316 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
317 function_arg, iq2000_function_value): Likewise.
318 * config/m32c/m32c-protos.h (m32c_function_value,
319 m32c_promote_function_return): Likewise.
320 * config/m32c/m32c.c (m32c_pass_by_reference,
321 m32c_promote_prototypes, m32c_promote_function_return,
322 m32c_function_value): Likewise.
323 * config/m32r/m32r.c (m32r_return_in_memory,
324 m32r_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
325 m32r_in_small_data_p): Likewise.
326 * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg_padding):
327 Likewise.
328 * config/m68hc11/m68hc11.c (m68hc11_return_in_memory,
329 m68hc11_function_arg_padding): Likewise.
330 * config/m68k/m68k-protos.h (m68k_function_value): Likewise.
331 * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES,
332 m68k_function_value): Likewise.
333 * config/mcore/mcore-protos.h (mcore_num_arg_regs,
334 mcore_function_value): Likewise.
335 * config/mcore/mcore.c (handle_structs_in_regs,
336 mcore_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
337 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
338 mcore_num_arg_regs, mcore_function_value): Likewise.
339 * config/mips/mips-protos.h (mips_pad_arg_upward,
340 mips_function_value): Likewise.
341 * config/mips/mips.c (mips_fpr_return_fields, mips_return_in_msb,
342 mips_return_in_memory, mips_pass_by_reference, mips_callee_copies,
343 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
344 TARGET_PROMOTE_PROTOTYPES, mips_pad_arg_upward,
345 mips_function_value): Likewise.
346 * config/mmix/mmix-protos.h (mmix_function_outgoing_value):
347 Likewise.
348 * config/mmix/mmix.c (mmix_pass_by_reference,
349 TARGET_PROMOTE_FUNCTION_ARGS, mmix_function_outgoing_value,
350 mmix_encode_section_info): Likewise.
351 * config/mn10300/mn10300-protos.h (mn10300_function_value):
352 Likewise.
353 * config/mn10300/mn10300.c (mn10300_return_in_memory,
354 mn10300_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
355 mn10300_function_value): Likewise.
356 * config/mt/mt-protos.h (mt_function_value): Likewise.
357 * config/mt/mt.c (mt_pass_by_reference, mt_function_value,
358 mt_pass_in_stack, TARGET_PROMOTE_PROTOTYPES): Likewise.
359 * config/pa/pa-protos.h (function_arg_padding, function_value,
360 pa_return_in_memory): Likewise.
361 * config/pa/pa.c (pa_pass_by_reference,
362 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
363 function_arg_padding, function_value, pa_return_in_memory):
364 Likewise.
365 * config/pdp11/pdp11.c (pdp11_return_in_memory): Likewise.
366 * config/rs6000/rs6000-protos.h (rs6000_function_value,
367 function_arg_padding): Likewise.
368 * config/rs6000/rs6000.c (rs6000_return_in_memory,
369 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
370 rs6000_pass_by_reference, rs6000_must_pass_in_stack,
371 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
372 function_arg_padding, altivec_expand_dst_builtin,
373 altivec_expand_builtin, rs6000_expand_builtin, spe_init_builtins,
374 altivec_init_builtins, rs6000_common_init_builtins,
375 rs6000_function_value): Likewise.
376 * s390/s390-protos.h (s390_function_value): Likewise.
377 * config/s390/s390.c (s390_function_arg_size,
378 s390_pass_by_reference, s390_return_in_memory,
379 s390_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
380 TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
381 * config/score/score-protos.h (score_function_value): Likewise.
382 * config/score/score.c (score_arg_partial_bytes,
383 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
384 TARGET_PROMOTE_PROTOTYPES, score_return_in_memory,
385 score_pass_by_reference, score_add_offset, score_function_value):
386 Likewise.
387 * config/sh/sh-protos.h (sh_attr_renesas_p,
388 sh_promote_prototypes): Likewise.
389 * config/sh/sh.c (sh_return_in_memory, sh_pass_by_reference,
390 sh_callee_copies, sh_promote_prototypes, shcompact_byref,
391 sh_attr_renesas_p): Likewise.
392 * config/sparc/sparc-protos.h (function_value,
393 function_arg_padding): Likewise.
394 * config/sparc/sparc.c (sparc_promote_prototypes,
395 sparc_return_in_memory, sparc_pass_by_reference,
396 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
397 function_arg_record_value_2, function_arg_record_value_1,
398 function_arg_record_value, function_arg_record_value,
399 function_arg_padding, function_value): Likewise.
400 * config/spu/spu-protos.h (spu_function_value): Likewise.
401 * config/spu/spu.c (spu_pass_by_reference, spu_return_in_memory,
402 spu_function_value): Likewise.
403 * config/stormy16/stormy16-protos.h (xstormy16_function_value):
404 Likewise.
405 * config/stormy16/stormy16.c (xstormy16_return_in_memory,
406 xstormy16_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
407 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
408 Likewise.
409 * config/v850/v850.c (v850_return_in_memory,
410 v850_pass_by_reference, TARGET_PROMOTE_PROTOTYPES): Likewise.
411 * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): Likewise.
412 * config/xtensa/xtensa.c (xtensa_return_in_msb,
413 xtensa_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
414 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
415 Likewise.
416 * explow.c (promote_mode, hard_function_value): Likewise.
417 * expr.h (hard_function_value, promote_mode): Likewise.
418 * function.c (aggregate_value_p): Likewise.
419 * hooks.c (hook_bool_const_tree_true): New.
420 * hooks.h (hook_bool_const_tree_true): New.
421 * sdbout.c (SET_KNOWN_TYPE_TAG, plain_type_1): Constify.
422 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
423 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
424 TARGET_RETURN_IN_MSB): Likewise.
425 * target.h (promote_function_args, promote_function_return,
426 promote_prototypes, return_in_memory, return_in_msb,
427 pass_by_reference, must_pass_in_stack, callee_copies,
428 function_value): Likewise.
429 * targhooks.c (default_return_in_memory,
430 hook_pass_by_reference_must_pass_in_stack,
431 hook_callee_copies_named,
432 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
433 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
434 default_function_value): Likewise.
435 * targhooks.h (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 * tree-ssa-structalias.c (const_equiv_class_label_t): New.
442 (equiv_class_label_hash, equiv_class_label_eq): Constify.
443 * tree-vectorizer.c (bb_in_loop_p): Likewise.
444 * tree.c (needs_to_live_in_memory): Likewise.
445 * tree.h (struct tree_type, needs_to_live_in_memory,
446 aggregate_value_p, must_pass_in_stack_var_size,
447 must_pass_in_stack_var_size_or_pad): Likewise.
448 * vmsdbgout.c (write_debug_addr, write_debug_delta4,
449 write_debug_string, ASM_OUTPUT_DEBUG_STRING, write_rtnbeg,
450 lookup_filename): Likewise.
451
452 2007-08-23 Uros Bizjak <ubizjak@gmail.com>
453
454 PR target/17390
455 * config/i386/i386.c (ix86_expand_fp_compare): Expand fp comparison to
456 fake fcomi i387 instruction for !TARGET_CMOVE.
457 (ix86_expand_branch): Expand natural sequence with one jump for
458 all targets, not only TARGET_CMOVE.
459 * config/i386/i386.md (*cmpfp_0_cc): New define_insn_and_split
460 pattern to implement fake fcomi sequence. Split instruction after
461 reload to correct compare sequences.
462 (*cmpfp_xf_cc): Ditto.
463 (*cmpfp_<mode>_cc): Ditto.
464 (*cmpfp_u_cc): Ditto.
465 (*cmpfp_<mode>_cc): Ditto.
466
467 2007-08-23 Richard Guenther <rguenther@suse.de>
468
469 * tree-pretty-print.c (dump_generic_node): Annotate
470 GIMPLE_MODIFY_STMTs with volatile ops with "{v}".
471
472 2007-08-23 Richard Guenther <rguenther@suse.de>
473
474 * builtins.c (expand_builtin_mathfn): Wrap argument in
475 save_expr directly instead of re-building the call.
476 (expand_builtin_mathfn_2): Likewise.
477 (expand_builtin_mathfn_3): Likewise.
478 (expand_builtin_interclass_mathfn): Likewise.
479 (expand_builtin_int_roundingfn): Set arg.
480 (expand_builtin_int_roundingfn_2): Likewise.
481
482 2007-08-23 Paolo Bonzini <bonzini@gnu.org>
483
484 * config/i386/sse.md (*sse_and<mode>3, *sse_ior<mode>3,
485 *sse_nand<mode>3, *sse_xor<mode>3): New.
486
487 2007-08-23 Uros Bizjak <ubizjak@gmail.com>
488
489 * config/i386/i386.h (PRINT_OPERAND_PUNCT_VALID_P): Add ';' code.
490 * config/i386/i386.c (print_operand): Handle ';' code. Output
491 semicolon for TARGET_MACHO.
492 * config/i386/sync.md (*sync_compare_and_swap<mode>): Use '%;' to
493 emit semicolon after 'lock' prefix.
494 (sync_double_compare_and_swap<mode>): Ditto.
495 (*sync_double_compare_and_swapdi_pic): Ditto.
496 (*sync_compare_and_swap_cc<mode>): Ditto.
497 (sync_double_compare_and_swap_cc<mode>): Ditto.
498 (*sync_double_compare_and_swap_ccdi_pic): Ditto.
499 (sync_old_add<mode>): Ditto.
500 (sync_add<mode>): Ditto.
501 (sync_sub<mode>): Ditto.
502 (sync_ior<mode>): Ditto.
503 (sync_and<mode>): Ditto.
504 (sync_xor<mode>): Ditto.
505
506 2007-08-22 Chao-ying Fu <fu@mips.com>
507
508 * rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes
509 in DEF_RTL_EXPR.
510 (copy_rtx): Handle CONST_FIXED.
511 (rtx_equal_p): Likewise.
512 * rtl.h (fixed_value.h): New include.
513 (rtx_def): Add a new field of fixed_value to u.
514 (XCNMPFV): Define for accessing fixed_value.
515 (CONST_FIXED_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW):
516 Define.
517 * rtl.def (CONST_FIXED): New constant.
518 (SS_MULT, US_MULT, SS_DIV, US_DIV, FRACT_CONVERT,
519 UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, US_NEG,
520 US_ASHIFT): New codes.
521 * doc/rtl.texi (Expressions): Document const_fixed, us_neg, ss_mult,
522 us_mult, ss_div, us_div, us_ashift, fract_convert, sat_fract,
523 unsigned_fract_convert, unsigned_sat_fract): Document them.
524 * varasm.c (assemble_integer): Extend to support fixed-point constants
525 by using different machine classes.
526 (decode_addr_const): Handle FIXED_CST.
527 (const_hash_1): Likewise.
528 (compare_constant): Likewise.
529 (copy_constant): Likewise.
530 (const_rtx_hash_1): Handle CONST_FIXED.
531 (output_constant_pool_2): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
532 MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
533 MODE_VECTOR_UACCUM.
534 (initializer_constant_valid_p): Handle FIXED_CST.
535 (output_constant): Support FIXED_POINT_TYPE.
536 * gengenrtl.c (excluded_rtx): Check CONST_FIXED to exclude.
537 * cse.c (hash_rtx): Support CONST_FIXED.
538 (exp_equiv_p): Likewise.
539 (cannon_reg): Likewise.
540 (fold_rtx): Likewise.
541 (equiv_constant): Likewise.
542 (cse_process_notes_1): Likewise.
543 (count_reg_usage): Likewise.
544 * cselib.c (entry_and_rtx_equal_p): Check CONST_FIXED.
545 (rtx_equal_for_cselib_p): Handle CONST_FIXED.
546 (wrap_constant): Check CONST_FIXED.
547 (cselib_hash_rtx): Support CONST_FIXED.
548 (cselib_subst_to_values): Likewise.
549 * df-scan.c (df_uses_record): Likewise.
550 * gcse.c (want_to_gcse_p): Likewise.
551 (oprs_unchanged_p): Likewise.
552 (oprs_not_set_p): Likewise.
553 (compute_transp): Likewise.
554 (extract_mentioned_regs_helper): Likewise.
555 * genemit.c (gen_exp): Likewise.
556 * local-alloc.c (equiv_init_varies_p): Likewise.
557 (contains_replace_regs): Likewise.
558 (memref_referenced_p): Likewise.
559 * loop-invariant.c (check_maybe_invariant): Likewise.
560 (hash_invariant_expr_1): Likewise.
561 (invariant_expr_equal_p): Likewise.
562 * postreload-gcse.c (oprs_unchanged_p): Likewise.
563 * regclass.c (reg_scan_mark_refs): Likewise.
564 * regrename.c (scan_rtx): Likewise.
565 * resource.c (mark_referenced_resources): Likewise.
566 (mark_set_resources): Likewise.
567 * rtlanal.c (rtx_unstable_p): Likewise.
568 (rtx_varies_p): Likewise.
569 (count_occurrences): Likewise.
570 (reg_mentioned_p): Likewise.
571 (modified_between_p): Likewise.
572 (modified_in_p): Likewise.
573 (volatile_insn_p): Likewise.
574 (volatile_refs_p): Likewise.
575 (side_effects_p): Likewise.
576 (may_trap_p_1): Likewise.
577 (inequality_comparisons_p): Likewise.
578 (computed_jump_p_1): Likewise.
579 (commutative_operand_precedence): Likewise.
580 * sched-deps.c (sched_analyze_2): Likewise.
581 * sched-vis.c (print_value): Likewise.
582 * reload.c (operands_match_p): Likewise.
583 (subst_reg_equivs): Likewise.
584 * reload1.c (eliminate_regs_1): Likewise.
585 (elimination_effects): Likewise.
586 (scan_paradoxical_subregs): Likewise.
587 * alias.c (rtx_equal_for_memref_p): Likewise.
588 * Makefile.in (RTL_BASE_H): Add fixed-value.h.
589 * emit-rtl.c (const_fixed_htab): New hash table.
590 (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed):
591 Declare.
592 (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed,
593 const_fixed_from_fixed_value): New functions.
594 (verify_rtx_sharing): Handle CONST_FIXED.
595 (copy_rtx_if_shared_1): Likewise.
596 (reset_used_flags): Likewise.
597 (set_used_flags): Likewise.
598 (copy_insn_1): Likewise.
599 (init_emit_once): Create const_fixed_htab.
600 Store fixed-point scalar and vector zero and one to const_tiny_rtx.
601
602 2007-08-22 Zdenek Dvorak <ook@ucw.cz>
603
604 PR tree-optimization/32949
605 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Test nowrap_type_p
606 before failing for ivs with non-constant step.
607
608 2007-08-22 Hans-Peter Nilsson <hp@axis.com>
609
610 * doc/md.texi (Iterators): Renamed from Macros. All contents
611 changed to reflect rename of respectively define_code_macro and
612 define_mode_macro to define_code_iterator and define_mode_iterator.
613 (Mode Iterators, Code Iterators): Similar.
614 * read-rtl.c (struct iterator_group, struct iterator_traverse_data)
615 (uses_mode_iterator_p, apply_mode_iterator, uses_code_iterator_p)
616 (apply_iterator_to_string, uses_iterator_p, apply_iterator_traverse)
617 (initialize_iterators, find_iterator, check_code_iterator)
618 (map_attr_string, apply_mode_maps, apply_iterator_to_rtx, add_mapping)
619 (read_mapping, read_rtx_1): Similar.
620 * config/alpha/sync.md, config/alpha/alpha.md, config/frv/frv.md,
621 config/s390/s390.md, config/m32c/blkmov.md, config/m32c/m32c.md,
622 config/spu/spu.md, config/sparc/sparc.md, config/sparc/sync.md,
623 config/i386/i386.md, config/i386/mmx.md, config/i386/sse.md,
624 config/i386/sync.md, config/crx/crx.md, config/xtensa/xtensa.md,
625 config/cris/cris.c, config/cris/cris.md, config/ia64/sync.md,
626 config/ia64/div.md, config/ia64/vect.md, config/ia64/ia64.md,
627 config/m68k/m68k.md, config/rs6000/spe.md, config/rs6000/altivec.md,
628 config/rs6000/sync.md, config/rs6000/rs6000.md,
629 config/arm/vec-common.md, config/arm/neon.md, config/arm/iwmmxt.md,
630 config/arm/arm.md, config/mips/mips-dsp.md, config/mips/mips.md,
631 config/vax/vax.md, config/bfin/bfin.md: Similar.
632
633 2007-08-22 David Daney <ddaney@avtrex.com>
634
635 * doc/install.texi (Testing): Mention testing on a simulator.
636
637 2007-08-22 Janis Johnson <janis187@us.ibm.com>
638
639 * config/dfp-bit.c (DFP_TO_DFP): Check for overflow.
640
641 * doc/libgcc.texi (Decimal float library routines): Fix formatting
642 and rearrange floating point conversion functions into different
643 categories.
644
645 2007-08-22 Maxim Kuvyrkov <maxim@codesourcery.com>
646
647 * target.h (struct gcc_target.sched: dfa_pre_advance_cycle,
648 dfa_post_advance_cycle): New scheduler hooks.
649 * target-def.h (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
650 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): New macros to initialize
651 new hooks.
652 (TARGET_SCHED): Use them.
653 * doc/tm.texi (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
654 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Document new hooks.
655 * haifa-sched.c (advance_one_cycle): Invoke new hooks.
656
657 * genautomata.c (insn_has_dfa_reservation_p): New DFA interface
658 function to facilitate debugging.
659 (INSN_HAS_DFA_RESERVATION_P_FUNC_NAME): New macro.
660 (output_insn_has_dfa_reservation_p): New static function to output
661 insn_has_dfa_reservation_p ().
662 (write_automata): Use it.
663 * genattr.c (main): Output declaration for
664 insn_has_dfa_reservation_p ().
665
666 2007-08-22 Christian Bruel <christian.bruel@st.com>
667 Richard Guenther <rguenther@suse.de>
668
669 * fold-const.c (fold_binary): Optimize A-A if -ffinite-math-only.
670 * simplify_rtx (simplify_binary_operation_1): Likewise.
671
672 2007-08-22 Rask Ingemann Lambertsen <rask@sygehus.dk>
673
674 PR rtl-optimization/32557
675 * df-problems.c (df_note_bb_compute): Use mws->start_regno instead
676 of REGNO (mws->mw_reg).
677
678 2007-08-22 Richard Guenther <rguenther@suse.de>
679
680 PR middle-end/33007
681 * builtins.c (expand_builtin_int_roundingfn): Replace call
682 argument wrapped with SAVE_EXPR directly.
683 (expand_builtin_int_roundingfn_2): Likewise.
684
685 2007-08-22 Richard Guenther <rguenther@suse.de>
686
687 * tree-inline.c (inlinable_function_p): Restore disregarding
688 inline limits for GNU extern inline functions.
689
690 2007-08-22 Richard Guenther <rguenther@suse.de>
691
692 PR middle-end/32563
693 * tree.c (host_integerp): Treat sizetype as signed as it is
694 sign-extended.
695
696 2007-08-21 Ian Lance Taylor <iant@google.com>
697
698 PR tree-optimization/33134
699 * tree-vrp.c (adjust_range_with_scev): Call
700 set_value_range_to_value.
701
702 2007-08-21 Aldy Hernandez <aldyh@redhat.com>
703
704 * value-prof.h (gimple_remove_histogram_value): Remove duplicate
705 prototype.
706
707 2007-08-21 Aldy Hernandez <aldyh@redhat.com>
708
709 * tree-flow-inline.h (next_imm_use_stmt): Remove unecessary
710 whitespace.
711
712 2007-08-21 Nathan Froyd <froydnj@codesourcery.com>
713
714 * config/rs6000/rs6000.c (expand_block_clear): Add TARGET_SPE
715 cases to set eight bytes at a time.
716 (expand_block_move): Likewise.
717
718 2007-08-21 Jakub Jelinek <jakub@redhat.com>
719
720 PR debug/32610
721 * dwarf2out.c (gen_decl_die): Don't call
722 gen_tagged_type_instantiation_die if decl doesn't have tagged type.
723
724 2007-08-21 Paul Brook <paul@codesourcery.com>
725 Nathan Sidwell <nathan@codesourcery.com>
726 Mark Mitchell <mark@codesourcery.com>
727 Joseph Myers <joseph@codesourcery.com>
728
729 * configure.ac: Add --with-pkgversion and --with-bugurl.
730 * configure: Regenerate.
731 * doc/install.texi: Document them.
732 * version.c (version_string): Remove VERSUFFIX.
733 (VERSUFFIX): Remove.
734 (pkgversion_string): New.
735 (bug_report_url): Do not hard-code initializer.
736 * version.h (pkgversion_string): Declare.
737 * Makefile.in (PKGVERSION_s, BUGURL_s, PKGVERSION, BUGURL_TEXI):
738 Define.
739 (version.o): Define PKGVERSION and BUGURL.
740 (gcc-vers.texi): Define VERSION_PACKAGE and BUGURL.
741 (%.pod): Define BUGURL.
742 * gcc.c (process_command, main): Use pkgversion_string.
743 * toplev.c (compile_file, print_version): Likewise.
744 * protoize.c (main): Likewise.
745 * gcov.c (print_version): Likewise. Update copyright date.
746 * gcov-dump.c (print_version): Likewise. Update copyright date.
747 * mips-tdump.c (main): Likewise. Update copyright date.
748 * mips-tfile.c (main): Likewise. Update copyright date.
749 * doc/include/gcc-common.texi: Include VERSION_PACKAGE as subtitle.
750 * doc/bugreport.texi: Use BUGURL for bug-reporting instructions;
751 shorten description.
752 * doc/gcc.texi: Include VERSION_PACKAGE in version description.
753 * doc/gccint.texi: Likewise.
754 * doc/invoke.texi: Use BUGURL for bug-reporting instructions.
755 Update copyright date.
756
757 2007-08-21 Uros Bizjak <ubizjak@gmail.com>
758
759 * config/i386/i386.c (ix86_expand_clear): Use FLAGS_REG.
760 (ix86_expand_strlensi_unroll_1): Ditto.
761 (ix86_expand_branch): Use FLAGS_REG and FPSR_REG.
762 (ix86_expand_carry_flag_compare): Update comment.
763
764 2007-08-21 Jakub Jelinek <jakub@redhat.com>
765
766 PR middle-end/32912
767 * fold-const.c (fold_unary): Optimize BIT_NOT_EXPR of VECTOR_CST.
768 (fold_binary): Handle vectors in X | ~X and X ^ ~X optimizations.
769
770 2007-08-21 Richard Guenther <rguenther@suse.de>
771
772 * fold-const.c (fold_binary): Revert removing of index +p PTR folding.
773
774 2007-08-21 Richard Guenther <rguenther@suse.de>
775
776 PR middle-end/33122
777 * fold-const.c (fold_binary): Remove index +p PTR folding.
778 Fix types of POINTER_PLUS_EXPR generated by folding of
779 (PTR +p B) +p A.
780
781 2007-08-20 Chao-ying Fu <fu@mips.com>
782
783 * c-common.h (enum rid): Add new enumeration values of RID_SAT,
784 RID_FRACT, and RID_ACCUM. RID_SAT needs to be inserted before
785 RID_ONEWAY, so that it can be checked in declspecs_add_type.
786 (c_common_fixed_point_type_for_size): Declare.
787 * c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
788 (c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
789 (c_token_starts_declspecs): Likewise.
790 (c_parser_declspecs): Likewise.
791 (c_parser_attributes): Likewise.
792 * c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
793 (c_declspecs): Add saturating_p.
794 * c-decl.c (build_null_declspecs): Initialize saturating_p.
795 (declspecs_add_type): Avoid using complex with _Fract, _Accum, or
796 _Sat. Handle RID_SAT.
797 Avoid using void, bool, char, int, float, double, _Decimal32,
798 _Decimal64, _Decimal128, and complex with _Sat.
799 Handle RID_FRACT and RID_ACCUM.
800 Make sure _Sat is used with _Fract or _Accum.
801 (finish_declspecs): Handle cts_fract and cts_accum.
802 * c-common.c (fixed-value.h): New include.
803 (constant_expression_warning): Handle FIXED_CST.
804 (overflow_warning): Likewise.
805 (warnings_for_convert_and_check): Likewise.
806 (c_common_fixed_point_type_for_size): New.
807 (c_common_type_for_mode): Handle fixed-point modes to
808 return various saturating/non-saturating, signed/unsigned types.
809 (c_common_signed_or_unsigned_type): Support fixed-point types.
810 (shorten_compare): Check fixed-point zero.
811 Handle FIXED_POINT_TYPE.
812 (c_common_truthvalue_conversion): Handle FIXED_CST.
813 Handle FIXED_POINT_TYPE.
814 (c_common_nodes_and_builtins): Record builtin types for fixed-point
815 types.
816 (handle_mode_attribute): Handle fixed-point modes. Need to check
817 if the signness of base type and fixed-point modes are consistent.
818 (handle_vector_size_attribute): Handle fixed-point modes.
819 (same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE.
820 (warn_for_div_by_zero): Check fixed-point zero.
821 * c-typeck.c (c_common_type): Check FIXED_POINT_TYPE. Build
822 a common fixed-point type based on fbit, ibit, sign, and saturation.
823 (build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR,
824 NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR,
825 PREDECREMENT_EXPR, and POSTDECREMENT_EXPR.
826 (convert_for_assignment): Support FIXED_POINT_TYPE.
827 (digest_init): Handle FIXED_POINT_TYPE.
828 (build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR,
829 TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
830 TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR,
831 GE_EXPR, LT_EXPR, GT_EXPR.
832 * target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New.
833 (TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P.
834 * target.h (gcc_target): Add fixed_point_supported_p.
835 * targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT,
836 MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM.
837 (default_fixed_point_supported_p): Define.
838 * targhooks.h (default_fixed_point_supported_p): Declare.
839 * doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add.
840 * doc/install.texi (Configuration): Add --enable-fixed-point.
841 * configure.ac (--enable-fixed-point): New to enable fixed-point
842 arithmetic extension to C. For mips targets, we enable it by default.
843 * configure, config.in: Regenerate.
844
845 2007-08-20 Pawel Sikora <pluto@pld-linux.org>
846
847 * doc/invoke.texi (-Wnon-virtual-dtor): Update documentation.
848
849 2007-08-20 David Edelsohn <edelsohn@gnu.org>
850
851 * dwarf2out.c (text_section_used): Move declaration outside ifdef
852 DWARF2_DEBUGGING_INFO.
853 (cold_text_section_used): Same.
854 (cold_text_section): Same.
855
856 2007-08-20 Richard Guenther <rguenther@suse.de>
857
858 * c-typeck.c (convert_for_assignment): Use the type of
859 the member for the initialization.
860
861 2007-08-20 Richard Guenther <rguenther@suse.de>
862
863 * c-objc-common.c (c_disregard_inline_limits): Remove.
864 * c-objc-common.h (c_disregard_inline_limits): Likewise.
865 * cgraphunit.c (cgraph_process_new_functions): Call
866 disregard_inline_limits_p.
867 (cgraph_preserve_function_body_p): Likewise.
868 * ipa-inline.c (compute_inline_parameters): Likewise.
869 * langhooks-def.h (lhd_tree_inlining_disregard_inline_limits):
870 Remove.
871 (LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS): Remove.
872 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
873 disregard_inline_limits langhook.
874 * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
875 Remove.
876 * langhooks.h (lang_hooks_for_tree_inlining): Remove
877 disregard_inline_limits langhook.
878 * tree-inline.c (disregard_inline_limits_p): New function.
879 * tree-inline.h (disregard_inline_limits_p): Declare.
880
881 2007-08-20 Richard Guenther <rguenther@suse.de>
882
883 * langhooks-def.h (lhd_tree_inlining_auto_var_in_fn_p): Remove.
884 (LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P): Likewise.
885 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
886 auto_var_in_fn_p langhook.
887 * langhooks.c (lhd_tree_inlining_auto_var_in_fn_p): Rename and
888 move ...
889 * tree.c (auto_var_in_fn_p): ... here.
890 (find_var_from_fn): Call auto_var_in_fn_p directly.
891 * langhooks.h (lang_hooks_for_tree_inlining): Remove
892 auto_var_in_fn_p langhook.
893 * tree-inline.c (remap_decls): Call auto_var_in_fn_p directly.
894 (copy_body_r): Likewise.
895 (self_inlining_addr_expr): Likewise.
896 * tree.h (auto_var_in_fn_p): Declare.
897
898 2007-08-20 Richard Guenther <rguenther@suse.de>
899
900 * tree.c (WALK_SUBTREE): Call walk_tree_1.
901 (walk_type_fields): Take lh parameter.
902 (walk_tree): Rename to ...
903 (walk_tree_1): ... this. Do not call the walk_subtrees
904 langhook but the now passed callback. Pass lh on recursion.
905 (walk_tree_without_duplicates): Rename to ...
906 (walk_tree_without_duplicates_1): ... this. Take lh parameter
907 and call walk_tree_1.
908 * tree.h (walk_tree_lh): New typedef.
909 (walk_tree_1): Declare.
910 (walk_tree_without_duplicates_1): Likewise.
911 (walk_tree): New define to walk_tree_1 with NULL lh parameter.
912 (walk_tree_without_duplicates): New define to
913 walk_tree_without_duplicates_1 with NULL lh parameter.
914 * langhooks.c (lhd_tree_inlining_walk_subtrees): Remove.
915 * langhooks.h (lang_hooks_for_tree_inlining): Remove walk_subtrees
916 langhook.
917 * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Remove.
918 (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
919 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove walk_subtrees
920 initializer.
921
922 2007-08-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
923
924 PR middle-end/30564
925 * tree-inline.c (optimize_inline_calls): Move the cgraph checking
926 code in front of the compacting of basic blocks.
927 Move the folding of statements inbetween the cgraph checking
928 and compacting of basic blocks.
929
930 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
931 Serge Belyshev <belyshev@depni.sinp.msu.ru>
932
933 PR target/32522
934 * config/alpha/alpha.c (va_list_skip_additions): Check for
935 POINTER_PLUS_EXPR in addition to PLUS_EXPR.
936 (alpha_stdarg_optimize_hook): Look for POINTER_PLUS_EXPR instead of
937 PLUS_EXPR when checking ap.__base.
938 (alpha_va_start): Create POINTER_PLUS_EXPR instead of PLUS_EXPR
939 when doing addition on pointer types. Use size_int instead of
940 build_int_cst.
941 (alpha_gimplify_va_arg_1): Likewise, but use sizetype instead of
942 ptr_type in the second operand.
943
944 2007-08-19 Andrew Pinski <pinskia@gmail.com>
945
946 PR target/33115
947 * config/i386/darwin.h (CC1_SPEC): Add %(cc1_cpu) in front.
948
949 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
950
951 PR middle-end/32940
952 * cfgexpand.c (expand_one_register_var): Mark pointer
953 DECL_ARTIFICIAL as REG_POINTER also.
954 * stmt.c (expand_decl): Likewise.
955
956 2007-08-19 Daniel Berlin <dberlin@dberlin.org>
957
958 Fix PR 32772
959 Fix PR 32716
960 Fix PR 32328
961 Fix PR 32303
962
963 * tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call.
964 * tree-ssa-alias.c (init_transitive_clobber_worklist): Add
965 on_worklist argument and avoid adding things to worklist multiple
966 times.
967 (add_to_worklist): Ditto.
968 (mark_aliases_call_clobbered): Mark entire structure clobbered if
969 single SFT is clobbered.
970 (set_initial_properties): Ditto.
971 (compute_call_clobbered): Update for changes to function
972 arguments.
973 (create_overlap_variables_for): Always create SFT for offset 0.
974 (create_structure_vars): Handle PHI's, since we are in SSA form at
975 this point.
976 * tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars.
977 * tree-ssa-operands.c (access_can_touch_variable): Don't handle
978 TARGET_MEM_REF.
979 (add_vars_for_offset): Figure out aliases from access + points-to.
980 (add_virtual_operand): Use add_vars-for_offset.
981 (get_tmr_operands): Update for NMT changes, rewrite to be correct.
982 (add_call_clobber_ops): Remove makes_clobbering_call set.
983 (get_expr_operands): Always pass through the INDIRECT_REF
984 reference.
985 * tree-ssa-structalias.c (struct constraint_graph): Remove
986 variables member.
987 Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to,
988 address_taken, pt_used, number_incoming.
989 (FIRST_ADDR_NODE): Removed.
990 (merge_graph_nodes): Remove broken code for the moment.
991 (init_graph): New function.
992 (build_pred_graph): Remove code to init_graph.
993 Add location equivalence support.
994 (struct scc_info): Rename roots to deleted.
995 (scc_visit): Ditto.
996 (init_scc_info): Ditto
997 (init_topo_info): Use graph->size.
998 (compute_topo_order): Ditto.
999 (do_da_constraint): Removed.
1000 (do_sd_constraint): Remove calls to find().
1001 set_union_with_increment should always get 0 as last arg here.
1002 (do_complex_constraint): Replace do_da_constraint with assert.
1003 Stop calling find.
1004 (struct equiv_class_label): New.
1005 (pointer_equiv_class_table): Ditto.
1006 (location_equiv_class_table): Ditto.
1007 (equiv_class_label_hash): Ditto.
1008 (equiv_class_label_eq): Ditto
1009 (equiv_class_lookup): Ditto.
1010 (equiv_class_ladd): Ditto.
1011 (pointer_equiv_class): Ditto.
1012 (location_equiv_class): Ditto.
1013 (condense_visit): Rename and rewrite from label_visit to do only
1014 SCC related stuff for HU.
1015 (label_visit): Do HU work for HU.
1016 (perform_var_substitution): Update to do HU and location
1017 equivalence.
1018 (free_var_substitution_info): Update to free HU and location
1019 equivalence structures. */
1020 (find_equivalent_node): Update for pointer but not location
1021 equivalence.
1022 (unite_pointer_equivalences): New function.
1023 (move_complex_constraints): Rewrite to only do moving.
1024 (rewrite_constraints): Split out of move_complex_constraints.
1025 (solve_graph): Use graph->size.
1026 (process_constraint_1): Add from_call argument, use it.
1027 Split *a = &b into two constraints.
1028 (process_constraint): Use new process_constraint_1.
1029 (get_constraint_for_component_ref): Handle bitmaxsize == -1 case.
1030 (get_constraint_for): Handle non-pointer integers properly.
1031 Remove code that used to handle structures.
1032 (handle_ptr_arith): Fix a few bugs in pointer arithmetic handling
1033 with unknown addends.
1034 (handle_rhs_call): New function.
1035 (find_func_aliases): Use handle_rhs_call.
1036 (set_uids_in_ptset): Add an assert.
1037 (set_used_smts): Fix bug in not considering unified vars.
1038 (compute_tbaa_pruning): Stop initing useless iteration_obstack.
1039 (compute_points_to_sets): Update for other function changes.
1040 (delete_points_to_sets): Ditto.
1041 (ipa_pta_execute): Ditto.
1042 (pass_ipa_pta): We need to update SSA after ipa_pta.
1043
1044 2007-08-19 Jan Hubicka <jh@suse.cz>
1045
1046 * i386.md: Replace "rim" and "mri" constraints by "g".
1047
1048 2007-08-19 Joseph Myers <joseph@codesourcery.com>
1049
1050 * dwarf2out.c (text_section_used, cold_text_section_used,
1051 cold_text_section, dwarf2out_note_section_used): New.
1052 (dwarf2out_init): Initialize cold_text_section.
1053 (dwarf2out_switch_text_section, dwarf2out_begin_function): Call
1054 dwarf2out_note_section_used.
1055 (size_of_aranges): Only count entry for text section if it was
1056 used. Count entry for cold text section if it was used.
1057 (output_aranges): Only output entries for text section and cold
1058 text section if they were used.
1059
1060 2007-08-19 Andrew Pinski <pinskia@gmail.com>
1061
1062 * tree-pretty-print.c (debug_generic_expr): Add a comment about
1063 the function.
1064 (debug_generic_stmt): Likewise.
1065 (debug_tree_chain): Likewise.
1066
1067 2007-08-19 Dorit Nuzman <dorit@il.ibm.com>
1068
1069 * tree-data-refs.c (split_constant_offset): Expose.
1070 * tree-data-refs.h (split_constant_offset): Add declaration.
1071
1072 * tree-vectorizer.h (dr_alignment_support): Renamed
1073 dr_unaligned_software_pipeline to dr_explicit_realign_optimized.
1074 Added a new value dr_explicit_realign.
1075 (_stmt_vec_info): Added new fields: dr_base_address, dr_init,
1076 dr_offset, dr_step, and dr_aligned_to, along with new access
1077 functions for these fields: STMT_VINFO_DR_BASE_ADDRESS,
1078 STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET, STMT_VINFO_DR_STEP, and
1079 STMT_VINFO_DR_ALIGNED_TO.
1080
1081 * tree-vectorizer.c (vect_supportable_dr_alignment): Add
1082 documentation.
1083 In case of outer-loop vectorization with non-fixed misalignment - use
1084 the dr_explicit_realign scheme instead of the optimized realignment
1085 scheme.
1086 (new_stmt_vec_info): Initialize new fields.
1087
1088 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Handle the
1089 'nested_in_vect_loop' case. Change verbosity level.
1090 (vect_analyze_data_ref_access): Handle the 'nested_in_vect_loop' case.
1091 Don't fail on zero step in the outer-loop for loads.
1092 (vect_analyze_data_refs): Call split_constant_offset to calculate
1093 base, offset and init relative to the outer-loop.
1094
1095 * tree-vect-transform.c (vect_create_data_ref_ptr): Replace the unused
1096 BSI function argument with a new function argument - at_loop.
1097 Simplify the condition that determines STEP. Takes additional argument
1098 INV_P. Support outer-loop vectorization (handle the
1099 nested_in_vect_loop case), including zero step in the outer-loop. Call
1100 vect_create_addr_base_for_vector_ref with additional argument.
1101 (vect_create_addr_base_for_vector_ref): Takes additional argument LOOP.
1102 Updated function documentation. Handle the 'nested_in_vect_loop' case.
1103 Fixed and simplified calculation of step.
1104 (vectorizable_store): Call vect_create_data_ref_ptr with loop instead
1105 of bsi, and with additional argument. Call bump_vector_ptr with
1106 additional argument. Fix typos. Handle the 'nested_in_vect_loop' case.
1107 (vect_setup_realignment): Takes additional arguments INIT_ADDR and
1108 DR_ALIGNMENT_SUPPORT. Returns another value AT_LOOP. Handle the case
1109 when the realignment setup needs to take place inside the loop.
1110 Support the dr_explicit_realign scheme. Allow generating the optimized
1111 realignment scheme for outer-loop vectorization. Added documentation.
1112 (vectorizable_load): Support the dr_explicit_realign scheme. Handle
1113 the 'nested_in_vect_loop' case, including loads that are invariant in
1114 the outer-loop and the realignment schemes. Handle the case when the
1115 realignment setup needs to take place inside the loop. Call
1116 vect_setup_realignment with additional arguments. Call
1117 vect_create_data_ref_ptr with additional argument and with loop instead
1118 of bsi. Fix 80-column overflow. Fix typos. Rename PHI_STMT to PHI.
1119 (vect_gen_niters_for_prolog_loop): Call
1120 vect_create_addr_base_for_vector_ref with additional arguments.
1121 (vect_create_cond_for_align_checks): Likewise.
1122 (bump_vector_ptr): Updated to support the new dr_explicit_realign
1123 scheme: takes additional argument bump; argument ptr_incr is now
1124 optional; updated documentation.
1125 (vect_init_vector): Takes additional argument (bsi). Use it, if
1126 available, to insert the vector initialization.
1127 (get_initial_def_for_induction): Pass additional argument in call to
1128 vect_init_vector.
1129 (vect_get_vec_def_for_operand): Likewise.
1130 (vect_setup_realignment): Likewise.
1131 (vectorizable_load): Likewise.
1132
1133 2007-08-19 Dorit Nuzman <dorit@il.ibm.com>
1134
1135 * tree-vectorizer.h (vect_is_simple_reduction): Takes a loop_vec_info
1136 as argument instead of struct loop.
1137 (nested_in_vect_loop_p): New function.
1138 (vect_relevant): Add enum values vect_used_in_outer_by_reduction and
1139 vect_used_in_outer.
1140 (is_loop_header_bb_p): New. Used to differentiate loop-header phis
1141 from other phis in the loop.
1142 (destroy_loop_vec_info): Add additional argument to declaration.
1143
1144 * tree-vectorizer.c (supportable_widening_operation): Also check if
1145 nested_in_vect_loop_p (don't allow changing the order in this case).
1146 (vect_is_simple_reduction): Takes a loop_vec_info as argument instead
1147 of struct loop. Call nested_in_vect_loop_p and don't require
1148 flag_unsafe_math_optimizations if it returns true.
1149 (new_stmt_vec_info): When setting def_type for phis differentiate
1150 loop-header phis from other phis.
1151 (bb_in_loop_p): New function.
1152 (new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so
1153 just update their loop_vinfo. Order of BB traversal now matters -
1154 call dfs_enumerate_from with bb_in_loop_p.
1155 (destroy_loop_vec_info): Takes additional argument to control whether
1156 stmt_vinfo of the loop stmts should be destroyed as well.
1157 (vect_is_simple_reduction): Allow the "non-reduction" use of a
1158 reduction stmt to be defines by a non loop-header phi.
1159 (vectorize_loops): Call destroy_loop_vec_info with additional argument.
1160
1161 * tree-vect-transform.c (vectorizable_reduction): Call
1162 nested_in_vect_loop_p. Check for multitypes in the inner-loop.
1163 (vectorizable_call): Likewise.
1164 (vectorizable_conversion): Likewise.
1165 (vectorizable_operation): Likewise.
1166 (vectorizable_type_promotion): Likewise.
1167 (vectorizable_type_demotion): Likewise.
1168 (vectorizable_store): Likewise.
1169 (vectorizable_live_operation): Likewise.
1170 (vectorizable_reduction): Likewise. Also pass loop_info to
1171 vect_is_simple_reduction instead of loop.
1172 (vect_init_vector): Call nested_in_vect_loop_p.
1173 (get_initial_def_for_reduction): Likewise.
1174 (vect_create_epilog_for_reduction): Likewise.
1175 (vect_init_vector): Check which loop to work with, in case there's an
1176 inner-loop.
1177 (get_initial_def_for_inducion): Extend to handle outer-loop
1178 vectorization. Fix indentation.
1179 (vect_get_vec_def_for_operand): Support phis in the case vect_loop_def.
1180 In the case vect_induction_def get the vector def from the induction
1181 phi node, instead of calling get_initial_def_for_inducion.
1182 (get_initial_def_for_reduction): Extend to handle outer-loop
1183 vectorization.
1184 (vect_create_epilog_for_reduction): Extend to handle outer-loop
1185 vectorization.
1186 (vect_transform_loop): Change assert to just skip this case. Add a
1187 dump printout.
1188 (vect_finish_stmt_generation): Add a couple asserts.
1189
1190 (vect_estimate_min_profitable_iters): Multiply
1191 cost of inner-loop stmts (in outer-loop vectorization) by estimated
1192 inner-loop bound.
1193 (vect_model_reduction_cost): Don't add reduction epilogue cost in case
1194 this is an inner-loop reduction in outer-loop vectorization.
1195
1196 * tree-vect-analyze.c (vect_analyze_scalar_cycles_1): New function.
1197 Same code as what used to be vect_analyze_scalar_cycles, only with
1198 additional argument loop, and loop_info passed to
1199 vect_is_simple_reduction instead of loop.
1200 (vect_analyze_scalar_cycles): Code factored out into
1201 vect_analyze_scalar_cycles_1. Call it for each relevant loop-nest.
1202 Updated documentation.
1203 (analyze_operations): Check for inner-loop loop-closed exit-phis during
1204 outer-loop vectorization that are live or not used in the outerloop,
1205 cause this requires special handling.
1206 (vect_enhance_data_refs_alignment): Don't consider versioning for
1207 nested-loops.
1208 (vect_analyze_data_refs): Check that there are no datarefs in the
1209 inner-loop.
1210 (vect_mark_stmts_to_be_vectorized): Also consider vect_used_in_outer
1211 and vect_used_in_outer_by_reduction cases.
1212 (process_use): Also consider the case of outer-loop stmt defining an
1213 inner-loop stmt and vice versa.
1214 (vect_analyze_loop_1): New function.
1215 (vect_analyze_loop_form): Extend, to allow a restricted form of nested
1216 loops. Call vect_analyze_loop_1.
1217 (vect_analyze_loop): Skip (inner-)loops within outer-loops that have
1218 been vectorized. Call destroy_loop_vec_info with additional argument.
1219
1220 * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Don't allow
1221 in the inner-loop when doing outer-loop vectorization. Add
1222 documentation and printout.
1223 (vect_recog_dot_prod_pattern): Likewise. Also add check for
1224 GIMPLE_MODIFY_STMT (in case we encounter a phi in the loop).
1225
1226 2007-08-18 Andrew Pinski <pinskia@gmail.com>
1227
1228 * tree-affine.h (print_aff): New prototype.
1229 (debug_aff): Likewise.
1230 * tree-affine.c (print_aff): New function.
1231 (debug_aff): Likewise.
1232
1233 2007-08-18 Paul Brook <paul@codesourcery.com>
1234 Joseph Myers <joseph@codesourcery.com>
1235
1236 * common.opt (-fdebug-prefix-map=): New option.
1237 * opts.c: Include debug.h.
1238 (common_handle_option): Handle -fdebug-prefix-map.
1239 * final.c: Include ggc.h.
1240 (struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
1241 remap_debug_filename): New.
1242 * Makefile.in (final.o, opts.o): Update dependencies.
1243 * debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
1244 * configure.ac: Check for assembler --debug-prefix-map support.
1245 * configure, config.in: Regenerate.
1246 * gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
1247 (ASM_DEBUG_SPEC): Include ASM_MAP.
1248 * doc/install.texi (--with-debug-prefix-map): Document.
1249 * doc/invoke.texi (-fdebug-prefix-map): Document.
1250 * dbxout.c (dbxout_init, dbxout_start_source_file,
1251 dbxout_source_file): Call remap_debug_filename.
1252 * dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
1253 dwarf2out_start_source_file, dwarf2out_finish): Call
1254 remap_debug_filename.
1255 (file_table_relative_p): Do not check d->emitted_number.
1256 * toplev.c (output_file_directive): Call remap_debug_filename.
1257 * vmsdbgout.c (write_srccorr): Call remap_debug_filename.
1258 * xcoffout.c (xcoffout_source_file): Call remap_debug_filename.
1259
1260 2007-08-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1261
1262 * loop-invariant.c (find_invariants_to_move): Add missing macro
1263 argument.
1264
1265 2007-08-17 Tom Tromey <tromey@redhat.com>
1266
1267 * tree.h (struct tree_label_decl): Removed old "java" fields.
1268
1269 2007-08-17 Richard Sandiford <richard@codesourcery.com>
1270 Nigel Stephens <nigel@mips.com>
1271
1272 * config/mips/sde.h (DRIVER_SELF_SPECS): Add commas.
1273 Treat -mno-data-in-code and -mcode-xonly as aliases for
1274 -mcode-readable=no and -mcode-readable=pcrel respectively.
1275 * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly.
1276 (MULTILIB_OPTIONS): Add -mcode-readable=no multilibs.
1277 (MULTILIB_DIRNAMES): Update accordingly.
1278
1279 2007-08-17 H.J. Lu <hongjiu.lu@intel.com>
1280
1281 * Makefile.in (version.o): Depend on $(REVISION) only if
1282 REVISION_s is defined.
1283
1284 2007-08-17 Sa Liu <saliu@de.ibm.com>
1285 Ulrich Weigand <uweigand@de.ibm.com>
1286
1287 PR middle-end/32970
1288 * tree.c (reconstruct_complex_type): For a pointer to a vector,
1289 use build_qualified_type to retain qualifiers of the base type.
1290
1291 2007-08-17 Chen Liqin <liqin@sunnorth.com.cn>
1292
1293 * config/score/score.md : Update pattern tablejump.
1294 * config/score/score.c : Update score_initialize_trampoline
1295 function.
1296 * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro.
1297 (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro.
1298 * doc/contrib.texi: Add my entry.
1299
1300 2007-08-16 H.J. Lu <hongjiu.lu@intel.com>
1301
1302 * Makefile.in (REVISION): New.
1303 (REVISION_c): New.
1304 (REVISION_s): New.
1305 (version.o): Also depend on $(REVISION). Add
1306 -DREVISION=$(REVISION_s).
1307
1308 * version.c (version_string): Add REVISION.
1309
1310 2007-08-16 Seongbae Park <seongbae.park@gmail.com>
1311
1312 * tree-eh.c (lower_try_finally_onedest): Reset the locus
1313 of GOTO that's relocated to a different block.
1314
1315 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1316
1317 * c-common.c (const_strip_array_types): New.
1318 * c-common.h (lang_missing_noreturn_ok_p): Delete.
1319 (const_strip_array_types): New.
1320 * c-objc-common.c (c_disregard_inline_limits,
1321 c_warn_unused_global_decl): Constify.
1322 * c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl,
1323 c_vla_type_p, c_incomplete_type_error): Likewise.
1324 * c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise.
1325 * hooks.c (hook_bool_const_tree_false): New.
1326 * hooks.h (hook_bool_const_tree_false): Likewise.
1327 * langhooks-def.h (lhd_warn_unused_global_decl,
1328 lhd_incomplete_type_error, lhd_expr_size,
1329 lhd_tree_inlining_disregard_inline_limits,
1330 lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
1331 LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify.
1332 * langhooks.c (lhd_warn_unused_global_decl,
1333 lhd_incomplete_type_error,
1334 lhd_tree_inlining_disregard_inline_limits,
1335 lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
1336 lhd_expr_size): Likewise.
1337 * langhooks.h (lang_hooks_for_tree_inlining,
1338 lang_hooks_for_tree_dump, lang_hooks_for_types,
1339 lang_hooks_for_decls, lang_hooks): Likewise.
1340 * pointer-set.c (pointer_set_t, pointer_set_create,
1341 pointer_set_contains, insert_aux, pointer_set_insert,
1342 pointer_set_traverse, pointer_map_t, pointer_map_create,
1343 pointer_map_contains, pointer_map_insert, pointer_map_traverse):
1344 Likewise.
1345 * pointer-set.h (pointer_set_contains, pointer_set_insert,
1346 pointer_set_traverse, pointer_map_contains, pointer_map_insert,
1347 pointer_map_traverse): Likewise.
1348 * predict.c (assert_is_empty): Likewise.
1349 * tree-affine.c (free_name_expansion): Likewise.
1350 * tree-cfg.c (edge_to_cases_cleanup): Likewise.
1351 * tree.c (size_in_bytes, max_int_size_in_bytes): Likewise.
1352 * tree.h (size_in_bytes, max_int_size_in_bytes): Likewise.
1353
1354 2007-08-16 Victor Kaplansky <victork@il.ibm.com>
1355
1356 * tree-vectorizer.c (new_loop_vec_info): Initialize new
1357 field.
1358 (destroy_loop_vec_info): Add call to VEC_free.
1359 * tree-vectorizer.h (may_alias_ddrs): Define.
1360 (LOOP_VINFO_MAY_ALIAS_DDRS): Define.
1361 * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
1362 Change reporting to dump.
1363 (vect_is_duplicate_ddr): New.
1364 (vect_mark_for_runtime_alias_test): New.
1365 (vect_analyze_data_ref_dependences) Add call to
1366 vect_mark_for_runtime_alias_test.
1367 (vect_enhance_data_refs_alignment): Define local variable
1368 vect_versioning_for_alias_required, don't perform
1369 peeling for alignment if versioning for alias is
1370 required.
1371 (vect_enhance_data_refs_alignment): Use
1372 PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS instead of
1373 PARAM_VECT_MAX_VERSION_CHECKS.
1374 * tree-vect-transform.c
1375 (vect_create_cond_for_alias_checks): New.
1376 (vect_transform_loop): Add call to
1377 vect_create_cond_for_alias_checks.
1378 (vect_vfa_segment_size): New.
1379 * params.def (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS):
1380 Rename.
1381 (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS): Define.
1382 * gcc/doc/invoke.texi
1383 (vect-max-version-for-alignment-checks): Document.
1384 (vect-max-version-for-alias-checks): Document.
1385 (vect-max-version-checks): Remove.
1386
1387 2007-08-16 Uros Bizjak <ubizjak@gmail.com>
1388
1389 * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on
1390 the same line as the instruction for all asm dialects.
1391 (*rep_movsi): Ditto.
1392 (*rep_movsi_rex64): Ditto.
1393 (*rep_movqi): Ditto.
1394 (*rep_movqi_rex64): Ditto.
1395 (*rep_stosdi_rex64): Ditto.
1396 (*rep_stossi): Ditto.
1397 (*rep_stossi_rex64): Ditto.
1398 (*rep_stosqi): Ditto.
1399 (*rep_stosqi_rex64): Ditto.
1400 (*cmpstrnqi_nz_1): Ditto.
1401 (*cmpstrnqi_nz_rex_1): Ditto.
1402 (*cmpstrnqi_1): Ditto.
1403 (*cmpstrnqi_rex_1): Ditto.
1404 (*strlenqi_1): Ditto.
1405 (*strlenqi_rex_1): Ditto.
1406 * config/i386/sync.md (*sync_compare_and_swap<mode>): Emit "lock"
1407 prefix on the same line as the instruction for all asm dialects.
1408 (sync_double_compare_and_swap<mode>): Ditto.
1409 (*sync_double_compare_and_swapdi_pic): Ditto.
1410 (*sync_compare_and_swap_cc<mode>): Ditto.
1411 (sync_double_compare_and_swap_cc<mode>): Ditto.
1412 (*sync_double_compare_and_swap_ccdi_pic): Ditto.
1413 (sync_old_add<mode>): Ditto.
1414 (sync_add<mode>): Ditto.
1415 (sync_sub<mode>): Ditto.
1416 (sync_ior<mode>): Ditto.
1417 (sync_and<mode>): Ditto.
1418 (sync_xor<mode>): Ditto.
1419
1420 2007-08-16 Richard Sandiford <richard@codesourcery.com>
1421
1422 PR middle-end/32897
1423 * reload.c (find_reloads): Check that the memory returned by
1424 find_reloads_toplev was not the result of forcing a constant
1425 to memory.
1426 (find_reloads_toplev): Always use simplify_gen_subreg to get
1427 the subreg of a constant. If the result is also a constant,
1428 but not a legitimate one, force it into the constant pool
1429 and reload its address.
1430
1431 2007-08-15 David Edelsohn <edelsohn@gnu.org>
1432
1433 * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
1434 POPCOUNT.
1435
1436 2007-08-15 Daniel Jacobowitz <dan@codesourcery.com>
1437
1438 * config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute
1439 directive for the current vector ABI.
1440
1441 2007-08-15 Steve Ellcey <sje@cup.hp.com>
1442
1443 PR target/32963
1444 * caller-save.c (reg_save_code): Set invalide status on restore code.
1445
1446 2007-08-15 Diego Novillo <dnovillo@google.com>
1447
1448 * tree-ssa-alias.c (compute_memory_partitions): Use
1449 alias_bitmap_obstack to allocate bitmaps.
1450 (reset_alias_info): Factor out of init_alias_info.
1451 Mark all name tags not associated to an SSA name for renaming.
1452 (init_alias_info): Call it.
1453 (create_name_tags): Tidy. Add comments.
1454 (dump_points_to_info_for): Do not call get_mem_sym_stats_for.
1455
1456 2007-08-15 Maxim Kuvyrkov <maxim@codesourcery.com>
1457
1458 * config/mips/mips.c (vr4130_swap_insns_p): Use new interface to
1459 scheduler dependencies.
1460
1461 2007-08-15 Rask Ingemann Lambertsen <rask@sygehus.dk>
1462
1463 * config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for
1464 "register_operand".
1465 (*iorsi_1_zext): Likewise.
1466 (*iorsi_1_zext_imm): Likewise.
1467 * config/i386/sse.md: (*sse4_1_extractps): Use "nonimmediate_operand"
1468 with "rm"/"xm" constraint.
1469 (sse2_vmsqrtv2df2): Likewise.
1470
1471 2007-08-15 Jakub Jelinek <jakub@redhat.com>
1472
1473 PR middle-end/33074
1474 * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
1475 REG_LIBCALL note.
1476
1477 2007-08-14 Daniel Berlin <dberlin@dberlin.org>
1478
1479 * tree-pass.h (PROP_pta): Removed.
1480 (TODO_rebuild_alias): New.
1481 (pass_may_alias): Removed.
1482 * tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild
1483 aliasing if we changed something.
1484 * tree-ssa-alias.c (compute_may_aliases): Make non-static. Update
1485 SSA internally.
1486 (pass_may_alias): Removed.
1487 (create_structure_vars): Return TODO_rebuild_alias.
1488 * tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias.
1489 * tree-sra.c (tree_sra): Only rebuild aliasing if something
1490 changed.
1491 (tree_sra_early): We never affect aliasing right now.
1492 * tree-flow.h (compute_may_aliases): New prototype.
1493 * passes.c: Remove pass_may_alias from the passes.
1494 (execute_function_todo): Support TODO_rebuild_alias.
1495
1496 2007-08-14 Kai Tietz <kai.tietz@onevision.com>
1497
1498 * i386.c: (legitimize_address): Move dllimported variable check
1499 infront of legitimizing pic address of CONST symbols.
1500
1501 2007-08-14 Steve Ellcey <sje@cup.hp.com>
1502
1503 PR tree-optimization/32941
1504 * tree-eh.c (struct leh_tf_state): Add goto_queue_map field.
1505 (goto_queue_cmp): Remove.
1506 (find_goto_replacement): Change search method.
1507 (maybe_record_in_goto_queue): Add assert.
1508 (lower_try_finally): Remove qsort call, add pointer_map_destroy call.
1509 * Makefile.in (tree-eh.o): Add pointer-set.h dependency.
1510
1511 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1512
1513 * alias.c (component_uses_parent_alias_set): Constify.
1514 * alias.h (component_uses_parent_alias_set): Likewise.
1515 * cfgrtl.c (print_rtl_with_bb): Likewise.
1516 * double-int.c (tree_to_double_int, double_int_fits_to_tree_p,
1517 mpz_get_double_int): Likewise.
1518 * double-int.h (double_int_fits_to_tree_p, tree_to_double_int,
1519 mpz_get_double_int): Likewise.
1520 * expr.c (is_aligning_offset, undefined_operand_subword_p,
1521 mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset):
1522 Likewise.
1523 * expr.h (safe_from_p): Likewise.
1524 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
1525 Likewise.
1526 * gimplify.c (should_carry_locus_p, zero_sized_field_decl,
1527 zero_sized_type, goa_lhs_expr_p): Likewise.
1528 * omp-low.c (is_variable_sized, use_pointer_for_field): Likewise.
1529 * rtl.h (print_rtl_with_bb): Likewise.
1530 * sched-vis.c (print_exp, print_value, print_pattern): Likewise.
1531 * tree-cfg.c (const_first_stmt, const_last_stmt): New.
1532 * tree-flow-inline.h (bb_stmt_list): Constify.
1533 (cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev,
1534 cbsi_stmt): New.
1535 * tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last,
1536 const_first_stmt, const_last_stmt): New.
1537 (block_may_fallthru, empty_block_p): Constify.
1538 * tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY,
1539 EXPR_ONLY_BODY): New.
1540 (expr_first, expr_last, expr_only): Use macro for body.
1541 (const_expr_first, const_expr_last, const_expr_only): New.
1542 * tree-iterator.h (const_tree_stmt_iterator, ctsi_start,
1543 ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next,
1544 ctsi_prev, ctsi_stmt): New.
1545 * tree-scalar-evolution.c (get_loop_exit_condition): Constify.
1546 * tree-scalar-evolution.h (get_loop_exit_condition): Likewise.
1547 * tree-ssa-loop-niter.c (loop_only_exit_p,
1548 derive_constant_upper_bound): Likewise.
1549 * tree-ssa-phiopt.c (empty_block_p): Likewise.
1550 * tree-ssa-threadupdate.c (redirection_block_p): Likewise.
1551 * tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise.
1552 * tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise.
1553 * tree-vrp.c (vrp_bitmap_equal_p): Likewise.
1554 * tree.c (get_type_static_bounds): Likewise.
1555 * tree.h (const_expr_first, const_expr_last, const_expr_only): New.
1556 (get_type_static_bounds): Constify.
1557
1558 2007-08-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
1559
1560 PR target/30315
1561 * config/i386/i386.h (CANONICALIZE_COMPARISON): New.
1562 * config/i386/i386.md (plusminus)(addsub)(SWI): New.
1563 (*<addsub><mode>3_cc_overflow): New.
1564 (*add<mode>3_cconly_overflow): New.
1565 (*sub<mode>3_cconly_overflow): New.
1566 (*<addsub>si3_zext_cc_overflow): New.
1567 * config/i386/predicates.md (fcmov_comparison_operator): Accept
1568 CCCmode for LTU, GTU, LEU and GEU.
1569 (ix86_comparison_operator): Likewise.
1570 (ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
1571 * config/i386/i386.c (put_condition_code): Support CCCmode.
1572 (ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
1573 or MINUS expressions.
1574
1575 2007-08-14 Andrew Pinski <pinskia@gmail.com>
1576
1577 PR c/30428
1578 * c-typeck.c (build_binary_op): Disallow vector float types with
1579 BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
1580
1581 2007-08-14 Maxim Kuvyrkov <maxim@codesourcery.com>
1582
1583 * sched-int.h (struct _dep): Rename field 'kind' to 'type'.
1584 (DEP_KIND): Rename to DEP_TYPE. Update all uses.
1585 (dep_def): New typedef.
1586 (init_dep_1, sd_debug_dep): Declare functions.
1587 (DEP_LINK_KIND): Rename to DEP_LINK_TYPE.
1588 (debug_dep_links): Remove.
1589 (struct _deps_list): New field 'n_links'.
1590 (DEPS_LIST_N_LINKS): New macro.
1591 (FOR_EACH_DEP_LINK): Remove.
1592 (create_deps_list, free_deps_list, delete_deps_list): Remove
1593 declaration.
1594 (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
1595 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
1596 (copy_deps_list_change_con, move_dep_link): Ditto.
1597 (struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps'
1598 and 'spec_back_deps'. New field 'resolved_forw_deps'. Remove field
1599 'dep_count'.
1600 (INSN_BACK_DEPS): Remove.
1601 (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
1602 New macros.
1603 (INSN_DEP_COUNT): Remove.
1604 (enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP. Fix comments.
1605 (spec_info, haifa_recovery_block_was_added_during_scheduling_p):
1606 Declare global variables.
1607 (deps_pools_are_empty_p, sched_free_deps): Declare functions.
1608 (add_forw_dep, compute_forward_dependences): Remove declarations.
1609 (add_or_update_back_dep, add_or_update_back_forw_dep): Ditto.
1610 (add_back_forw_dep, delete_back_forw_dep): Ditto.
1611 (debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare
1612 functions.
1613 (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW):
1614 New constants.
1615 (SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto.
1616 (sd_list_types_def): New typedef.
1617 (sd_next_list): Declare function.
1618 (struct _sd_iterator): New type.
1619 (sd_iterator_def): New typedef.
1620 (sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline
1621 functions.
1622 (FOR_EACH_DEP): New cycle wrapper.
1623 (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
1624 Declare functions.
1625 (sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto.
1626 (sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists):
1627 Ditto.
1628
1629 * sched-deps.c (init_dep_1): Make global.
1630 (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
1631 constants.
1632 (dump_dep): New static function.
1633 (dump_dep_flags): New static variable.
1634 (sd_debug_dep): New function.
1635 (add_to_deps_list, remove_from_deps_list): Update 'n_links' field of
1636 the list.
1637 (move_dep_link): Use remove_from_deps_list (), instead of
1638 detach_dep_link ().
1639 (dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove.
1640 (dep_link_is_detached_p): New static function.
1641 (deps_obstack, dl_obstack, dn_obstack): Remove. Use dn_pool, dl_pool
1642 instead.
1643 (dn_pool, dl_pool): New alloc_pools.
1644 (dn_pool_diff, dl_pool_diff): New static variables.
1645 (create_dep_node, delete_dep_node): New static function.
1646 (create_deps_list): Make it static. Use alloc_pool 'dl_pool'.
1647 (deps_list_empty_p): Make it static. Use 'n_links' field.
1648 (deps_pools_are_empty_p): New static function.
1649 (alloc_deps_list, delete_deps_list): Remove.
1650 (dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove.
1651 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
1652 (copy_deps_list_change_con): Remove. Use sd_copy_back_deps () instead.
1653 (forward_dependency_cache): Remove.
1654 (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove
1655 'back' from the names. Change signature to use dep_t instead of
1656 equivalent quad.
1657 (add_back_dep): Ditto. Make global.
1658 (check_dep_status): Rename to check_dep ().
1659 (sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn):
1660 New functions.
1661 (sd_finish_insn): Ditto.
1662 (sd_find_dep_between_no_cache): New static function.
1663 (sd_find_dep_between): New function.
1664 (ask_dependency_caches, set_dependency_caches): New static functions.
1665 (update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto.
1666 (add_or_update_dep_1): Separate pieces of functionality into
1667 ask_dependency_caches (), update_dependency_caches (),
1668 change_spec_dep_to_hard (), update_dep ().
1669 (get_back_and_forw_lists): New static function.
1670 (sd_add_dep): Separate setting of dependency caches into
1671 set_dependency_caches ().
1672 (sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps):
1673 New functions.
1674 (sd_delete_dep): Ditto.
1675 (DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants.
1676 (dump_lists): New static function.
1677 (sd_debug_lists): New debug function.
1678 (delete_all_dependences, fixup_sched_groups): Update to use
1679 sd_* infrastructure.
1680 (sched_analyze_2): Create data-speculative dependency only if
1681 data-speculation is enabled.
1682 (sched_analyze_insn): If insn cannot be speculative, make all its
1683 dependencies non-speculative.
1684 (sched_analyze): Use sd_init_insn ().
1685 (add_forw_dep, compute_forward_dependencies): Remove.
1686 (delete_dep_nodes_in_back_deps): New static function.
1687 (sched_free_deps): New function.
1688 (init_dependency_caches): Init alloc_pools.
1689 (extend_depedency_caches): Update after removing of
1690 forward_dependency_cache.
1691 (free_dependency_caches): Ditto. Free alloc_pools.
1692 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove.
1693 (delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep):
1694 Ditto.
1695 (add_back_forw_dep, delete_back_forw_dep): Ditto.
1696 (add_dependence): Use init_dep ().
1697 (get_dep_weak_1): New static function.
1698 (get_dep_weak): Move logic to get_dep_weak_1 ().
1699 (dump_ds): New static function moved from haifa-sched.c:
1700 debug_spec_status ().
1701 (debug_ds): New debug function.
1702 (check_dep_status): Rename to check_dep (). Update to check whole
1703 dependencies.
1704
1705 * haifa-sched.c (spec_info): Make global.
1706 (added_recovery_block_p): Rename to
1707 'haifa_recovery_block_was_added_during_current_schedule_block_p'.
1708 (haifa_recovery_block_was_added_during_scheduling_p): New variable.
1709 (dep_cost, priority, rank_for_schedule, schedule_insn): Update
1710 to use new interfaces.
1711 (ok_for_early_queue_removal): Ditto.
1712 (schedule_block): Initialize logical uids of insns emitted by the
1713 target.
1714 (sched_init): Initialize new variable.
1715 (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
1716 interfaces.
1717 (extend_global): Initialize insn data.
1718 (init_h_i_d): Remove code that is now handled in sd_init_insn ().
1719 (process_insn_forw_deps_be_in_spec): Change signature. Update to use
1720 new interfaces.
1721 (add_to_speculative_block): Update to use new interfaces.
1722 (create_recovery_block): Set new variables.
1723 (create_check_block_twin, fix_recovery_deps): Update to use new
1724 interfaces.
1725 (sched_insn_is_legitimate_for_speculation_p): New function.
1726 (speculate_insn): Move checking logic to
1727 sched_insn_is_legitimate_for_speculation_p ().
1728 (sched_remove_insn): Finalize sched-deps information of instruction.
1729 (clear_priorities, add_jump_dependencies): Update to use new
1730 interfaces.
1731 (debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
1732
1733 * sched-rgn.c (set_spec_fed, find_conditional_protection): Update
1734 to use new interfaces.
1735 (is_conditionally_protected, is_pfree, is_prisky) Ditto.
1736 (new_ready): Try to use control speculation only if it is available.
1737 (add_branch_dependences): Update to use new interfaces.
1738 (compute_block_backward_dependences): Rename to
1739 compute_block_dependences (). Call
1740 targetm.sched.dependencies_evaluation_hook ().
1741 (free_block_dependencies): New static function.
1742 (debug_dependencies): Update to use new interfaces.
1743 (schedule_region): Remove separate computation of forward dependencies.
1744 Move call of targetm.sched.dependencies_evaluation_hook () to
1745 compute_block_dependences (). Free dependencies at the end of
1746 scheduling the region.
1747
1748 * sched-ebb.c (earliest_block_with_similiar_load): Update to use
1749 new interfaces.
1750 (add_deps_for_risky_insns): Ditto.
1751 (schedule_ebb): Remove separate computation of forward dependencies.
1752 Free dependencies at the end of scheduling the ebb.
1753
1754 * ddg.c (create_ddg_dependence): Update to use new interfaces.
1755 (build_intra_loop_deps): Ditto. Remove separate computation of
1756 forward dependencies. Free sched-deps dependencies.
1757
1758 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
1759 to use new interfaces.
1760 (ia64_dfa_new_cycle, ia64_gen_check): Ditto.
1761
1762 * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
1763 new interfaces.
1764 (is_costly_group): Ditto.
1765
1766 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1767
1768 * alias.c (rtx_equal_for_memref_p): Constify.
1769 * basic-block.h (const_edge, const_basic_block): New.
1770 (reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p,
1771 single_pred_p, single_succ_edge, single_pred_edge, single_succ,
1772 single_pred, maybe_hot_bb_p, probably_cold_bb_p,
1773 probably_never_executed_bb_p, edge_probability_reliable_p,
1774 br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print,
1775 inside_basic_block_p, control_flow_insn_p, dominated_by_p):
1776 Likewise.
1777 * bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise.
1778 * bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up):
1779 Likewise.
1780 * cfganal.c (flow_active_insn_p, forwarder_block_p,
1781 flow_nodes_print, dfs_enumerate_from): Likewise.
1782 * cfgbuild.c (count_basic_blocks, inside_basic_block_p,
1783 control_flow_insn_p, count_basic_blocks): Likewise.
1784 * cfgloop.c (flow_bb_inside_loop_p, glb_enum_p,
1785 get_loop_body_with_size, loop_exit_edge_p): Likewise.
1786 * cfgloop.h (flow_bb_inside_loop_p, num_loop_insns,
1787 average_num_loop_insns, loop_exit_edge_p,
1788 just_once_each_iteration_p, can_duplicate_loop_p): Likewise.
1789 * cfgloopanal.c (just_once_each_iteration_p, num_loop_insns,
1790 average_num_loop_insns, seq_cost): Likewise.
1791 * cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise.
1792 * dominance.c (dominated_by_p): Likewise.
1793 * emit-rtl.c (validate_subreg): Likewise.
1794 * except.c (can_throw_internal, can_throw_external): Likewise.
1795 * except.h (can_throw_internal, can_throw_external): Likewise.
1796 * gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p,
1797 oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p,
1798 compute_transp, load_killed_in_block_p, reg_killed_on_edge,
1799 simple_mem, store_ops_ok, load_kills_store, find_loads,
1800 store_killed_in_insn, store_killed_after, store_killed_before,
1801 gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat):
1802 Likewise.
1803 * ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok,
1804 noce_mem_write_may_trap_or_fault_p): Likewise.
1805 * pointer-set.c (pointer_set_contains, pointer_map_contains):
1806 Likewise.
1807 * pointer-set.h (pointer_set_contains, pointer_map_contains):
1808 Likewise.
1809 * predict.c (can_predict_insn_p, maybe_hot_bb_p,
1810 probably_cold_bb_p, probably_never_executed_bb_p,
1811 edge_probability_reliable_p, br_prob_note_reliable_p,
1812 can_predict_insn_p): Likewise.
1813 * regclass.c (reg_set_to_hard_reg_set): Likewise.
1814 * resource.c (return_insn_p): Likewise.
1815 * rtl.h (reg_set_between_p, reg_set_p, validate_subreg):
1816 Likewise.
1817 * rtlanal.c (reg_set_between_p, reg_set_p): Likewise.
1818 * tracer.c (count_insns, ignore_bb_p, better_p): Likewise.
1819 * tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr,
1820 verify_gimple_modify_stmt): Likewise.
1821 * tree-chrec.c (is_not_constant_evolution,
1822 is_multivariate_chrec_rec, is_multivariate_chrec,
1823 chrec_contains_symbols, chrec_contains_undetermined,
1824 tree_contains_chrecs, evolution_function_is_affine_multivariate_p,
1825 evolution_function_is_univariate_p, avoid_arithmetics_in_type_p,
1826 eq_evolutions_p, scev_direction): Likewise.
1827 * tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec,
1828 eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols,
1829 chrec_contains_symbols_defined_in_loop,
1830 chrec_contains_undetermined, tree_contains_chrecs,
1831 evolution_function_is_affine_multivariate_p,
1832 evolution_function_is_univariate_p, chrec_zerop,
1833 evolution_function_is_constant_p, evolution_function_is_affine_p,
1834 evolution_function_is_affine_or_constant_p,
1835 tree_does_not_contain_chrecs, chrec_type): Likewise.
1836 * tree-data-ref.c (tree_fold_divides_p,
1837 object_address_invariant_in_loop_p, dr_may_alias_p,
1838 ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p,
1839 same_access_functions, constant_access_functions,
1840 access_functions_are_affine_or_constant_p, find_vertex_for_stmt):
1841 Likewise.
1842 * tree-flow.h (scev_direction): Likewise.
1843 * tree-gimple.c (is_gimple_stmt): Likewise.
1844 * tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p):
1845 Likewise.
1846 * tree-pretty-print.c (op_prio): Likewise.
1847 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
1848 analyzable_condition, backedge_phi_arg_p): Likewise.
1849 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
1850 * tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise.
1851 * tree-ssa-threadupdate.c (dbds_continue_enumeration_p):
1852 Likewise.
1853
1854 2007-08-13 Dan Hipschman <dsh@google.com>
1855
1856 PR c/32953
1857 * c-format.c (check_format_arg): Move check for zero-length
1858 format strings below the check for unterminated strings.
1859
1860 2007-08-13 Andrew Pinski <pinskia@gmail.com>
1861
1862 PR C/30427
1863 * c-typeck.c (build_unary_op <case BIT_NOT_EXPR>): Reject vector float
1864 types.
1865
1866 2007-08-13 Nick Clifton <nickc@redhat.com>
1867
1868 * config/arm/arm_neon.h: Revert GPLv3 patch to this file.
1869
1870 2007-08-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1871
1872 PR fortran/32860
1873 * c-format.c (gcc_gfc_length_specs): New array.
1874 (gcc_gfc_char_table): Add unsigned specifier, and references to
1875 the l length modifier.
1876 (format_types_orig): Use the new gcc_gfc_length_specs.
1877
1878 2007-08-12 Sa Liu <saliu@de.ibm.com>
1879
1880 * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
1881 and with REG_RETVAL note after split.
1882
1883 2007-08-11 David Daney <ddaney@avtrex.com>
1884
1885 * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter
1886 as ATTRIBUTE_UNUSED.
1887
1888 2007-08-11 David Edelsohn <edelsohn@gnu.org>
1889 Segher Boessenkool <segher@kernel.crashing.org>
1890
1891 * config/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if
1892 HAVE_LOCAL_CPU_DETECT not defined.
1893
1894 2007-08-11 Jan Hubicka <jh@suse.cz>
1895
1896 * cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined.
1897 (cgraph_process_new_functions): Honor previous value of
1898 disregard_inline_limits.
1899 * ipa-inline.c (compute_inline_parameters): Likewise.
1900
1901 2007-08-11 Ian Lance Taylor <iant@google.com>
1902
1903 * alias.h (alias_set_type): Define new type.
1904 (ALIAS_SET_MEMORY_BARRIER): Use it.
1905 * rtl.h: Include alias.h.
1906 (struct mem_attrs): Use alias_set_type.
1907 * tree.h: Include alias.h
1908 (struct tree_type): Use alias_set_type.
1909 (struct tree_struct_field_tag): Likewise.
1910 (struct tree_decl_common): Likewise.
1911 * alias.c (struct alias_set_entry): Use alias_set_type.
1912 (get_alias_set_entry, alias_set_subset_of): Likewise.
1913 (alias_sets_conflict_p): Likewise.
1914 (alias_sets_must_conflict_p): Likewise.
1915 (objects_must_conflict_p): Likewise.
1916 (get_alias_set, new_alias_set): Likewise.
1917 (record_alias_subset, record_component_aliases): Likewise.
1918 (varargs_set, frame_set): Change to alias_set_type.
1919 (get_varargs_alias_set): Use alias_set_type.
1920 (get_frame_alias_set): Likewise.
1921 * builtins.c (setjmp_alias_set): Change to alias_set_type.
1922 * dse.c (struct store_info): Use alias_set_type.
1923 (struct read_info, struct clear_alias_mode_holder): Likewise.
1924 (clear_alias_set_lookup, canon_address): Likewise.
1925 (record_store, check_mem_read_rtx): Likewise.
1926 (dse_record_singleton_alias_set): Likewise.
1927 (dse_invalidate_singleton_alias_set): Likewise.
1928 * emit-rtl.c (get_mem_attrs): Likewise.
1929 (set_mem_attributes_minus_bitpos): Likewise.
1930 (set_mem_alias_set): Likewise.
1931 * expr.c (store_constructor_field, store_field): Likewise.
1932 * gimplify.c (struct gimplify_init_ctor_preeval_data): Likewise.
1933 * langhooks.c (lhd_get_alias_set): Likewise.
1934 * langhooks-def.h (lhd_get_alias_set): Likewise.
1935 * reload1.c (alter_reg): Likewise.
1936 * tree-flow.h (struct fieldoff): Likewise.
1937 * tree-ssa-alias.c (struct alias_map_d): Likewise.
1938 (may_alias_p, get_smt_for, create_sft): Likewise.
1939 * tree-ssa-alias-warnings.c (nonstandard_alias_types_p): Likewise.
1940 * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
1941 (merge_smts_into): Likewise.
1942 * varasm.c (const_alias_set): Likewise.
1943 * c-common.c (strict_aliasing_warning): Likewise.
1944 (c_common_get_alias_set): Likewise.
1945 * dse.h (dse_record_singleton_alias_set): Update declaration.
1946 (dse_invalidate_singleton_alias_set): Likewise.
1947 * emit-rtl.h (set_mem_alias_set): Likewise.
1948 * c-common.h (c_common_get_alias_set): Likewise.
1949 * print-rtl.c (print_rtx): Cast MEM_ALIAS_SET when printing it.
1950 * print-tree.c (print_node): Likewise.
1951 * config/alpha/alpha.c (alpha_sr_alias_set): Change to
1952 alias_set_type.
1953 (alpha_setup_incoming_varargs): Use alias_set_type.
1954 * config/i386/i386.c (setup_incoming_varargs_64): Use
1955 alias_set_type.
1956 (setup_incoming_varargs_ms_64): Likewise.
1957 (ix86_GOT_alias_set): Likewise.
1958 * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
1959 * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
1960 (set): Change to alias_set_type.
1961 (get_TOC_alias_set): Use alias_set_type.
1962 * config/rs6000/rs6000-protos.h (get_TOC_alias_set): Update
1963 declaration.
1964 * config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type.
1965 * config/sparc/sparc.c (sparc_sr_alias_set): Change to
1966 alias_set_type.
1967 (struct_value_alias_set): Likewise.
1968 * Makefile.in (GTFILES): Add $(srcdir)/alias.h.
1969
1970 2007-08-11 Richard Sandiford <richard@codesourcery.com>
1971
1972 * config/vxworks-dummy.h (TARGET_VXWORKS): Define.
1973 * config/vxworks.h (TARGET_VXWORKS): Override.
1974 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define
1975 "mips" if TARGET_VXWORKS.
1976
1977 2007-08-11 Richard Sandiford <richard@codesourcery.com>
1978
1979 * calls.c (avoid_likely_spilled_reg): New function.
1980 (expand_call): Use it.
1981
1982 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1983
1984 * c-typeck.c (build_c_cast): Add OPT_Wcast_qual to warnings.
1985
1986 2007-08-10 Adam Nemet <anemet@caviumnetworks.com>
1987
1988 * config/mips/predicates.md (const_call_insn_operand): Invoke
1989 SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.
1990
1991 2007-08-10 David Edelsohn <edelsohn@gnu.org>
1992
1993 PR target/33042
1994 * config/rs6000/driver-rs6000.c: Include link.h.
1995 Use ElfW instead of wordsize-specif typedef.
1996
1997 2007-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1998
1999 * system.h (CONST_CAST): New.
2000 * c-decl.c (c_make_fname_decl): Use it.
2001 * c-lex.c (cb_ident, lex_string): Likewise.
2002 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
2003 * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
2004 give_switch, set_multilib_dir): Likewise.
2005 * gengtype-parse.c (string_seq, typedef_name): Likewise.
2006 * passes.c (execute_one_pass): Likewise.
2007 * prefix.c (update_path): Likewise.
2008 * pretty-print.c (pp_base_destroy_prefix): Likewise.
2009 * tree.c (build_string): Likewise.
2010
2011 2007-08-10 Aldy Hernandez <aldyh@redhat.com>
2012
2013 * tree-flow-inline.h (is_exec_stmt): Remove.
2014 (is_label_stmt): Remove.
2015 * tree-flow.h: Remove prototypes for is_exec_stmt, get_filename, and
2016 is_label_stmt.
2017
2018 2007-08-10 Andreas Krebbel <krebbel1@de.ibm.com>
2019
2020 * lower-subreg.c (resolve_shift_zext): Don't adjust
2021 src_reg_num for wordmode operands.
2022
2023 2007-08-10 Sandra Loosemore <sandra@codesourcery.com>
2024 David Ung <davidu@mips.com>
2025
2026 * config/mips/mips.c (TARGET_SCHED_INIT): Define.
2027 (TARGET_SCHED_REORDER2): Define.
2028 (mips_maybe_swap_ready): New.
2029 (mips_last_74k_agen_insn): New.
2030 (mips_74k_agen_init): New.
2031 (mips_74k_agen_reorder): New function to group loads and stores
2032 in the ready queue.
2033 (mips_sched_init): New.
2034 (mips_sched_reorder): Don't do initialization here. Call
2035 mips_74k_agen_reorder.
2036 (mips_variable_issue): Call mips_74k_agen_init.
2037
2038 2007-08-10 Aldy Hernandez <aldyh@redhat.com>
2039
2040 * tree-flow-inline.h (get_filename): Remove.
2041
2042 2007-08-10 Richard Sandiford <richard@codesourcery.com>
2043
2044 * config/mips/mips-protos.h (mips_address_insns): Add a boolean
2045 argument.
2046 (mips_fetch_insns): Delete in favor of...
2047 (mips_load_store_insns): ...this new function.
2048 * config/mips/mips.c (mips_address_insns): Add a boolean argument
2049 to say whether multiword moves _might_ be split.
2050 (mips_fetch_insns): Delete in favor of...
2051 (mips_load_store_insns): ...this new function.
2052 (mips_rtx_costs): Update the call to mips_address_insns.
2053 (mips_address_cost): Likewise.
2054 * config/mips/mips.md (length): Use mips_load_store_insns instead
2055 of mips_fetch_insns.
2056 * config/mips/constraints.md (R): Use mips_address_insns rather
2057 than mips_fetch_insns. Assume that the move never needs to be split.
2058
2059 2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
2060
2061 * config/mips/mips.opt (mhard-float, msoft-float): Make these
2062 control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather
2063 than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT.
2064 * config/mips/mips.h (mips16_hard_float): Delete.
2065 (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI): Delete these
2066 definitions, and replace with....
2067 (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define.
2068 * config/mips/mips.c (mips16_hard_float): Delete. Replace
2069 all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI).
2070 (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments.
2071 (override_options): Replace MASK_SOFT_FLOAT references with
2072 MASK_SOFT_FLOAT_ABI. Delete twiddling with MASK_SOFT_FLOAT
2073 and mips16_hard_float when TARGET_MIPS16.
2074
2075 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
2076
2077 PR c/32796
2078 * c-typeck.c (build_binary_op): Check for non pointer types before
2079 calling int_fits_type_p.
2080
2081 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
2082
2083 PR middle-end/32813
2084 * fold-const.c (omit_one_operand): Return only the ommitted expression
2085 if the result is an empty statement.
2086 (pedantic_omit_one_operand): Likewise.
2087
2088 2007-08-09 Daniel Berlin <dberlin@dberlin.org>
2089
2090 * c-typeck.c (readonly_error): Improve error for assignment.
2091
2092 * c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus
2093 expression.
2094 (pp_c_expression): Ditto.
2095
2096 2007-08-09 Simon Baldwin <simonb@google.com>
2097
2098 * simplify-rtx.c (simplify_binary_operation_1): Removed erroneous
2099 break that was preventing simplify_associative_operation() for xor.
2100
2101 2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
2102 Nigel Stephens <nigel@mips.com>
2103
2104 * doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO):
2105 Document change in interpretation of value from boolean to
2106 tri-state integer.
2107 * optabs.c (expand_ffs, expand_ctz): New functions to compute
2108 ffs and ctz using clz.
2109 (expand_unop): Call them.
2110 * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its
2111 result value.
2112 (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
2113 * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Likewise, to
2114 enable the new ffs expansion on this target.
2115
2116 2007-08-09 Jan Hubicka <jh@suse.cz>
2117
2118 * optabs.c (expand_widen_pattern_expr): Use optabs accestors.
2119 (expand_ternary_op): Likewise.
2120 (expand_vec_shift_expr): Likewise.
2121 (expand_binop_directly): Likewise.
2122 (expand_binop): Likewise.
2123 (sign_expand_binop): Likewise.
2124 (expand_twoval_unop): Likewise.
2125 (expand_twoval_binop): Likewise.
2126 (expand_twoval_binop_libfunc): Likewise.
2127 (widen_clz): Likewise.
2128 (widen_bswap): Likewise.
2129 (expand_parity): Likewise.
2130 (expand_unop): Likewise.
2131 (expand_abs_nojump): Likewise.
2132 (expand_copysign): Likewise.
2133 (emit_no_conflict_block): Likewise.
2134 (emit_libcall_block): Likewise.
2135 (can_compare_p): Likewise.
2136 (prepare_cmp_insn): Likewise.
2137 (emit_cmp_and_jump_insn_1): Likewise.
2138 (prepare_float_lib_cmp): Likewise.
2139 (emit_conditional_add): Likewise.
2140 (gen_add2_insn): Likewise.
2141 (have_add2_insn): Likewise.
2142 (gen_sub2_insn): Likewise.
2143 (have_sub2_insn): Likewise.
2144 (can_extend_p): Likewise.
2145 (can_fix_p): Likewise.
2146 (can_float_p): Likewise.
2147 (expand_float): Likewise.
2148 (expand_fix): Likewise.
2149 (expand_sfix_optab): Likewise.
2150 (new_optab): Likewise.
2151 (new_convert_optab): Likewise.
2152 (init_libfuncs): Likewise.
2153 (init_interclass_conv_libfuncs): Likewise.
2154 (init_intraclass_conv_libfuncs): Likewise.
2155 (set_conv_libfunc): Likewise.
2156 (init_optabs): Likewise.
2157 (debug_optab_libfuncs): Likewise.
2158 (gen_cond_trap): Likewise.
2159 * optabs.h (optab_handler, convert_optab_hanlder): New.
2160 * genopinit.c: Update optabs generation table.
2161 * reload.c (find_reloads_address_1): Use optabs accestors.
2162 * builtins.c (expand_builtin_mathfn): Likewise.
2163 (expand_builtin_mathfn_2): Likewise.
2164 (expand_builtin_mathfn_3): Likewise.
2165 (expand_builtin_interclass_mathfn): Likewise.
2166 (expand_builtin_sincos): Likewise.
2167 (expand_builtin_cexpi): Likewise.
2168 (expand_builtin_powi): Likewise.
2169 (expand_builtin_strlen): Likewise.
2170 * dojump.c (do_jump): Likewise.
2171 * expr.c (convert_move): Likewise.
2172 (move_by_pieces): Likewise.
2173 (move_by_pieces_ninsns): Likewise.
2174 (can_store_by_pieces): Likewise.
2175 (store_by_pieces_1): Likewise.
2176 (emit_move_via_integer): Likewise.
2177 (emit_move_complex): Likewise.
2178 (emit_move_ccmode): Likewise.
2179 (emit_move_insn_1): Likewise.
2180 (emit_single_push_insn): Likewise.
2181 (store_constructor): Likewise.
2182 (expand_expr_real_1): Likewise.
2183 (do_store_flag): Likewise.
2184 * ada/misc.c (gnat_compute_largest_alignment): Likewise.
2185 (enumerate_modes): Likewise.
2186 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
2187 (supportable_widening_operation): Likewise.
2188 (supportable_narrowing_operation): Likewise.
2189 * expmed.c (store_bit_field_1): Likewise.
2190 (extract_bit_field_1): Likewise.
2191 (expand_mult_highpart_optab): Likewise.
2192 (expand_smod_pow2): Likewise.
2193 (expand_divmod): Likewise.
2194 (emit_store_flag): Likewise.
2195 * tree-vect-patterns.c
2196 (vect_pattern_recog_1): Likewise.
2197 * tree-ssa-loop-prefetch.c
2198 (nontemporal_store_p): Likewise.
2199 * tree-vect-transform.c (vect_model_reduction_cost): Likewise.
2200 (vect_create_epilog_for_reduction): Likewise.
2201 (vectorizable_reduction): Likewise.
2202 (vectorizable_operation): Likewise.
2203 (vect_strided_store_supported): Likewise.
2204 (vectorizable_store): Likewise.
2205 (vect_strided_load_supported): Likewise.
2206 (vectorizable_load): Likewise.
2207 * combine.c (simplify_comparison): Likewise.
2208 * tree-vect-generic.c
2209 (type_for_widest_vector_mode): Likewise.
2210 (expand_vector_operations_1): Likewise.
2211 * config/spu/spu.c (spu_expand_mov): Likewise.
2212 (spu_emit_vector_compare): Likewise.
2213 * config/rs6000/rs6000.c
2214 (rs6000_emit_vector_compare): Likewise.
2215 * stmt.c (add_case_node): Likewise.
2216 * reload1.c (gen_reload):
2217
2218 2007-08-09 Michael Matz <matz@suse.de>
2219
2220 * tree.h (fixed_zerop): Declare as taking a const_tree.
2221 * tree.c (fixed_zerop): Take a const_tree.
2222
2223 2007-08-09 Ira Rosen <irar@il.ibm.com>
2224
2225 * tree-vect-transform.c (vectorizable_store): Remove call to
2226 copy_virtual_operands() and call mark_symbols_for_renaming() for
2227 the created vector store.
2228 (vect_setup_realignment): Don't call copy_virtual_operands() and
2229 update_vuses_to_preheader().
2230 (vectorizable_load): Don't call copy_virtual_operands().
2231 (update_vuses_to_preheader): Remove.
2232
2233 2007-08-08 Chao-ying Fu <fu@mips.com>
2234
2235 * tree.def (FIXED_POINT_TYPE): New type.
2236 (FIXED_CST): New constant.
2237 (FIXED_CONVERT_EXPR): New expr.
2238 * doc/c-tree.texi (Types): Document FIXED_POINT_TYPE.
2239 (Expressions): Document FIXED_CST and FIXED_CONVERT_EXPR.
2240 * tree.h (struct tree_base): Add saturating_flag.
2241 Remove one bit of spare for saturating_flag.
2242 (NUMERICAL_TYPE_CHECK): Support FIXED_POINT_TYPE.
2243 (NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P,
2244 FIXED_POINT_TYPE_P): Define.
2245 (TYPE_SATURATING): Define.
2246 (TREE_FIXED_CST_PTR, TREE_FIXED_CST): Define.
2247 (struct tree_fixed_cst): New.
2248 (TYPE_IBIT, TYPE_FBIT): Define.
2249 (tree_node): Add fixed_cst.
2250 (enum tree_index): Add new enumeration values of
2251 TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE,
2252 TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE,
2253 TI_SAT_ULFRACT_TYPE, TI_SAT_ULLFRACT_TYPE, TI_SFRACT_TYPE,
2254 TI_FRACT_TYPE, TI_LFRACT_TYPE, TI_LLFRACT_TYPE, TI_USFRACT_TYPE,
2255 TI_UFRACT_TYPE, TI_ULFRACT_TYPE, TI_ULLFRACT_TYPE,
2256 TI_SAT_SACCUM_TYPE, TI_SAT_ACCUM_TYPE, TI_SAT_LACCUM_TYPE,
2257 TI_SAT_LLACCUM_TYPE, TI_SAT_USACCUM_TYPE, TI_SAT_UACCUM_TYPE,
2258 TI_SAT_ULACCUM_TYPE, TI_SAT_ULLACCUM_TYPE, TI_SACCUM_TYPE,
2259 TI_ACCUM_TYPE, TI_LACCUM_TYPE, TI_LLACCUM_TYPE, TI_USACCUM_TYPE,
2260 TI_UACCUM_TYPE, TI_ULACCUM_TYPE, TI_ULLACCUM_TYPE,
2261 TI_QQ_TYPE, TI_HQ_TYPE,_TYPE, TI_SQ_TYPE, TI_DQ_TYPE, TI_TQ_TYPE,
2262 TI_UQQ_TYPE, TI_UHQ_TYPE, TI_USQ_TYPE, TI_UDQ_TYPE, TI_UTQ_TYPE,
2263 TI_SAT_QQ_TYPE, TI_SAT_HQ_TYPE, TI_SAT_SQ_TYPE, TI_SAT_DQ_TYPE,
2264 TI_SAT_TQ_TYPE, TI_SAT_UQQ_TYPE, TI_SAT_UHQ_TYPE, TI_SAT_USQ_TYPE,
2265 TI_SAT_UDQ_TYPE, TI_SAT_UTQ_TYPE, TI_HA_TYPE, TI_SA_TYPE, TI_DA_TYPE,
2266 TI_TA_TYPE, TI_UHA_TYPE, TI_USA_TYPE, TI_UDA_TYPE, TI_UTA_TYPE,
2267 TI_SAT_HA_TYPE, TI_SAT_SA_TYPE, TI_SAT_DA_TYPE, TI_SAT_TA_TYPE,
2268 TI_SAT_UHA_TYPE, TI_SAT_USA_TYPE, TI_SAT_UDA_TYPE, TI_SAT_UTA_TYPE.
2269 (sat_short_fract_type_node, sat_fract_type_node,
2270 sat_long_fract_type_node, sat_long_long_fract_type_node,
2271 sat_unsigned_short_fract_type_node, sat_unsigned_fract_type_node,
2272 sat_unsigned_long_fract_type_node,
2273 sat_unsigned_long_long_fract_type_node, short_fract_type_node,
2274 fract_type_node, long_fract_type_node, long_long_fract_type_node,
2275 unsigned_short_fract_type_node, unsigned_fract_type_node,
2276 unsigned_long_fract_type_node, unsigned_long_long_fract_type_node,
2277 sat_short_accum_type_node, sat_accum_type_node,
2278 sat_long_accum_type_node, sat_long_long_accum_type_node,
2279 sat_unsigned_short_accum_type_node, sat_unsigned_accum_type_node,
2280 sat_unsigned_long_accum_type_node,
2281 sat_unsigned_long_long_accum_type_node, short_accum_type_node,
2282 accum_type_node, long_accum_type_node, long_long_accum_type_node,
2283 unsigned_short_accum_type_node, unsigned_accum_type_node,
2284 unsigned_long_accum_type_node, unsigned_long_long_accum_type_node,
2285 qq_type_node, hq_type_node, sq_type_node, dq_type_node, tq_type_node,
2286 uqq_type_node, uhq_type_node, usq_type_node, udq_type_node,
2287 utq_type_node, sat_qq_type_node, sat_hq_type_node, sat_sq_type_node,
2288 sat_dq_type_node, sat_tq_type_node, sat_uqq_type_node,
2289 sat_uhq_type_node, sat_usq_type_node, sat_udq_type_node,
2290 sat_utq_type_node, ha_type_node, sa_type_node, da_type_node,
2291 ta_type_node, uha_type_node, usa_type_node, uda_type_node,
2292 uta_type_node, sat_ha_type_node, sat_sa_type_node, sat_da_type_node,
2293 sat_ta_type_node, sat_uha_type_node, sat_usa_type_node,
2294 sat_uda_type_node, sat_uta_type_node): New macro.
2295 (make_fract_type, make_accum_type): Declare.
2296 (make_signed_fract_type, make_unsigned_fract_type,
2297 make_sat_signed_fract_type, make_sat_unsigned_fract_type,
2298 make_signed_accum_type, make_unsigned_accum_type,
2299 make_sat_signed_accum_type, make_sat_unsigned_accum_type,
2300 make_or_reuse_signed_fract_type, make_or_reuse_unsigned_fract_type,
2301 make_or_reuse_sat_signed_fract_type,
2302 make_or_reuse_sat_unsigned_fract_type, make_or_reuse_signed_accum_type,
2303 make_or_reuse_unsigned_accum_type, make_or_reuse_sat_signed_accum_type,
2304 make_or_reuse_sat_unsigned_accum_type): New macro.
2305 (fixed_zerop): Declare.
2306 * defaults.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
2307 LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
2308 SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
2309 LONG_LONG_ACCUM_TYPE_SIZE): Define.
2310 * treestruct.def: Add TS_FIXED_CST.
2311 * Makefile.in (c-pretty-print.o): Add dependence on fixed-value.h.
2312 (tree.o): Likewise.
2313 (tree-dump.o): Likewise.
2314 (print-tree.o): Likewise.
2315 (tree-pretty-print.o): Likewise.
2316 (fold-const.o): Likewise.
2317 * tree-complex.c (some_nonzerop): Handle FIXED_CST.
2318 * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle FIXED_CST.
2319 (is_gimple_min_invariant): Handle FIXED_CST.
2320 * stor-layout.c (int_mode_for_mode): Handle MODE_FRACT, MODE_UFRACT,
2321 MODE_ACCUM, MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
2322 MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
2323 (layout_type): Handle FIXED_POINT_TYPE.
2324 (make_fract_type, make_accum_type): New functions.
2325 * tree-browser.c (browse_tree): Handle FIXED_POINT_TYPE.
2326 * tree-dump.c (fixed-value.h): New include.
2327 (dump_fixed): New function.
2328 (dequeue_and_dump): Handle FIXED_POINT_TYPE and FIXED_CST.
2329 * tree-inline.c (remap_type_1): Handle FIXED_POINT_TYPE.
2330 (estimate_num_insns_1): Handle FIXED_CST and FIXED_CONVERT_EXPR.
2331 * tree-pretty-print.c (fixed-value.h): New include.
2332 (dump_generic_node): Handle FIXED_POINT_TYPE, FIXED_CST, and
2333 FIXED_CONVERT_EXPR.
2334 * tree-scalar-evolution.c (get_scalar_evolution): Handle FIXED_CST.
2335 * tree-ssa-loop-im.c (for_each_index): Handle FIXED_CST.
2336 * tree-ssa-pre.c (poolify_tree): Handle FIXED_CST.
2337 * tree-ssa-reassoc.c (break_up_subtract_bb): We can do reassociation
2338 for non-saturating fixed-point types.
2339 (reassociate_bb): Likewise.
2340 * emit-rtl.c (fixed-value.h): New include.
2341 (fconst0, fconst1): New array.
2342 (init_emit_once): Initialize fconst0 and fconst1 for fixed-point modes.
2343 * tree-vect-generic.c expand_vector_operation): Support
2344 MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, and
2345 MODE_VECTOR_UACCUM.
2346 (type_for_widest_vector_mode): Add one parameter for the
2347 saturating flag.
2348 Check scalar FRACT, UFRACT, ACCUM, and UACCUM mode to select their
2349 vector mode.
2350 Pass the satp parameter to type_for_mode for fixed-point types.
2351 (expand_vector_operations_1): Pass the saturating flag to
2352 type_for_widest_vector_mode.
2353 Support MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
2354 and MODE_VECTOR_UACCUM.
2355 * tree-vect-transform.c (vect_is_simple_cond): Support FIXED_CST.
2356 (vectorizable_condition): Likewise.
2357 * tree.c (fixed-value.h): New include.
2358 (tree_code_size): Support FIXED_CST.
2359 (build_fixed): New function.
2360 (build_one_cst): Support FIXED_POINT_TYPE for accum types.
2361 (fixed_zerop): New function.
2362 (tree_node_structure): Support FIXED_CST.
2363 (type_contains_placeholder_1): Support FIXED_POINT_TYPE.
2364 (build_type_attribute_qual_variant): Handle FIXED_POINT_TYPE.
2365 (type_hash_eq): Handle FIXED_POINT_TYPE.
2366 (simple_cst_equal): Support FIXED_CST.
2367 (iterative_hash_expr): Handle FIXED_CST.
2368 (get_unwidened): Make sure type is not FIXED_POINT_TYPE.
2369 (get_narrower): Likewise.
2370 (variably_modified_type_p): Handle FIXED_POINT_TYPE.
2371 (make_or_reuse_fract_type, make_or_reuse_accum_type): New functions.
2372 (build_common_tree_nodes_2): Use MAKE_FIXED_TYPE_NODE_FAMILY and
2373 MAKE_FIXED_MODE_NODE macros to initialize fixed-point type
2374 nodes.
2375 (build_vector_type_for_mode): Handle MODE_VECTOR_FRACT,
2376 MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
2377 (initializer_zerop): Support FIXED_CST.
2378 (walk_tree): Handle FIXED_CST and FIXED_POINT_TYPE.
2379 * dwarf2out.c (base_type_die): Use DW_ATE_signed_fixed or
2380 DW_ATE_unsigned_fixed to describe FIXED_POINT_TYPE.
2381 (is_base_type): Handle FIXED_POINT_TYPE.
2382 (add_type_attribute): Handle FIXED_POINT_TYPE.
2383 (gen_type_die_with_usage): Handle FIXED_POINT_TYPE.
2384 * print-tree.c (fixed-value.h): New include.
2385 (print_node_brief): Support FIXED_CST.
2386 (print_node): Support FIXED_POINT_TYPE and FIXED_CST.
2387 * c-pretty-print.c (fixed-value.h): New include.
2388 (pp_c_type_specifier): Handle FIXED_POINT_TYPE. Need to pass
2389 TYPE_SATURATING to c_common_type_for_mode for fixed-point modes.
2390 (pp_c_direct_abstract_declarator): Handle FIXED_POINT_TYPE.
2391 Support fixed-point types for inner items in VECTOR_TYPE.
2392 (pp_c_direct_declarator): Likewise.
2393 (pp_c_declarator): Likewise.
2394 (pp_c_fixed_constant): New function.
2395 (pp_c_constant): Handle FIXED_CST.
2396 (pp_c_primary_expression): Likewise.
2397 (pp_c_expression): Likewise.
2398 * fold-const.c (fixed-value.h): New include.
2399 (negate_expr_p): Return true for FIXED_CST.
2400 (fold_negate_expr): Support FIXED_CST.
2401 (split_tree): Support FIXED_CST.
2402 (const_binop): Support FIXED_CST.
2403 (fold_convert_const_int_from_fixed): New function to convert from
2404 fixed to int.
2405 (fold_convert_const_real_from_fixed): New function to convert from
2406 fixed to real.
2407 (fold_convert_const_fixed_from_fixed): New function to convert from
2408 fixed to another fixed.
2409 (fold_convert_const_fixed_from_int): New function to convert from
2410 int to fixed.
2411 (fold_convert_const_fixed_from_real): New function to convert from
2412 real to fixed.
2413 (fold_convert_const): Support conversions from fixed to int, from
2414 fixed to real, from fixed to fixed, from int to fixed, and from real
2415 to fixed.
2416 (fold_convert): Support FIXED_CST and FIXED_POINT_TYPE.
2417 (operand_equal_p): Support FIXED_CST.
2418 (make_range): For fixed-point modes, we need to pass the
2419 saturating flag as the 2nd parameter.
2420 (tree_swap_operands_p): Handle FIXED_CST.
2421 (fold_plusminus_mult_expr): For fract modes, we cannot generate
2422 constant 1.
2423 (fold_unary): Support FIXED_CONVERT_EXPR.
2424 (fold_binary): Handle FIXED_CST.
2425 Make sure the type is not saturating, before associating operations.
2426 Ex: A + B + C, A * B * C, (A1 * C1) +/- (A2 * C2).
2427 (tree_expr_nonnegative_warnv_p): Handle FIXED_CST.
2428 (fold_negate_const): Support FIXED_CST.
2429 (fold_relational_const): Support FIXED_CST.
2430 * gimplify.c (omp_firstprivatize_type_sizes): Handle FIXED_POINT_TYPE.
2431 (gimplify_expr): Handle FIXED_CST.
2432 (gimplify_type_sizes): Handle FIXED_POINT_TYPE.
2433 * ipa-prop.c (ipa_callsite_compute_param): Support FIXED_CST.
2434 * ipa-type-escape.c (type_to_consider): Handle FIXED_POINT_TYPE.
2435 * doc/tm.texi (Type Layout): Document SHORT_FRACT_TYPE_SIZE,
2436 FRACT_TYPE_SIZE, LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
2437 SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
2438 LONG_LONG_ACCUM_TYPE_SIZE.
2439 * dbxout.c (dbxout_type): Handle FIXED_POINT_TYPE.
2440 * c-aux-info.c (gen_type): Handle FIXED_POINT_TYPE.
2441 * tree-sra.c (is_sra_scalar_type): Support FIXED_POINT_TYPE.
2442 * expmed.c (extract_bit_field): Support MODE_FRACT, MODE_UFRACT,
2443 MODE_ACCUM, and MODE_UACCUM.
2444 * tree-vectorizer.c (vect_is_simple_reduction): Check for saturating
2445 fixed-point types to disable reduction.
2446 * explow.c (promote_mode): Support FIXED_POINT_TYPE.
2447
2448 2007-08-08 David Edelsohn <edelsohn@gnu.org>
2449
2450 * config/rs6000/x-rs6000: New file.
2451 * config/rs6000/darwin.h (CC1_SPEC): Add cc1_cpu.
2452 * config/rs6000/rs6000.h (EXTRA_SPECS): Add cc1_cpu.
2453 (EXTRA_SPEC_FUNCTIONS): Define.
2454 (HAVE_LOCAL_CPU_DETECT): Define.
2455 (CC1_CPU_SPEC): Define.
2456 * config/rs6000/driver-rs6000.c: New file.
2457 * config/rs6000/aix.h (CC1_SPEC): Define.
2458 * config/rs6000/sysv4.h (CC1_SPEC): Add cc1_cpu.
2459 * config.host: Add x-rs6000 to host_xmake_file if host and target
2460 are rs6000 or powerpc.
2461
2462 2007-08-08 Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
2463
2464 * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=.
2465
2466 2007-08-08 Richard Sandiford <richard@codesourcery.com>
2467 Sandra Loosemore <sandra@codesourcery.com>
2468 Chao-ying Fu <fu@mips.com>
2469 Nigel Stephens <nigel@mips.com>
2470 David Ung <davidu@mips.com>
2471
2472 * doc/invoke.texi (-mcode-readable): Document.
2473 * config/mips/mips.opt (mcode-readable): New option.
2474 * config/mips/mips-protos.h (SYMBOL_32_HIGH): New symbol type.
2475 * config/mips/mips.h (mips_code_readable_setting): New enum.
2476 (mips_code_readable): Declare.
2477 (TARGET_MIPS16_TEXT_LOADS, TARGET_MIPS16_PCREL_LOADS): New macros.
2478 (TARGET_MIPS16_SHORT_JUMP_TABLES): New macro.
2479 (JUMP_TABLES_IN_TEXT_SECTION): Use it.
2480 (CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE): Likewise. Remove
2481 boiler-plate comments.
2482 (ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
2483 * config/mips/mips.c (mips_code_readable): New variable.
2484 (mips_classify_symbol): Only return SYMBOL_PC_RELATIVE for
2485 MIPS16 labels if TARGET_MIPS16_SHORT_JUMP_TABLES. Use both the
2486 context and -mcode-readable setting to restrict the use of
2487 SYMBOL_PC_RELATIVE for MIPS16 constant pool references.
2488 Only return TARGET_FORCE_TO_MEM if PC-relative loads are allowed.
2489 (mips_symbolic_constant_p): Handle SYMBOL_32_HIGH.
2490 (mips_blocks_for_constant_p): Only return false for
2491 TARGET_MIPS16_PCREL_LOADS.
2492 (mips_symbol_insns_1): Treat HIGHs as 2 extended instructions
2493 for MIPS16. Handle SYMBOL_32_HIGH.
2494 (mips_const_insns): Allow HIGHs for MIPS16 too.
2495 (mips_unspec_address_offset): New function, split out from...
2496 (mips_unspec_address): ...here.
2497 (mips_output_move): Handle MIPS16 HIGH moves. Use "li" to load
2498 16-bit symbolic constants. Assert approropiate conditions for
2499 using the "la" and "dla" macros.
2500 (mips_handle_option): Handle -mcode-readable=.
2501 (override_options): Use %hi/%lo relocations for TARGET_MIPS16 too.
2502 Set up mips_lo_relocs[SYMBOL_32_HIGH].
2503 (mips_strip_unspec_address): New function, split out from...
2504 (print_operand_reloc): ...here.
2505 (print_operand): Pass constants through mips_strip_unspec_address.
2506 (print_operand_address): Likewise.
2507 (mips_output_mi_thunk): Remove guard of mips16_lay_out_constants.
2508 (mips_select_rtx_section): Remove MIPS16 handling.
2509 (mips16_gp_pseudo_reg): Check currently_expanding_to_rtl.
2510 (mips16_rewrite_pool_refs): Wrap the labels in an address UNSPEC.
2511 (mips16_lay_out_constants): Do nothing unless
2512 TARGET_MIPS16_PCREL_LOADS.
2513 (mips_avoid_hazards): Remove guard of mips16_lay_out_constants.
2514 * config/mips/mips.md: Split HIGHs for MIPS16.
2515 (tablejump): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
2516
2517 2007-08-08 Richard Sandiford <richard@codesourcery.com>
2518
2519 * config/mips/mips-protos.h (mips_emit_move): Declare.
2520 * config/mips/mips.c (mips_emit_move): New function.
2521 (mips_force_temporary): Use mips_emit_move instead of emit_move_insn.
2522 (mips_legitimize_const_move): Likewise.
2523 (mips_legitimize_move): Likewise.
2524 (mips_split_64bit_move): Likewise.
2525 (mips_restore_gp): Likewise.
2526 (mips_load_call_address): Likewise.
2527 (mips_emit_fcc_reload): Likewise.
2528 (mips_set_return_address): Likewise.
2529 (mips_block_move_straight): Likewise.
2530 (mips_block_move_loop): Likewise.
2531 (mips_setup_incoming_varargs): Likewise.
2532 (mips_save_reg): Likewise.
2533 (mips_expand_prologue): Likewise.
2534 (mips_restore_reg): Likewise.
2535 (mips_expand_epilogue): Likewise.
2536 (mips_output_mi_thunk): Likewise.
2537 (build_mips16_call_stub): Likewise.
2538 (mips_builtin_branch_and_move): Likewise.
2539 * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise.
2540 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
2541 (fixuns_truncdfdi2): Likewise.
2542 (fixuns_truncsfsi2): Likewise.
2543 (fixuns_truncsfdi2): Likewise.
2544 (loadgp_absolute): Likewise.
2545 (builtin_setjmp_setup): Likewise.
2546 (builtin_longjmp): Likewise.
2547 (untyped_call): Likewise.
2548
2549 2007-08-08 Richard Sandiford <richard@codesourcery.com>
2550
2551 * config/mips/mips-protos.h (mips_split_symbol): Add a mode and
2552 an "rtx *" argument. Return a bool.
2553 * config/mips/mips.c (mips_split_symbol): Accept arbitrary source
2554 values and return true if they can be split. Take the same kind of
2555 mode argument as mips_symbol_insns. Add a "lo_sum_out" parameter
2556 and store the lo_sum there if nonnull. Use the symbol type to
2557 determine whether a $gp or HIGH is needed.
2558 (mips_legitimize_address): Update call to mips_split_symbol and
2559 simplify accordingly.
2560 (mips_legitimize_const_move): Likewise.
2561 * config/mips/mips.md: In the combine define_split,
2562 check mips_split_symbol instead of splittable_symbolic_operand.
2563 Update use of mips_split_symbol in the generator code.
2564 * config/mips/predicates.md (splittable_symbolic_operand): Delete.
2565
2566 2007-08-08 Richard Sandiford <richard@codesourcery.com>
2567
2568 * config/mips/mips.c (mips_symbolic_address_p): Delete.
2569 (mips_symbol_insns_1): New function, split out from...
2570 (mips_symbol_insns): ...here. Take a mode argument. Treat loads
2571 and stores separately from load addresses.
2572 (mips_classify_address): Replace uses of mips_symbolic_address_p
2573 with uses of mips_symbol_insns.
2574 (mips_address_insns): Update calls to mips_symbol_insns.
2575 (mips_const_insns): Likewise.
2576 (mips_legitimize_address): Likewise.
2577
2578 2007-08-08 Richard Sandiford <richard@codesourcery.com>
2579
2580 * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): New symbol type.
2581 * config/mips/mips.c (mips_classify_symbol): Skip TARGET_ABICALLS
2582 block for locally-binding symbols if TARGET_ABSOLUTE_ABICALLS.
2583 Return SYMBOL_FORCE_TO_MEM instead of SYMBOL_ABSOLUTE for
2584 non-call contexts if TARGET_MIPS16.
2585 (mips_symbolic_constant_p): Handle SYMBOL_FORCE_TO_MEM.
2586 (mips_symbolic_address_p): Likewise. Remove special TARGET_MIPS16
2587 code for SYMBOL_ABSOLUTE.
2588 (mips_symbol_insns): Likewise.
2589
2590 2007-08-08 Richard Sandiford <richard@codesourcery.com>
2591
2592 * config/mips/mips-protos.h (mips_symbol_context): New enumeration.
2593 * config/mips/mips.c (mips_classify_symbol): Take a context argument.
2594 (mips_symbolic_constant_p): Likewise. Update the call to
2595 mips_classify_symbol.
2596 (mips_classify_address): Update the calls to mips_symbolic_constant_p.
2597 (mips_const_insns): Likewise. Update the call to mips_classify_symbol.
2598 (mips_legitimize_address): Update the call to mips_symbolic_constant_p.
2599 (print_operand_reloc): Add a context argument. Update the call to
2600 mips_symbolic_constant_p.
2601 (print_operand): Update the calls to print_operand_reloc.
2602 (print_operand_address): Use print_operand_reloc rather than
2603 print_operand.
2604 (mips_rewrite_small_data_p): Add a context argument. Update the call
2605 to mips_symbolic_constant_p.
2606 (mips_small_data_pattern_1): Make DATA the containing mem.
2607 Update the call to mips_rewrite_small_data_p.
2608 (mips_rewrite_small_data_1): Likewise.
2609 (mips_use_anchors_for_symbol_p): Update the call to
2610 mips_symbolic_constant_p.
2611 * config/mips/predicates.md (const_call_insn_operand): Likewise.
2612 (splittable_symbolic_operand): Likewise.
2613 (move_operand): Likewise.
2614 (absolute_symbolic_operand): Likewise.
2615 (got_disp_operand): Likewise.
2616 (got_page_ofst_operand): Likewise.
2617
2618 2007-08-08 Richard Sandiford <richard@codesourcery.com>
2619
2620 * config/mips/mips-protos.h (SYMBOL_GENERAL): Rename to...
2621 (SYMBOL_ABSOLUTE): ...this.
2622 (SYMBOL_SMALL_DATA): Rename to...
2623 (SYMBOL_GP_RELATIVE): ...this.
2624 (SYMBOL_CONSTANT_POOL): Rename to...
2625 (SYMBOL_PC_RELATIVE): ...this.
2626 * config/mips/mips.c (mips_classify_symbol, mips_symbolic_constant_p)
2627 (mips_symbolic_address_p, mips_symbol_insns, override_options)
2628 (mips_rewrite_small_data_p, mips_use_anchors_for_symbol_p): Update
2629 after above changes.
2630 * config/mips/predicates.md (const_call_insn_operand): Likewise.
2631 (general_symbolic_operand): Rename to...
2632 (absolute_symbolic_operand): ...this.
2633 * config/mips/mips.md: Update after above changes.
2634
2635 2007-08-08 Vladimir Yanovsky <yanov@il.ibm.com>
2636 Revital Eres <eres@il.ibm.com>
2637
2638 * ddg.c (print_ddg): Add dump information.
2639 * modulo-sched.c (print_node_sched_params): Add parameter and
2640 verbosity.
2641 (calculate_maxii): Remove function.
2642 (undo_generate_reg_moves): Likewise.
2643 (undo_permute_partial_schedule): Likewise.
2644 (kernel_number_of_cycles): Likewise.
2645 (MAXII_FACTOR): New definition to calculate the upper bound of II.
2646 (sms_schedule): Use it. Remove profitability checks.
2647 (sms_schedule_by_order): Fix order of nodes within the cycle.
2648
2649 2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
2650
2651 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add
2652 -profile option, add pie support.
2653 (ENDFILE_SPEC): New spec.
2654 * config/gnu.h (LIB_SPEC): Add -profile option.
2655
2656 2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
2657
2658 * config/i386/gnu.h (CPP_SPEC): Add -pthread option.
2659 * config/gnu.h (LIB_SPEC): Likewise.
2660
2661 2007-08-07 Yaz Saito <saito@google.com>
2662 Ian Lance Taylor <iant@google.com>
2663
2664 * common.opt (finstrument-functions-exclude-function-list): New
2665 option.
2666 (finstrument-functions-exclude-file-list): New option.
2667 * opts.c (char_p): Define and DEF_VEC.
2668 (flag_instrument_functions_exclude_functions): New static
2669 variable.
2670 (flag_instrument_functions_exclude_files): New static variable.
2671 (add_instrument_functions_exclude_list): New static function.
2672 (flag_instrument_functions_exclude_p): New function.
2673 (common_handle_option): Handle new options.
2674 * flags.h (flag_instrument_functions_exclude_p): Declare.
2675 * gimplify.c (gimplify_function_tree): Call
2676 flag_instrument_functions_exclude_p.
2677 * doc/invoke.texi (Option Summary): Mention new options.
2678 (Code Gen Options): Document new options.
2679
2680 2007-08-07 Ian Lance Taylor <iant@google.com>
2681
2682 PR rtl-optimization/32776
2683 * lower-subreg.c (resolve_clobber): Call resolve_reg_notes.
2684 (resolve_use): Likewise.
2685 (decompose_multiword_subregs): Remove "changed" local variable.
2686
2687 2007-08-07 Carlos O'Donell <carlos@codesourcery.com>
2688
2689 * configure.ac: Define HAVE_GNU_AS if $gas_flag is yes.
2690 * configure: Regenerate.
2691 * config.in: Regenerate.
2692 * gcc.c [HAVE_GNU_AS]: Add "%{v} %{w:-W} %{I*} " to asm_options
2693 spec string.
2694
2695 2007-08-07 Ian Lance Taylor <iant@google.com>
2696
2697 * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL
2698 note, just delete the insn.
2699
2700 2007-08-07 Andreas Schwab <schwab@suse.de>
2701
2702 PR bootstrap/32973
2703 * gengtype-lex.l: Ignore backslash/newline pair while scanning a
2704 struct definition.
2705
2706 2007-08-07 Andreas Krebbel <krebbel1@de.ibm.com>
2707
2708 * lower-subreg.c (resolve_subreg_use): Remove assertion.
2709 (find_decomposable_shift_zext, resolve_shift_zext): New functions.
2710 (decompose_multiword_subregs): Use the functions above to decompose
2711 multiword shifts and zero-extends.
2712
2713 2007-08-07 Rask Ingemann Lambertsen <rask@sygehus.dk>
2714
2715 * doc/sourcebuild.texi (Test Directives): Fix "compile" and
2716 "assemble" descriptions which were swapped.
2717
2718 2007-08-06 Chao-ying Fu <fu@mips.com>
2719
2720 * fixed-value.h: New file.
2721 * fixed-value.c: New file.
2722 * Makefile.in (OBJS-common): Add fixed-value.o.
2723 (fixed-value.o): New rule.
2724 (GTFILES): Add fixed-value.h.
2725 * double-int.c (double_int_scmp): We should use unsigned HOST_WIDE_INT
2726 to compare a.low and b.low.
2727 * gengtype.c (main): Handle FIXED_VALUE_TYPE type as scalar typedef.
2728
2729 2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
2730 Daniel Jacobowitz <dan@codesourcery.com>
2731
2732 PR target/31868
2733 * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to
2734 tmake_file.
2735 (x86_64-*-netbsd*): Likewise.
2736 (x86_64-*-linux*): Likewise.
2737 (x86_64-*-kfreebsd*-gnu): Likewise.
2738 (x86_64-*-knetbsd*-gnu): Likewise.
2739 (i[34567]86-*-solaris2.1[0-9]*): Likewise.
2740
2741 * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed.
2742
2743 * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments.
2744 Add -fno-asynchronous-unwind-tables.
2745
2746 * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS).
2747 * config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise.
2748 * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise.
2749 * config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise.
2750 * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise.
2751
2752 2007-08-06 Steve Ellcey <sje@cup.hp.com>
2753
2754 * config/ia64/ia64.c (ia64_c_mode_for_suffix): New.
2755 (TARGET_C_MODE_FOR_SUFFIX): New.
2756
2757 2007-08-06 Steve Ellcey <sje@cup.hp.com>
2758
2759 * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'.
2760
2761 2007-08-06 Steve Ellcey <sje@cup.hp.com>
2762
2763 * config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo.
2764
2765 2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
2766
2767 * config/i386/i386.md: Check TARGET_ macros and optimize_size
2768 before checking function returns in conditional expressions.
2769
2770 2007-08-06 Alfred Minarik <a.minarik@aon.at>
2771
2772 PR pch/13676
2773 * doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header.
2774
2775 2008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
2776
2777 PR middle-end/32988
2778 * tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check
2779 for INTEGRAL_TYPE_P.
2780
2781 2008-08-05 Paolo Bonzini <bonzini@gnu.org>
2782
2783 * configure.ac: Remove --enable-checking=df from default settings.
2784 * tree-pass.h (TODO_df_verify): New. Shift TODO_mark_first_instance.
2785 * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification
2786 if the parameter is true.
2787 (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the
2788 DF_VERIFY_SCHEDULED flag is true.
2789 * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED.
2790 (df_finish_pass): Adjust prototype.
2791 * passes.c (execute_todo): Schedule verification if TODO_df_verify is
2792 true.
2793
2794 * see.c (pass_see): Add TODO_df_verify.
2795 * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify.
2796 * global.c (rest_of_handle_global_alloc): Schedule verification
2797 after the pass.
2798 * local-alloc.c (rest_of_handle_local_alloc): Schedule verification
2799 before the pass.
2800 * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify.
2801 * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass.
2802 * loop-iv.c (iv_analysis_done): Schedule verification after the pass.
2803
2804 * config/sh/sh.c (sh_output_mi_thunk): Remove dead code.
2805 * config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass.
2806 * config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass.
2807
2808 2007-08-05 Vladimir Yanovsky <yanov@il.ibm.com>
2809 Revital Eres <eres@il.ibm.com>
2810
2811 * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Document new
2812 flag.
2813 * ddg.c (create_ddg_dependence): Rename to...
2814 (create_ddg_dep_from_intra_loop_link): This. Do not check
2815 for interloop edges. Do not create anti dependence edge when
2816 a true dependence edge exists in the opposite direction and
2817 -fmodulo-sched-allow-regmoves is set.
2818 (build_intra_loop_deps): Call create_ddg_dep_from_intra_loop_link.
2819 (add_cross_iteration_register_deps): Create anti dependence edge
2820 when -fno-modulo-sched-allow-regmoves is set.
2821 * common.opt (-fmodulo-sched-allow-regmoves): New flag.
2822
2823 2007-08-04 Richard Sandiford <richard@codesourcery.com>
2824
2825 * config/arm/arm.md (movsi): Add braces.
2826
2827 2007-08-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
2828
2829 PR middle-end/32780
2830 * fold-const.c (fold_binary <case MINUS_EXPR>): Fix the type of
2831 operands for the folding of "A - (A & B)" into "~B & A"; cast them
2832 to type.
2833
2834 2007-08-03 Zdenek Dvorak <ook@ucw.cz>
2835
2836 * tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops'
2837 state accessor functions.
2838 * cfgloopmanip.c (remove_path, create_preheaders,
2839 force_single_succ_latches, fix_loop_structure): Ditto.
2840 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
2841 tree_duplicate_loop_to_header_edge): Ditto.
2842 * cfgloopanal.c (mark_irreducible_loops): Ditto.
2843 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize):
2844 Ditto.
2845 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures,
2846 cleanup_tree_cfg): Ditto.
2847 * tree-cfg.c (tree_merge_blocks): Ditto.
2848 * cfgloop.c (rescan_loop_exit, record_loop_exits,
2849 release_recorded_exits, get_loop_exit_edges, verify_loop_structure,
2850 loop_preheader_edge, single_exit): Ditto.
2851 (flow_loops_find): Do not clear loops->state.
2852 * cfgloop.h (loops_state_satisfies_p, loops_state_set,
2853 loops_state_clear): New functions.
2854
2855 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
2856
2857 PR middle-end/32399
2858 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
2859 when adding to the base and convert ELT to sizetype instead of type.
2860
2861 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
2862
2863 PR middle-end/32304
2864 * ipa-reference.c (has_proper_scope_for_analysis): Return false when
2865 the decl's type has TYPE_NEEDS_CONSTRUCTING set.
2866
2867 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
2868
2869 PR middle-end/32935
2870 * fold-convert.c (fold_negate_expr <NOP_EXPR>): Convert back to the
2871 correct type the negate expression.
2872
2873 2007-08-03 Jan Hubicka <jh@suse.cz>
2874
2875 * i386.c (setup_incoming_varargs_64): Tolerate 64bit preferred
2876 stack boundary.
2877
2878 2007-08-03 David Edelsohn <edelsohn@gnu.org>
2879
2880 * config/rs6000/rs6000.c (struct processor_cost): Change
2881 l1_cache_lines to l1_cache_size. Add l2_cache_size.
2882 (*_cost): Convert l1 cache information to kilobytes. Add l2 cache
2883 information.
2884 (rios1_costs, rios2_cost): Correct cache line size.
2885 (rs6000_override_options): Set l2-cache-size parameter.
2886
2887 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
2888 Diego Novillo <dnovillo@google.com>
2889
2890 PR 31521
2891 * tree-vrp.c (simplify_div_or_mod_using_ranges): Also simplify
2892 if the range includes 0.
2893
2894 2007-08-03 Ben Elliston <bje@au.ibm.com>
2895
2896 * config/spu/spu.md (dftsv, dftsv_celledp): Attach the appropriate
2897 mode to unspec expressions to silence a warning from the generator
2898 programs.
2899
2900 2007-08-02 Steve Ellcey <sje@cup.hp.com>
2901
2902 * config/ia64/constraints.md ("U"): Make constraint vector only.
2903
2904 2007-08-02 Nathan Froyd <froydnj@codesourcery.com>
2905
2906 PR middle-end/25446
2907 * c-objc-common.c (c_cannot_inline_tree_fn): Check for an
2908 always_inline attribute on the function decl.
2909
2910 2007-08-02 Nathan Froyd <froydnj@codesourcery.com>
2911
2912 PR middle-end/25445
2913 * varasm.c (default_binds_local_p_1): Consult flag_whole_program
2914 if we are compiling with -fPIC.
2915
2916 2007-08-02 Sandra Loosemore <sandra@codesourcery.com>
2917 Nigel Stephens <nigel@mips.com>
2918
2919 * longlong.h [__mips__] (count_leading_zeros, COUNT_LEADING_ZEROS_0):
2920 Define for MIPS32 and MIPS64.
2921
2922 2007-08-02 Nick Clifton <nickc@redhat.com>
2923
2924 * config/host-hpux.c: Change copyright header to refer to version
2925 3 of the GNU General Public License and to point readers at the
2926 COPYING3 file and the FSF's license web page.
2927 * config/alpha/predicates.md, config/alpha/vms-ld.c,
2928 config/alpha/linux.h, config/alpha/alpha.opt,
2929 config/alpha/linux-elf.h, config/alpha/vms.h, config/alpha/elf.h,
2930 config/alpha/vms-unwind.h, config/alpha/ev4.md,
2931 config/alpha/ev6.md, config/alpha/alpha.c, config/alpha/vms-cc.c,
2932 config/alpha/alpha.h, config/alpha/sync.md,
2933 config/alpha/openbsd.h, config/alpha/alpha.md,
2934 config/alpha/alpha-modes.def, config/alpha/ev5.md,
2935 config/alpha/alpha-protos.h, config/alpha/freebsd.h,
2936 config/alpha/osf5.h, config/alpha/netbsd.h, config/alpha/vms64.h,
2937 config/alpha/constraints.md, config/alpha/osf.h,
2938 config/alpha/xm-vms.h, config/alpha/unicosmk.h, config/linux.h,
2939 config/frv/predicates.md, config/frv/frv.h, config/frv/linux.h,
2940 config/frv/frv.md, config/frv/frv.opt, config/frv/frv-modes.def,
2941 config/frv/frv-asm.h, config/frv/frv-protos.h,
2942 config/frv/frv-abi.h, config/frv/frv.c, config/s390/tpf.h,
2943 config/s390/s390.c, config/s390/predicates.md, config/s390/s390.h,
2944 config/s390/linux.h, config/s390/tpf.md, config/s390/tpf.opt,
2945 config/s390/2064.md, config/s390/2084.md, config/s390/s390.md,
2946 config/s390/s390.opt, config/s390/s390-modes.def,
2947 config/s390/fixdfdi.h, config/s390/constraints.md,
2948 config/s390/s390-protos.h, config/s390/s390x.h, config/elfos.h,
2949 config/dbxcoff.h, config/m32c/predicates.md, config/m32c/cond.md,
2950 config/m32c/m32c.c, config/m32c/minmax.md, config/m32c/blkmov.md,
2951 config/m32c/m32c-pragma.c, config/m32c/m32c.h,
2952 config/m32c/prologue.md, config/m32c/m32c.abi,
2953 config/m32c/muldiv.md, config/m32c/bitops.md, config/m32c/mov.md,
2954 config/m32c/addsub.md, config/m32c/m32c.md, config/m32c/m32c.opt,
2955 config/m32c/t-m32c, config/m32c/m32c-modes.def,
2956 config/m32c/jump.md, config/m32c/shift.md,
2957 config/m32c/m32c-protos.h, config/libgloss.h,
2958 config/spu/spu-protos.h, config/spu/predicates.md,
2959 config/spu/spu-builtins.h, config/spu/spu.c,
2960 config/spu/spu-builtins.def, config/spu/spu-builtins.md,
2961 config/spu/spu.h, config/spu/spu-elf.h, config/spu/constraints.md,
2962 config/spu/spu.md, config/spu/spu-c.c, config/spu/spu.opt,
2963 config/spu/spu-modes.def, config/spu/t-spu-elf, config/interix.h,
2964 config/sparc/hypersparc.md, config/sparc/predicates.md,
2965 config/sparc/linux.h, config/sparc/sp64-elf.h,
2966 config/sparc/supersparc.md, config/sparc/cypress.md,
2967 config/sparc/openbsd1-64.h, config/sparc/openbsd64.h,
2968 config/sparc/niagara.md, config/sparc/sparc.md,
2969 config/sparc/long-double-switch.opt, config/sparc/ultra3.md,
2970 config/sparc/sparc.opt, config/sparc/sync.md,
2971 config/sparc/sp-elf.h, config/sparc/sparc-protos.h,
2972 config/sparc/ultra1_2.md, config/sparc/biarch64.h,
2973 config/sparc/sparc.c, config/sparc/little-endian.opt,
2974 config/sparc/sysv4-only.h, config/sparc/sparc.h,
2975 config/sparc/linux64.h, config/sparc/freebsd.h,
2976 config/sparc/sol2.h, config/sparc/rtemself.h,
2977 config/sparc/netbsd-elf.h, config/sparc/vxworks.h,
2978 config/sparc/sparc-modes.def, config/sparc/sparclet.md,
2979 config/sparc/sysv4.h, config/vx-common.h, config/netbsd-aout.h,
2980 config/flat.h, config/m32r/m32r.md, config/m32r/predicates.md,
2981 config/m32r/little.h, config/m32r/m32r.c, config/m32r/m32r.opt,
2982 config/m32r/linux.h, config/m32r/constraints.md,
2983 config/m32r/m32r.h, config/m32r/m32r-protos.h, config/vxworks.opt,
2984 config/darwin-c.c, config/darwin.opt, config/i386/i386.h,
2985 config/i386/cygming.h, config/i386/linux.h, config/i386/cygwin.h,
2986 config/i386/i386.md, config/i386/netware-crt0.c,
2987 config/i386/sco5.h, config/i386/mmx.md, config/i386/vx-common.h,
2988 config/i386/kaos-i386.h, config/i386/winnt-stubs.c,
2989 config/i386/netbsd64.h, config/i386/djgpp.h, config/i386/gas.h,
2990 config/i386/sol2.h, config/i386/constraints.md,
2991 config/i386/netware-libgcc.c, config/i386/sysv5.h,
2992 config/i386/predicates.md, config/i386/geode.md,
2993 config/i386/x86-64.h, config/i386/kfreebsd-gnu.h,
2994 config/i386/freebsd64.h, config/i386/vxworksae.h,
2995 config/i386/pentium.md, config/i386/lynx.h, config/i386/i386elf.h,
2996 config/i386/rtemself.h, config/i386/netbsd-elf.h,
2997 config/i386/ppro.md, config/i386/k6.md, config/i386/netware.c,
2998 config/i386/netware.h, config/i386/i386-modes.def,
2999 config/i386/sysv4-cpp.h, config/i386/i386-interix.h,
3000 config/i386/cygwin1.c, config/i386/djgpp.opt, config/i386/uwin.h,
3001 config/i386/unix.h, config/i386/ptx4-i.h, config/i386/xm-djgpp.h,
3002 config/i386/att.h, config/i386/winnt.c, config/i386/beos-elf.h,
3003 config/i386/sol2-10.h, config/i386/darwin64.h, config/i386/sse.md,
3004 config/i386/i386.opt, config/i386/bsd.h, config/i386/cygming.opt,
3005 config/i386/xm-mingw32.h, config/i386/linux64.h,
3006 config/i386/openbsdelf.h, config/i386/xm-cygwin.h,
3007 config/i386/sco5.opt, config/i386/darwin.h, config/i386/mingw32.h,
3008 config/i386/winnt-cxx.c, config/i386/i386-interix3.h,
3009 config/i386/nwld.c, config/i386/nwld.h, config/i386/host-cygwin.c,
3010 config/i386/cygwin2.c, config/i386/i386-protos.h,
3011 config/i386/sync.md, config/i386/openbsd.h,
3012 config/i386/host-mingw32.c, config/i386/i386-aout.h,
3013 config/i386/nto.h, config/i386/biarch64.h,
3014 config/i386/i386-coff.h, config/i386/freebsd.h,
3015 config/i386/driver-i386.c, config/i386/knetbsd-gnu.h,
3016 config/i386/host-i386-darwin.c, config/i386/vxworks.h,
3017 config/i386/crtdll.h, config/i386/i386.c, config/i386/sysv4.h,
3018 config/darwin-protos.h, config/linux.opt, config/sol2.c,
3019 config/sol2.h, config/sh/symbian.c, config/sh/sh-protos.h,
3020 config/sh/linux.h, config/sh/elf.h, config/sh/superh.h,
3021 config/sh/sh4.md, config/sh/coff.h, config/sh/newlib.h,
3022 config/sh/embed-elf.h, config/sh/symbian-pre.h, config/sh/rtems.h,
3023 config/sh/kaos-sh.h, config/sh/sh4a.md, config/sh/constraints.md,
3024 config/sh/sh64.h, config/sh/sh.opt, config/sh/symbian-post.h,
3025 config/sh/sh-c.c, config/sh/predicates.md, config/sh/sh.c,
3026 config/sh/sh.h, config/sh/shmedia.md, config/sh/sh-modes.def,
3027 config/sh/little.h, config/sh/sh1.md, config/sh/sh4-300.md,
3028 config/sh/superh64.h, config/sh/rtemself.h,
3029 config/sh/netbsd-elf.h, config/sh/sh.md, config/sh/vxworks.h,
3030 config/usegas.h, config/svr3.h, config/pdp11/pdp11-protos.h,
3031 config/pdp11/2bsd.h, config/pdp11/pdp11.md, config/pdp11/pdp11.c,
3032 config/pdp11/pdp11.opt, config/pdp11/pdp11-modes.def,
3033 config/pdp11/pdp11.h, config/avr/rtems.h, config/avr/avr-protos.h,
3034 config/avr/predicates.md, config/avr/constraints.md,
3035 config/avr/avr.md, config/avr/avr.c, config/avr/avr.opt,
3036 config/avr/avr.h, config/sol2-protos.h, config/dbxelf.h,
3037 config/lynx.opt, config/crx/crx.h, config/crx/crx-protos.h,
3038 config/crx/crx.md, config/crx/crx.c, config/crx/crx.opt,
3039 config/c4x/c4x-c.c, config/c4x/c4x.c, config/c4x/c4x.opt,
3040 config/c4x/c4x-modes.def, config/c4x/rtems.h,
3041 config/c4x/predicates.md, config/c4x/c4x.h,
3042 config/c4x/c4x-protos.h, config/c4x/c4x.md, config/kfreebsd-gnu.h,
3043 config/xtensa/predicates.md, config/xtensa/xtensa.c,
3044 config/xtensa/linux.h, config/xtensa/xtensa.h,
3045 config/xtensa/elf.h, config/xtensa/xtensa.md,
3046 config/xtensa/xtensa.opt, config/xtensa/constraints.md,
3047 config/xtensa/xtensa-protos.h, config/dbx.h,
3048 config/stormy16/predicates.md, config/stormy16/stormy16.md,
3049 config/stormy16/stormy16.c, config/stormy16/stormy16.opt,
3050 config/stormy16/stormy16.h, config/stormy16/stormy16-protos.h,
3051 config/host-solaris.c, config/fr30/fr30.h,
3052 config/fr30/predicates.md, config/fr30/fr30-protos.h,
3053 config/fr30/fr30.md, config/fr30/fr30.c, config/fr30/fr30.opt,
3054 config/vxworksae.h, config/sol2-c.c, config/lynx.h,
3055 config/m68hc11/m68hc11-protos.h, config/m68hc11/predicates.md,
3056 config/m68hc11/m68hc11.md, config/m68hc11/m68hc11.c,
3057 config/m68hc11/m68hc11.opt, config/m68hc11/m68hc11.h,
3058 config/m68hc11/m68hc12.h, config/openbsd-oldgas.h,
3059 config/host-linux.c, config/interix3.h, config/cris/cris.c,
3060 config/cris/predicates.md, config/cris/linux.h,
3061 config/cris/cris.h, config/cris/aout.h, config/cris/cris.md,
3062 config/cris/linux.opt, config/cris/cris.opt, config/cris/elf.opt,
3063 config/cris/aout.opt, config/cris/cris-protos.h,
3064 config/vxworks-dummy.h, config/netbsd.h, config/netbsd-elf.h,
3065 config/iq2000/iq2000.h, config/iq2000/predicates.md,
3066 config/iq2000/iq2000-protos.h, config/iq2000/iq2000.md,
3067 config/iq2000/iq2000.c, config/iq2000/iq2000.opt,
3068 config/host-darwin.c, config/mt/mt.md, config/mt/mt.c,
3069 config/mt/mt.opt, config/mt/t-mt, config/mt/mt.h,
3070 config/mt/mt-protos.h, config/svr4.h, config/host-darwin.h,
3071 config/chorus.h, config/mn10300/mn10300.c,
3072 config/mn10300/mn10300.opt, config/mn10300/predicates.md,
3073 config/mn10300/mn10300.h, config/mn10300/linux.h,
3074 config/mn10300/constraints.md, config/mn10300/mn10300-protos.h,
3075 config/mn10300/mn10300.md, config/ia64/predicates.md,
3076 config/ia64/itanium1.md, config/ia64/unwind-ia64.h,
3077 config/ia64/ia64-c.c, config/ia64/sync.md, config/ia64/ia64.c,
3078 config/ia64/itanium2.md, config/ia64/ia64.h, config/ia64/vect.md,
3079 config/ia64/freebsd.h, config/ia64/ia64.md,
3080 config/ia64/ia64-modes.def, config/ia64/constraints.md,
3081 config/ia64/hpux.h, config/ia64/ia64-protos.h, config/windiss.h,
3082 config/gofast.h, config/rtems.h, config/sol2-10.h,
3083 config/m68k/predicates.md, config/m68k/m68k.md,
3084 config/m68k/linux.h, config/m68k/m68k-modes.def,
3085 config/m68k/print-sysroot-suffix.sh, config/m68k/m68k-protos.h,
3086 config/m68k/coff.h, config/m68k/m68k-none.h, config/m68k/ieee.opt,
3087 config/m68k/openbsd.h, config/m68k/m68k-aout.h,
3088 config/m68k/m68k.opt, config/m68k/m68020-elf.h,
3089 config/m68k/m68kelf.h, config/m68k/m68k-devices.def,
3090 config/m68k/uclinux-oldabi.h, config/m68k/m68k.c,
3091 config/m68k/constraints.md, config/m68k/rtemself.h,
3092 config/m68k/netbsd-elf.h, config/m68k/m68k.h,
3093 config/m68k/uclinux.h, config/rs6000/power4.md,
3094 config/rs6000/host-darwin.c, config/rs6000/6xx.md,
3095 config/rs6000/linux.h, config/rs6000/eabi.h,
3096 config/rs6000/aix41.opt, config/rs6000/xcoff.h,
3097 config/rs6000/secureplt.h, config/rs6000/linuxspe.h,
3098 config/rs6000/eabialtivec.h, config/rs6000/8540.md,
3099 config/rs6000/darwin8.h, config/rs6000/kaos-ppc.h,
3100 config/rs6000/windiss.h, config/rs6000/603.md,
3101 config/rs6000/aix41.h, config/rs6000/cell.md,
3102 config/rs6000/mpc.md, config/rs6000/aix43.h, config/rs6000/beos.h,
3103 config/rs6000/gnu.h, config/rs6000/rtems.h, config/rs6000/aix.opt,
3104 config/rs6000/darwin.md, config/rs6000/darwin64.h,
3105 config/rs6000/default64.h, config/rs6000/7xx.md,
3106 config/rs6000/darwin.opt, config/rs6000/spe.md,
3107 config/rs6000/rs6000.opt, config/rs6000/rs6000-c.c,
3108 config/rs6000/rios2.md, config/rs6000/linuxaltivec.h,
3109 config/rs6000/7450.md, config/rs6000/linux64.h,
3110 config/rs6000/constraints.md, config/rs6000/440.md,
3111 config/rs6000/darwin.h, config/rs6000/host-ppc64-darwin.c,
3112 config/rs6000/rs6000.c, config/rs6000/aix52.h,
3113 config/rs6000/rs6000.h, config/rs6000/power6.md,
3114 config/rs6000/predicates.md, config/rs6000/altivec.md,
3115 config/rs6000/aix64.opt, config/rs6000/rios1.md,
3116 config/rs6000/rs6000-modes.def, config/rs6000/rs64.md,
3117 config/rs6000/eabisim.h, config/rs6000/sysv4le.h,
3118 config/rs6000/darwin7.h, config/rs6000/dfp.md,
3119 config/rs6000/linux64.opt, config/rs6000/sync.md,
3120 config/rs6000/vxworksae.h, config/rs6000/power5.md,
3121 config/rs6000/lynx.h, config/rs6000/biarch64.h,
3122 config/rs6000/rs6000.md, config/rs6000/sysv4.opt,
3123 config/rs6000/eabispe.h, config/rs6000/e500.h,
3124 config/rs6000/freebsd.h, config/rs6000/rs6000-protos.h,
3125 config/rs6000/netbsd.h, config/rs6000/e500-double.h,
3126 config/rs6000/aix.h, config/rs6000/vxworks.h,
3127 config/rs6000/40x.md, config/rs6000/aix51.h,
3128 config/rs6000/sysv4.h, config/arc/arc-protos.h, config/arc/arc.md,
3129 config/arc/arc.c, config/arc/arc.opt, config/arc/arc-modes.def,
3130 config/arc/arc.h, config/mcore/mcore-elf.h,
3131 config/mcore/mcore-protos.h, config/mcore/predicates.md,
3132 config/mcore/mcore.md, config/mcore/mcore.c,
3133 config/mcore/mcore.opt, config/mcore/mcore.h,
3134 config/mcore/mcore-pe.h, config/darwin.c, config/freebsd-nthr.h,
3135 config/score/predicates.md, config/score/score-version.h,
3136 config/score/score-protos.h, config/score/misc.md,
3137 config/score/elf.h, config/score/score.c, config/score/mac.md,
3138 config/score/score7.md, config/score/score.h,
3139 config/score/score-conv.h, config/score/score-mdaux.c,
3140 config/score/score.md, config/score/score.opt,
3141 config/score/score-modes.def, config/score/score-mdaux.h,
3142 config/score/mul-div.S, config/arm/uclinux-elf.h,
3143 config/arm/semi.h, config/arm/ecos-elf.h, config/arm/arm1020e.md,
3144 config/arm/symbian.h, config/arm/linux-elf.h,
3145 config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
3146 config/arm/elf.h, config/arm/aout.h, config/arm/arm.c,
3147 config/arm/thumb2.md, config/arm/vec-common.md, config/arm/coff.h,
3148 config/arm/strongarm-pe.h, config/arm/arm.h,
3149 config/arm/cortex-a8-neon.md, config/arm/semiaof.h,
3150 config/arm/cortex-a8.md, config/arm/uclinux-eabi.h,
3151 config/arm/arm-modes.def, config/arm/linux-eabi.h,
3152 config/arm/rtems-elf.h, config/arm/neon-schedgen.ml,
3153 config/arm/arm-cores.def, config/arm/arm-protos.h,
3154 config/arm/vfp.md, config/arm/aof.h, config/arm/linux-gas.h,
3155 config/arm/wince-pe.h, config/arm/neon.md,
3156 config/arm/constraints.md, config/arm/neon.ml,
3157 config/arm/xscale-elf.h, config/arm/strongarm-coff.h,
3158 config/arm/arm.opt, config/arm/arm926ejs.md,
3159 config/arm/predicates.md, config/arm/iwmmxt.md,
3160 config/arm/arm_neon.h, config/arm/unknown-elf.h,
3161 config/arm/kaos-arm.h, config/arm/bpabi.h, config/arm/pe.opt,
3162 config/arm/neon-testgen.ml, config/arm/arm.md,
3163 config/arm/xscale-coff.h, config/arm/pe.c,
3164 config/arm/arm-generic.md, config/arm/pe.h,
3165 config/arm/kaos-strongarm.h, config/arm/freebsd.h,
3166 config/arm/neon-docgen.ml, config/arm/netbsd.h, config/arm/fpa.md,
3167 config/arm/strongarm-elf.h, config/arm/cirrus.md,
3168 config/arm/netbsd-elf.h, config/arm/vxworks.h,
3169 config/arm/neon-gen.ml, config/kaos.h, config/darwin-driver.c,
3170 config/pa/predicates.md, config/pa/pa64-hpux.h,
3171 config/pa/pa-hpux.opt, config/pa/som.h, config/pa/pa-hpux1010.opt,
3172 config/pa/pa-hpux1111.opt, config/pa/pa-pro-end.h,
3173 config/pa/elf.h, config/pa/fptr.c, config/pa/pa64-linux.h,
3174 config/pa/pa.md, config/pa/pa.opt, config/pa/pa-hpux.h,
3175 config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
3176 config/pa/pa-hpux1010.h, config/pa/pa-protos.h,
3177 config/pa/pa-osf.h, config/pa/pa-hpux1111.h, config/pa/pa-64.h,
3178 config/pa/milli64.S, config/pa/pa.c, config/pa/pa-linux.h,
3179 config/pa/pa.h, config/pa/pa32-linux.h, config/pa/pa64-hpux.opt,
3180 config/pa/pa64-regs.h, config/pa/pa-modes.def,
3181 config/pa/constraints.md, config/darwin9.h, config/mips/4100.md,
3182 config/mips/linux.h, config/mips/elfoabi.h, config/mips/elf.h,
3183 config/mips/sdb.h, config/mips/windiss.h, config/mips/rtems.h,
3184 config/mips/3000.md, config/mips/iris5.h, config/mips/5000.md,
3185 config/mips/7000.md, config/mips/9000.md, config/mips/4600.md,
3186 config/mips/linux64.h, config/mips/elforion.h,
3187 config/mips/constraints.md, config/mips/generic.md,
3188 config/mips/predicates.md, config/mips/4300.md,
3189 config/mips/mips-ps-3d.md, config/mips/iris.h, config/mips/24k.md,
3190 config/mips/mips.md, config/mips/mips.opt, config/mips/4k.md,
3191 config/mips/5k.md, config/mips/vr4120-div.S,
3192 config/mips/openbsd.h, config/mips/iris6.h, config/mips/4000.md,
3193 config/mips/mips-protos.h, config/mips/6000.md,
3194 config/mips/mips.c, config/mips/mips.h, config/mips/r3900.h,
3195 config/mips/74k.md, config/mips/netbsd.h, config/mips/vxworks.h,
3196 config/mips/mips-modes.def, config/mips/vr.h,
3197 config/soft-fp/t-softfp, config/openbsd.h, config/ptx4.h,
3198 config/freebsd-spec.h, config/vax/vax.c, config/vax/openbsd.h,
3199 config/vax/vax.h, config/vax/elf.h, config/vax/vax.md,
3200 config/vax/bsd.h, config/vax/vax.opt, config/vax/vax-modes.def,
3201 config/vax/openbsd1.h, config/vax/netbsd.h,
3202 config/vax/vax-protos.h, config/vax/netbsd-elf.h,
3203 config/vax/vaxv.h, config/vax/ultrix.h, config/freebsd.h,
3204 config/h8300/rtems.h, config/h8300/predicates.md,
3205 config/h8300/h8300.c, config/h8300/h8300.h, config/h8300/elf.h,
3206 config/h8300/h8300.md, config/h8300/h8300.opt,
3207 config/h8300/coff.h, config/h8300/h8300-protos.h,
3208 config/v850/v850.md, config/v850/predicates.md,
3209 config/v850/v850-c.c, config/v850/v850.c, config/v850/v850.opt,
3210 config/v850/v850.h, config/v850/v850-protos.h, config/vxworks.c,
3211 config/knetbsd-gnu.h, config/sol2-6.h, config/vxworks.h,
3212 config/mmix/mmix.h, config/mmix/predicates.md,
3213 config/mmix/mmix-protos.h, config/mmix/mmix.md,
3214 config/mmix/mmix.c, config/mmix/mmix.opt,
3215 config/mmix/mmix-modes.def, config/bfin/bfin.opt,
3216 config/bfin/rtems.h, config/bfin/bfin-modes.def,
3217 config/bfin/predicates.md, config/bfin/bfin-protos.h,
3218 config/bfin/bfin.c, config/bfin/bfin.h, config/bfin/bfin.md:
3219 Likewise.
3220
3221 2007-08-02 Richard Sandiford <richard@codesourcery.com>
3222
3223 * emit-rtl.c (reset_used_decls): Rename to...
3224 (set_used_decls): ...this. Set the used flag rather than clearing it.
3225 (unshare_all_rtl_again): Update accordingly. Set flags on argument
3226 DECL_RTLs rather than resetting them.
3227
3228 2007-08-02 Andreas Krebbel <krebbel1@de.ibm.com>
3229
3230 * config/s390/s390.md ("*xordi3_cconly"): Change xr to xg.
3231
3232 2007-08-01 Sandra Loosemore <sandra@codesourcery.com>
3233
3234 * reload.c (find_reloads_address_part): Pass correct MEMREFLOC
3235 argument to find_reloads_address.
3236
3237 2007-08-01 Daniel Jacobowitz <dan@codesourcery.com>
3238
3239 PR tree-optimization/32919
3240 * tree-ssa-sccvn.c (visit_phi): Do not visit abnormal PHIs.
3241 * tree-ssa-coalesce.c (ssa_conflicts_dump): New.
3242 (coalesce_ssa_name): Call it.
3243
3244 2007-08-01 Sandra Loosemore <sandra@codesourcery.com>
3245 David Ung <davidu@mips.com>
3246
3247 * config/mips/mips16.S (__mips16_unordsf2, __mips16_floatunsisf): New.
3248 (__mips16_unorddf2, __mips16_floatunsidf): New.
3249 * config/mips/mips.c (mips_init_libfuncs): Add optab entries for
3250 above functions.
3251 * config/mips/t-libgcc-mips16 (LIB1ASMFUNCS): Add new functions.
3252
3253 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
3254
3255 * tree-pretty-print.c (dump_generic_node): Dump OMP_SECTIONS_SWITCH.
3256 Display new operands of OMP_SECTIONS and OMP_CONTINUE.
3257 * tree.h (OMP_SECTIONS_CONTROL): New macro.
3258 (OMP_DIRECTIVE_P): Add OMP_SECTIONS_SWITCH.
3259 * omp-low.c (get_ws_args_for, determine_parallel_type,
3260 expand_omp_for_generic, expand_omp_for_static_nochunk,
3261 expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
3262 Work with more precise CFG.
3263 (build_omp_regions_1): Handle OMP_SECTIONS_SWITCH.
3264 (lower_omp_sections): Emit OMP_SECTIONS_SWITCH. Add arguments to
3265 OMP_CONTINUE.
3266 * tree-gimple.c (is_gimple_stmt): Handle OMP_SECTIONS_SWITCH.
3267 * gimple-low.c (lower_stmt): Ditto.
3268 * tree-inline.c (estimate_num_insns_1): Ditto.
3269 * tree.def (OMP_SECTIONS, OMP_CONTINUE): Added new operands.
3270 (OMP_SECTIONS_SWITCH): New.
3271 * tree-cfgcleanup.c (cleanup_omp_return): New.
3272 (cleanup_tree_cfg_bb): Call cleanup_omp_return.
3273 * tree-cfg.c (make_edges): Create back edges for OMP_CONTINUE
3274 and exit edge for OMP_FOR. Handle OMP_SECTIONS_SWITCH.
3275 (tree_redirect_edge_and_branch): Handle omp constructs.
3276
3277 * fortran/trans-openmp.c (gfc_trans_omp_sections): Build OMP_SECTIONS
3278 with three arguments.
3279
3280 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
3281
3282 * tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only
3283 in loop closed ssa.
3284
3285 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
3286
3287 * tree-ssa-threadupdate.c (thread_through_all_blocks): Record that
3288 the loop structures may need fixing.
3289 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
3290 New functions.
3291 (cleanup_tree_cfg_loop): Removed.
3292 (cleanup_tree_cfg): If loops need fixing, call repair_loop_structures.
3293 * tree-predcom.c (tree_predictive_commoning): Return TODO_cleanup_cfg
3294 instead of running cleanup_tree_cfg_loop.
3295 * cfgloop.h (LOOPS_NEED_FIXUP): New constant.
3296 * tree-flow.h (cleanup_tree_cfg_loop): Declaration removed.
3297 (tree_predictive_commoning): Declaration changed.
3298 * passes.c (execute_function_todo): Do not use cleanup_tree_cfg_loop.
3299
3300 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
3301
3302 * doc/invoke.texi (l1-cache-size): Update documentation.
3303 (l2-cache-size): Document.
3304 * params.h (L2_CACHE_SIZE): New macro.
3305 * tree-ssa-loop-prefetch.c (L1_CACHE_SIZE_BYTES): Reflect
3306 that L1_CACHE_SIZE is in kB now.
3307 (L2_CACHE_SIZE_BYTES): New macro.
3308 (tree_ssa_prefetch_arrays): Show size in kB.
3309 * config/i386/i386.h (struct processor_costs): Add l1_cache_size
3310 and l2_cache_size fields.
3311 * config/i386/driver-i386.c (describe_cache): Detect cache size
3312 in kB.
3313 * config/i386/i386.c (size_cost, i386_cost, i486_cost,pentium_cost,
3314 pentiumpro_cost, geode_cost, k6_cost, athlon_cost, k8_cost,
3315 amdfam10_cost, pentium4_cost, nocona_cost, core2_cost,
3316 generic64_cost, generic32_cost): Add l1_cache_size and l2_cache_size.
3317 (override_options): Set l1-cache-size and l2-cache-size to default
3318 values if not specified otherwise.
3319 * params.def (PARAM_L1_CACHE_SIZE): Change to set in kB.
3320 (PARAM_L2_CACHE_SIZE): New.
3321
3322 2007-08-01 Nigel Stephens <nigel@mips.com>
3323 David Ung <davidu@mips.com>
3324 Thiemo Seufer <ths@mips.com>
3325 Chris Dearman <chris@mips.com>
3326 Richard Sandiford <richard@codesourcery.com>
3327
3328 * config.gcc (mips*-sde-elf*): New stanza.
3329 (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
3330 (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
3331 (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*, mips-*-elf*)
3332 (mipsel-*-elf*, mips64-*-elf*, mips64el-*-elf*, mips64orion-*-elf*)
3333 (mips64orionel-*-elf*, mips*-*-rtems*, mips-wrs-windiss)
3334 (mipstx39-*-elf*, mipstx39el-*-elf*): Add mips/t-libgcc-mips16
3335 to tmake_file.
3336 * config/mips/sde.h: New file.
3337 * config/mips/t-libgcc-mips16: Likewise.
3338 * config/mips/t-sde: Likewise.
3339 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove settings
3340 of _ABIN32, _ABI64, _ABIO32, _MIPS_SIM, _MIPS_SZLONG, _MIPS_SZPTR,
3341 _MIPS_FPSET and _MIPS_SZINT.
3342 * config/mips/iris.h (TARGET_OS_CPP_BUILTINS): Likewise.
3343 * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Remove separate
3344 insertion of a default -mips option. Use MIPS_32BIT_OPTION_SPEC.
3345 * config/mips/t-isa3264 (LIB1ASMSRC, LIB1ASMFUNCS): Delete.
3346 * config/mips/t-r3900 (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
3347 * config/mips/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
3348 * config/mips/mips.h (TARGET_CPU_CPP_BUITINS): Define _ABIO32,
3349 _ABIN32, _ABI64, _ABIO64, _MIPS_SIM, _MIPS_SZINT, _MIPS_SZLONG,
3350 _MIPS_SZPTR and _MIPS_FPSET.
3351 (MIPS_ISA_LEVEL_SPEC): Inject the default -mips option if no
3352 architecture is specified.
3353 (MIPS_32BIT_OPTION_SPEC): New macro.
3354
3355 2007-07-31 Dan Hipschman <dsh@google.com>
3356
3357 * gcc.c (end_going_arg): New function.
3358 (do_spec_2): Use it.
3359 (do_spec_1): Use it.
3360
3361 2007-07-31 H.J. Lu <hongjiu.lu@intel.com>
3362
3363 * ddg.c (add_cross_iteration_register_deps): Declare bb_info
3364 only if ENABLE_CHECKING is defined.
3365
3366 2007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
3367
3368 * df.h (DF_RU, DF_RU_BB_INFO, df_ru_bb_info, df_ru,
3369 df_ru_add_problem, df_ru_get_bb_info): Removed.
3370 (DF_RD, DF_UREC, DF_CHAIN, DF_NOTE): Renumbered.
3371 * df-problems.c (df_ru_problem_data, df_ru_set_bb_info,
3372 df_ru_free_bb_info, df_ru_alloc,
3373 df_ru_bb_local_compute_process_def,
3374 df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
3375 df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
3376 df_ru_transfer_function, df_ru_free, df_ru_start_dump,
3377 df_ru_top_dump, df_ru_bottom_dump, df_problem problem_RU,
3378 df_ru_add_problem): Removed.
3379
3380 2007-07-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3381
3382 PR target/32847
3383 * pa.md (casesi32): Use match_scratch. Revise insn condition.
3384 (casesi32p, casesi64p): Likewise.
3385 (casesi): Adjust for above.
3386
3387 2007-07-31 Richard Sandiford <richard@codesourcery.com>
3388
3389 * mode-switching.c (create_pre_exit): Don't search past calls.
3390
3391 2007-07-31 Sandra Loosemore <sandra@codesourcery.com>
3392
3393 * config/mips/mips.h (ISA_HAS_SYNCI): Add !TARGET_MIPS16 test.
3394
3395 2007-07-31 Revital Eres <eres@il.ibm.com>
3396
3397 * ddg.c (add_deps_for_def): Rename to...
3398 (add_cross_iteration_register_deps): This. Change implementation
3399 to use only reaching def and def-use chains to construct the
3400 inter loop dependencies.
3401 (add_deps_for_use): Remove function.
3402 (build_inter_loop_deps): Call add_cross_iteration_register_deps
3403 function to build the inter loop dependencies.
3404 * modulo-sched.c (sms_schedule): Build only
3405 reaching def and def-use chains for the propose of the ddg
3406 construction.
3407
3408 2007-07-31 Julian Brown <julian@codesourcery.com>
3409
3410 * config/arm/neon.md (vec_set<mode>_internal, vec_setv2di_internal):
3411 New define_insns. Use correct RTL.
3412 (vec_set<mode>): Write as expander.
3413
3414 2007-07-31 Razya Ladelsky <razya@il.ibm.com>
3415
3416 * matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring
3417 to an unallocated space.
3418
3419 2007-07-30 Jan Sjodin <jan.sjodin@amd.com>
3420
3421 * tree-data-ref.c
3422 (split_constant_offset): Enable split_constant_offset to extract
3423 constants from other statements.
3424 * tree-vect-transform.c
3425 (vect_create_addr_base_for_vector_ref): Generate data_ref_base
3426 to a temp var. Force base_offset to be simple.
3427
3428 2007-07-30 Seongbae Park <seongbae.park@gmail.com>
3429
3430 * df-scan.c (df_scan_verify): Remove artificial limit on
3431 the number of blocks for verification.
3432 * df-problems.c (df_lr_bb_local_compute, df_simulate_find_defs,
3433 df_simulate_defs): Avoid unnecessary insn checking for defs.
3434
3435 2007-07-29 Mark Mitchell <mark@codesourcery.com>
3436
3437 * config/m68k/lb1sf68.asm (FUNC): New macro.
3438 (__mulsi3): Use it.
3439 (__udivsi3): Likewise.
3440 (__divsi3): Likewise.
3441 (__umodsi3): Likewise.
3442 (__modsi3): Likewise.
3443 (__subdf3): Likewise.
3444 (__adddf3): Likewise.
3445 (__muldf3): Likewise.
3446 (__divdf3): Likewise.
3447 (__negdf2): Likewise.
3448 (__cmpdf2): Likewise.
3449 (__subsf3): Likewise.
3450 (__addsf3): Likewise.
3451 (__mulsf3): Likewise.
3452 (__divsf3): Likewise.
3453 (__negsf2): Likewise.
3454 (__cmpsf2): Likewise.
3455 (__eqdf2): Likewise.
3456 (__nedf2): Likewise.
3457 (__gtdf2): Likewise.
3458 (__gedf2): Likewise.
3459 (__ltdf2): Likewise.
3460 (__ledf2): Likewise.
3461 (__eqsf2): Likewise.
3462 (__nesf2): Likewise.
3463 (__gtsf2): Likewise.
3464 (__gesf2): Likewise.
3465 (__ltsf2): Likewise.
3466 (__lesf2): Likewise.
3467
3468 2007-07-30 Ollie Wild <aaw@google.com>
3469
3470 * c-ppoutput.c (print_lines_directives_only): New function.
3471 (scan_translation_unit_directives_only): New function.
3472 (preprocess_file): Add call to scan_translation_unit_directives_only.
3473 * c-opts.c (c_common_handle_option): Add OPT_fdirectives_only.
3474 (sanitize_cpp_opts): Add default flag_dump_macros setting for
3475 -fdirectives-only. Add errors for -fdirectives-only conflict with
3476 -Wunused-macros and -traditional.
3477 (finish_options): Add builtin macro initialization for
3478 -fdirectives-only + -fpreprocessed.
3479 * c.opt (fdirectives-only): New.
3480 * doc/cppopts.texi (fdirectives-only): New.
3481
3482 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3483
3484 * alias.c (record_set, memory_modified_1): Constify.
3485 * bt-load.c (note_btr_set): Likewise.
3486 * caller-save.c (mark_set_regs, add_stored_regs): Likewise.
3487 * combine.c (set_nonzero_bits_and_sign_copies,
3488 expand_field_assignment, record_dead_and_set_regs_1,
3489 use_crosses_set_p, reg_dead_at_p_1, can_combine_p,
3490 likely_spilled_retval_1): Likewise.
3491 * config/frv/frv.c (frv_registers_update_1, frv_io_check_address,
3492 frv_io_handle_set): Likewise.
3493 * config/mips/mips.c (mips_sim_record_set,
3494 vr4130_true_reg_dependence_p_1): Likewise.
3495 * config/mt/mt.c (insn_dependent_p_1): Likewise.
3496 * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
3497 * config/sh/sh.c (flow_dependent_p_1): Likewise.
3498 * cselib.c (cselib_invalidate_rtx_note_stores): Likewise.
3499 * dce.c (mark_nonreg_stores_1, mark_nonreg_stores_2): Likewise.
3500 * ddg.c (mark_mem_store): Likewise.
3501 * df-problems.c (df_urec_mark_reg_change): Likewise.
3502 * function.c (update_epilogue_consts): Likewise.
3503 * gcse.c (record_set_info, record_last_set_info,
3504 mems_conflict_for_gcse_p, canon_list_insert, reg_set_info,
3505 reg_clear_last_set): Likewise.
3506 * global.c (mark_reg_store, mark_reg_clobber, reg_becomes_live):
3507 Likewise.
3508 * jump.c (reversed_comparison_code_parts): Likewise.
3509 * local-alloc.c (validate_equiv_mem_from_store, no_equiv,
3510 reg_is_set): Likewise.
3511 * loop-iv.c (mark_altered): Likewise.
3512 * mode-switching.c (reg_becomes_live): Likewise.
3513 * optabs.c (no_conflict_move_test): Likewise.
3514 * postreload-gcse.c (record_last_set_info, find_mem_conflicts):
3515 Likewise.
3516 * postreload.c (reload_combine_note_store, move2add_note_store):
3517 Likewise.
3518 * regmove.c (flags_set_1): Likewise.
3519 * regrename.c (note_sets, kill_clobbered_value, kill_set_value):
3520 Likewise.
3521 * reload1.c (mark_not_eliminable, forget_old_reloads_1):
3522 Likewise.
3523 * resource.c (update_live_status): Likewise.
3524 * rtl.h (set_of, note_stores): Likewise.
3525 * rtlanal.c (set_of_1, parms_set, struct set_of_data, set_of,
3526 note_stores, parms_set): Likewise.
3527 * sched-rgn.c (sets_likely_spilled_1): Likewise.
3528 * stack-ptr-mod.c (notice_stack_pointer_modification_1):
3529 Likewise.
3530 * var-tracking.c (count_stores, add_stores): Likewise.
3531
3532 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3533
3534 * alias.c (mems_in_disjoint_alias_sets_p,
3535 fixed_scalar_and_varying_struct_p, aliases_everything_p,
3536 nonoverlapping_component_refs_p, nonoverlapping_memrefs_p,
3537 write_dependence_p, mems_in_disjoint_alias_sets_p,
3538 read_dependence, true_dependence, canon_true_dependence,
3539 anti_dependence, output_dependence): Constify.
3540 * combine.c (extended_count): Likewise.
3541 * cse.c (cse_rtx_varies_p, hash_rtx, exp_equiv_p): Likewise.
3542 * cselib.c (get_value_hash, references_value_p,
3543 cselib_reg_set_mode, cselib_rtx_varies_p): Likewise.
3544 * cselib.h (cselib_reg_set_mode, references_value_p): Likewise.
3545 * emit-rtl.c (mem_expr_equal_p, active_insn_p): Likewise.
3546 * function.c (contains, prologue_epilogue_contains,
3547 sibcall_epilogue_contains): Likewise.
3548 * jump.c (simplejump_p, condjump_p, condjump_in_parallel_p,
3549 pc_set, any_uncondjump_p, any_condjump_p, onlyjump_p,
3550 only_sets_cc0_p, sets_cc0_p, rtx_renumbered_equal_p, true_regnum,
3551 reg_or_subregno): Likewise.
3552 * recog.c (asm_noperands): Likewise.
3553 * reload1.c (function_invariant_p): Likewise.
3554 * rtl.h (mem_expr_equal_p, active_insn_p, rtx_varies_p,
3555 rtx_addr_varies_p, asm_noperands, exp_equiv_p, hash_rtx,
3556 condjump_p, any_condjump_p, any_uncondjump_p, pc_set,
3557 simplejump_p, onlyjump_p, only_sets_cc0_p, sets_cc0_p,
3558 true_regnum, reg_or_subregno, condjump_in_parallel_p,
3559 extended_count, prologue_epilogue_contains,
3560 sibcall_epilogue_contains, function_invariant_p, true_dependence,
3561 canon_true_dependence, read_dependence, anti_dependence,
3562 output_dependence): Likewise.
3563 * rtlanal.c (rtx_varies_p, rtx_addr_varies_p): Likewise.
3564
3565 2007-07-30 Julian Brown <julian@codesourcery.com>
3566
3567 * config/arm/neon.md (V_ext): New mode attribute.
3568 (neon_vget_lane<mode>): Replace with define_expand.
3569 (neon_vget_lane<mode>_sext_internal)
3570 (neon_vget_lane<mode>_zext_internal): New define_insns for double
3571 and quad precision vectors.
3572 (neon_vget_lanedi): Add bounds check. Remove dead comment.
3573 * config/arm/neon.ml (get_lane): Make 32-bit get-lane intrinsics
3574 have typeless 32-bit result.
3575
3576 2007-07-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
3577
3578 PR tree-opt/32527
3579 * tree-affine.h (aff_tree): The type of rest is sizetype for types
3580 of pointers.
3581 * tree-affine.c (aff_combination_scale): If type is a pointer type,
3582 use sizetype for rest.
3583 (aff_combination_add_elt): Likewise. Don't specialize pointer types.
3584 (aff_combination_convert): Don't convert rest for pointer types.
3585
3586 2007-07-28 Daniel Berlin <dberlin@dberlin.org>
3587
3588 * Makefile.in (tree-ssa-alias.o): Add alloc-pool.h
3589
3590 * tree-ssa-alias.c: Add alloc-pool.h.
3591 (init_alias_info): Free alias_bitmap_obstack.
3592 (delete_alias_info): Call delete_mem_ref_stats.
3593 (get_mem_sym_stats_for): Use alloc_pool.
3594 (init_mem_ref_stats): Do not delete mem_ref_stats here.
3595 (delete_mem_sym_stats): Removed.
3596
3597 2007-07-29 Sebastian Pop <sebpop@gmail.com>
3598
3599 * tree-data-ref.c (add_multivariate_self_dist): Parametric access
3600 functions cannot be represented as classical distance vectors.
3601
3602 2007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3603
3604 * attribs.c (hash_attr, eq_attr, init_attributes): Constify.
3605 * builtins.c (validate_arg, builtin_mathfn_code,
3606 validate_arglist): Likewise.
3607 * calls.c (call_expr_flags): Likewise.
3608 * combine.c (reg_nonzero_bits_for_combine,
3609 reg_num_sign_bit_copies_for_combine, get_last_value,
3610 reg_truncated_to_mode): Likewise.
3611 * emit-rtl.c (subreg_lowpart_p): Likewise.
3612 * expr.c (highest_pow2_factor_for_target,
3613 categorize_ctor_elements_1, categorize_ctor_elements,
3614 count_type_elements, contains_packed_reference,
3615 highest_pow2_factor, highest_pow2_factor_for_target): Likewise.
3616 * fold-const.c (may_negate_without_overflow_p, int_const_binop,
3617 fold_convertible_p, operand_equal_p, tree_swap_operands_p,
3618 native_encode_int, native_encode_real, native_encode_complex,
3619 native_encode_vector, native_encode_expr, native_interpret_int,
3620 native_interpret_real, native_interpret_complex,
3621 native_interpret_vector, native_interpret_expr): Likewise.
3622 * function.c (use_register_for_decl): Likewise.
3623 * gimplify.c (get_name): Likewise.
3624 * langhooks-def.h (lhd_return_null_const_tree): New.
3625 (LANG_HOOKS_GET_CALLEE_FNDECL): Use it.
3626 * langhooks.c (lhd_return_null_const_tree): New.
3627 * langhooks.h (lang_get_callee_fndecl): Constify.
3628 * output.h (constructor_static_from_elts_p): Likewise.
3629 * rtl-factoring.c (gen_symbol_ref_rtx_for_label): Likewise.
3630 * rtl.h (nonzero_bits, num_sign_bit_copies, truncated_to_mode,
3631 subreg_lowpart_p, noop_move_p, struct rtl_hooks): Likewise.
3632 * rtlanal.c (cached_nonzero_bits, nonzero_bits1,
3633 cached_num_sign_bit_copies, num_sign_bit_copies1, noop_move_p,
3634 nonzero_bits, num_sign_bit_copies, truncated_to_mode): Likewise.
3635 * rtlhooks-def.h (reg_nonzero_bits_general,
3636 reg_num_sign_bit_copies_general, reg_truncated_to_mode_general):
3637 Likewise.
3638 * rtlhooks.c (reg_num_sign_bit_copies_general,
3639 reg_nonzero_bits_general, reg_truncated_to_mode_general):
3640 Likewise.
3641 * stmt.c (warn_if_unused_value, is_body_block): Likewise.
3642 * stor-layout.c (mode_for_size_tree): Likewise.
3643 * tree-ssa-loop-im.c (memref_eq): Likewise.
3644 * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): Likewise.
3645 * tree.c (contains_placeholder_p, type_list_equal,
3646 simple_cst_equal, get_callee_fndecl, operand_equal_for_phi_arg_p):
3647 Likewise.
3648 * tree.h (tree_int_cst_sign_bit, may_negate_without_overflow_p,
3649 mode_for_size_tree, categorize_ctor_elements, count_type_elements,
3650 contains_placeholder_p, contains_packed_reference,
3651 get_callee_fndecl, operand_equal_for_phi_arg_p,
3652 warn_if_unused_value, is_body_block, native_encode_expr,
3653 native_interpret_expr, fold_convertible_p, operand_equal_p,
3654 int_const_binop, tree_swap_operands_p, builtin_mathfn_code,
3655 validate_arglist, simple_cst_equal, type_list_equal,
3656 use_register_for_decl, call_expr_flags, get_name,
3657 highest_pow2_factor): Likewise.
3658 (const_call_expr_arg_iterator_d,
3659 init_const_call_expr_arg_iterator, next_const_call_expr_arg,
3660 first_const_call_expr_arg, more_const_call_expr_args_p,
3661 FOR_EACH_CONST_CALL_EXPR_ARG): New.
3662 * varasm.c (constructor_static_from_elts_p): Constify.
3663
3664 2007-07-28 Kazu Hirata <kazu@codesourcery.com>
3665
3666 * cfglayout.c, config/arm/arm.c, config/arm/cortex-a8.md,
3667 config/arm/neon-schedgen.ml, config/arm/neon.ml,
3668 config/arm/vec-common.md, config/ia64/div.md, cselib.c,
3669 df-core.c, df.h, dominance.c, optabs.c, opts.c, reg-stack.c,
3670 regstat.c, target.h, tree-ssa-live.c, tree-ssa-pre.c,
3671 tree-vect-transform.c, tree.def: Fix comment typos. Follow
3672 spelling conventions.
3673 * doc/invoke.texi: Follow spelling conventions.
3674
3675 2007-07-29 Vladimir Yanovsky <yanov@il.ibm.com>
3676 Revital Eres <eres@il.ibm.com>
3677
3678 * modulo-sched.c (sms_schedule): Avoid loops which includes
3679 auto-increment instructions.
3680
3681 2007-07-28 Richard Guenther <rguenther@suse.de>
3682
3683 PR middle-end/32920
3684 * fold-const.c (fold_cond_expr_with_comparison): Convert
3685 operand zero of MIN/MAX_EXPR to correct type.
3686
3687 2007-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3688
3689 * calls.c (special_function_p, setjmp_call_p, alloca_call_p,
3690 flags_from_decl_or_type): Constify.
3691 * gcc.c (do_spec_1): Likewise.
3692 * print-tree.c (dump_addr, print_node_brief): Likewise.
3693 * tree-cfg.c (stmt_starts_bb_p, is_ctrl_stmt, computed_goto_p,
3694 simple_goto_p, tree_can_make_abnormal_goto, stmt_starts_bb_p,
3695 tree_purge_all_dead_eh_edges): Likewise.
3696 * tree-flow.h (is_ctrl_stmt, computed_goto_p, simple_goto_p,
3697 tree_can_make_abnormal_goto, tree_purge_all_dead_eh_edges):
3698 Likewise.
3699 * tree.c (expr_location, expr_has_location, expr_locus,
3700 expr_filename, expr_lineno, get_inner_array_type,
3701 fields_compatible_p): Likewise.
3702 * tree.h (get_inner_array_type, fields_compatible_p,
3703 expr_location, expr_has_location, expr_locus, expr_filename,
3704 expr_lineno, dump_addr, print_node_brief, flags_from_decl_or_type,
3705 setjmp_call_p, alloca_call_p): Likewise.
3706
3707 2007-07-28 Daniel Berlin <dberlin@dberlin.org>
3708
3709 * timevar.def: Add TV_CALL_CLOBBER, TV_FLOW_SENSITIVE,
3710 TV_FLOW_INSENSITIVE.
3711
3712 * tree-ssa-alias.c (compute_call_clobbered): Push/pop
3713 TV_CALL_CLOBBER.
3714 (compute_flow_sensitive_aliasing): Ditto for TV_FLOW_SENSITIVE.
3715 (compute_flow_insensitive_aliasing): Ditto for
3716 TV_FLOW_INSENSITIVE.
3717
3718 2007-07-27 Jan Hubicka <jh@suse.cz>
3719
3720 * config/i386/i386.c (register_move_cost): Remove accidentally
3721 comitted #if 0 block.
3722
3723 * attribs.c: Include hashtab.h
3724 (attribute_hash): New.
3725 (substring): New structure.
3726 (extract_attribute_substring, substring_hash, hash_attr, eq_attr):
3727 New function.
3728 (init_attributes): Initialize attribute hash.
3729 (decl_attributes): Use attribute hash.
3730 * Makefile.in (attribs.c): Depend on hashtab.h.
3731
3732 2007-07-27 Steve Ellcey <sje@cup.hp.com>
3733
3734 * config/ia64/vect.md (vec_initv2si): Remove bad BIG_ENDIAN test.
3735
3736 2007-07-27 Richard Sandiford <richard@codesourcery.com>
3737
3738 * doc/invoke.texi (mdsp, mdspr2): Document the __mips_dsp,
3739 __mips_dspr2 and __mips_dsp_rev macros.
3740 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dsp_rev.
3741
3742 2007-07-27 Douglas Gregor <doug.gregor@gmail.com>
3743
3744 * c-common.h (enum rid): Add RID_DECLTYPE, update RID_LAST_CXX0X.
3745
3746 2007-07-26 Kenneth Zadeck <zadeck@naturalbridge.com>
3747
3748 PR middle-end/32749
3749
3750 * df-problems.c (df_create_unused_note): Removed do_not_gen parm
3751 and the updating of the live and do_not_gen sets.
3752 (df_note_bb_compute): Added updating of live and do_not_gen sets
3753 for regular defs so that the case of clobber inside conditional
3754 call is processed correctly.
3755
3756 2007-07-27 Zdenek Dvorak <dvorakz@suse.cz>
3757
3758 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the
3759 operands with compatible type.
3760
3761 2007-07-27 Richard Sandiford <richard@codesourcery.com>
3762
3763 * expr.h (store_bit_field): Don't return a value.
3764 * expmed.c (check_predicate_volatile_ok): New function.
3765 (store_bit_field_1): New function, extracted from store_bit_field.
3766 Take a fallback_p argument and return true if the operation succeeded.
3767 Only use store_fixed_bit_field if fallback_p. Don't recompute
3768 mode_for_extraction; use op_mode instead. Try forcing memories
3769 into registers if the insv expander fails.
3770 (store_bit_field): Use store_bit_field_1 with fallback_p true.
3771 Don't return a value.
3772 (convert_extracted_bit_field): New function, extracted from
3773 store_bit_field.
3774 (extract_bit_field_1): Likewise. Take a fallback_p argument
3775 and return NULL if the operation succeeded. Only use
3776 extract_fixed_bit_field if fallback_p. Only calculate one
3777 extraction mode. Combine code for extv and extzv. Try forcing
3778 memories into registers if the ext(z)v expander fails.
3779 (extract_bit_field): Use extract_bit_field_1 with fallback_p true.
3780
3781 2007-07-27 Richard Sandiford <rsandifo@nildram.co.uk>
3782
3783 * df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags
3784 into bitfields.
3785 (df_ref): Likewise. Put regno with other integer fields.
3786
3787 2007-07-27 Richard Sandiford <rsandifo@nildram.co.uk>
3788
3789 * df.h (df_mw_hardreg): Remove "loc" field.
3790 * df-scan.c (df_ref_record): Don't set it. Remove redundant
3791 local variable.
3792 * df-problems.c (df_whole_mw_reg_unused_p): New function,
3793 split out from df_set_unused_notes_for_mw. Return false for
3794 partial references. Assert that mw_reg is a REG when returning true.
3795 (df_set_unused_notes_for_mw): Use it. Use mw_reg instead of *loc.
3796 (df_whole_mw_reg_dead_p): New function, split out from
3797 df_set_dead_notes_for_mw. Return false for partial references.
3798 Assert that mw_reg is a REG when returning true.
3799 (df_set_dead_notes_for_mw): Use it. Use mw_reg instead of *loc.
3800 Remove redundant bitmap check.
3801
3802 2007-07-26 H.J. Lu <hongjiu.lu@intel.com>
3803
3804 * config/ia64/t-ia64 ($(T)crtbegin.o): Removed.
3805 ($(T)crtend.o): Likwise.
3806 ($(T)crtbeginS.o): Likwise.
3807 ($(T)crtendS.o): Likwise.
3808 ($(T)crtfastmath.o): Likwise.
3809
3810 2007-07-26 Zdenek Dvorak <dvorakz@suse.cz>
3811
3812 * dominance.c (dom_computed, n_bbs_in_dom_tree): Removed.
3813 * function.h (dom_computed, n_bbs_in_dom_tree): New macros.
3814 * basic-block.h (struct control_flow_graph): Added x_dom_computed
3815 and x_n_bbs_in_dom_tree fields.
3816
3817 2007-07-26 Steve Ellcey <sje@cup.hp.com>
3818
3819 PR tree-optimization/32087
3820 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
3821 Do not call scale_bbs_frequencies_int with prob of zero.
3822
3823 2007-07-26 Julian Brown <julian@codesourcery.com>
3824
3825 * config/arm/arm-protos.h (neon_lane_bounds, neon_const_bounds)
3826 (neon_element_bits): Add prototypes.
3827 * config/arm/arm.c (bounds_check, neon_lane_bounds)
3828 (neon_const_bounds, neon_element_bits): New functions.
3829 * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_lanedi)
3830 (neon_vget_lanev2di, neon_vset_lane<mode>, neon_vset_lanedi)
3831 (neon_vset_lanev2di, neon_vdup_lane<mode>, neon_vdup_lanedi)
3832 (neon_vdup_lanev2di, neon_vcvt_n<mode>, neon_vmul_lane<mode>)
3833 (neon_vmull_lane<mode>, neon_vqdmull_lane<mode>)
3834 (neon_vqdmulh_lane<mode>, neon_vmla_lane<mode>)
3835 (neon_vmlal_lane<mode>, neon_vqdmlal_lane<mode>)
3836 (neon_vmls_lane<mode>, neon_vmlsl_lane<mode>)
3837 (neon_vqdmlsl_lane<mode>, neon_vext<mode>, neon_vshr_n<mode>)
3838 (neon_vshrn_n<mode>, neon_vqshrn_n<mode>, neon_vqshrun_n<mode>)
3839 (neon_vshl_n<mode>, neon_vshl_n<mode>, neon_vqshl_n<mode>)
3840 (neon_vqshlu_n<mode>, neon_vshll_n<mode>, neon_vsra_n<mode>)
3841 (neon_vsri_n<mode>, neon_vsli_n<mode>): Add bounds checks.
3842
3843 2007-07-26 Nathan Froyd <froydnj@codesourcery.com>
3844
3845 * config/vxworks.h (VXWORKS_LINK_SPEC): Fix typo.
3846 (HAVE_AS_GNU_ATTRIBUTE): Undefine.
3847
3848 2007-07-26 Mark Shinwell <shinwell@codesourcery.com>
3849 Julian Brown <julian@codesourcery.com>
3850
3851 * config/arm/arm.c (arm_mac_accumulator_is_mul_result): New.
3852 * config/arm/arm-protos.h (arm_mac_accumulator_is_mul_result): New.
3853 * config/arm/cortex-a8.md: New.
3854 * config/arm/cortex-a8-neon.md: New.
3855 * config/arm/neon-schedgen.ml: New.
3856 * config/arm/neon.md (vqh_mnem): New.
3857 (neon_type): New.
3858 (Is_float_mode): New.
3859 (Scalar_mul_8_16): New.
3860 (Is_d_reg): New.
3861 (V_mode_nunits): New.
3862 (All instruction patterns): Annotate with neon_type attribute
3863 values.
3864 * config/arm/arm.md: Include cortex-a8.md.
3865 (insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab
3866 values.
3867 Annotate instruction patterns accordingly.
3868 (generic_sched): Do not use generic scheduling for Cortex-A8.
3869 (generic_vfp): Do not use generic VFP scheduling for Cortex-A8.
3870
3871 2007-07-26 Daniel Jacobowitz <dan@codesourcery.com>
3872
3873 * fold-const.c (fold_read_from_constant_string): Use
3874 build_int_cst_type.
3875 * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
3876
3877 2007-07-26 Nick Clifton <nickc@redhat.com>
3878
3879 * tree-ssa-operands.h: Change copyright header to refer to version
3880 3 of the GNU General Public License and to point readers at the
3881 COPYING3 file and the FSF's license web page.
3882 * tree-vrp.c, regrename.c, attribs.c, loop-unswitch.c,
3883 sched-ebb.c, fwprop.c, tree-loop-linear.c, dwarf2asm.c,
3884 tree-into-ssa.c, dwarf2asm.h, tree-ssa-loop-im.c, sbitmap.c,
3885 targhooks.c, tree-dump.c, tree-complex.c, sbitmap.h, targhooks.h,
3886 tree-dump.h, regstat.c, see.c, machmode.h, hooks.c, cgraphbuild.c,
3887 hooks.h, genrecog.c, tree-ssa-threadupdate.c, gen-protos.c,
3888 flags.h, rtlhooks.c, gencheck.c, tree-ssa-loop-niter.c,
3889 opts-common.c, dbgcnt.def, tree-pretty-print.c, tracer.c,
3890 gengtype.c, mkconfig.sh, gengtype.h, tree-ssa-loop-unswitch.c,
3891 cgraph.c, c-lex.c, cgraph.h, libfuncs.h, cfgloopmanip.c,
3892 rtl-error.c, optabs.c, postreload-gcse.c, tree-ssa-loop-manip.c,
3893 optabs.h, genmddeps.c, defaults.h, postreload.c, value-prof.c,
3894 tree-ssa-loop-ch.c, tree-tailcall.c, gengenrtl.c, value-prof.h,
3895 genopinit.c, tree.c, tree.h, reload.c, tree-pass.h, ipa-cp.c,
3896 reload.h, bitmap.c, bitmap.h, tree-scalar-evolution.c,
3897 c-config-lang.in, tree-scalar-evolution.h, target.h, cppspec.c,
3898 rtlanal.c, ddg.c, lambda-mat.c, mips-tdump.c, ddg.h,
3899 tree-phinodes.c, mips-tfile.c, pointer-set.c, pointer-set.h,
3900 diagnostic.c, final.c, diagnostic.h, builtins.c, genoutput.c,
3901 gcc.c, lists.c, tree-ssa-alias-warnings.c, gcc.h, cfghooks.c,
3902 input.h, gensupport.c, fold-const.c, cfghooks.h, insn-notes.def,
3903 gensupport.h, builtin-attrs.def, sync-builtins.def, params.c,
3904 cfgloopanal.c, params.h, graphds.c, omp-low.c, tree-ssa-dse.c,
3905 graphds.h, gcov.c, cfg.c, genextract.c, ipa-reference.c,
3906 genautomata.c, tree-ssa-uncprop.c, auto-inc-dec.c, toplev.c,
3907 tree-gimple.c, ipa-reference.h, vmsdbgout.c, errors.c, toplev.h,
3908 reorg.c, tree-gimple.h, tree-chrec.c, pretty-print.c, errors.h,
3909 real.c, tree-chrec.h, pretty-print.h, debug.c, real.h, genemit.c,
3910 omega.c, c-cppbuiltin.c, genmultilib, debug.h, omega.h,
3911 tree-ssa-sccvn.c, genconfig.c, tree-ssa-sccvn.h, cgraphunit.c,
3912 regs.h, df-scan.c, vec.c, hosthooks-def.h, vec.h,
3913 tree-ssa-copyrename.c, scan.c, builtin-types.def, tree-ssa-ccp.c,
3914 scan.h, mode-classes.def, haifa-sched.c, dominance.c, dojump.c,
3915 double-int.c, gcov-io.c, dbxout.c, builtins.def, double-int.h,
3916 dbxout.h, tree-ssa-loop-ivopts.c, df-core.c, mode-switching.c,
3917 gengtype-lex.l, tree-nomudflap.c, modulo-sched.c, c-objc-common.c,
3918 hosthooks.h, c-objc-common.h, caller-save.c, graph.c,
3919 ipa-pure-const.c, graph.h, c-format.c, cse.c, fix-header.c,
3920 c-format.h, web.c, tree-stdarg.c, genpeep.c, tree-stdarg.h,
3921 tree-ssa-math-opts.c, xcoffout.c, tree-ssa-dom.c, tree-nrv.c,
3922 xcoffout.h, tree-ssa-propagate.c, ipa-utils.c,
3923 tree-ssa-propagate.h, tree-ssa-alias.c, loop-init.c, ipa-utils.h,
3924 gimple-low.c, rtl.def, c-tree.h, tree-ssa-sink.c, ipa-inline.c,
3925 mkmap-symver.awk, machmode.def, c-pch.c, cfganal.c, global.c,
3926 alloc-pool.c, c-semantics.c, alloc-pool.h, jump.c, ifcvt.c,
3927 dwarf2out.c, expr.c, cfgbuild.c, tree-browser.c, dwarf2out.h,
3928 expr.h, longlong.h, opts.c, gcov-iov.c, opts.h, dwarf2.h,
3929 genattrtab.c, genconditions.c, genattr.c, optc-gen.awk,
3930 timevar.def, tree-ssa-loop-ivcanon.c, hard-reg-set.h, predict.c,
3931 tree-ssa-loop.c, host-default.c, predict.h, recog.c, dbgcnt.c,
3932 recog.h, dbgcnt.h, c-aux-info.c, tree-ssa-address.c, timevar.c,
3933 dse.c, lcm.c, tree-ssa-ifcombine.c, timevar.h, dse.h,
3934 matrix-reorg.c, tree-vn.c, treestruct.def, fp-test.c, c-decl.c,
3935 tree-eh.c, c-errors.c, c-pretty-print.c, regmove.c,
3936 lambda-trans.c, c-pretty-print.h, et-forest.c, et-forest.h,
3937 ebitmap.c, configure.ac, local-alloc.c, function.c, langhooks.c,
3938 ebitmap.h, cppdefault.c, tree-vectorizer.c, function.h,
3939 langhooks.h, print-rtl.c, cppdefault.h, df.h, tree-vectorizer.h,
3940 sdbout.c, stor-layout.c, sdbout.h, rtlhooks-def.h, read-rtl.c,
3941 gcse.c, ipa-type-escape.c, vmsdbg.h, alias.c, gengtype-parse.c,
3942 ipa-type-escape.h, domwalk.c, alias.h, tree-if-conv.c, profile.c,
3943 init-regs.c, domwalk.h, ipa.c, gccbug.in, tree-data-ref.c,
3944 loop-unroll.c, tree-data-ref.h, tree-flow-inline.h, tree-affine.c,
3945 mkmap-flat.awk, tree-affine.h, tree-vect-analyze.c, c.opt, ggc.h,
3946 opt-gather.awk, c-typeck.c, gimplify.c, coretypes.h, exec-tool.in,
3947 insn-addr.h, tree-ssa-phiopt.c, c-pragma.c, c-pragma.h, calls.c,
3948 tree-ssa-coalesce.c, genmodes.c, loop-doloop.c, predict.def,
3949 dwarf.h, tree.def, rtl-factoring.c, lower-subreg.c, expmed.c,
3950 bt-load.c, ggc-common.c, genflags.c, tree-dfa.c, except.c,
3951 coverage.c, except.h, emit-rtl.c, cfgexpand.c, coverage.h,
3952 stringpool.c, cselib.c, emit-rtl.h, tree-cfgcleanup.c, c-opts.c,
3953 cselib.h, cfgcleanup.c, simplify-rtx.c, tree-ssa-pre.c, explow.c,
3954 tree-ssa-live.c, tree-sra.c, tree-ssa-live.h, tree-predcom.c,
3955 loop-invariant.c, genpreds.c, protoize.c, opth-gen.awk, c-dump.c,
3956 lambda.h, loop-iv.c, tree-mudflap.c, ipa-prop.c, print-tree.c,
3957 tree-mudflap.h, tree-ssa-copy.c, ipa-prop.h, cfglayout.c,
3958 tree-ssa-forwprop.c, c-convert.c, cfglayout.h, common.opt,
3959 ggc-zone.c, ggc-page.c, c-omp.c, tree-ssa-dce.c, gencodes.c,
3960 varasm.c, tree-vect-patterns.c, libada-mk.in, tree-ssa-ter.c,
3961 sched-deps.c, tree-nested.c, c-ppoutput.c, tree-ssa.c,
3962 target-def.h, tree-ssa-loop-prefetch.c, lambda-code.c,
3963 omp-builtins.def, rtl.c, regclass.c, stab.def, intl.c, rtl.h,
3964 intl.h, tree-inline.c, conditions.h, tree-inline.h, integrate.c,
3965 sched-int.h, tree-iterator.c, integrate.h, tree-iterator.h,
3966 genchecksum.c, tree-optimize.c, output.h, tree-vect-transform.c,
3967 tree-object-size.c, combine.c, tree-outof-ssa.c, addresses.h,
3968 bb-reorder.c, stack-ptr-mod.c, resource.c, var-tracking.c,
3969 cfgloop.c, system.h, resource.h, ggc-none.c, tree-profile.c,
3970 cfgloop.h, c-gimplify.c, c-common.c, opt-functions.awk,
3971 tree-vect-generic.c, tree-flow.h, df-problems.c, scan-decls.c,
3972 c-common.h, config.gcc, reg-stack.c, tlink.c, main.c, stub-objc.c,
3973 fixproto, config.host, Makefile.in, gccspec.c, sched-rgn.c,
3974 vecprim.h, basic-block.h, tree-ssa-structalias.c,
3975 tree-ssa-structalias.h, c-common.def, sched-vis.c, tree-cfg.c,
3976 passes.c, genconstants.c, c-incpath.c, c-incpath.h,
3977 struct-equiv.c, c-parser.c, tree-ssa-reassoc.c, varray.c, sreal.c,
3978 varray.h, dfp.c, sreal.h, combine-stack-adj.c, dfp.h,
3979 reg-notes.def, cfgrtl.c, config.build, varpool.c, gengtype-yacc.y,
3980 stmt.c, dce.c, tree-browser.def, prefix.c, statistics.h,
3981 params.def, dce.h, c-lang.c, gcov-dump.c, prefix.h,
3982 tree-ssanames.c, collect2.c, collect2.h, tree-ssa-threadedge.c,
3983 convert.c, convert.h, langhooks-def.h, reload1.c,
3984 tree-ssa-operands.c: Likewise.
3985
3986 2007-07-26 Jan Hubicka <jh@suse.cz>
3987
3988 * tree-ssa-live.c: Include debug.h and flags.h.
3989 (mark_scope_block_unused): New function.
3990 (remove_unused_scope_block_p): New function.
3991 (remove_unused_locals): Remove unused blocks too.
3992
3993 2007-07-25 Ian Lance Taylor <iant@google.com>
3994
3995 * combine.c (combine_max_regno): Remove. Remove all uses.
3996 (struct reg_stat_struct): Rename from struct reg_stat.
3997 (reg_stat_type): Define, and declare VECs.
3998 (reg_stat): Change from pointer to VEC. Change all uses.
3999 (combine_split_insns): New static function.
4000 (try_combine, find_split_point): Call it instead of split_insns.
4001
4002 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
4003
4004 * cfghooks.c (split_block): Fix the information about loop latch.
4005
4006 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
4007
4008 * cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches.
4009
4010 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
4011
4012 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
4013 Scan the new edge for loop exit info.
4014
4015 2007-07-25 Andreas Tobler <a.tobler@schweiz.org>
4016
4017 * config/darwin.c: Include debug.h.
4018
4019 2007-07-25 Steve Ellcey <sje@cup.hp.com>
4020
4021 PR target/32218
4022 * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.
4023
4024 2007-07-25 Steve Ellcey <sje@cup.hp.com>
4025
4026 * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode.
4027 (HARD_REGNO_MODE_OK): Ditto.
4028 (MODES_TIEABLE_P): Ditto.
4029 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
4030 (CLASS_MAX_NREGS): Ditto.
4031 * config/ia64/ia64.c (ia64_print_operand_address): Add R format.
4032 * config/ia64/ia64.md (divsf3_internal_thr): Removed.
4033 (divdf3_internal_thr): Removed.
4034 * config/ia64/div.md: New file.
4035 * config/ia64/constraints.md: Add H constraint.
4036
4037 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4038
4039 * sbitmap.c (sbitmap_verify_popcount, sbitmap_alloc_with_popcount,
4040 sbitmap_copy, sbitmap_copy_n, sbitmap_equal, sbitmap_empty_p,
4041 sbitmap_union_of_diff_cg, sbitmap_union_of_diff, sbitmap_not,
4042 sbitmap_difference, sbitmap_any_common_bits, sbitmap_a_and_b_cg,
4043 sbitmap_a_and_b, sbitmap_a_xor_b_cg, sbitmap_a_xor_b,
4044 sbitmap_a_or_b_cg, sbitmap_a_or_b, sbitmap_a_subset_b_p,
4045 sbitmap_a_or_b_and_c_cg, sbitmap_a_or_b_and_c,
4046 sbitmap_a_and_b_or_c_cg, sbitmap_a_and_b_or_c,
4047 sbitmap_first_set_bit, sbitmap_last_set_bit, dump_sbitmap,
4048 dump_sbitmap_file, debug_sbitmap, popcount_table,
4049 sbitmap_popcount): Constify.
4050 * sbitmap.h (const_sbitmap, const_sbitmap_ptr): New.
4051 (sbitmap_iterator, sbitmap_iter_init, dump_sbitmap,
4052 dump_sbitmap_file, sbitmap_copy, sbitmap_copy_n, sbitmap_equal,
4053 sbitmap_empty_p, sbitmap_union_of_diff, sbitmap_union_of_diff_cg,
4054 sbitmap_difference, sbitmap_not, sbitmap_a_or_b_and_c,
4055 sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c,
4056 sbitmap_a_and_b_or_c_cg, sbitmap_any_common_bits, sbitmap_a_and_b,
4057 sbitmap_a_and_b_cg, sbitmap_a_or_b, sbitmap_a_or_b_cg,
4058 sbitmap_a_xor_b, sbitmap_a_xor_b_cg, sbitmap_a_subset_b_p,
4059 sbitmap_first_set_bit, sbitmap_last_set_bit, debug_sbitmap,
4060 sbitmap_popcount, sbitmap_verify_popcount): Constify.
4061
4062 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4063
4064 * bitmap.c (hash_descriptor, eq_descriptor, bitmap_element_zerop,
4065 bitmap_copy, bitmap_clear_bit, popcount_table, bitmap_count_bits,
4066 bitmap_first_set_bit, bitmap_and, bitmap_and_into,
4067 bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into,
4068 bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior,
4069 bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p,
4070 bitmap_intersect_p, bitmap_intersect_compl_p,
4071 bitmap_ior_and_compl, bitmap_ior_and_compl_into,
4072 debug_bitmap_file, debug_bitmap, bitmap_print, bitmap_hash):
4073 Constify.
4074 * bitmap.h (bitmap_copy, bitmap_equal_p, bitmap_intersect_p,
4075 bitmap_intersect_compl_p, bitmap_count_bits, bitmap_and,
4076 bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into,
4077 bitmap_compl_and_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
4078 bitmap_xor_into, bitmap_ior_and_compl, bitmap_ior_and_compl_into,
4079 debug_bitmap, debug_bitmap_file, bitmap_print,
4080 bitmap_first_set_bit, bitmap_hash, bmp_iter_set_init,
4081 bmp_iter_and_init, bmp_iter_and_compl_init): Likewise.
4082
4083 2007-07-25 Daniel Berlin <dberlin@dberlin.org>
4084
4085 * config/darwin.c (darwin_override_options): Additional fix for
4086 debug info formats that don't support var tracking.
4087
4088 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4089
4090 * cselib.c (entry_and_rtx_equal_p): Constify.
4091 * gengtype.c (output_mangled_typename, write_types, write_local):
4092 Likewise.
4093 * gengtype.h (const_type_p): New.
4094 * see.c (eq_descriptor_extension, hash_descriptor_extension):
4095 Constify.
4096 * tlink.c (scan_linker_output): De-constify.
4097 * tree-ssa-loop-im.c (memref_eq): Constify.
4098 * tree-ssa-structalias.c (const_shared_bitmap_info_t): New.
4099 (shared_bitmap_hash, shared_bitmap_eq): Constify.
4100
4101 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4102
4103 * c-common.c (fname_as_string, c_type_hash): Constify.
4104 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
4105 * cgraph.c (edge_hash, edge_eq): Likewise.
4106 * dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise.
4107 * emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash,
4108 reg_attrs_htab_eq): Likewise.
4109 * except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq):
4110 Likewise.
4111 * genautomata.c (const_reserv_sets_t, const_unit_decl_t,
4112 const_decl_t, const_state_t, const_automata_list_el_t): New.
4113 (first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL,
4114 DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV,
4115 automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash,
4116 insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp,
4117 reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p,
4118 automata_list_hash, automata_list_eq_p, compare_states_for_equiv,
4119 compare_max_occ_cycle_nums, out_state_arcs_num,
4120 compare_transition_els_num, units_cmp, state_reservs_cmp):
4121 Constify.
4122 * genmodes.c (cmp_modes): Likewise.
4123 * ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise.
4124 * gimplify.c (compare_case_labels): Likewise.
4125 * ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise.
4126 * loop-unroll.c (si_info_hash, ve_info_hash): Likewise.
4127 * matrix-reorg.c (mtt_info_hash): Likewise.
4128 * postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise.
4129 * rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New.
4130 (htab_hash_bucket, htab_hash_elem): Constify.
4131 * tree-browser.c (TB_parent_eq): Likewise.
4132 * tree-scalar-evolution.c (hash_scev_info): Likewise.
4133 * tree-ssa-alias.c (sort_tags_by_id): Likewise.
4134 * tree-ssa-coalesce.c (const_coalesce_pair_p): New.
4135 (coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs):
4136 Constify.
4137 * tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise.
4138 * tree-ssa-pre.c (const_expr_pred_trans_t): New.
4139 (expr_pred_trans_hash, expr_pred_trans_eq): Constify.
4140 * tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t,
4141 const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t):
4142 New.
4143 (vn_reference_op_eq, vn_reference_hash, vn_reference_eq,
4144 vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash,
4145 vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify.
4146 * tree-ssa-threadupdate.c (redirection_data_hash,
4147 redirection_data_eq): Likewise.
4148 * tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise.
4149 * tree-ssa.c (var_ann_eq): Likewise.
4150 * tree-vrp.c (compare_case_labels): Likewise.
4151 * tree.c (int_cst_hash_hash, int_cst_hash_eq,
4152 tree_map_base_marked_p, type_hash_marked_p, tree_check_failed,
4153 tree_not_check_failed, tree_class_check_failed,
4154 tree_range_check_failed, tree_not_class_check_failed,
4155 omp_clause_check_failed, omp_clause_range_check_failed,
4156 tree_contains_struct_check_failed, tree_operand_check_failed):
4157 Likewise.
4158 * tree.h (tree_contains_struct_check_failed, tree_check_failed,
4159 tree_not_check_failed, tree_class_check_failed,
4160 tree_range_check_failed, tree_not_class_check_failed,
4161 tree_operand_check_failed, omp_clause_operand_check_failed,
4162 tree_operand_length): Likewise.
4163 * var-tracking.c (const_variable): New.
4164 (variable_htab_hash, variable_htab_eq): Constify.
4165 * varasm.c (const_desc_hash): Likewise.
4166
4167 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4168
4169 * expr.c (handled_component_p): Constify.
4170 * fold-const.c (fit_double_type): Likewise.
4171 * real.h (real_value_from_int_cst): Likewise.
4172 * tree-flow-inline.h (gimple_in_ssa_p,
4173 gimple_aliases_computed_p, gimple_addressable_vars,
4174 gimple_call_clobbered_vars, gimple_referenced_vars,
4175 gimple_global_var, gimple_nonlocal_all, gimple_var_anns,
4176 end_htab_p, end_referenced_vars_p, var_ann, function_ann,
4177 may_aliases, end_readonly_imm_use_p, has_zero_uses,
4178 has_single_use, single_imm_use, num_imm_uses, is_exec_stmt,
4179 is_label_stmt, is_global_var, phi_ssa_name_p,
4180 factoring_name_p, is_call_clobbered, tree_common_ann,
4181 op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p,
4182 unmodifiable_var_p, array_ref_contains_indirect_ref,
4183 ref_contains_array_ref, lookup_subvars_for_var,
4184 var_can_have_subvars, overlap_subvar, gimple_ssa_operands,
4185 gimple_mem_ref_stats): Likewise.
4186 * tree-flow.h (tree_common_ann, var_ann, function_ann,
4187 may_aliases, is_exec_stmt, is_label_stmt,
4188 ref_contains_array_ref, array_ref_contains_indirect_ref,
4189 var_can_have_subvars, overlap_subvar, is_call_clobbered,
4190 unmodifiable_var_p): Likewise.
4191 * tree-gimple.c (is_gimple_min_invariant): Likewise.
4192 * tree-gimple.h (is_gimple_min_invariant): Likewise.
4193 * tree.c (type_hash_list, attribute_hash_list, tree_size,
4194 cst_and_fits_in_hwi, real_value_from_int_cst,
4195 build_real_from_int_cst, integer_zerop, integer_onep,
4196 integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2,
4197 tree_floor_log2, real_zerop, real_onep, real_twop,
4198 real_minus_onep, really_constant_p, purpose_member, chain_member,
4199 list_length, fields_length, int_size_in_bytes, bit_position,
4200 int_bit_position, byte_position, int_byte_position, expr_align,
4201 array_type_nelts, tree_node_structure,
4202 type_contains_placeholder_1, iterative_hash_pointer,
4203 is_attribute_with_length_p, is_attribute_p, check_qualified_type,
4204 tree_map_base_eq, type_hash_list, type_hash_eq,
4205 attribute_hash_list, type_num_arguments, tree_int_cst_equal,
4206 tree_int_cst_lt, tree_int_cst_compare, host_integerp,
4207 tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
4208 simple_cst_list_equal, compare_tree_int, iterative_hash_expr,
4209 int_fits_type_p, get_containing_scope, decl_function_context,
4210 decl_type_context, omp_clause_operand_check_failed,
4211 initializer_zerop, int_cst_value, num_ending_zeros): Likewise.
4212 * tree.h (omp_clause_operand_check_failed, tree_size,
4213 build_real_from_int_cst, array_type_nelts, purpose_member,
4214 tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare,
4215 host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
4216 is_attribute_p, check_qualified_type, expr_align,
4217 int_size_in_bytes, bit_position, int_bit_position, byte_position,
4218 int_byte_position, list_length, fields_length, initializer_zerop,
4219 integer_zerop, integer_onep, integer_all_onesp, integer_pow2p,
4220 integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros,
4221 tree_node_structure, handled_component_p, get_containing_scope,
4222 decl_function_context, decl_type_context, real_zerop,
4223 type_num_arguments, fit_double_type, really_constant_p,
4224 int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr,
4225 compare_tree_int, chain_member, simple_cst_list_equal, real_onep,
4226 real_twop, real_minus_onep, int_cst_value): Likewise.
4227
4228 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4229
4230 * cfglayout.c (insn_scope, insn_line): Constify.
4231 * emit-rtl.c (const_int_htab_hash, const_int_htab_eq,
4232 const_double_htab_hash, const_double_htab_eq,
4233 mem_attrs_htab_hash): Likewise.
4234 * loop-iv.c (biv_eq): Likewise.
4235 * print-rtl.c (print_rtx, print_decl_name, print_mem_expr,
4236 print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range,
4237 debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl):
4238 Likewise.
4239 * rtl-error.c (location_for_asm, diagnostic_for_asm,
4240 error_for_asm, warning_for_asm, _fatal_insn,
4241 _fatal_insn_not_found): Likewise.
4242 * rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat,
4243 rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1,
4244 rtl_check_failed_type2, rtl_check_failed_code1,
4245 rtl_check_failed_code2, rtl_check_failed_code_mode,
4246 rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise.
4247 * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
4248 rtl_check_failed_type2, rtl_check_failed_code1,
4249 rtl_check_failed_code2, rtl_check_failed_code_mode,
4250 rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND,
4251 SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs,
4252 shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p,
4253 get_pool_mode, insn_line, insn_file, simplify_replace_rtx,
4254 mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p,
4255 rtx_unstable_p, get_integer_term, get_related_value,
4256 offset_within_block_p, reg_mentioned_p, count_occurrences,
4257 reg_referenced_p, reg_used_between_p, no_labels_between_p,
4258 single_set_2, multiple_sets, set_noop_p, refers_to_regno_p,
4259 reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p,
4260 find_reg_note, find_regno_note, find_reg_equal_equiv_note,
4261 find_constant_src, find_reg_fusage, find_regno_fusage,
4262 pure_call_p, remove_note, side_effects_p, volatile_refs_p,
4263 volatile_insn_p, may_trap_p, may_trap_after_code_motion_p,
4264 may_trap_or_fault_p, inequality_comparisons_p, tablejump_p,
4265 computed_jump_p, auto_inc_p, in_expr_list_p,
4266 remove_node_from_expr_list, loc_mentioned_in_p,
4267 label_is_jump_target_p, reversed_comparison_code_parts,
4268 debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find,
4269 print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single,
4270 print_inline_rtx): Likewise.
4271 * rtlanal.c (covers_regno_p, covers_regno_no_parallel_p,
4272 computed_jump_p_1, nonzero_bits1, rtx_unstable_p,
4273 rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p,
4274 get_integer_term, get_related_value, offset_within_block_p,
4275 count_occurrences, reg_mentioned_p, no_labels_between_p,
4276 reg_used_between_p, reg_referenced_p, single_set_2,
4277 multiple_sets, set_noop_p, refers_to_regno_p,
4278 reg_overlap_mentioned_p, dead_or_set_p,
4279 covers_regno_no_parallel_p, covers_regno_p,
4280 dead_or_set_regno_p, find_reg_note, find_regno_note,
4281 find_reg_equal_equiv_note, find_constant_src, find_reg_fusage,
4282 find_regno_fusage, pure_call_p, remove_note, in_expr_list_p,
4283 remove_node_from_expr_list, volatile_insn_p, volatile_refs_p,
4284 side_effects_p, may_trap_p_1, may_trap_p,
4285 may_trap_after_code_motion_p, may_trap_or_fault_p,
4286 inequality_comparisons_p, tablejump_p, computed_jump_p_1,
4287 computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb,
4288 subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise.
4289 * simplify-rtx.c (neg_const_int, plus_minus_operand_p,
4290 mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p):
4291 Likewise.
4292 * toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm,
4293 warning_for_asm): Likewise.
4294 * tree.h (print_rtl): Likewise.
4295 * varasm.c (get_pool_mode): Likewise.
4296
4297 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4298
4299 * c-lex.c (c_lex_with_flags, lex_string): Constify.
4300 * c-ppoutput.c (print_line, pp_dir_change): Likewise.
4301 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
4302 * cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise.
4303 * cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise.
4304 * ddg.c (compare_sccs): Likewise.
4305 * df-scan.c (df_ref_compare, df_mw_compare): Likewise.
4306 * dfp.c (decimal_real_from_string, decimal_to_decnumber,
4307 decimal_to_binary, decimal_do_compare, decimal_real_to_decimal,
4308 decimal_do_fix_trunc, decimal_real_to_integer,
4309 decimal_real_to_integer2, decimal_real_maxval): Likewise.
4310 * dse.c (const_group_info_t): New.
4311 (invariant_group_base_eq, invariant_group_base_hash): Constify.
4312 * dwarf2out.c (const_dw_die_ref): New.
4313 (decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify.
4314 * tree-browser.c (TB_parent_eq): Likewise.
4315 * unwind-dw2-fde.c (__register_frame_info_bases,
4316 __deregister_frame_info_bases, fde_unencoded_compare, fde_split,
4317 add_fdes, linear_search_fdes, binary_search_unencoded_fdes):
4318 Likewise.
4319 * unwind-dw2-fde.h (get_cie, next_fde): Likewise.
4320 * unwind-dw2.c (uw_frame_state_for): Likewise.
4321 * value-prof.c (histogram_hash, histogram_eq): Likewise.
4322 * value-prof.h (const_histogram_value): New.
4323
4324 2007-07-25 Richard Sandiford <richard@codesourcery.com>
4325
4326 * config/mips/mips.c (machine_function): Add
4327 initialized_mips16_gp_pseudo_p.
4328 (mips16_gp_pseudo_reg): Do not emit the initialization of
4329 mips16_gp_pseudo_rtx when being called from the gimple cost-
4330 calculation routines; emit it on the first use outside those
4331 routines.
4332
4333 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4334
4335 * coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree):
4336 New.
4337
4338 * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
4339 RTVEC_ELT, XWINT, XCWINT, XCMWINT, XCNMPRV, BLOCK_SYMBOL_CHECK,
4340 RTL_FLAG_CHECK1, RTL_FLAG_CHECK2, RTL_FLAG_CHECK3,
4341 RTL_FLAG_CHECK4, RTL_FLAG_CHECK5, RTL_FLAG_CHECK6,
4342 RTL_FLAG_CHECK7, RTL_FLAG_CHECK8, LABEL_KIND, SET_LABEL_KIND):
4343 Preserve const-ness of parameters through use of __typeof(),
4344 also constify and tidy.
4345
4346 * tree.h (TREE_CHECK, TREE_NOT_CHECK, TREE_CHECK2,
4347 TREE_NOT_CHECK2, TREE_CHECK3, TREE_NOT_CHECK3, TREE_CHECK4,
4348 NON_TREE_CHECK4, TREE_CHECK5, TREE_NOT_CHECK5,
4349 CONTAINS_STRUCT_CHECK, TREE_CLASS_CHECK, TREE_RANGE_CHECK,
4350 OMP_CLAUSE_SUBCODE_CHECK, OMP_CLAUSE_RANGE_CHECK, EXPR_CHECK,
4351 GIMPLE_STMT_CHECK, NON_TYPE_CHECK, TREE_VEC_ELT_CHECK,
4352 PHI_NODE_ELT_CHECK, OMP_CLAUSE_ELT_CHECK, TREE_OPERAND_CHECK,
4353 TREE_OPERAND_CHECK_CODE, GIMPLE_STMT_OPERAND_CHECK,
4354 TREE_RTL_OPERAND_CHECK, TREE_CHAIN, TREE_TYPE): Likewise.
4355
4356 2007-07-25 Julian Brown <julian@codesourcery.com>
4357 Mark Shinwell <shinwell@codesourcery.com>
4358
4359 * config/alpha/alpha.c (alpha_mangle_fundamental_type): Rename to...
4360 (alpha_mangle_type): This.
4361 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
4362 (TARGET_MANGLE_TYPE): Define this instead.
4363 * config/arm/arm-protos.h (arm_mangle_type): Add prototype.
4364 * config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook.
4365 (arm_init_neon_builtins): Fix comment.
4366 (arm_mangle_map_entry): New.
4367 (arm_mangle_map): New.
4368 (arm_mangle_type): New.
4369 * config/i386/i386.c (ix86_mangle_fundamental_type): Rename to...
4370 (ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
4371 mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
4372 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
4373 (TARGET_MANGLE_TYPE): Define this instead.
4374 * config/ia64/ia64.c (ia64_mangle_fundamental_type): Rename to...
4375 (ia64_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
4376 mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
4377 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
4378 (TARGET_MANGLE_TYPE): Define this instead.
4379 * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename
4380 to...
4381 (rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT.
4382 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
4383 (TARGET_MANGLE_TYPE): Define this instead.
4384 * config/s390/s390.c (s390_mangle_fundamental_type): Rename to...
4385 (s390_mangle_type): This.
4386 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
4387 (TARGET_MANGLE_TYPE): Define this instead.
4388 * config/sparc/sparc.c (sparc_mangle_fundamental_type): Rename to...
4389 (sparc_mangle_type): This.
4390 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
4391 (TARGET_MANGLE_TYPE): Define this instead.
4392 * cp/mangle.c (write_type): Call mangle_type target hook on all
4393 types before mangling. Use original type, not main variant, as
4394 argument.
4395 * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to...
4396 (TARGET_MANGLE_TYPE): This.
4397 * target.h (gcc_target): Rename mangle_fundamental_type to
4398 mangle_type.
4399 * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to...
4400 (TARGET_MANGLE_TYPE): This. Note slightly different semantics.
4401
4402 2007-07-25 Julian Brown <julian@codesourcery.com>
4403 Paul Brook <paul@codesourcery.com>
4404 Joseph Myers <joseph@codesourcery.com>
4405 Mark Shinwell <shinwell@codesourcery.com>
4406
4407 * Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi.
4408 * config.gcc (arm*-*-*): Add arm_neon.h to extra headers.
4409 (with_fpu): Allow --with-fpu=neon.
4410 * config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
4411 * config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
4412 * config/arm/arm-modes.def (EI, OI, CI, XI): New modes.
4413 * config/arm/arm-protos.h (neon_immediate_valid_for_move)
4414 (neon_immediate_valid_for_logic, neon_output_logic_immediate)
4415 (neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret)
4416 (neon_emit_pair_result_insn, neon_disambiguate_copy)
4417 (neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad)
4418 (output_move_neon): Add prototypes.
4419 * config/arm/arm.c (FL_NEON): New flag for NEON processor capability.
4420 (all_fpus): Add FPUTYPE_NEON.
4421 (fp_model_for_fpu): Add NEON field.
4422 (arm_return_in_memory): Return vectors <= 16 bytes in ARM registers.
4423 (arm_arg_partial_bytes): Allow NEON vectors to be passed partially
4424 in registers.
4425 (arm_legitimate_address_p): Don't support fancy addressing for NEON
4426 structure moves.
4427 (thumb2_legitimate_address_p): Likewise.
4428 (neon_valid_immediate): Recognize and prepare constants suitable for
4429 NEON instructions.
4430 (neon_immediate_valid_for_move): New function. Recognize and prepare
4431 immediates for NEON move instructions.
4432 (neon_immediate_valid_for_logic): New function. Recognize and
4433 prepare immediates for NEON logic instructions.
4434 (neon_output_logic_immediate): New function. Create asm string
4435 suitable for outputting immediate logic instructions.
4436 (neon_pairwise_reduce): New function. Implement reduction using
4437 pairwise operations.
4438 (neon_expand_vector_init): New function. Expand a (possibly
4439 non-constant) vector initialization.
4440 (neon_vector_mem_operand): New function. Memory operands supported
4441 for quad-word loads/stores to/from ARM or NEON registers. Don't
4442 allow base+offset addressing for core regs.
4443 (neon_struct_mem_operand): New function. Valid mems for NEON
4444 structure moves.
4445 (coproc_secondary_reload_class): Enable NEON registers to be loaded
4446 from neon_vector_mem_operand addresses without a secondary register.
4447 (add_minipool_forward_ref): Handle >8-byte minipool entries.
4448 (add_minipool_backward_ref): Likewise.
4449 (dump_minipool): Likewise.
4450 (push_minipool_fix): Likewise.
4451 (output_move_quad): New function. Output quad-word moves, loads and
4452 stores using ARM registers.
4453 (output_move_vfp): Add support for vectors in VFP (NEON) D
4454 registers.
4455 (output_move_neon): Output a NEON load/store to/from a quadword
4456 register.
4457 (arm_print_operand): Implement new codes:
4458 - 'c' for unadorned integers (without a # sign).
4459 - 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian
4460 mode.
4461 - 'e', 'f' for the low and high D parts of a NEON Q register.
4462 - 'q' outputs a NEON Q register.
4463 - 'h' outputs ranges of D registers for VLDM/VSTM etc.
4464 - 'T' prints NEON opcode features from a coded bitmask.
4465 - 'F' is similar to T, but signed/unsigned codes both print as
4466 'i'.
4467 - 't' is similar to T, but 'u' is printed instead of 'p'.
4468 - 'O' prints 'r' if NEON instruction should perform rounding (as
4469 specified by bitmask), else prints nothing.
4470 - '#' is a punctuation character to stop operand numbers from
4471 running together with following digits in the assembler
4472 strings for instructions (when using mode attributes).
4473 (arm_assemble_integer): Handle extra NEON vector modes. Permute
4474 constant vectors in big-endian mode, where necessary.
4475 (arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers.
4476 Handle EI, OI, CI, XI modes.
4477 (ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3)
4478 (ashrv2si3): Rename IWMMXT2_BUILTINs to...
4479 (ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt)
4480 (lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names.
4481 (neon_builtin_type_bits): Add enumeration, one bit for each vector
4482 type.
4483 (v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP)
4484 (v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros
4485 to turn v8qi, etc. into bits defined above.
4486 (neon_itype): New enumeration. Classifications of NEON builtins.
4487 (neon_builtin_datum): Define struct. Contains information about
4488 a single builtin (with multiple modes).
4489 (CF): Define helper macro for...
4490 (VAR1...VAR10): Define builtins with a type, name and 1-10 different
4491 modes.
4492 (neon_builtin_data): New array. Define information about builtins
4493 for use during initialization/expansion.
4494 (arm_init_neon_builtins): New function.
4495 (arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is
4496 true.
4497 (neon_builtin_compare): New function.
4498 (locate_neon_builtin_icode): New function. Find an insn code for a
4499 builtin given a function code for that builtin. Also return type of
4500 builtin (NEON_BINOP, NEON_UNOP etc.).
4501 (builtin_arg): New enumeration. Types of arguments for builtins.
4502 (arm_expand_neon_args): New function. Expand a generic NEON builtin.
4503 Takes a variable argument list of builtin_arg types, terminated by
4504 NEON_ARG_STOP.
4505 (arm_expand_neon_builtin): New function. Expand a NEON builtin.
4506 (neon_reinterpret): New function. Expand NEON reinterpret intrinsic.
4507 (neon_emit_pair_result_insn): New function. Support returning pairs
4508 of vectors via a pointer.
4509 (neon_disambiguate_copy): New function. Set up operands for a
4510 multi-word copy such that registers do not get clobbered.
4511 (arm_expand_builtin): Call arm_expand_neon_builtin if fcode >=
4512 ARM_BUILTIN_NEON_BASE.
4513 (arm_file_start): Set float-abi attribute for NEON.
4514 (arm_vector_mode_supported_p): Enable NEON vector modes.
4515 (arm_mangle_map_entry): New.
4516 (arm_mangle_map): New.
4517 (arm_mangle_vector_type): New.
4518 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__
4519 when appropriate.
4520 (TARGET_NEON): New macro. Target supports NEON.
4521 (fputype): Add FPUTYPE_NEON.
4522 (UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used
4523 for vectorization based on command-line arg.
4524 (NEON_REGNO_OK_FOR_NREGS): Define.
4525 (VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE)
4526 (VALID_NEON_STRUCT_MODE): Define.
4527 (PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation.
4528 (arm_builtins): Add ARM_BUILTIN_NEON_BASE.
4529 * config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec.
4530 (consttable_16): Add pattern for outputting 16-byte minipool
4531 entries.
4532 (movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in
4533 vec-common.md).
4534 (vec-common.md, neon.md): Include md files.
4535 * config/arm/arm.opt (mvectorize-with-neon-quad): Add option.
4536 * config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define.
4537 (memory_constraint "Ut", "Un", "Us"): Define.
4538 * config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros.
4539 (MMX_char): New mode attribute.
4540 (addv8qi3, addv4hi3, addv2si3): Remove. Replace with...
4541 (*add<mode>3_iwmmxt): New insn pattern.
4542 (subv8qi3, subv4hi3, subv2si3): Remove. Replace with...
4543 (*sub<mode>3_iwmmxt): New insn pattern.
4544 (mulv4hi3): Rename to...
4545 (*mulv4hi3_iwmmxt): This.
4546 (smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3)
4547 (umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3)
4548 (uminv4hi3, uminv2si3): Remove. Replace with...
4549 (*smax<mode>3_iwmmxt, *umax<mode>3_iwmmxt, *smin<mode>3_iwmmxt)
4550 (*umin<mode>3_iwmmxt): These.
4551 (ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with...
4552 (ashr<mode>3_iwmmxt): This new pattern.
4553 (lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with...
4554 (lshr<mode>3_iwmmxt): This new pattern.
4555 (ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with...
4556 (ashl<mode>3_iwmmxt): This new pattern.
4557 * config/arm/neon-docgen.ml: New file. Generate documentation for
4558 intrinsics.
4559 * config/arm/neon-gen.ml: New file. Generate arm_neon.h header.
4560 * config/arm/arm_neon.h: New (autogenerated).
4561 * config/arm/neon-testgen.ml: New file. Generate NEON tests
4562 automatically.
4563 * config/arm/neon.md: New file. Define NEON instructions.
4564 * config/arm/neon.ml: New file. Abstract description of NEON
4565 instructions, used to generate arm_neon.h header, documentation and
4566 tests.
4567 * config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md.
4568 * vec-common.md: New file. Shared parts for iWMMXt and NEON vector
4569 support.
4570 * doc/extend.texi (ARM Built-in Functions): Rename and remove
4571 extraneous comma.
4572 (ARM NEON Intrinsics): New subsection.
4573 * doc/arm-neon-intrinsics.texi: New (autogenerated).
4574
4575 2007-07-25 Danny Smith <dannysmith@users.sourceforge.net>
4576
4577 * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove
4578 prototype.
4579
4580 2007-07-24 Jan Hubicka <jh@suse.cz>
4581
4582 * regclass.c (move_table): New type.
4583 (move_cost, may_move_in_cost, may_move_out_cost): Use it.
4584 (init_move_cost): Break out from ...
4585 (init_reg_sets_1): ... here; simplify computation of
4586 have_regs-of_mode and contains_reg_of_mode.
4587 (record_reg_classes): Unswitch internal loops.
4588 (copy_cost): Trigger lazy initialization of move cost
4589 (record_address_regs): Likewise.
4590
4591 2007-07-24 Daniel Berlin <dberlin@dberlin.org>
4592
4593 * config/darwin.c (darwin_override_options): Don't force on
4594 flag_var_tracking_uninit when no debug info is requested.
4595
4596 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
4597
4598 * cfgloop.c (init_loops_structure): New function.
4599 (flow_loops_find): Create root of the loop tree unconditionally.
4600
4601 2007-07-24 Daniel Jacobowitz <dan@codesourcery.com>
4602
4603 * tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert.
4604
4605 2007-07-24 Jan Hubicka <jh@suse.cz>
4606
4607 * caller-save.c: Include ggc.h, gt-caller-save.h
4608 (reg_save_code, reg_restore_code): Rename to ...
4609 (cached_reg_save_code, cached_reg_restore_code): ... those.
4610 (savepat, restpat, test_reg, test_mem, saveinsn, restinsn): New.
4611 (reg_save_code, reg_restore_code): New functions.
4612 (init_caller_save): Do not intialize
4613 reg_save_code/reg_restore_code tables.
4614 * Makefile.in: (gt-caller-save.h): New.
4615
4616 2007-07-24 Andreas Krebbel <krebbel1@de.ibm.com>
4617
4618 * tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand
4619 with the mode of the original operand instead of
4620 integer_one_node.
4621
4622 2007-07-23 Jan Hubicka <jH@suse.cz>
4623
4624 * i386.c (ix86_secondary_memory_needed): Break out to...
4625 (inline_secondary_memory_needed): ... here.
4626 (ix86_memory_move_cost): Break out to ...
4627 (inline_memory_move_cost): ... here; add support for IN value of 2 for
4628 maximum of input and output; fix handling of Q_REGS on 64bit.
4629 (ix86_secondary_memory_needed): Microoptimize.
4630
4631 2007-07-23 Sebastian Pop <sebpop@gmail.com>
4632
4633 * tree-data-ref.c (find_vertex_for_stmt, create_rdg_edge_for_ddr,
4634 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
4635 stmts_from_loop, known_dependences_p, build_rdg): New.
4636 * tree-data-ref.h: Depends on graphds.h.
4637 (rdg_vertex, RDGV_STMT, rdg_dep_type, rdg_edge, RDGE_TYPE): New.
4638 (build_rdg): Declared.
4639 * Makefile.in (TREE_DATA_REF_H): Depends on graphds.h.
4640
4641 2007-07-23 Daniel Berlin <dberlin@dberlin.org>
4642
4643 * tree-ssa-propagate.c (valid_gimple_expression_p): Match up with
4644 ccp_min_invariant.
4645
4646 2007-07-23 Peter Bergner <bergner@vnet.ibm.com>
4647 Jakub Jelinek <jakub@redhat.com>
4648
4649 PR middle-end/PR28690
4650 * optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow
4651 EQ compares.
4652 * rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER
4653 and MEM_POINTER operands over REG and MEM operands.
4654 (swap_commutative_operands_p): Change return value to bool.
4655 * rtl.h: Update the corresponding prototype.
4656 * tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary
4657 instead of gen_rtx_PLUS.
4658 * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Change return
4659 value to bool. Change function arguments to rtx's and update code
4660 to match.
4661 (simplify_plus_minus): Update the simplify_plus_minus_op_data_cmp
4662 calls to match the new declaration.
4663 * simplify-rtx.c (simplify_associative_operation): Don't
4664 reorder simplify_binary_operation arguments.
4665
4666 2007-07-23 Richard Sandiford <richard@codesourcery.com>
4667
4668 * config/mips/mips.c (override_options): Use mips_costs to derive
4669 the default branch cost.
4670 * config/mips/mips.h (BRANCH_COST): Use mips_branch_cost rather
4671 than mips_costs.
4672 * config/mips/mips.opt (mbranch-cost=): New option.
4673 * doc/invoke.texi (-mbranch-cost): Document new MIPS option.
4674
4675 2007-07-23 Richard Sandiford <richard@codesourcery.com>
4676
4677 * config/mips/mips.h (GR_REG_CLASS_P, COP_REG_CLASS_P): Delete.
4678 (SECONDARY_MEMORY_NEEDED): Delete commented-out definition.
4679 * config/mips/mips.c (mips_register_move_cost): Use reg_class_subset_p
4680 instead of GR_REG_CLASS_P and COP_REG_CLASS_P.
4681
4682 2007-07-23 Richard Sandiford <richard@codesourcery.com>
4683
4684 * config/mips/constraints.md (ks): New constraint.
4685 * config/mips/mips.md (*add<mode>3_sp1, *add<mode>3_sp2): Fold into...
4686 (*add<mode>3_mips16): ...here.
4687
4688 2007-07-21 Uros Bizjak <ubizjak@gmail.com>
4689
4690 * optabs.h (enum optab_index): Add new OTI_signbit.
4691 (signbit_optab): Define corresponding macro.
4692 (enum insn_code signbit_optab[]): Remove array.
4693 * optabs.c (init_optabs): Initialize signbit_optab using init_optab.
4694 (expand_copysign_absneg): If back end provides signbit insn, use it
4695 instead of bit operations on floating point argument.
4696 * builtins.c (enum insn_code signbit_optab[]): Remove array.
4697 (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code
4698 for availability of signbit insn.
4699
4700 * config/i386/i386.md (signbit<mode>2): New insn pattern to implement
4701 signbitf, signbit and signbitl built-ins as inline x87 intrinsics when
4702 SSE mode is not active.
4703 (isinf<mode>2): Disable for mfpmath=sse,387.
4704
4705 2007-07-22 Ben Elliston <bje@au.ibm.com>
4706
4707 * regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to
4708 `class' parameter.
4709 * struct-equiv.c (note_local_live): Likewise for `y_regno'.
4710
4711 2007-07-20 Richard Guenther <rguenther@suse.de>
4712
4713 * tree-cfg.c (verify_expr): COND_EXPRs can have any
4714 integral typed condition.
4715 * tree-ssa.c (useless_type_conversion_p): Do not preserve
4716 booleanness. Only preserve conversions from a non-base
4717 type to a base type, not in general between types with
4718 different TYPE_MIN_VALUE or TYPE_MAX_VALUE.
4719 * tree.def (COND_EXPR): Document that the condition
4720 can be of any integral type.
4721
4722 2007-07-20 Nigel Stephens <nigel@mips.com>
4723 Richard Sandiford <richard@codesourcery.com>
4724
4725 * config/mips/mips.h (mips_dwarf_regno): Declare.
4726 (DBX_REGISTER_NUMBER): Remove redundant brackets.
4727 (HI_REGNUM, LO_REGNUM): Define in an endian-dependent way.
4728 (AC1HI_REGNUM, AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM)
4729 (AC3HI_REGNUM, AC3LO_REGNUM, ACC_HI_REG_P): Delete.
4730 (reg_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
4731 (REG_CLASS_NAMES): Update accordingly.
4732 * config/mips/mips.c (mips_dwarf_regno): New array.
4733 (mips_regno_to_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
4734 (mips_subword): Remove special handling for accumulator registers.
4735 (override_options): Initiailize mips_dwarf_regno. Remove use
4736 of ACC_HI_REG_P.
4737 (mips_swap_registers): New function.
4738 (mips_conditional_register_usage): Swap accumulator registers
4739 around if TARGET_LITTLE_ENDIAN.
4740 (mips_cannot_change_mode_class): Remove special treatment of ACC_REGS.
4741 * config/mips/constraints.md (h, l): Use the endianness to choose
4742 between MD0_REG and MD1_REG.
4743 * config/mips/mips.md (*mfhilo_<mode>_macc): Use a fixed-string,
4744 alternative-dependent template.
4745
4746 2007-07-20 Richard Sandiford <richard@codesourcery.com>
4747
4748 * config/arm/arm.md (movsi): Use can_create_pseudo_p instead of
4749 no_new_pseudos.
4750
4751 2007-07-20 Zdenek Dvorak <dvorakz@suse.cz>
4752
4753 * function.c (thread_prologue_and_epilogue_insns): Fix exit
4754 predecessor fallthru flags.
4755
4756 2007-07-20 Zdenek Dvorak <dvorakz@suse.cz>
4757
4758 * tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands
4759 of compare to the same type.
4760 * cfgloopmanip.c (add_loop): Update information about loop exits.
4761 (loop_version): Remove the innermost loop requirement.
4762 * tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds
4763 to sizetype for pointers.
4764
4765 2007-07-18 H.J. Lu <hongjiu.lu@intel.com>
4766
4767 * Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd.
4768 (D64PBIT_FUNCS): Add _dd_to_tf and _tf_to_dd.
4769 (D128PBIT_FUNCS): Add _td_to_tf and _tf_to_td.
4770
4771 * config/dfp-bit.c: Empty for TFmode conversions.
4772
4773 2007-07-18 Caroline Tice <ctice@apple.com>
4774
4775 * var-tracking.c (find_src_status): Check for COND_EXEC insns
4776 and handle them correctly; check that src is not NULL before
4777 trying to use it.
4778 (find_src_set_src): Likewise.
4779
4780 2007-07-18 Bob Wilson <bob.wilson@acm.org>
4781
4782 * config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New.
4783 (struct alignment_context, init_alignment_context): New.
4784 (xtensa_expand_compare_and_swap, xtensa_expand_atomic): New.
4785 * config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default.
4786 (XCHAL_HAVE_S32C1I): Likewise.
4787 (TARGET_RELEASE_SYNC, TARGET_S32C1I): New.
4788 * config/xtensa/xtensa.md (UNSPECV_MEMW): New constant.
4789 (UNSPECV_S32RI, UNSPECV_S32C1I): Likewise.
4790 (ATOMIC, HQI): New macros.
4791 (memory_barrier, *memory_barrier): New.
4792 (sync_lock_releasesi): New.
4793 (sync_compare_and_swapsi, sync_compare_and_swap<mode>): New.
4794 (sync_lock_test_and_set<mode>): New.
4795 (sync_<atomic><mode>): New.
4796 (sync_old_<atomic><mode>, sync_new_<atomic><mode>): New.
4797 * config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New.
4798 (xtensa_expand_atomic): New.
4799
4800 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4801
4802 PR target/30652
4803
4804 * builtins.c (expand_builtin_interclass_mathfn): Provide a generic
4805 transformation for builtin ISNORMAL.
4806 (expand_builtin): Handle BUILT_IN_ISNORMAL.
4807 * builtins.def (BUILT_IN_ISNORMAL): New.
4808 * doc/extend.texi: Document isnormal.
4809
4810 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4811
4812 PR target/30652
4813
4814 * builtins.c (expand_builtin_interclass_mathfn): Allow for missing
4815 optabs infrastructure. Provide generic implementation for
4816 FINITE/ISFINITE.
4817 (expand_builtin): Handle FINITE/ISFINITE.
4818 (fold_builtin_classify): Make ISFINITE canonical instead of FINITE.
4819 (fold_builtin_1): Likewise.
4820
4821 * builtins.def (BUILT_IN_ISFINITE): New.
4822
4823 * doc/extend.texi: Document isfinite.
4824
4825 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4826
4827 PR target/30652
4828 PR middle-end/20558
4829
4830 * builtins.c (expand_builtin_interclass_mathfn): Provide a
4831 generic fallback for isinf.
4832 * c-cppbuiltin.c (builtin_define_float_constants): Move FP max
4833 calculation code ...
4834 * real.c (get_max_float): ... to here.
4835 * real.h (get_max_float): New.
4836
4837 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4838
4839 PR middle-end/32668
4840
4841 * builtin-attrs.def (ATTR_TYPEGENERIC,
4842 ATTR_CONST_NOTHROW_TYPEGENERIC): New.
4843
4844 * builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN,
4845 BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
4846 BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER,
4847 BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC.
4848
4849 * c-common.c (handle_type_generic_attribute): New.
4850 (c_common_attribute_table): Add "type generic".
4851
4852 * c-typeck.c (convert_arguments): Handle "type generic" functions.
4853
4854 2007-07-18 Daniel Berlin <dberlin@dberlin.org>
4855
4856 * tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
4857 * tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR
4858 properly.
4859
4860 2007-07-18 Rask Ingemann Lambertsen <rask@sygehus.dk>
4861
4862 PR target/32808
4863 * config/cris/cris.c (cris_print_index): Don't use XEXP before
4864 checking that the operand is an expression.
4865
4866 2007-07-19 Christoph von Wittich <Christoph_vW@reactos.org>
4867 Danny Smith <dannysmith@users.sourceforge.net>
4868
4869 PR/other 30335
4870 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put
4871 file mapping object in local namespace if Windows version later
4872 than NT4
4873
4874 2007-07-18 Richard Sandiford <richard@codesourcery.com>
4875
4876 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare.
4877 * config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
4878 arm_cannot_force_const_mem.
4879 (arm_cannot_force_const_mem): New function.
4880 * config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro.
4881 (LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead
4882 of arm_tls_referenced_p.
4883 * config/arm/arm.md (movsi): Split out-of-section constants when
4884 ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P.
4885 * config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
4886
4887 2007-07-18 Richard Sandiford <richard@codesourcery.com>
4888
4889 * config/mips/mips.md (clear_cache): Treat the size argument as Pmode.
4890
4891 2007-07-18 Richard Sandiford <richard@codesourcery.com>
4892
4893 * config/mips/mips.md (*extendqihi2): Convert the destination
4894 to SImode.
4895
4896 2007-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4897
4898 * config/pa/fptr.c: Update license header.
4899 * config/pa/milli64.S: Likewise.
4900
4901 2007-07-17 Nick Clifton <nickc@redhat.com>
4902
4903 * COPYING_v3: New file. Contains version 3 of the GNU General
4904 Public License.
4905 * COPYING.LIB_v3: New file. Contains version 3 of the GNU
4906 Lesser General Public License.
4907 * doc/include/gpl_v3.texi: New file. Contains version 3 of
4908 the GNU General Public License.
4909
4910 2007-07-17 Zdenek Dvorak <dvorakz@suse.cz>
4911
4912 PR rtl-optimization/32773
4913 * cfglayout.c (force_one_exit_fallthru): New function.
4914 (cfg_layout_finalize): Use it.
4915
4916 2007-07-16 Richard Guenther <rguenther@suse.de>
4917 Uros Bizjak <ubizjak@gmail.com>
4918
4919 * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
4920 before forcing it to gimple operand.
4921
4922 2007-07-16 Sandra Loosemore <sandra@codesourcery.com>
4923 David Ung <davidu@mips.com>
4924
4925 * config/mips/mips.h (TUNE_24K): Define.
4926 (TUNE_MACC_CHAINS): Add TUNE_24K.
4927 * config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to
4928 imadd.
4929 * config/mips/74k.md (r74k_int_mult): Split madd/msub to ..
4930 (r74k_int_madd): .. this new reservation.
4931 (define_bypass): Fixed bypasses for r74k_int_madd to use
4932 mips_linked_madd_p.
4933 * config/mips/24k.md (define_bypass): Define new
4934 r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p.
4935
4936 2007-07-16 Sandra Loosemore <sandra@codesourcery.com>
4937 Nigel Stephens <nigel@mips.com>
4938
4939 * config/mips/mips.md: Include 20kc.md.
4940 * config/mips/20kc.md: New file.
4941 * config/mips/mips.c (mips_rtx_cost_data): Fill in 20Kc costs.
4942 (mips_adjust_cost): Tweak for 20Kc.
4943 (mips_issue_rate): Likewise.
4944 * config/mips/mips.h (TUNE_20KC): Define.
4945
4946 2007-07-16 David Edelsohn <edelsohn@gnu.og>
4947
4948 * config/rs6000/rs6000.c (struct processor_cost): Add
4949 cache_line_size, l1_cache_lines, and simultaneous_prefetches
4950 fields.
4951 (*_cost): Add cache information.
4952 (rs6000_override_options): Set cache parameters.
4953
4954 2007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4955
4956 PR bootstrap/3456
4957 * config.gcc (mips-sgi-irix[56]*): Enable pthread support.
4958 * doc/install.texi (mips-sgi-irix6): pthread support works now.
4959
4960 2007-07-16 Paul Brook <paul@codesourcery.com>
4961
4962 PR target/32753
4963 * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.
4964 (cirrus_thumb2_movsi_insn): Ditto.
4965
4966 2007-07-15 Geoffrey Keating <geoffk@apple.com>
4967
4968 * config/rs6000/darwin-fallback.c (interpret_libc): Change
4969 CR2_REGNO to R_CR2.
4970
4971 2007-07-15 Andrew Haley <aph@redhat.com>
4972
4973 * unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL
4974 before looking in the context.
4975
4976 2007-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4977
4978 PR middle-end/32398
4979 PR middle-end/32769
4980 * pa-protos.h (pa_eh_return_handler_rtx): Declare.
4981 * pa.c (pa_extra_live_on_entry, rp_saved): Declare.
4982 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
4983 (pa_output_function_prologue): Use rp_saved and
4984 current_function_is_leaf to generate .CALLINFO statement.
4985 (hppa_expand_prologue): Set rp_saved.
4986 (hppa_expand_epilogue): Use rp_saved.
4987 (pa_extra_live_on_entry, pa_eh_return_handler_rtx): New functions.
4988 * pa.h (EH_RETURN_HANDLER_RTX): Use pa_eh_return_handler_rtx.
4989
4990 2007-07-14 Dirk Mueller <dmueller@suse.de>
4991
4992 * omega.c (coalesce): Fix memory leak on early exit.
4993 * matrix-reorg.c (check_allocation_function): Likewise.
4994 * tree-vect-transform.c (vect_get_new_vect_var): free result
4995 of concat().
4996 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
4997 pass pointer to edge vector
4998 (partition_hot_cold_basic_blocks): Fix memory leak.
4999 * collect2.c (prefix_from_string): Free temporary storage.
5000 * reload1.c (fixup_abnormal_edges): Free sbitmap.
5001
5002 2007-07-14 Kaz Kojima <kkojima@gcc.gnu.org>
5003
5004 * config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype.
5005 (DO_GLOBAL_DTORS_BODY): Likewise.
5006
5007 2007-07-14 Sandra Loosemore <sandra@codesourcery.com>
5008 Nigel Stephens <nigel@mips.com>
5009
5010 * config/mips/mips.c (mips_classify_symbol): Don't return
5011 SYMBOL_SMALL_DATA for constant pool addresses if
5012 TARGET_EMBEDDED_DATA is true.
5013
5014 2007-07-14 Uros Bizjak <ubizjak@gmail.com>
5015
5016 * config/i386/i386.c (init_mmx_sse_builtins): Define all builtins
5017 except __builtin_ia32_emms, __builtin_ia32_ldmxcsr,
5018 __builtin_ia32_stmxcsr, __builtin_ia32_maskmovq, __builtin_ia32_loadups,
5019 __builtin_ia32_storeups, __builtin_ia32_loadhps, __builtin_ia32_loadlps,
5020 __builtin_ia32_storehps, __builtin_ia32_storelps,
5021 __builtin_ia32_movntps, __builtin_ia32_movntq, __builtin_ia32_sfence,
5022 __builtin_ia32_femms, __builtin_ia32_maskmovdqu, __builtin_ia32_loadupd,
5023 __builtin_ia32_storeupd, __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
5024 __builtin_ia32_movnti, __builtin_ia32_movntpd, __builtin_ia32_movntdq,
5025 __builtin_ia32_clflush, __builtin_ia32_lfence, __builtin_ia32_mfence,
5026 __builtin_ia32_loaddqu, __builtin_ia32_storedqu, __builtin_ia32_monitor,
5027 __builtin_ia32_mwait, __builtin_ia32_lddqu, __builtin_ia32_movntdqa,
5028 __builtin_ia32_movntsd and __builtin_ia32_movntss as const builtins
5029 using def_builtin_const.
5030
5031 2007-07-14 Eric Botcazou <ebotcazou@adacore.com>
5032
5033 PR tree-optimization/32705
5034 * tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number.
5035 (simplify_binary_expression): Use SSA_VAL consistently.
5036
5037 2007-07-13 David Edelsohn <edelsohn@gnu.org>
5038
5039 * config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition.
5040 (SPEFSCR_REGNO): Delete definition.
5041 * config/rs6000/rs6000.c: LINK_REGISTER_REGNUM -> LR_REGNO.
5042 COUNT_REGISTER_REGNUM -> CTR_REGNO.
5043 * config/rs6000/rs6000.h: Do not define *_REGNO.
5044 LINK_REGISTER_REGNUM -> LR_REGNO.
5045 COUNT_REGISTER_REGNUM -> CTR_REGNO.
5046 * config/rs6000/predicates.md: LINK_REGISTER_REGNUM -> LR_REGNO.
5047 COUNT_REGISTER_REGNUM -> CTR_REGNO.
5048 * config/rs6000/linux-unwind.h: Define R_LR, R_CR2, R_VR0,
5049 R_VRSAVE, R_VSCR. Use them.
5050 * config/rs6000/darwin-fallback.c: Define R_LR, R_CTR, R_CR2,
5051 R_XER, R_VR0, R_VRSAVE, R_VSCR, R_SPEFSCR. Use them.
5052 * config/rs6000/rs6000.md: Define REGNO constants. Use them.
5053 * config/rs6000/aix.h: Define R_LR. Use it.
5054
5055 2007-07-13 Caroline Tice <ctice@apple.com>
5056
5057 * toplev.c (process_options): Turn flag_var_tracking_uninit off when
5058 flag_var_tracking is explicitly turned off (i.e. when variable
5059 tracking is not feasible); otherwise, turn flag_var_tracking on when
5060 flag_var_tracking_uninit is on.
5061 * rtl.def (VAR_LOCATION): Add a new integer subfield to VAR_LOCATION
5062 note definitions, to allow recording of initialization status in the
5063 notes.
5064 * dwarf2out.c (dwarf_stack_op_name): Add case for DW_OP_GNU_uninit.
5065 (add_var_loc_to_decl): Add comparison of NOTE_VAR_LOCATION_STATUS to
5066 determine if two note locations are equal.
5067 (output_loc_list): Don't output list entries whose start & end labels
5068 are the same.
5069 (reg_loc_descriptor): Add parameter for initialization status; pass it
5070 to other loc descriptor functions.
5071 (one_reg_loc_descriptor): Add parameter for initialization status;
5072 check its value and add DW_OP_GNU_uninit to returned loc descr if
5073 appropriate.
5074 (multiple_reg_loc_descriptor): Add parameter for initialization
5075 status;
5076 pass init status argument to other loc descriptor functions; check
5077 value of intialization parameter and add DW_OP_GNU_uninit to returned
5078 loc descr if appropriate.
5079 (based_loc_descr): Add parameter for initialization status; add new
5080 variable for return value; check value of initialization parameter and
5081 add DW_OP_GNU_uninit to returned loc descr if appropriate.
5082 (concatn_mem_loc_descriptor): Add parameter for initialization status;
5083 pass init status argument to other loc descriptor functions; check
5084 value of intialization parameter and add DW_OP_GNU_uninit to returned
5085 loc descr if appropriate.
5086 (mem_loc_descriptor): Likewise.
5087 (concat_loc_descriptor): Likewise.
5088 (concatn_loc_descriptor): Likewise.
5089 (loc_descriptor): Add parameter for initialization status; pass it as
5090 argument to other loc descriptor function calls.
5091 (loc_descriptor_from_tree_1): Add appropriate initialization status
5092 to loc descriptor function calls.
5093 (add_location_or_const_value_attribute): Get initialization status
5094 from VAR_LOCATION note; add initialization status to loc descriptor
5095 function calls.
5096 * dwarf2.h (enum dwarf_location_atom): New op, DW_OP_GNU_uninit.
5097 * print-rtl.c (print_rtx): When printing a VAR_LOCATION note, if
5098 status is uninitialized, add "[uninint]" to output.
5099 * common.opt (fvar-tracking-uninit): New option, similar to
5100 fvar-tracking, to turn on tracking of uninitialized variables; creates
5101 a new global flag, flag_var_tracking_uninit.
5102 * rtl.h (NOTE_VAR_LOCATION_STATUS): New macro for accessing new field.
5103 (enum var_init_status): New type, for var initialization status field.
5104 * var-tracking.c (struct location_chain_def): Two new fields, init,
5105 for initialization status, and set_src for the assignment value expr.
5106 (unshare_variable): New parameter for initialization status;
5107 initialize new init and set_src fields.
5108 (var_reg_set): New parameters for initialization status and value;
5109 pass them to set_variable_part.
5110 (var_mem_set): Likewise.
5111 (get_init_value): New function.
5112 (var_reg_delete_and_set): New initialization status & value
5113 parameters; add call to get_init_value if status is unknown; pass new
5114 parameters to clobber_variable_part and var_reg_set.
5115 (var_mem_delete_and_set): Likewise.
5116 (var_reg_delete): Pass null set_src value to clobber_variable_part.
5117 (var_mem_delete): Likewise.
5118 (variable_union): Pass status to unshare_variable; initialize new init
5119 and set_src fields. If flag_var_tracking_uninit is not set, force
5120 status to initialized.
5121 (add_stores): Store insn, rather than NEXT_INSN(insn), so it can be
5122 used later to get the set_src value.
5123 (find_src_status): New function.
5124 (find_src_set_src): New function.
5125 (compute_bb_dataflow): Pass init status to calls to var_reg_set,
5126 var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for
5127 MO_SET, get set_src value and pass it to var_reg_delete_and_set
5128 and var_mem_delete_and_set.
5129 (dump_variable): Print out "[uninit]" if appropriate.
5130 (set_variable_part): Add new initialization and set_src parameters;
5131 pass status to unshare_variable; set node->init and node- >set_src
5132 fields and modify slot in hash table appropriately; save the init and
5133 set_src values if appropriate and assign to the new node.
5134 (clobber_variable_part): New set_src parameter; if two nodes have
5135 same variable and same location but different set_src (assignment)
5136 values, clobber old node.
5137 (delete_variable_part): Pass init status to unshare_variable.
5138 (emit_note_insn_var_location): Add initialized var; assign var's init
5139 status to new 'initialized'; pass new init status field to calls to
5140 gen_rtx_VAR_LOCATION. If flag_var_tracking_uninit is not set, force
5141 status to initialized.
5142 (emit_notes_in_bb): Pass initialization status to calls to
5143 var_reg_set, var_mem_set, var_reg_delete_and_set and
5144 var_mem_delete_and_set; for MO_SET, get set_src value and pass it to
5145 var_reg_delete_and_set and var_mem_delete_and_set; call
5146 emit_notes_for_changes on NEXT_INSN(insn) rather than on insn, to
5147 make up for change in add_stores.
5148 (vt_add_function_parameters): Add status to calls to
5149 set_variable_part.
5150 * config/darwin.c (darwin_override_options): Turn on uninitialized
5151 tracking automatically, if var_tracking is on and the system is
5152 10.5 or higher.
5153
5154 2007-07-13 Sa Liu <saliu@de.ibm.com>
5155
5156 * config.gcc: Add options for arch and tune on SPU.
5157 * config/spu/predicates.md: Add constant operands 0 and 1.
5158 * config/spu/spu-builtins.def: Add builtins for double precision
5159 floating point comparison: si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt,
5160 si_dftsv, spu_cmpeq_13, spu_cmpabseq_1, spu_cmpgt_13, spu_cmpabsgt_1,
5161 spu_testsv.
5162 * config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with
5163 a CELLEDP target.
5164 * config/spu/spu-protos.h: Add new function prototypes.
5165 * config/spu/spu.c (spu_override_options): Check options -march and
5166 -mtune.
5167 (spu_comp_icode): Add comparison code for DFmode and vector mode.
5168 (spu_emit_branch_or_set): Use the new code for DFmode and vector
5169 mode comparison.
5170 (spu_const_from_int): New. Create a vector constant from 4 ints.
5171 (get_vec_cmp_insn): New. Get insn index of vector compare instruction.
5172 (spu_emit_vector_compare): New. Emit vector compare.
5173 (spu_emit_vector_cond_expr): New. Emit vector conditional expression.
5174 * config/spu/spu.h: Add options -march and -mtune. Define processor
5175 types PROCESSOR_CELL and PROCESSOR_CELLEDP. Define macro
5176 CANONICALIZE_COMPARISON.
5177 * config/spu/spu.md: Add new insns for double precision compare
5178 and double precision vector compare. Add vcond and smax/smin patterns
5179 to enable DFmode vector conditional expression.
5180 * config/spu/spu.opt: Add options -march and -mtune.
5181 * config/spu/spu_internals.h: Add builtins for CELLEDP target:
5182 si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, si_dftsv. Add builtin for
5183 both CELL and CELLEDP targets: spu_testsv.
5184 * config/spu/spu_intrinsics.h: Add flag mnemonics for test special
5185 values.
5186
5187 2007-07-13 Richard Guenther <rguenther@suse.de>
5188
5189 PR tree-optimization/32721
5190 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Preserve
5191 TREE_THIS_VOLATILE on the folded reference.
5192 * tree-ssa-operands.c (get_expr_operands): Set has_volatile_ops
5193 if the array reference has TREE_THIS_VOLATILE set.
5194
5195 2007-07-13 H.J. Lu <hongjiu.lu@intel.com>
5196
5197 PR other/32188
5198 * doc/libgcc.texi: Update DFP intrinsics for DPD and BID.
5199
5200 2007-07-13 Andreas Schwab <schwab@suse.de>
5201
5202 * gengtype-lex.l: Allow declarations to be indented.
5203
5204 2007-07-12 Geoffrey Keating <geoffk@apple.com>
5205
5206 * ginclude/tgmath.h: New.
5207 * config.gcc: Use GCC's tgmath.h on non-glibc systems.
5208 * doc/sourcebuild.texi (Headers): Document use_gcc_tgmath.
5209 * configure.ac (STMP_FIXPROTO): Honor use_gcc_tgmath.
5210 * configure: Regenerate.
5211
5212 2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
5213
5214 * config/sh/linux-unwind.h (sh_fallback_frame_state): Use
5215 correct index when setting register save state for xd
5216 registers.
5217
5218 2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
5219
5220 * config/sh/sh.c (mark_use): Remove.
5221
5222 2007-07-12 Paul Brook <paul@codesourcery.com>
5223
5224 * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch
5225 reg does not overlap return value.
5226
5227 2007-07-12 Daniel Berlin <dberlin@dberlin.org>
5228
5229 * tree-ssa-pre.c (get_expression_vuses): Move out side-effect.
5230 (set_expression_vuses): Ditto.
5231 (init_pre): Initialize expression_vuses.
5232
5233 2007-07-12 Zdenek Dvorak <dvorakz@suse.cz>
5234
5235 * config/i386/sse.md (storentdf, storentsf): New.
5236
5237 2007-07-12 Geoffrey Keating <geoffk@apple.com>
5238
5239 * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
5240 FUNCTION_DECL.
5241 * tree.c (build_decl_stat): Move code from here...
5242 (make_node_stat): ... to here. Don't uselessly clear DECL_USER_ALIGN.
5243 (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL. Add comment
5244 about using DECL_ALIGN of LABEL_DECL and CONST_DECL.
5245 * tree.h (DECL_USER_ALIGN): Fix misplaced comment.
5246 * varasm.c (assemble_start_function): Use DECL_ALIGN instead of
5247 FUNCTION_BOUNDARY.
5248
5249 2007-07-12 Dorit Nuzman <dorit@il.ibm.com>
5250 Devang Patel <dpatel@apple.com>
5251
5252 PR tree-optimization/25413
5253 * targhooks.c (default_builtin_vector_alignment_reachable): New.
5254 * targhooks.h (default_builtin_vector_alignment_reachable): New.
5255 * tree.h (contains_packed_reference): New.
5256 * expr.c (contains_packed_reference): New.
5257 * tree-vect-analyze.c (vector_alignment_reachable_p): New.
5258 (vect_enhance_data_refs_alignment): Call
5259 vector_alignment_reachable_p.
5260 * target.h (vector_alignment_reachable): New builtin.
5261 * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New.
5262 * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New.
5263 (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.
5264
5265 2007-07-12 Dorit Nuzman <dorit@il.ibm.com>
5266
5267 * target.h (builtin_vectorization_cost): Add new target builtin.
5268 * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
5269 * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New.
5270 (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New.
5271 * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze
5272 uninitialized variables.
5273 * tree-vect-transform.c (cost_for_stmt): New function.
5274 (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of
5275 using cost 1 for all scalar stmts. Be less conservative when
5276 estimating the number of prologue/epulogue iterations. Call
5277 targetm.vectorize.builtin_vectorization_cost. Return
5278 min_profitable_iters-1.
5279 (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for
5280 initialization cost instead of TARG_VEC_STMT_COST. Use
5281 TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction
5282 epilogue code. Fix epilogue cost computation.
5283 * config/spu/spu.c (spu_builtin_vectorization_cost): New.
5284 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement.
5285 * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST):
5286 (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST):
5287 (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST):
5288 (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define.
5289
5290 2007-07-12 Richard Guenther <rguenther@suse.de>
5291
5292 * gimplify.c (gimplify_conversion): Make sure that the result
5293 from maybe_fold_offset_to_reference is trivially convertible
5294 to the desired type before doing the simplification.
5295 (gimplify_expr): Likewise.
5296 * fold-const.c (fold_binary): Use the correct types for
5297 building the simplified expression.
5298
5299 2007-07-12 Zdenek Dvorak <dvorakz@suse.cz>
5300
5301 PR rtl-optimization/32729
5302 * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks
5303 that fallthru to exit.
5304
5305 2007-07-12 Kaz Kojima <kkojima@gcc.gnu.org>
5306
5307 * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis.
5308 (symDTPOFF2reg): Likewise.
5309
5310 2007-07-11 Daniel Berlin <dberlin@dberlin.org>
5311
5312 PR tree-optimization/32663
5313
5314 * tree.h (VALUE_HANDLE_VUSES): Remove.
5315 (struct tree_value_handle): Remove vuses.
5316
5317 * tree-vn.c (create_value_handle_for_expr): Don't set
5318 VALUE_HANDLE_VUSES.
5319
5320 * tree-ssa-pre.c (expression_vuses): New.
5321 (alloc_expression_id): Set up expression_vuses.
5322 (get_expression_vuses): New.
5323 (set_expression_vuses): Ditto.
5324 (clear_expression_ids): Modify for expression_vuses.
5325 (phi_translate_1): Ditto.
5326 (phi_translate_set): Ditto.
5327 (value_dies_in_block_x): Ditto
5328 (valid_in_sets): Ditto.
5329 (add_to_sets): Ditto.
5330 (find_existing_value_expr): Ditto.
5331 (create_value_handle_for_expr): Ditto.
5332 (make_values_for_stmt): Ditto.
5333 (vuse_equiv): Remove.
5334
5335 2007-07-11 Alexandre Oliva <aoliva@redhat.com>
5336
5337 * Makefile.in (mostlyclean): Remove object files.
5338
5339 2007-07-11 Kenneth Zadeck <zadeck@naturalbridge.com>
5340
5341 * toplev.c (no_new_pseudos): Deleted.
5342 * rtl.h (no_new_pseudos): Deleted.
5343 * tree-pass.h (pass_no_new_pseudos): Deleted.
5344 * passes.c (pass_no_new_pseudos): Deleted.
5345 * final.c (rest_of_clean_state): Removed no_new_pseudos.
5346 (rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted.
5347 * struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with
5348 reload_completed.
5349 * cfgcleanup.c (try_crossjump_to_edge): Ditto.
5350 * rtlhooks.c (gen_lowpart_general): Ditto.
5351 * optabs.c (prepare_operand): Ditto.
5352 * mode-switching.c (rest_of_handle_mode_switching): Deleted set of
5353 no_new_pseudos.
5354 * modulo-sched.c (rest_of_handle_sms): Ditto.
5355 * see.c (rest_of_handle_see): Ditto.
5356 * ifcvt.c (if_convert): Ditto.
5357 (gate_handle_if_after_combine): Replaced no_new_pseudos with
5358 reload_completed.
5359 * init-regs.c (gate_initialize_regs): Deleted set of
5360 no_new_pseudos.
5361 * lower-subreg.c (decompose_multiword_subregs): Ditto.
5362 * bb-reorder.c (rest_of_handle_partition_blocks): Ditto.
5363 * doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p.
5364
5365 2007-07-11 Uros Bizjak <ubizjak@gmail.com>
5366
5367 PR target/32661
5368 * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves.
5369 (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT.
5370 (*vec_extractv2di_1_rex64): New insn pattern.
5371
5372 2007-07-11 David Daney <ddaney@avtrex.com>
5373
5374 * config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite
5375 return address calculation. Substitute DWARF_ALT_FRAME_RETURN_COLUMN
5376 for SIGNAL_UNWIND_RETURN_COLUMN.
5377 * config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove.
5378 (DWARF_FRAME_REGNUM): Rewrite.
5379 (DWARF_ALT_FRAME_RETURN_COLUMN) Define.
5380
5381 2007-07-11 Nick Clifton <nickc@redhat.com>
5382
5383 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous
5384 delta and use gen_int_mode in place of GET_INT instead.
5385
5386 2007-07-11 Uros Bizjak <ubizjak@gmail.com>
5387
5388 * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name
5389 and letter field.
5390
5391 2007-07-11 Douglas Gregor <doug.gregor@gmail.com>
5392
5393 * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
5394 (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical
5395 types or not.
5396 * params.h (VERIFY_CANONICAL_TYPES): Remove.
5397 (USE_CANONICAL_TYPES): New.
5398 * doc/invoke.texi (verify-canonical-types): Remove.
5399 (use-canonical-types): Add.
5400
5401 2007-07-11 Ulrich Weigand <uweigand@de.ibm.com>
5402
5403 * config/spu/spu.c (spu_optimization_options): Remove setting of
5404 parameter PARAM_MAX_COMPLETELY_PEEL_TIMES.
5405 (spu_override_options): Move it here.
5406
5407 2007-07-11 Richard Sandiford <richard@codesourcery.com>
5408
5409 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd.
5410 * config/mips/mips.c (mips_cpu_info_table): Mention
5411 MIPS_ISA_LEVEL_SPEC in the comment.
5412
5413 2007-07-11 Eric Botcazou <ebotcazou@adacore.com>
5414
5415 PR tree-optimization/32713
5416 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST.
5417
5418 2007-07-11 Paolo Carlini <pcarlini@suse.de>
5419
5420 PR middle-end/30482
5421 * c-opts.c (c_common_post_options): Do not change flag_complex_method
5422 conditional to flag_isoc99.
5423 (c_common_init_options): Do it here, unconditionally.
5424
5425 2007-07-11 Eric Botcazou <ebotcazou@adacore.com>
5426
5427 PR tree-optimization/32589
5428 * doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
5429 * tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
5430 * tree-ssa-propagate.c (valid_gimple_expression_p): New
5431 predicate, extracted from...
5432 (set_rhs): ...here. Call it for the expression on entry.
5433 * tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
5434 * tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
5435 (simplify_binary_expression): Use valid_gimple_expression_p
5436 to validate the simplification.
5437 * Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.
5438
5439 2007-07-11 Danny Smith <dannysmith@users.sourceforge.net>
5440
5441 * config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to
5442 DWARF2_DEBUG on 32 bit target too.
5443 (DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition.
5444
5445 2007-07-11 Nick Clifton <nickc@redhat.com>
5446
5447 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative
5448 version for 64-bit hosts.
5449
5450 2007-07-10 David Daney <ddaney@avtrex.com>
5451
5452 * config/mips/mips.h (ISA_HAS_SYNCI): New target capability
5453 predicate.
5454 (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of library
5455 call.
5456 * config/mips/mips.c (mips_expand_synci_loop): New function.
5457 * config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant.
5458 (UNSPEC_RDHWR): Same.
5459 (UNSPEC_SYNCI): Same.
5460 (UNSPEC_SYNC): Same.
5461 (clear_cache): New expand.
5462 (sync): New insn.
5463 (synci): Same.
5464 (rdhwr): Same.
5465 (clear_hazard): Same.
5466 * config/mips/mips-protos.h (mips_expand_synci_loop): Declare
5467 function.
5468 * testsuite/gcc.target/mips/clear-cache-1.c: New test.
5469 * testsuite/gcc.target/mips/clear-cache-2.c: New test.
5470
5471 2007-07-10 Ian Lance Taylor <iant@google.com>
5472
5473 * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than
5474 no_new_pseudos.
5475
5476 2007-07-10 David Daney <ddaney@avtrex.com>
5477
5478 * builtins.def (BUILT_IN_CLEAR_CACHE): New builtin.
5479 * builtins.c (expand_builtin___clear_cache): New function.
5480 (expand_builtin): Call expand_builtin___clear_cache for
5481 BUILT_IN_CLEAR_CACHE case.
5482 * doc/extend.texi (__builtin___clear_cache): Document new builtin.
5483 * doc/md.texi (clear_cache): Document new instruction pattern.
5484 * testsuite/gcc.dg/builtins-64.c: New test.
5485
5486 2007-07-11 Hans-Peter Nilsson <hp@axis.com>
5487
5488 * config/cris/cris.md ("movsi"): Fix typo in last change.
5489
5490 2007-07-09 Geoffrey Keating <geoffk@apple.com>
5491
5492 PR 32617
5493 * c-common.c (c_alignof_expr): Look at DECL_ALIGN of
5494 FUNCTION_DECLs.
5495 (handle_aligned_attribute): Allow use on FUNCTION_DECLs.
5496 * varasm.c (assemble_start_function): Honor DECL_ALIGN
5497 for FUNCTION_DECLs. Don't use align_functions_log if
5498 DECL_USER_ALIGN.
5499 * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
5500 even for FUNCTION_DECLs.
5501 * c-decl.c (merge_decls): Propagate DECL_ALIGN even for
5502 FUNCTION_DECLs.
5503 * tree.h (DECL_ALIGN): Update for new location of 'align'.
5504 (DECL_FUNCTION_CODE): Update for new location and name of
5505 'function_code'.
5506 (DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
5507 (struct tree_decl_common): Move 'align' and 'off_align' out
5508 of union, ensure they're still on a 32-bit boundary. Remove
5509 other fields in union 'u1'.
5510 (struct tree_function_decl): Add field 'function_code' replacing
5511 'u1.f' in tree_decl_common.
5512 * tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
5513 * doc/extend.texi (Function Attributes): Add 'aligned' attribute.
5514 (Variable Attributes): Cross-reference 'aligned' attribute
5515 to Function Attributes.
5516 * flags.h (force_align_functions_log): Delete.
5517 * toplev.c (force_align_functions_log): Delete.
5518
5519 2007-07-10 Uros Bizjak <ubizjak@gmail.com>
5520
5521 PR target/32708
5522 * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT.
5523 (*vec_concatv2di_rex): New insn pattern.
5524
5525 2007-07-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5526
5527 PR target/32538
5528 * config/mips/iris6.h (LIBGCC_SPEC): Add libm.
5529
5530 2007-07-10 Ian Lance Taylor <iant@google.com>
5531
5532 Replace no_new_pseudos in backends.
5533 * rtl.h (can_create_pseudo_p): Define.
5534 * config/darwin.c (machopic_indirect_data_reference): Use
5535 can_create_pseudo_p () instead of no_new_pseudos.
5536 (machopic_indirect_data_reference): Likewise.
5537 (machopic_legitimize_pic_address): Likewise.
5538 * config/alpha/alpha.c (alpha_legitimize_address): Likewise.
5539 (alpha_emit_set_const_1): Likewise.
5540 (alpha_emit_set_const): Likewise.
5541 (alpha_emit_conditional_move): Likewise.
5542 (alpha_split_conditional_move): Likewise.
5543 * config/alpha/alpha.md (various splitters): Likewise.
5544 (movti): Likewise.
5545 * config/arm/arm.c (legitimize_pic_address): Likewise.
5546 (arm_load_pic_register): Likewise.
5547 * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise.
5548 (movdi, movsi, movhi, movqi, movsf, movdf): Likewise.
5549 * config/bfin/bfin.c (legitimize_pic_address): Likewise.
5550 * config/cris/cris.c (cris_expand_pic_call_address): Likewise.
5551 * config/cris/cris.md (movsi): Likewise.
5552 * config/frv/frv.md (symGOT2reg_hilo): Likewise.
5553 (symGOTOFF2reg_hilo): Likewise.
5554 (symGPREL2reg, symGPREL2reg_hilo): Likewise.
5555 * config/h8300/h8300.md (insv, extzv): Likewise.
5556 * config/i386/i386.c (ix86_expand_move): Likewise.
5557 (ix86_expand_vector_move): Likewise.
5558 (ix86_prepare_fp_compare_args): Likewise.
5559 (ix86_expand_carry_flag_compare): Likewise.
5560 * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise.
5561 (tls_dynamic_gnu2_combine_32): Likewise.
5562 (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise.
5563 * config/ia64/ia64.c (ia64_expand_move): Likewise.
5564 (ia64_expand_movxf_movrf): Likewise.
5565 * config/m32c/m32c.c (m32c_prepare_move): Likewise.
5566 (m32c_split_move): Likewise.
5567 (m32c_expand_insv): Likewise.
5568 * config/m68k/m68k.md (movsi): Likewise.
5569 * config/mips/mips.c (mips_force_temporary): Likewise.
5570 (mips_split_symbol): Likewise.
5571 (mips_move_integer): Likewise.
5572 (mips_legitimize_const_move): Likewise.
5573 * config/mn10300/mn10300.md (movsi): Likewise.
5574 * config/pa/pa.c (emit_move_sequence): Likewise.
5575 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
5576 (rs6000_got_register): Likewise.
5577 (create_TOC_reference): Likewise.
5578 (rs6000_machopic_legitimize_pic_address): Likewise.
5579 * config/rs6000/rs6000.md (add<mode>3): Likewise.
5580 (various splitters): Likewise.
5581 (iorsi3, xorsi3, iordi3, xordi3): Likewise.
5582 (movsi_got): Likewise.
5583 * config/s390/s390.c (emit_symbolic_move): Likewise.
5584 * config/s390/s390.md (movhi, movqi): Likewise.
5585 (load_multiple, store_multiple): Likewise.
5586 * config/score/score.c (score_force_temporary): Likewise.
5587 * config/sh/sh.c (prepare_move_operands): Likewise.
5588 (prepare_cbranch_operands): Likewise.
5589 (emit_fpu_switch): Likewise.
5590 (fpscr_set_from_mem): Likewise.
5591 * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise.
5592 (adddi3, subsi3): Likewise.
5593 (various splitters): Likewise.
5594 (divsi_inv_fp_combine): Likewise.
5595 (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise.
5596 (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise.
5597 (sne): Likewise.
5598 * config/sh/predicates.md (xor_operand): Likewise.
5599 * config/sparc/sparc.c (legitimize_tls_address): Likewise.
5600 * config/sparc/sparc.md (movsi_pic_label_ref): Likewise.
5601 (movdi_pic_label_ref): Likewise.
5602 * config/spu/spu.c (spu_split_immediate): Likewise.
5603 * config/alpha/alpha.md (various splitters): Remove test
5604 !no_new_pseudos || reload_completed.
5605 * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set
5606 no_new_pseudos.
5607 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
5608 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
5609 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
5610 * config/score/score.c (th_output_mi_thunk): Likewise.
5611 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5612 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
5613
5614 2007-07-10 Kaz Kojima <kkojima@gcc.gnu.org>
5615
5616 PR rtl-optimization/32664
5617 * mode-switching.c (create_pre_exit): Skip barrier insns.
5618
5619 2007-07-10 Zdenek Dvorak <dvorakz@suse.cz>
5620
5621 * tree-scalar-evolution.c (scev_const_prop): Add arguments to
5622 force_gimple_operand_bsi.
5623 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr,
5624 rewrite_use_compare): Ditto.
5625 * tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref):
5626 Ditto.
5627 * tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto.
5628 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
5629 * lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto.
5630 * tree-profile.c (prepare_instrumented_value,
5631 tree_gen_interval_profiler, tree_gen_pow2_profiler,
5632 tree_gen_one_value_profiler, tree_gen_ic_profiler,
5633 tree_gen_ic_func_profiler, tree_gen_average_profiler,
5634 tree_gen_ior_profiler): Ditto.
5635 * tree-ssa-reassoc.c (negate_value): Ditto.
5636 * matrix-reorg.c (transform_access_sites, transform_allocation_sites):
5637 Use force_gimple_operand_bsi.
5638 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
5639 * tree-if-conv.c (add_to_dst_predicate_list,
5640 find_phi_replacement_condition): Ditto.
5641 * gimplify.c (force_gimple_operand_bsi): Add before and m arguments.
5642 Call mark_symbols_for_renaming for new statements.
5643 * tree-flow.h (force_gimple_operand_bsi): Declaration changed.
5644
5645 2007-07-10 Zdenek Dvorak <dvorakz@suse.cz>
5646
5647 * cfghooks.c (remove_edge): New function.
5648 (redirect_edge_and_branch, remove_branch, merge_blocks): Updated
5649 loop exit rescans.
5650 * cfghooks.h (remove_edge): Declare.
5651 * cfg.c (remove_edge): Renamed to remove_edge_raw.
5652 * basic-block.h (remove_edge): Declaration changed to remove_edge_raw.
5653
5654 2007-07-09 Wolfgang Gellerich <gellerich@de.ibm.com>
5655
5656 * optabs.h: Added declaration for signbit_optab.
5657 * optabs.c: (init_optabs): Added initialization for signbit_optab.
5658 * genoptinit.c (optabs): Added entry for signbit insns.
5659 * builtins.c (expand_builtin_signbit): Added code to use a signbit
5660 insn, if available.
5661 * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.
5662 * config/s390/s390.md (signbit<mode>2): New expander.
5663
5664 2007-07-09 Richard Guenther <rguenther@suse.de>
5665
5666 PR middle-end/32698
5667 * fold-const.c (fold_plusminus_mult_expr): Move constant
5668 arguments second to allow decomposing.
5669
5670 2007-07-09 Alexandre Oliva <aoliva@oliva.athome.lsd.ic.unicamp.br>
5671
5672 Revert:
5673 2007-07-06 Alexandre Oliva <aoliva@redhat.com>
5674 PR debug/23551
5675 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
5676 Disregard DECL_FROM_INLINE.
5677
5678 2007-07-09 Uros Bizjak <ubizjak@gmail.com>
5679
5680 PR target/27855
5681 * doc/invoke.texi: Add ftree-reassoc flag.
5682 * common.opt (ftree-reassoc): New flag.
5683 * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
5684 (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.
5685
5686 2007-07-09 Uros Bizjak <ubizjak@gmail.com>
5687
5688 PR tree-optimization/32681
5689 * tree-if-conv.c (find_phi_replacement_condition): Use the condition
5690 saved in second_edge->aux when first_bb is a loop header.
5691
5692 2007-07-09 Jan HUbicka <jh@suse.cz>
5693
5694 * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
5695
5696 2007-07-09 Richard Guenther <rguenther@suse.de>
5697
5698 * c-decl.c (start_function): Do not promote return type.
5699
5700 2007-07-08 Daniel Franke <franke.daniel@gmail.com>
5701
5702 * function.c (do_warn_unused_parameter): Do not warn if
5703 TREE_NO_WARNING is set.
5704
5705 2007-07-08 Andreas Schwab <schwab@suse.de>
5706
5707 * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.
5708
5709 2007-07-08 Sandra Loosemore <sandra@codesourcery.com>
5710
5711 Revert this patch:
5712 2007-07-06 Sandra Loosemore <sandra@codesourcery.com>
5713
5714 * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
5715 apply to assembly language, too.
5716 * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
5717
5718 2007-07-07 Daniel Berlin <dberlin@dberlin.org>
5719
5720 Revert (note the sccvn portions are *not* reverted)
5721 2007-07-06 Daniel Berlin <dberlin@dberlin.org>
5722
5723 Fix PR tree-optimization/23488
5724
5725 * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
5726 handles.
5727 * tree-flow-inline.h (get_value_handle): Ditto.
5728 * tree-ssa-pre.c (decl_vh_map): New.
5729 (decl_node_pool): New.
5730 (can_value_number_operation): Support DECL_P.
5731 (can_PRE_operation): Ditto.
5732 (create_expression_by_pieces): Ditto.
5733 (find_existing_value_expr): Modify to differnetiate between
5734 addressing and top level.
5735 (create_value_handle_for_expr): Handle DECL's.
5736 (poolify_tree): Ditto.
5737 (make_values_for_phi): Don't insert into PHI_GEN during FRE.
5738 (make_values_for_stmt): Handle DECL's properly.
5739 (init_pre): Reorg to not init useless things during FRE.
5740 (fini_pre): Ditto.
5741 * tree-flow.h: Include pointer-set.h.
5742 (decl_vh_map): Declare.
5743 * Makefile.in (TREE_FLOW_H): Add pointer-set.h
5744
5745 2007-07-07 Eric Weddington <eweddington@cso.atmel.com>
5746
5747 * config/avr/constraints.md (define_memory_constraint "Q"): Fix
5748 the constraint description.
5749 * doc/md.texi: Update documentation of AVR constraints.
5750
5751 2007-07-07 Kazu Hirata <kazu@codesourcery.com>
5752
5753 * auto-inc-dec.c, config/arm/arm.c,
5754 config/m32r/constraints.md, config/mips/mips.md,
5755 config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
5756 df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
5757 tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
5758 typos. Follow spelling conventions.
5759 * doc/invoke.texi, doc/rtl.texi: Fix typos.
5760
5761 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
5762 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
5763
5764 * tree-ssa-operands.c (realloc_vop, realloc_vdef,
5765 realloc_vuse): Remove.
5766 * tree-ssa-operands.h: Remove the prototype for realloc_vdef
5767 and realloc_vuse.
5768
5769 2007-07-06 Daniel Berlin <dberlin@dberlin.org>
5770
5771 Fix PR tree-optimization/23488
5772
5773 * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration.
5774 (try_to_simplify): Ditto.
5775 (visit_use): Ditto.
5776 * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
5777 handles.
5778 * tree-flow-inline.h (get_value_handle): Ditto.
5779 * tree-ssa-pre.c (decl_vh_map): New.
5780 (decl_node_pool): New.
5781 (can_value_number_operation): Support DECL_P.
5782 (can_PRE_operation): Ditto.
5783 (create_expression_by_pieces): Ditto.
5784 (find_existing_value_expr): Modify to differnetiate between
5785 addressing and top level.
5786 (create_value_handle_for_expr): Handle DECL's.
5787 (poolify_tree): Ditto.
5788 (make_values_for_phi): Don't insert into PHI_GEN during FRE.
5789 (make_values_for_stmt): Handle DECL's properly.
5790 (init_pre): Reorg to not init useless things during FRE.
5791 (fini_pre): Ditto.
5792 * tree-flow.h: Include pointer-set.h.
5793 (decl_vh_map): Declare.
5794 * Makefile.in (TREE_FLOW_H): Add pointer-set.h
5795
5796 2007-07-06 Sandra Loosemore <sandra@codesourcery.com>
5797
5798 * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
5799 apply to assembly language, too.
5800 * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
5801
5802 2007-07-06 Ian Lance Taylor <iant@google.com>
5803 Zack Weinberg <zackw@panix.com>
5804
5805 PR middle-end/32441
5806 * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
5807
5808 2007-07-06 Richard Sandiford <richard@codesourcery.com>
5809
5810 * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
5811 (prefetch): Likewise if "pref" would be used.
5812
5813 2007-07-06 Josh Conner <jconner@apple.com>
5814
5815 PR middle-end/32602
5816 PR middle-end/32603
5817 * calls.c (store_one_arg): Handle arguments which are partially
5818 on the stack when detecting argument overlap.
5819
5820 2007-07-06 Bernd Schmidt <bernd.schmidt@analog.com>
5821
5822 * reload1.c (choose_reload_regs): Set reload_spill_index for regs
5823 chosen during find_reloads.
5824
5825 2007-07-06 Richard Guenther <rguenther@suse.de>
5826
5827 * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
5828 TYPE_ARG_TYPES for verification of argument types. Use
5829 DECL_ARG_TYPE instead of the PARM_DECL type. Take excess
5830 parameters as variable arguments.
5831
5832 2007-07-06 Andreas Krebbel <krebbel1@de.ibm.com>
5833
5834 * libgcc2.h (word_type): Type definition removed.
5835 (cmp_return_type, shift_count_type): Type definitions added.
5836 (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
5837 replaced with shift_count_type.
5838 (__cmpdi2, __ucmpdi2): word_type of return type replaced with
5839 cmp_return_type.
5840 * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
5841 changed from word_type to Wtype.
5842 (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
5843 replaced with shift_count_type.
5844 (__cmpdi2, __ucmpdi2): word_type of return type replaced with
5845 cmp_return_type.
5846 * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return
5847 and libgcc_shift_count attribute added.
5848 * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
5849 TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
5850 (TARGET_INITIALIZER): New target hooks added.
5851 * targhooks.c (default_libgcc_cmp_return_mode,
5852 default_libgcc_shift_count_mode): Default implementations for the new
5853 target hooks added.
5854 * targhooks.h (default_libgcc_cmp_return_mode,
5855 default_libgcc_shift_count_mode): Function prototypes added.
5856 * target.h (struct gcc_target): Fields for the new target hooks added.
5857 * optabs.c (expand_binop): Use shift_count_mode when expanding shift
5858 as library call.
5859 (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
5860 library call.
5861
5862 * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
5863 TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
5864
5865 * config/s390/s390.c (s390_libgcc_cmp_return_mode,
5866 s390_libgcc_shift_count_mode): Functions added.
5867 (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE):
5868 Target hooks defined.
5869
5870 2007-07-06 Richard Sandiford <richard@codesourcery.com>
5871
5872 * config/mips/mips.c (compute_frame_size): Restore the original
5873 gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
5874 fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
5875 Document why the difference is needed.
5876
5877 2007-07-06 Richard Guenther <rguenther@suse.de>
5878
5879 * c-common.c (boolean_increment): Use correctly typed
5880 constant.
5881
5882 2007-07-06 Richard Sandiford <richard@codesourcery.com>
5883
5884 * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
5885 the topmost argument register is not also included in the save mask.
5886 (mips16e_collect_argument_save_p): Take a pointer to the argument
5887 register, rather than a pointer to the number of arguments.
5888 (mips16e_collect_argument_saves): Only include argument saves
5889 that aren't in the register mask.
5890
5891 2007-07-06 Uros Bizjak <ubizjak@gmail.com>
5892
5893 PR rtl-optimization/32450
5894 * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
5895 to ensure that instructions are not moved into the prologue when
5896 profiling is on. Remove unused prologue_end variable.
5897 (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
5898 as a scheduling barrier.
5899
5900 2007-07-06 Alexandre Oliva <aoliva@redhat.com>
5901
5902 PR debug/23551
5903 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
5904 Disregard DECL_FROM_INLINE.
5905
5906 2007-07-05 Adam Nemet <anemet@caviumnetworks.com>
5907
5908 * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
5909 IORing with a constant.
5910
5911 2007-07-05 Seongbae Park <seongbae.park@gmail.com>
5912
5913 PR rtl-optimization/32475
5914 * df-scan.c (df_def_record_1): Add a use of the stack pointer
5915 for every definition of the stack pointer.
5916
5917 2007-07-05 Richard Earnshaw <rearnsha@arm.com>
5918
5919 * arm.c (vfp3_const_double_index): Copy signed results of
5920 REAL_VALUE_TO_INT into unsigned vars.
5921
5922 2007-07-05 Richard Guenther <rguenther@suse.de>
5923
5924 PR middle-end/32639
5925 * alias.c (get_alias_set): Tread METHOD_TYPE the same as
5926 FUNCTION_TYPE.
5927 * tree-ssa.c (useless_type_conversion_p): Check canonical
5928 types early.
5929
5930 2007-07-05 Anatoly Sokolov <aesok@post.ru>
5931
5932 * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2,
5933 zero_extendhisi2): Change to define_insn_and_split.
5934 (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New.
5935
5936 2007-07-05 Paolo Bonzini <bonzini@gnu.org>
5937
5938 * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
5939 pass_match_asm_constraints): New.
5940 * passes.c (init_optimization_passes): Add new pass.
5941 * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
5942 * function.h (struct function): Add has_asm_statement bit.
5943 (current_function_has_asm_statement): New.
5944 * tree-pass.h (pass_match_asm_constraints): New.
5945
5946 2007-07-05 Richard Sandiford <rsandifo@nildram.co.uk>
5947
5948 * config/mips/mips.c (mips_file_start): Avoid declaration
5949 after code.
5950
5951 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
5952
5953 * optabs.c (expand_binop_directly): Fix signed/unsigned comparison.
5954
5955 2007-07-05 Uros Bizjak <ubizjak@gmail.com>
5956
5957 * rtl.def (NOTE): Change print format string to print
5958 operand 5 as a note insn name.
5959
5960 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
5961 David Ung <davidu@mips.com>
5962
5963 * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
5964 * doc/invoke.texi: (MIPS Options): Document them.
5965
5966 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
5967 David Ung <davidu@mips.com>
5968
5969 Add support for SmartMIPS ASE.
5970
5971 * optabs.c (expand_binop_directly): New, broken out from...
5972 (expand_binop): Here. Make it try rotating in the other
5973 direction even when the second operand isn't constant.
5974 * config/mips/mips.md (*lwxs): New.
5975 * config/mips/mips.opt (msmartmips): New.
5976 * config/mips/mips.c (mips_lwxs_address_p): New.
5977 (mips_rtx_costs): Make it recognize scaled indexed addressing.
5978 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
5979 __mips_smartmips when compiling for TARGET_SMARTMIPS.
5980 (ISA_HAS_ROR): Define for TARGET_SMARTMIPS.
5981 (ISA_HAS_LWXS): New.
5982 (ASM_SPEC): Add -msmartmips/-mno-smartmips.
5983 * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips.
5984 * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case.
5985 * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case.
5986 * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case.
5987 * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case.
5988 * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case.
5989
5990 2007-07-05 Dorit Nuzman <dorit@il.ibm.com>
5991
5992 * tree-vectorizer.c (new_loop_vec_info): Initialize
5993 LOOP_VINFO_COST_MODEL_MIN_ITERS.
5994 * tree-vectorizer.h (_loop_vec_info): Added new filed
5995 min_profitable_iters.
5996 (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
5997 (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
5998 * tree-vect-analyze.c (vect_analyze_operations): Set
5999 LOOP_VINFO_COST_MODEL_MIN_ITERS.
6000 * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
6001 VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
6002 Fix calculation of peel_iters_prologue. Move consideration of epilogue
6003 and prologue cost to after they are computed.
6004 (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
6005 TARG_VEC_STMT_COST.
6006 (vect_model_simple_cost): Takes additional argument dt. Consider cost
6007 of creating vectors from scalars according to dt.
6008 (vect_model_store_cost): Likewise.
6009 (vectorizable_call): Use dt array instead of scalar dt. Call
6010 vect_model_simple_cost with additional argument dt.
6011 (vectorizable_assignment): Likewise.
6012 (vectorizable_operation): Likewise.
6013 (vectorizable_type_demotion): Likewise.
6014 (vectorizable_type_promotion): Likewise.
6015 (vectorizable_store): Use dt array instead of scalar dt. Call
6016 vect_model_store_cost with additional argument dt.
6017 (vect_do_peeling_for_loop_bound): Don't call
6018 vect_estimate_min_profitable_iters. Instead, lookup
6019 LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
6020 "may not be profitable".
6021
6022 2007-07-05 Dorit Nuzman <dorit@il.ibm.com>
6023
6024 PR testsuite/32014
6025 * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF):
6026 (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New.
6027 (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns.
6028 (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns.
6029
6030 2007-07-05 Zdenek Dvorak <dvorakz@suse.cz>
6031
6032 * config/i386/i386.c (ix86_address_cost): Do not consider more complex
6033 addressing modes cheaper.
6034
6035 2007-07-05 Alexandre Oliva <aoliva@redhat.com>
6036
6037 * dwarf2out.c (dw_ranges_by_label_ref): New typedef.
6038 (dw_ranges_struct): Rename block_num to num. Adjust.
6039 (dw_ranges_by_label_struct): New.
6040 (ranges_by_label, ranges_by_label_allocated,
6041 ranges_by_label_in_use): New variables.
6042 (add_ranges_num): Factored most of the code out of...
6043 (add_ranges): ... this one. Rewrite in terms of the former.
6044 (add_ranges_by_labels): New.
6045 (output_ranges): Output by-label ranges.
6046 (dwarf2out_finish): Output range for multiple-section
6047 compile_unit. Output standard DW_AT_low_pc in addition to
6048 unexpected DW_AT_entry_pc.
6049
6050 2007-07-04 Daniel Berlin <dberlin@dberlin.org>
6051
6052 PR tree-optimization/32604
6053 PR tree-optimization/32606
6054
6055 * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
6056 (compute_antic_safe): Removed.
6057 (ANTIC_SAFE_LOADS): Ditto.
6058 (compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
6059 (execute_pre): Don't call compute_antic_safe.
6060 (vuse_equiv): New function.
6061 (make_values_for_stmt): Use it
6062 * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
6063 not always true.
6064
6065 2007-07-04 Anatoly Sokolov <aesok@post.ru>
6066
6067 PR target/31331
6068 * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
6069 rather than a decl.
6070 (avr_attribute_table): Make "naked" attribute apply to function types
6071 rather than to decls.
6072 (avr_handle_fntype_attribute): New function.
6073
6074 2007-07-04 Joseph Myers <joseph@codesourcery.com>
6075
6076 * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace
6077 after \.
6078
6079 2007-07-04 David Ung <davidu@mips.com>
6080 Joseph Myers <joseph@codesourcery.com>
6081
6082 * config/mips/mips.md (type): Add logical, signext and move.
6083 (one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3,
6084 *ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16,
6085 *nor<mode>3, "Combiner patterns to optimize truncate/zero_extend
6086 combinations", *zero_extend<SHORT:mode><GPR:mode>2,
6087 *zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e,
6088 *extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit,
6089 *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc,
6090 *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16,
6091 *movsf_hardfloat, *movsf_softfloat, *movsf_mips16,
6092 *movdf_hardfloat_64bit, *movdf_hardfloat_32bit,
6093 movv2sf_hardfloat_64bit): Use the new types.
6094 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16,
6095 *movdf_softfloat, *movdf_mips16): Use "multi".
6096 (extendqihi2): Replace with a define_expand.
6097 (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New.
6098 Based on extend<SHORT:mode><GPR:mode>2 patterns.
6099 * config/mips/74k.md (r74k_int_logical): New reservation and
6100 bypasses.
6101 (r74k_int_arith): Remove "slt".
6102 * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md,
6103 config/mips/5400.md, config/mips/5500.md, config/mips/5k.md,
6104 config/mips/7000.md, config/mips/9000.md, config/mips/generic.md,
6105 config/mips/sb1.md, config/mips/sr71k.md: Add new types to
6106 reservations for "arith".
6107
6108 2007-07-04 Richard Guenther <rguenther@suse.de>
6109
6110 * tree-ssa.c (useless_type_conversion_p): Add handling for
6111 scalar float and vector types. Only call the types_compatible_p
6112 langhook for aggregate types as last resort. Follow the
6113 rules.
6114
6115 2007-07-04 Richard Guenther <rguenther@suse.de>
6116
6117 * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR
6118 the same as NOP_EXPR.
6119
6120 2007-07-04 Nick Clifton <nickc@redhat.com>
6121
6122 * target.h (struct gcc_target): Add target_help field.
6123 * target-def.h (TARGET_HELP): New.
6124 (TARGET_INITIALIZER): Use TARGET_HELP.
6125 * opts.c (command_handle_option): Invoke target_help function, if
6126 defined, when the user has specified --target-help on the command
6127 line.
6128 * doc/invoke.texi: Mention that --target-help might print
6129 additional information.
6130 * doc/tm.texi: Document TARGET_HELP hook.
6131
6132 * arm.c (TARGET_HELP): Override default definition.
6133 (arm_target_help): New - display a wrapped list of cores and
6134 architectures supported.
6135
6136 2007-07-04 Rask Ingemann Lambertsen <rask@sygehus.dk>
6137
6138 * config/v850/v850.c (expand_prologue): Make sure
6139 GEN_INT() argument is sign extended rather than zero extended.
6140 (expand_epilogue): Likewise.
6141 (output_move_double): Delete.
6142 * config/v850/v850-protos.h (output_move_double): Delete.
6143 * config/v850/v850.md (movdi): Delete.
6144 (*movdi_internal): Delete.
6145 (movdf): Delete.
6146 (*movdf_internal): Delete.
6147
6148 2007-07-04 Richard Sandiford <richard@codesourcery.com>
6149
6150 * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax
6151 unless compiling RTP PIC.
6152
6153 2007-07-04 Richard Guenther <rguenther@suse.de>
6154
6155 PR tree-optimization/32482
6156 * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the
6157 original ssa name if we didn't find a shift expression.
6158 Fix shift constant for bit zero test.
6159
6160 2007-07-04 Richard Sandiford <richard@codesourcery.com>
6161
6162 * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool.
6163
6164 2007-07-04 Richard Sandiford <richard@codesourcery.com>
6165
6166 * config.gcc (arm-wrs-vxworks): Don't include svr4.h.
6167 * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define.
6168 * config/arm/vxworks.h (ASM_SPEC): Delete.
6169 (SUBTARGET_EXTRA_ASM_SPEC): Define.
6170
6171 2007-07-04 Sebastian Pop <sebpop@gmail.com>
6172
6173 * tree-data-ref.h (data_dependence_relation): New flag reversed_p.
6174 (DDR_REVERSED_P): New.
6175 * tree-data-ref.c (initialize_data_dependence_relation,
6176 build_classic_dist_vector): Set DDR_REVERSED_P.
6177
6178 2007-07-04 Sebastian Pop <sebpop@gmail.com>
6179
6180 PR middle-end/32457
6181 * tree-data-ref.c (analyze_siv_subscript_cst_affine,
6182 compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
6183 init_omega_for_ddr_1): Use non conservative number of iterations
6184 estimations.
6185 (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
6186 (analyze_siv_subscript): Remove FIXME and reinitialization of
6187 last_conflicts to chrec_dont_know.
6188 * testsuite/gfortran.dg/vect/pr32457.f90: New.
6189
6190 2007-07-04 Douglas Gregor <doug.gregor@gmail.com>
6191
6192 * tree.c (maybe_canonicalize_argtypes): Improve description.
6193
6194 2007-07-04 Douglas Gregor <doug.gregor@gmail.com>
6195
6196 * tree.c (maybe_canonicalize_argtypes): New.
6197 (build_function_type): Set canonical type.
6198 (build_method_type_directly): Ditto.
6199 (reconstruct_complex_type): Rebuild the METHOD_TYPE node
6200 properly.
6201
6202 2007-07-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
6203
6204 * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
6205 like PLUS_EXPR.
6206 (rewrite_use_nonlinear_expr): Likewise.
6207
6208 2007-07-03 Seongbae Park <seongbae.park@gmail.com>
6209
6210 * rtl.def (UNSPEC, USE, CLOBBER): More comments.
6211
6212 2007-07-04 Ben Elliston <bje@au.ibm.com>
6213
6214 * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
6215 of this file.
6216
6217 * c-objc-common.c (c_types_compatible_p): Fix indentation.
6218
6219 * doc/tm.texi (Run-time Target): Capitalise "CPU".
6220 (Exception Handling): Likewise.
6221
6222 2007-07-03 Jan Hubicka <jh@suse.cz>
6223
6224 * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
6225
6226 2007-07-03 Eric Christopher <echristo@apple.com>
6227
6228 * doc/cppopts.texi: Add conflicting option note to -dM.
6229 * doc/invoke.texi: Add note about possible conflicts with
6230 -E for -dCHARS and note that -dM will not produce
6231 any results if there is no machine dependent reorg.
6232
6233 2007-07-03 Geoffrey Keating <geoffk@apple.com>
6234
6235 * tree.h (DECL_ALIGN): Back out previous change.
6236
6237 2007-07-03 Joseph Myers <joseph@codesourcery.com>
6238
6239 * configure.ac: Test for .dtprelword support on MIPS.
6240 * configure, config.in: Regenerate.
6241 * config/mips/mips.c (mips_output_dwarf_dtprel): New.
6242 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
6243
6244 2007-07-03 Julian Brown <julian@codesourcery.com>
6245
6246 * config.gcc (with_fpu): Allow --with-fpu=vfp3.
6247 * config/arm/aout.h (REGISTER_NAMES): Add D16-D31.
6248 * config/arm/aof.h (REGISTER_NAMES): Add D16-D31.
6249 * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor
6250 capability.
6251 (all_fpus): Add FPUTYPE_VFP3.
6252 (fp_model_for_fpu): Add VFPv3 field.
6253 (arm_rtx_costs_1): Give cost to VFPv3 constants.
6254 (vfp3_const_double_index): New function. Return integer index of
6255 VFPv3 constant suitable for fconst[sd] insns, or -1 if constant
6256 isn't suitable.
6257 (vfp3_const_double_rtx): New function. True if VFPv3 is enabled
6258 and argument represents a valid RTX for a VFPv3 constant.
6259 (vfp_output_fldmd): Split fldmd with > 16 registers in the list into
6260 two instructions.
6261 (vfp_emit_fstmd): Similar, for fstmd.
6262 (arm_print_operand): Implement new code 'G' for VFPv3 floating-point
6263 constants, represented as integer indices.
6264 (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE,
6265 VFP_REGNO_OK_FOR_DOUBLE macros.
6266 (arm_regno_class): Handle VFPv3 d0-d7, low, high register split.
6267 (arm_file_start): Set float-abi attribute for VFPv3, and output
6268 correct ".fpu" assembler directive.
6269 (arm_dbx_register_numbering): Add FIXME.
6270 * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3.
6271 (fputype): Add FPUTYPE_VFP3.
6272 (FIXED_REGISTERS): Add 32 registers for D16-D31.
6273 (CALL_USED_REGISTERS): Likewise.
6274 (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition
6275 of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present.
6276 (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3.
6277 (D7_VFP_REGNUM): New.
6278 (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM)
6279 (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE)
6280 (VFP_REGNO_OK_FOR_DOUBLE): Define new macros.
6281 (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3.
6282 (REG_ALLOC_ORDER): Adjust for VFPv3.
6283 (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS.
6284 (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS,
6285 VFP_LO_REGS, VFP_HI_REGS.
6286 (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS.
6287 (IS_VFP_CLASS): Define macro.
6288 (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use
6289 IS_VFP_CLASS.
6290 (REGISTER_MOVE_COST): Likewise.
6291 * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype.
6292 * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127.
6293 (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp)
6294 (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp)
6295 (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp)
6296 (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp)
6297 (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp)
6298 (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2)
6299 (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2)
6300 (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp)
6301 (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't'
6302 where appropriate for single-word registers.
6303 (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp):
6304 As above. Fix type attributes.
6305 * config/arm/constraints.md (register_contraint "t"): Define.
6306 (register_constraint "w"): Change to D0-D15, or D0-D31 for
6307 VFPv3/NEON.
6308 (register_constraint "x"): Define.
6309 (constraint "Dv"): Define.
6310
6311 2007-07-03 Geoffrey Keating <geoffk@apple.com>
6312
6313 * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.
6314
6315 2007-07-03 Tom Tromey <tromey@redhat.com>
6316
6317 * c-parser.c (objc_pq_context): Removed.
6318 (objc_need_raw_identifier): Likewise.
6319 (c_parser) <objc_pq_context>: New field.
6320 <objc_need_raw_identifier>: Likewise.
6321 (OBJC_NEED_RAW_IDENTIFIER): Removed.
6322 (c_lex_one_token): Update.
6323 (c_parser_objc_protocol_definition): Update.
6324 (c_parser_objc_method_definition): Update.
6325 (c_parser_objc_methodproto): Update.
6326 (c_parser_declspecs): Update.
6327
6328 2007-07-03 David Ung <davidu@mips.com>
6329
6330 * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.
6331
6332 2007-07-03 David Ung <davidu@mips.com>
6333 Richard Sandiford <richard@codesourcery.com>
6334
6335 * doc/invoke.texi: Document -march=74kf3_2.
6336 * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type.
6337 (TUNE_74K): Check for it.
6338 * config/mips/mips.c (mips_cpu_info): Add 74kf3_2.
6339 (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2.
6340 * config/mips/mips.md (cpu): Add 74kf3_2.
6341 * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop)
6342 (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo)
6343 (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump)
6344 (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add
6345 74kf3_2 to the CPU list.
6346 (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore)
6347 (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf)
6348 (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df)
6349 (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1)
6350 (r74kf3_2_fxfer_from_c1): New insn reservations.
6351
6352 2007-07-03 Richard Sandiford <richard@codesourcery.com>
6353 David Ung <davidu@mips.com>
6354
6355 * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and
6356 -march=24kx with -march=24kf1_1. Likewise 24ke[fx], 34k[fx]
6357 and 74k[fx]. Document aliases for the new options.
6358 * config/mips/mips.h (PROCESSOR_24KF): Rename to...
6359 (PROCESSOR_24KF2_1): ...this.
6360 (PROCESSOR_24KX): Rename to...
6361 (PROCESSOR_24KF1_1): ...this.
6362 (PROCESSOR_74KF): Rename to...
6363 (PROCESSOR_74KF2_1): ...this.
6364 (PROCESSOR_74KX): Rename to...
6365 (PROCESSOR_74KF1_1): ...this.
6366 (TUNE_74K): Update PROCESSOR_* names.
6367 * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym
6368 for 24kf. Add 24kf1_1 and 24kfx as synonyms for 24kx. Likewise
6369 the 24ke*, 34k* and 74k* processors. Update PROCESSOR_* names.
6370 (mips_rtx_cost_data): Update processor names in comments.
6371 (mips_issue_rate): Update PROCESSOR_* names.
6372 * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to
6373 24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1.
6374 * config/mips/24k.md: Rename FPU-related r24k_* insn reservations
6375 to r24kf2_1_*. Rename r24kx_* insn reservations to r24kf1_1_*.
6376 Update cpu attribute names.
6377 (r24k_fpu_iss): Rename this reservation to...
6378 (r24kf2_1_fpu_iss): ...this and update all uses.
6379 (r24kx_fpu_iss): Rename this reservation to...
6380 (r24kf1_1_fpu_iss): ...this and update all uses.
6381 * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations
6382 to r74kf2_1_*. Rename r74kx_* insn reservations to r74kf1_1_*.
6383 Update cpu attribute names.
6384
6385 2007-07-01 Kaz Kojima <kkojima@gcc.gnu.org>
6386
6387 * config/m32r/constraints.md: New file.
6388 * config/m32r/m32r.c: Include tm-constrs.h.
6389 (small_data_operand): Use satisfies_constraint_* instead of macro.
6390 (addr24_operand, gen_compare): Likewise.
6391 * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove.
6392 (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT,
6393 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
6394 EXTRA_CONSTRAINT): Likewise.
6395 * config/m32r/m32r.md: Include constraints.md.
6396 (*movsi_insn): Use satisfies_constraint_* instead of macro.
6397 (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise.
6398 * config/m32r/predicates.md (conditional_move_operand): Likewise.
6399 (two_insn_const_operand, int8_operand, uint16_operand,
6400 reg_or_int16_operand, reg_or_uint16_operand,
6401 reg_or_cmp_int16_operand, cmp_int16_operand,
6402 seth_add3_operand): Likewise.
6403
6404 2007-07-03 Eric Christopher <echristo@gmail.com>
6405
6406 * libgcc2.h: Conditionally declare __bswapsi2 and
6407 __bswapdi2.
6408
6409 2007-07-03 H.J. Lu <hongjiu.lu@intel.com>
6410
6411 * ddg.c (check_sccs): Define only if ENABLE_CHECKING is
6412 defined.
6413
6414 2007-07-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6415
6416 PR target/28307
6417 * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
6418 (__gthrw_pragma): Provide default definition.
6419 (__gthrw2): Use it.
6420 * gthr-posix.c (__gthrw_pragma): Define.
6421
6422 2007-07-03 Daniel Berlin <dberlin@dberlin.org>
6423
6424 * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
6425 before declaring inequality.
6426
6427 2007-07-03 Rask Ingemann Lambertsen <rask@sygehus.dk>
6428
6429 * combine.c (recog_for_combine): Log the success or failure of
6430 matching new insn patterns against the machine description in
6431 detailed dumps.
6432
6433 2007-07-03 Revital Eres <eres@il.ibm.com>
6434
6435 * ddg.c (print_sccs): New function.
6436 (check_sccs): New function.
6437 (create_ddg_all_sccs): Use it.
6438 * ddg.h (print_sccs): Declare.
6439 * modulo-sched.c (sms_order_nodes): Call print_sccs.
6440
6441 2007-07-03 Uros Bizjak <ubizjak@gmail.com>
6442
6443 * targhooks.h (default_mode_for_suffix): New function declaration.
6444 * targhooks.c (default_mode_for_suffix): New default target hook.
6445 * target.h (struct c): New structure in the targetm struct.
6446 (mode_for_suffix): New target hook as part of struct c.
6447 target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
6448 default_mode_for_suffix.
6449 (TARGET_C): New define.
6450 * c-lex.c: Include "target.h".
6451 (interpret_float): Use targetm.c.mode_for_suffix to determine
6452 the mode for a given non-standard suffix.
6453 Makefile.in (c-lex.o): Depend on $(TARGET_H).
6454
6455 * config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
6456 (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.
6457
6458 * doc/extend.texi (Floating Types): New node. Document __float80 and
6459 __float128 types. Document 'w', 'W', 'q' and 'Q' suffixes.
6460
6461 2007-07-03 Kaz Kojima <kkojima@gcc.gnu.org>
6462
6463 PR target/32506
6464 * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
6465 predicate instead of target_operand.
6466 (divsi3_i1_media, divsi3_media_2): Likewise.
6467
6468 2007-07-02 Eric Botcazou <ebotcazou@adacore.com>
6469
6470 * tree.h (alias_sets_might_conflict_p): Rename into
6471 alias_sets_must_conflict_p.
6472 * alias.c (alias_sets_might_conflict_p): Likewise.
6473 (alias_sets_conflict_p): Use it.
6474 (objects_must_conflict_p): Likewise.
6475 * c-common.c (strict_aliasing_warning): Adjust.
6476
6477 2007-07-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
6478
6479 * rtlhooks.c (gen_lowpart_if_possible): Check for
6480 invalid subreg before calling gen_lowpart_SUBREG.
6481
6482 2007-07-02 Geoffrey Keating <geoffk@apple.com>
6483
6484 * config/darwin9.h: Add copyright notice.
6485 (LINK_COMMAND_SPEC): Add comment.
6486 (DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
6487 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
6488 DARWIN_LIBSYSTEM_HAS_UNWIND.
6489
6490 2007-07-02 Jakub Jelinek <jakub@redhat.com>
6491
6492 PR libgomp/32468
6493 * omp-low.c (check_combined_parallel): New function.
6494 (lower_omp_parallel): Call it via walk_stmts, set
6495 OMP_PARALLEL_COMBINED if appropriate.
6496 (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
6497 isn't the only statement in WS_ENTRY_BB or OMP_RETURN
6498 the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
6499 don't consider it as combined parallel.
6500
6501 2007-07-02 Richard Sandiford <richard@codesourcery.com>
6502
6503 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
6504 (gcc_tooldir): Likewise.
6505 * configure: Regenerate.
6506 * Makefile.in (libsubdir_to_prefix): New variable, based on the
6507 old configure.ac gcc_tooldir setting.
6508 (prefix_to_exec_prefix): New variable.
6509 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
6510 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
6511
6512 2007-07-02 Daniel Berlin <dberlin@dberlin.org>
6513
6514 Fix PR tree-optimization/32583
6515 Fix PR tree-optimization/32584
6516 * tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
6517 (phi_translate_set): Use phi_translate directly now.
6518 (make_values_for_stmt): Don't value number RHS if we already know
6519 it is constant.
6520
6521 2007-07-02 Steve Ellcey <sje@cup.hp.com>
6522 Jim Wilson <wilson@specifix.com>
6523
6524 PR target/31684
6525 * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
6526 copy_insn.
6527
6528 2007-07-02 Sandra Loosemore <sandra@codesourcery.com>
6529 Richard Sandiford <richard@codesourcery.com>
6530 Nigel Stephens <nigel@mips.com>
6531
6532 * config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
6533 (mips16e_output_save_restore): Declare.
6534 (mips16e_save_restore_pattern_p): Likewise.
6535 * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
6536 * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
6537 for GENERATE_MIPS16E_SAVE_RESTORE. Return 0x400 for TARGET_MIPS16
6538 && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
6539 (BITSET_P): New global macro, extracted from...
6540 (mips_for_each_saved_reg): ...here.
6541 (mips16e_save_restore_info): New struct.
6542 (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
6543 (mips16e_save_restore_regs): New variable.
6544 (mips_split_plus, mips16e_find_first_register): New functions.
6545 (mips16e_mask_registers): New function.
6546 (compute_frame_size): Expand the commentary before the function.
6547 Enforce the MIPS16e save and restore register range restrictions.
6548 Pad the general register save area at the low end.
6549 (mips16e_save_restore_reg, mips16e_build_save_restore)
6550 (mips16e_save_restore_pattern_p, mips16e_add_register_range)
6551 (mips16e_output_save_restore, mips16e_collect_propagate_value)
6552 (mips16e_collect_argument_save, mips16e_collect_argument_saves):
6553 New functions.
6554 (mips_expand_prologue, mips_expand_epilogue): Handle
6555 GENERATE_MIPS16E_SAVE_RESTORE.
6556 * config/mips/mips.md (*mips16e_save_restore): New pattern.
6557
6558 2007-07-02 Uros Bizjak <ubizjak@gmail.com>
6559
6560 PR tree-optimization/31966
6561 PR tree-optimization/32533
6562 * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
6563 "basic_block" description as its third argument. Update function
6564 calls to get destination bb from "edge" argument. Save "cond" into
6565 aux field of the edge. Update prototype for changed arguments.
6566 (if_convertible_loop_p): Clear aux field of incoming edges if bb
6567 contains phi node.
6568 (find_phi_replacement_condition): Operate on incoming edges, not
6569 on predecessor blocks. If there is a condition saved in the
6570 incoming edge aux field, AND it with incoming bb predicate.
6571 Return source bb of the first edge.
6572 (clean_predicate_lists): Clean aux field of outgoing node edges.
6573 (tree_if_conversion): Do not initialize cond variable. Move
6574 variable declaration into the loop.
6575 (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
6576 initializations of new_stmt, arg0 and arg1 variables.
6577
6578 2007-07-02 Jakub Jelinek <jakub@redhat.com>
6579
6580 * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
6581 SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
6582
6583 2007-07-02 Richard Guenther <rguenther@suse.de>
6584
6585 * tree-ssa.c (useless_type_conversion_p): Document
6586 future intent as defining the middle-end type system.
6587 Re-structure to call langhook last, group by type class,
6588 mark questionable parts.
6589
6590 2007-07-02 Richard Guenther <rguenther@suse.de>
6591
6592 * tree-flow.h (types_compatible_p): Declare.
6593 * tree-ssa.c (types_compatible_p): New function.
6594 * ipa-type-escape.c (discover_unique_type): Use
6595 types_compatible_p instead of lang_hooks.types_compatible_p.
6596 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
6597 * tree-vn.c (expressions_equal_p): Likewise.
6598 * tree.c (fields_compatible_p): Likewise.
6599 * tree-ssa-dom.c (avail_expr_eq): Likewise.
6600 (cprop_operand): Use useless_type_conversion_p instead of
6601 lang_hooks.types_compatible_p.
6602 * tree-inline.c (setup_one_parameter): Likewise.
6603 (declare_return_variable): Likewise.
6604 * tree-nrv.c (tree_nrv): Likewise.
6605 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
6606 (maybe_fold_offset_to_component_ref): Likewise.
6607 (maybe_fold_offset_to_reference): Likewise.
6608 * tree-ssa-copy.c (may_propagate_copy): Likewise.
6609 (merge_alias_info): Likewise.
6610 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
6611 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
6612 * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
6613 * tree-tailcall.c (find_tail_calls): Likewise.
6614 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
6615 * gimplify.c (canonicalize_addr_expr): Likewise.
6616 (fold_indirect_ref_rhs): Likewise.
6617 (gimplify_addr_expr): Likewise. Swap parameters to cpt_same_type.
6618 (cpt_same_type): Likewise.
6619 (check_pointer_types_r): Swap parameters to cpt_same_type
6620 where appropriate.
6621 * fold-const.c (fold_convert): Revert fix for PR15988.
6622 * tree-inline.c (setup_one_parameter): Instead fix it here by
6623 using fold_build1 instead of fold_convert and checking for
6624 error_mark_node. Convert only if the conversion is necessary.
6625
6626 2007-07-02 Joseph Myers <joseph@codesourcery.com>
6627
6628 * configure.ac: Check for .gnu_attribute on Power.
6629 * configure: Regenerate.
6630 * config/rs6000/rs6000.c (rs6000_file_start): If supported, output
6631 attribute for floating-point ABI.
6632
6633 2007-07-02 Ira Rosen <irar@il.ibm.com>
6634
6635 PR tree-optimization/32230
6636 PR tree-optimization/32477
6637 * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base
6638 address is a constant.
6639
6640 2007-07-02 Richard Sandiford <richard@codesourcery.com>
6641
6642 * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*)
6643 (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*)
6644 (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level
6645 stanzas. Use the first part of the triplet to set MIPS_ISA_DEFAULT.
6646 Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the
6647 64-bit targets. Add support for *-elfoabi*.
6648 * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use
6649 different settings if $(tm_defines) does not select the EABI.
6650 (MULTILIB_EXCLUSIONS): Define in those circumstances.
6651 * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro.
6652 (MIPS_ARCH_OPTION_SPEC): Likewise.
6653 (MIPS_ISA_LEVEL_SPEC): Likewise.
6654 (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC.
6655 * config/mips/elfoabi.h: New file.
6656
6657 2007-07-02 Richard Guenther <rguenther@suse.de>
6658
6659 * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ...
6660 (useless_type_conversion_p): ... this.
6661 * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ...
6662 (useless_type_conversion_p): ... this.
6663 * builtins.c (fold_builtin_memory_op): Rename
6664 tree_ssa_useless_type_conversion_1 to useless_type_conversion_p.
6665 * tree-cfg.c (verify_expr): Likewise.
6666 * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise.
6667 * tree-ssa-ccp.c (ccp_fold): Likewise.
6668 * tree-ssa-copy.c (may_propagate_copy): Likewise.
6669 * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
6670 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
6671 * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise.
6672 * tree-ssa-pre.c (eliminate): Likewise.
6673 * tree-ssa.c (delete_tree_ssa): Likewise.
6674 (tree_ssa_useless_type_conversion): Likewise.
6675 * tree.c (build2_stat): Likewise.
6676
6677 2007-07-01 Daniel Berlin <dberlin@dberlin.org>
6678
6679 Fix PR tree-optimization/32571
6680 * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid
6681 simplifying them.
6682
6683 2007-07-01 Daniel Berlin <dberlin@dberlin.org>
6684
6685 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants
6686 and other expected operations explicitly, change default to
6687 gcc_unreachable.
6688
6689 2007-07-01 Daniel Jacobowitz <dan@codesourcery.com>
6690
6691 * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a
6692 PARALLEL.
6693 * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight)
6694 (tls_load_dot_plus_eight): Move the label number into the unspec.
6695 * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise.
6696
6697 2007-07-01 Andreas Schwab <schwab@suse.de>
6698
6699 * dwarf2out.c (initial_return_save): Define only if used.
6700
6701 2007-07-01 Kenneth Zadeck <zadeck@naturalbridge.com>
6702
6703 Unreverting Richard's Revert of:
6704
6705 2007-06-27 Richard Sandiford <richard@codesourcery.com>
6706
6707 * dce.c (deletable_insn_p_1): New function, split out from...
6708 (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs
6709 specially, not those inside PARALLELs. Remove BODY argument
6710 and adjust recursive call accordingly.
6711 (prescan_insns_for_dce): Update call to delete_insn_p.
6712
6713 2007-07-01 Vladimir Yanovsky <yanov@il.ibm.com>
6714 Revital Eres <eres@il.ibm.com>
6715
6716 * ddg.c (create_ddg_all_sccs): Fix missed
6717 initialization of scc_nodes.
6718
6719 2007-07-01 Uros Bizjak <ubizjak@gmail.com>
6720
6721 PR middle-end/32559
6722 * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or
6723 X + ~X to 1 only for INTEGRAL_TYPE_P type.
6724
6725 2007-06-30 Joseph Myers <joseph@codesourcery.com>
6726
6727 * configure.ac: Check for .gnu_attribute on MIPS.
6728 * configure, config.in: Regenerate.
6729 * config/mips/mips.c (mips_file_start): If supported, output
6730 attribute for floating-point ABI.
6731
6732 2007-06-30 Uros Bizjak <ubizjak@gmail.com>
6733
6734 PR target/32433
6735 * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE.
6736 (ffs_cmove): New expander to expand using ctz pattern.
6737 (*ffs_cmove): Remove pattern.
6738 (*ffs_no_cmove): Enable only for !TARGET_CMOVE.
6739 (ffsdi2): Expand using ctz pattern.
6740 (*ffs_rex64): Remove pattern.
6741
6742 2007-06-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6743
6744 PR rtl-optimization/32296
6745 * pa.md (return): Delete pattern.
6746 (return_internal): Remove "(const_int 1)" from pattern.
6747 (epilogue): Use return_internal pattern for trivial returns.
6748 * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration.
6749 * pa.c (hppa_can_use_return_insn_p): Delete function. Include "df.h".
6750
6751 2007-06-30 Daniel Berlin <dberlin@dberlin.org>
6752
6753 * tree-ssa-pre.c (is_exception_related): New function
6754 (can_value_number_operation): Use it.
6755
6756 2007-06-30 Daniel Berlin <dberlin@dberlin.org>
6757
6758 Fix PR tree-optimization/32540
6759 Fix PR tree-optimization/31651
6760
6761 * tree-ssa-sccvn.c: New file.
6762
6763 * tree-ssa-sccvn.h: Ditto.
6764
6765 * tree-vn.c: Include tree-ssa-sccvn.h
6766 (val_expr_paid_d): Removed.
6767 (value_table): Ditto.
6768 (vn_compute): Ditto.
6769 (val_expr_pair_hash): Ditto.
6770 (val_expr_pair_expr_eq): Ditto.
6771 (copy_vuses_from_stmt): Ditto.
6772 (vn_delete): Ditto.
6773 (vn_init): Ditto.
6774 (shared_vuses_from_stmt): Ditto.
6775 (print_creation_to_file): Moved up.
6776 (sort_vuses): Ditto.
6777 (sort_vuses_heap): Ditto.
6778 (set_value_handle): Make non-static.
6779 (make_value_handle): Ditto.
6780 (vn_add): Rewritten to use sccvn lookups.
6781 (vn_add_with_vuses): Ditto.
6782 (vn_lookup): Ditto (and second argument removed).
6783 (vn_lookup_with_vuses): Ditto.
6784 (vn_lookup_or_add): Ditto (and second argument removed);
6785 (vn_lookup_or_add_with_vuses): Ditto.
6786 (vn_lookup_with_stmt): New.
6787 (vn_lookup_or_add_with_stmt): Ditto.
6788 (create_value_handle_for_expr): Ditto.
6789
6790 * tree-ssa-pre.c: Include tree-ssa-sccvn.h.
6791 (seen_during_translate): New function.
6792 (phi_trans_lookup): Use iterative_hash_expr, not vn_compute.
6793 (phi_trans_add): Ditto.
6794 (constant_expr_p): FIELD_DECL is always constant.
6795 (phi_translate_1): Renamed from phi_translate, add seen bitmap.
6796 Use constant_expr_p.
6797 Avoid infinite recursion on mutually valued expressions.
6798 Change callers of vn_lookup_or_add.
6799 (phi_translate): New function.
6800 (compute_antic_safe): Allow phi nodes.
6801 (create_component_ref_by_pieces): Update for FIELD_DECL change.
6802 (find_or_generate_expression): Rewrite slightly.
6803 (create_expression_by_pieces): Updated for vn_lookup_or_add
6804 change.
6805 Update VN_INFO for new names.
6806 (insert_into_preds_of_block): Update for new names.
6807 (add_to_exp_gen): New function.
6808 (add_to_sets): Use vn_lookup_or_add_with_stmt.
6809 (find_existing_value_expr): Rewrite to changed vn_lookup.
6810 (create_value_expr_from): Ditto, and use add_to_exp_gen.
6811 (try_look_through_load): Removed.
6812 (try_combine_conversion): Ditto.
6813 (get_sccvn_value): New function.
6814 (make_values_for_phi): Ditto.
6815 (make_values_for_stmt): Ditto.
6816 (compute_avail): Rewritten for vn_lookup_or_add changes and to use
6817 SCCVN.
6818 (init_pre): Update for SCCVN changes.
6819 (fini_pre): Ditto.
6820 (execute_pre): Ditto.
6821
6822 * tree-flow.h (make_value_handle): Declare.
6823 (set_value_handle): Ditto.
6824 (sort_vuses_heap): Ditto.
6825 (vn_lookup_or_add_with_stmt): Ditto.
6826 (vn_lookup_with_stmt): Ditto.
6827 (vn_compute): Remove.
6828 (vn_init): Ditto.
6829 (vn_delete): Ditto.
6830 (vn_lookup): Update arguments.
6831
6832 * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h
6833 (tree-vn.o): Ditto.
6834 (tree-ssa-sccvn.o): New.
6835 (OBJS-common): Add tree-ssa-sccvn.o
6836
6837 2007-06-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6838
6839 PR c/4076
6840 * c-typeck.c (build_external_ref): Don't mark as used if called
6841 from itself.
6842 * calls.c (rtx_for_function_call): Likewise.
6843
6844 2007-06-30 Richard Sandiford <richard@codesourcery.com>
6845
6846 Revert:
6847
6848 2007-06-27 Richard Sandiford <richard@codesourcery.com>
6849
6850 * dce.c (deletable_insn_p_1): New function, split out from...
6851 (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs
6852 specially, not those inside PARALLELs. Remove BODY argument
6853 and adjust recursive call accordingly.
6854 (prescan_insns_for_dce): Update call to delete_insn_p.
6855
6856 2007-06-30 Rask Ingemann Lambertsen <rask@sygehus.dk>
6857
6858 * combine.c (combine_validate_cost): New parameter NEWOTHERPAT.
6859 (try_combine): Move potential calls to undo_all() so they happen
6860 before we commit to using the combined insns.
6861
6862 2006-06-30 Jan Hubicka <jh@suse.cz>
6863
6864 * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit
6865 code.
6866
6867 2006-06-30 Thomas Neumann <tneumann@users.sourceforge.net>
6868
6869 * ipa.c (cgraph_postorder): Cast according to the coding conventions.
6870 (cgraph_remove_unreachable_nodes): Likewise.
6871 * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0.
6872 * ipa-inline.c (update_caller_keys): Cast according to the coding
6873 conventions.
6874 (cgraph_decide_recursive_inlining): Likewise.
6875 (cgraph_decide_inlining_of_small_function): Likewise.
6876 (try_inline): Likewise.
6877 (cgraph_decide_inlining_incrementally): Likewise.
6878 * ipa-pure-const.c (get_function_state): Likewise.
6879 (scan_function): Likewise.
6880 (analyze_function): Likewise.
6881 (static_execute): Likewise.
6882 * ipa-reference.c (scan_for_static_refs): Likewise.
6883 (merge_callee_local_info): Likewise.
6884 (analyze_function): Use type safe memory macros.
6885 (static_execute): Likewise. Cast according to the coding conventions.
6886 * ipa-type-escape.c (scan_for_regs): Cast according to the coding
6887 conventions.
6888 * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable
6889 names.
6890 (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros.
6891 * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as
6892 variable names.
6893
6894 2007-06-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
6895
6896 PR middle-end/30024
6897 * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0]
6898 for complex modes (both int and real).
6899
6900 2007-06-29 Jan Hubicka <jh@suse.cz>
6901
6902 * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change.
6903
6904 2007-06-29 Jan Hubicka <jh@suse.cz>
6905
6906 PR middle-end/32372
6907 * cse.c (cse_insn): Avoid invalid sharing in between register note and
6908 the insn pattern.
6909
6910 2007-06-29 Anatoly Sokolov <aesok@post.ru>
6911
6912 PR target/32335
6913 * config/avr/avr.c: Include dataflow header file.
6914 (expand_prologue): Adjust for prologue insn change.
6915 * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once
6916 inside a insn.
6917
6918 2007-06-29 Richard Guenther <rguenther@suse.de>
6919
6920 PR middle-end/32493
6921 * gimplify.c (gimplify_call_expr): Ignore variable argument parts
6922 during type verification.
6923
6924 2007-06-29 Jan Hubicka <jh@suse.cz>
6925
6926 * recog.c (validate_change_rtx_1): Unshare TO argument.
6927
6928 2007-06-29 Uros Bizjak <ubizjak@gmail.com>
6929
6930 PR tree-optimization/24659
6931 * tree-vect-transform.c (vectorizable_call): Handle
6932 (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
6933
6934 * config/i386/sse.md (vec_pack_sfix_v2df): New expander.
6935 * config/i386/i386.c (enum ix86_builtins)
6936 [IX86_BUILTIN_VEC_PACK_SFIX]: New constant.
6937 (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin
6938 description.
6939 (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as
6940 const using def_builtin_const.
6941 (ix86_expand_binop_builtin): Remove bogus assert() that insn wants
6942 input operands in the same modes as the result.
6943 (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT.
6944
6945 2007-06-29 Richard Sandiford <rsandifo@nildram.co.uk>
6946
6947 * df-problems.c (df_set_unused_notes_for_mw): Fix formatting.
6948 (df_set_dead_notes_for_mw): Likewise.
6949
6950 2007-06-29 Eric Botcazou <ebotcazou@adacore.com>
6951
6952 * c-common.c (pointer_int_sum): Do the negation in sizetype.
6953
6954 2007-06-28 DJ Delorie <dj@redhat.com>
6955
6956 * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon.
6957
6958 2007-06-28 Geoffrey Keating <geoffk@apple.com>
6959
6960 * doc/invoke.texi (C++ Dialect Options): Document
6961 fvisibility-ms-compat.
6962 * c.opt (fvisibility-ms-compat): New.
6963
6964 2007-06-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
6965
6966 PR tree-opt/32417
6967 * tree-affine.c (aff_combination_add_elt): Handle
6968 pointer addition specially.
6969
6970 2007-06-28 Jakub Jelinek <jakub@redhat.com>
6971
6972 * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
6973 decl is non-external for AIX ABI.
6974
6975 2007-06-28 David Edelsohn <edelsohn@gnu.org>
6976
6977 * config/rs6000/predicates.md (current_file_function_operand):
6978 Ensure the symbol is non-external for AIX ABI.
6979
6980 2007-06-28 Nick Clifton <nickc@redhat.com>
6981
6982 * common.opt (fipa-matrix-reorg): Add Optimization attribute.
6983 (fdce, fdse, fpredictive-commoning): Likewise.
6984
6985 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
6986
6987 PR other/31400
6988 * gcc.c (process_command): Recognize the new -static-libgfortran
6989 option.
6990
6991 2007-06-27 Rask Ingemann Lambertsen <rask@sygehus.dk>
6992
6993 PR target/32418
6994 * config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix:
6995 Use a call clobbered hard reg instead of a pseudo reg.
6996
6997 2007-06-27 Kaz Kojima <kkojima@gcc.gnu.org>
6998
6999 * config/sh/sh.md (load_gbr): Use correct operand constraint.
7000
7001 2007-06-27 Kaz Kojima <kkojima@gcc.gnu.org>
7002
7003 PR target/32479
7004 * config/sh/sh.md (udivsi3): Don't wrap the sequence with
7005 REG_LIBCALL and REG_RETVAL notes.
7006 (divsi3, mulsi3): Likewise.
7007 (mulhisi3): Likewise. Use emit_libcall_block.
7008 (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise.
7009
7010 2007-06-27 Seongbae Park <seongbae.park@gmail.com>
7011
7012 PR rtl-optimization/32481
7013 * combine.c (adjust_for_new_dest): Rescan the changed insn.
7014
7015 2007-06-27 Richard Sandiford <richard@codesourcery.com>
7016
7017 * dce.c (deletable_insn_p_1): New function, split out from...
7018 (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs
7019 specially, not those inside PARALLELs. Remove BODY argument
7020 and adjust recursive call accordingly.
7021 (prescan_insns_for_dce): Update call to delete_insn_p.
7022
7023 2007-06-27 Richard Guenther <rguenther@suse.de>
7024
7025 PR middle-end/32492
7026 * tree.h (fold_convertible_p): Declare.
7027 * fold-const.c (fold_convertible_p): New function.
7028 * gimplify.c (gimplify_call_expr): Use fold_convertible_p
7029 instead of lang_hooks.types_compatible_p.
7030
7031 2007-06-26 Jan Hubicka <jh@suse.cz>
7032
7033 * fwprop.c (try_fwprop_subst): Use validate_unshare_change.
7034 * postreload.c (reload_cse_simplify_set): Instead of copying the rtx
7035 early use validate_unshare_change.
7036 (reload_combine): Likewise.
7037 * recog.c (change_t): New field unshare.
7038 (validate_change_1): Rename from validate_change; add argument unshare.
7039 (validate_change): Turn into wrapper of validate_change_1; update
7040 prototype for bools.
7041 (validate_unshare_change): New.
7042 (confirm_change_group): Unshare changes if asked for; avoid unnecesary
7043 calls of df_insn_rescan.
7044 * recog.h (validate_change): Replace ints by bools.
7045 (validate_unshare_change): Declare.
7046
7047 2007-06-26 Kenneth Zadeck <zadeck@naturalbridge.com>
7048
7049 * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
7050
7051 2007-06-26 Steve Ellcey <sje@cup.hp.com>
7052
7053 * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode.
7054
7055 2007-06-25 Jan Hubicka <jh@suse.cz>
7056
7057 * ipa-inline.c (cgraph_mark_inline): Assert that we never inline
7058 uninlinable call.
7059 (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining,
7060 cgraph_decide_inlining_incrementally): Move uninlinability checks to
7061 places other call site specific checks are performed.
7062
7063 2007-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
7064
7065 PR tree-opt/32421
7066 * tree-vect-transform.c (vectorizable_operation): Convert
7067 POINTER_PLUS_EXPR over to PLUS_EXPR.
7068
7069 2007-06-25 Chao-ying Fu <fu@mips.com>
7070
7071 * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ,
7072 UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes.
7073 Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
7074 Document GET_MODE_IBIT, and GET_MODE_FBIT.
7075
7076 * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT,
7077 MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
7078 (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P,
7079 SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P,
7080 SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P,
7081 ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P,
7082 ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P,
7083 SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P,
7084 ALL_FIXED_POINT_MODE_P): New define.
7085 (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
7086 MODE_UACCUM.
7087 (GET_MODE_IBIT, GET_MODE_FBIT): New define.
7088
7089 * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM,
7090 MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
7091 MODE_VECTOR_UACCUM): New mode classes.
7092
7093 * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE,
7094 UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT.
7095 Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA,
7096 USA, UDA, and UTA.
7097
7098 * genmodes.c (struct mode_data): Add ibit and fbit fields.
7099 (blank_mode): Initialize ibit and fbit.
7100 (adj_ibit, adj_fbit): New to adjust ibit and fbit.
7101 (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
7102 MODE_UACCUM.
7103 (new_adjust): Change required_class to required_class_from and
7104 required_class_to for testing within a range.
7105 (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
7106 MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
7107 MODE_VECTOR_UACCUM.
7108 (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define.
7109 (make_fixed_point_mode): New.
7110 (_ADD_ADJUST): Change C to C1 and C2.
7111 (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to
7112 use a range for machine classes.
7113 (ADJUST_IBIT, ADJUST_FBIT): New.
7114 (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and
7115 CONST_MODE_FBIT.
7116 (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
7117 MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
7118 Emit adjustment for ibit and fbit.
7119 (emit_mode_ibit, emit_mode_fbit): New.
7120 (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit.
7121
7122 2007-06-25 Nathan Froyd <froydnj@codesourcery.com>
7123
7124 * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand
7125 as the source of the set.
7126
7127 2007-06-25 Roman Zippel <zippel@linux-m68k.org>
7128
7129 * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P,
7130 FP_REGNO_P): Use IN_RANGE.
7131 (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
7132 (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New.
7133 (DATA_REG_P): Use DATA_REGNO_P.
7134 (FP_REG_P): Use FP_REGNO_P.
7135 (ADDRESS_REG_P): Use ADDRESS_REGNO_P.
7136 * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use
7137 REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P.
7138
7139 2007-06-24 Jan Hubicka <jh@suse.cz>
7140
7141 PR middle-end/30563
7142 * cgraphunit.c (cgraph_analyze_function): Fix ordering problem.
7143
7144 2007-06-24 Sebastian Pop <sebpop@gmail.com>
7145
7146 PR middle-end/32461
7147 * fold-const.c (fold_binary): Strip nops of operand 0
7148 of BIT_NOT_EXPR before calling operand_equal_p.
7149 * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New.
7150 * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New.
7151
7152 2007-06-23 Mark Mitchell <mark@codesourcery.com>
7153
7154 * doc/extend.texi: Document that dllimport and dllexport imply
7155 default visibility.
7156 * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the
7157 imported or exported declaration, including type declarations.
7158 * c-common.c (handle_visibility_attribute): Check for conflicts
7159 with dllimport/dllexport.
7160 (c_determine_visibility): Handle dllimport/dllexport as an
7161 explicit visibility atttribute.
7162
7163 2007-06-23 Richard Guenther <rguenther@suse.de>
7164
7165 PR tree-optimization/16876
7166 PR middle-end/29478
7167 * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag
7168 for CALL_EXPRs.
7169 * tree-inline.c (initialize_inlined_parameters): Do not call
7170 lang_hooks.tree_inlining.convert_parm_for_inlining.
7171 * cgraphbuild.c (initialize_inline_failed): Set inline failed
7172 reason for mismatched types.
7173 * gimplify.c (gimplify_call_expr): Verify the call expression
7174 arguments match the called function type signature. Otherwise
7175 mark the call expression to be not considered for inlining
7176 using CALL_CANNOT_INLINE_P flag.
7177 * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the
7178 edges call expression.
7179 (cgraph_decide_inlining_of_small_function): Likewise.
7180 (cgraph_decide_inlining): Likewise.
7181 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
7182 Remove define.
7183 * c-tree.h (c_convert_parm_for_inlining): Remove declaration.
7184 * c-typeck.c (c_convert_parm_for_inlining): Remove.
7185 * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining):
7186 Remove declaration.
7187 (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define.
7188 * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining):
7189 Remove.
7190 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
7191 convert_parm_for_inlining member.
7192
7193 2007-06-23 Richard Earnshaw <rearnsha@arm.com>
7194
7195 PR target/31152
7196 * arm.md (negscc): Match the correct operand for optimized LT0 test.
7197 Remove optimization for GT.
7198
7199 2007-06-23 Kenneth Zadeck <zadeck@naturalbridge.com>
7200
7201 PR middle-end/32437
7202 * dce.c (deletable_insn_p): Add extra parameter and recurse if insn
7203 is a PARALLEL.
7204 (prescan_insns_for_dce): Add extra parameter.
7205
7206 2007-06-23 Jan Hubicka <jh@suse.cz>
7207
7208 PR middle-end/31541
7209 * gimplify.c (mark_addressable): New function.
7210 (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it.
7211
7212 2007-06-22 Uros Bizjak <ubizjak@gmail.com>
7213
7214 PR middle-end/32374
7215 * expr.c (store_constructor): Do not clobber non-zeroed memory.
7216
7217 2007-06-22 Uros Bizjak <ubizjak@gmail.com>
7218
7219 PR target/32413
7220 * config/i386/i386.c (ix86_register_move_cost): Rise the cost of
7221 moves between MMX/SSE registers to at least 8 units to prevent
7222 ICE caused by non-tieable SI/HI/QImodes in SSE registers.
7223
7224 2007-06-22 Uros Bizjak <ubizjak@gmail.com>
7225
7226 * config/i386/i386.c (override_options): Correct x86_sahf
7227 setting condition.
7228
7229 2007-06-21 David Daney <ddaney@avtrex.com>
7230
7231 PR target/32406
7232 * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
7233 to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
7234 (exception_receiver): Renamed to ...
7235 (nonlocal_goto_receiver): ... this.
7236
7237 2007-06-22 Roman Zippel <zippel@linux-m68k.org>
7238
7239 * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE.
7240 (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for
7241 partial register accesses.
7242
7243 2007-06-21 Adam Nemet <anemet@caviumnetworks.com>
7244
7245 * fold-const.c (debug_fold_checksum): Move it under
7246 ENABLE_FOLD_CHECKING.
7247
7248 2007-06-21 Sebastian Pop <sebpop@gmail.com>
7249
7250 PR middle-end/20623
7251 * tree.h (debug_fold_checksum): Declared.
7252 * fold-const.c (build_fold_addr_expr_with_type_1): New.
7253 (build_fold_addr_expr_with_type, build_fold_addr_expr): Use
7254 build_fold_addr_expr_with_type_1.
7255 (fold_addr_expr, debug_fold_checksum): New.
7256 (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME.
7257 (fold_unary, fold_comparison, split_address_to_core_and_offset):
7258 Use fold_addr_expr.
7259
7260 2007-06-21 Sebastian Pop <sebpop@gmail.com>
7261
7262 PR tree-optimization/19590
7263 * tree-vrp.c (adjust_range_with_scev): Set the range when the result
7264 of scev is a constant.
7265 * gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New.
7266
7267 2007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com>
7268
7269 * df-problems.c (df_note_bb_compute): Made computation of live
7270 info consistent with df_lr.
7271
7272 2007-06-21 Richard Guenther <rguenther@suse.de>
7273
7274 PR tree-optimization/32453
7275 * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR
7276 for pointer anti-range.
7277
7278 2007-06-21 H.J. Lu <hongjiu.lu@intel.com>
7279
7280 * config/i386/i386.c (processor_target_table): Increase maximum
7281 skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
7282 default 64bit.
7283
7284 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
7285 byte alignment if > 8 byte alignment is preferred.
7286 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
7287
7288 2007-06-21 Jakub Jelinek <jakub@redhat.com>
7289
7290 PR tree-optimization/31866
7291 * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
7292 if ASM_EXPR's input is not a SSA_NAME.
7293
7294 PR middle-end/32362
7295 * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
7296 but decl is a global var, instead return decl.
7297 * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
7298 even for is_global_var decls, if they are private in some outer
7299 context.
7300
7301 2007-06-21 Richard Guenther <rguenther@suse.de>
7302
7303 PR tree-optimization/32451
7304 * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags.
7305
7306 2007-06-21 Christian Bruel <christian.bruel@st.com>
7307
7308 * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare.
7309 * config/sh/sh.c (sh_loads_bankedreg_p): New function.
7310 (push_regs): Changed saving order or banked registers.
7311 (sh_expand_epilogue): Likewise.
7312 * config/sh/sh.h (BANKED_REGISTER_P): New macro.
7313 (FIRST_BANKED_REG): Likewise.
7314 (LAST_BANKED_REG): Likewise.
7315 * config/sh/sh.md (banked) New attribute.
7316 (in_delay_slot): Check banked attribute.
7317
7318 2007-06-20 Sebastian Pop <sebpop@gmail.com>
7319
7320 PR tree-optimization/32075
7321 * tree-data-ref.c (subscript_dependence_tester_1,
7322 analyze_miv_subscript, analyze_overlapping_iterations,
7323 add_distance_for_zero_overlaps, build_classic_dist_vector,
7324 subscript_dependence_tester_1, analyze_overlapping_iterations,
7325 subscript_dependence_tester, access_functions_are_affine_or_constant_p,
7326 compute_affine_dependence, compute_all_dependences): Pass loop_nest
7327 to evolution_function_is_affine_multivariate_p.
7328
7329 2007-06-20 Eric Botcazou <ebotcazou@libertysurf.fr>
7330
7331 * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
7332
7333 2007-06-20 Rask Ingemann Lambertsen <rask@sygehus.dk>
7334
7335 PR target/32335
7336 * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
7337 for TARGET_A16.
7338 * config/m32c/prologue.md (epilogue_exitd_16): New.
7339 (epilogue_reit_16): New.
7340 (epilogue_exitd): Rename to epilogue_exitd_24.
7341 (epilogue_reit): Rename to epilogue_reit_24.
7342
7343 2007-06-20 Seongbae Park <seongbae.park@gmail.com>
7344 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7345
7346 * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
7347 New counters.
7348 * haifa-sched.c (queue_to_ready): Don't requeue next insn
7349 if dbg_cnt (sched_insn) reaches the limit.
7350 (choose_ready): New parameter INSN_PTR and new return value.
7351 (schedule_block): Handle dbg_cnt (sched_insn). Handle
7352 the new return value from choose_ready.
7353 * global.c (global_aloc): New dbgcnt global_alloc_at_reg.
7354 (rest_of_handle_global_alloc): New global_alloc_at_func.
7355
7356 2007-06-20 Adam Nemet <anemet@caviumnetworks.com>
7357
7358 PR tree-optimization/25737
7359 * tree.h (struct tree_struct_field_tag): Add new field alias_set.
7360 (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
7361 * tree-flow.h (struct fieldoff): Add new field alias_set.
7362 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
7363 argument addressable_type. Set alias_set of fieldoff.
7364 * tree-ssa-alias.c (create_sft): Add new argument alias_set.
7365 (create_overlap_variables_for): Pass alias_set from fieldoff to
7366 create_sft.
7367 * alias.c (get_alias_set): Use alias_set from SFT if set.
7368
7369 2007-06-20 Hui-May Chang <hm.chang@apple.com>
7370
7371 * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
7372 of a variable as an unsigned HOST_WIDE_INT integer.
7373
7374 2007-06-20 Zdenek Dvorak <dvorakz@suse.cz>
7375
7376 PR rtl-optimization/32405
7377 * loop-iv.c (iv_get_reaching_def): Fail for partial defs.
7378
7379 2007-06-20 Jakub Jelinek <jakub@redhat.com>
7380
7381 * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
7382
7383 PR middle-end/31959
7384 * builtins.c: Include diagnostic.h.
7385 (expand_builtin_expect): Make gcc_assert more permissive.
7386 * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
7387
7388 PR inline-asm/32109
7389 * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
7390 and !allows_mem.
7391
7392 PR middle-end/32285
7393 * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
7394 if ACCUMULATE_OUTGOING_ARGS.
7395
7396 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
7397
7398 * config/m68hc11/m68hc11.c: Include dataflow header file.
7399 (m68hc11_reorg): Port to dataflow.
7400
7401 2007-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
7402
7403 * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
7404 (struct df_problem.free_blocks_on_set_blocks): New field.
7405 (struct dataflow.optional_p): New field.
7406 (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
7407 (df_live_set_all_dirty): New function.
7408 * df-scan.c (df_scan_alloc): Initialize optional_p.
7409 (problem_SCAN): Initialize free_blocks_on_set_blocks.
7410 * df-core.c (df_set_blocks): Removed use of
7411 DF_FIRST_OPTIONAL_PROBLEM. Now uses
7412 df_problem.free_blocks_on_set_blocks to determine which blocks are
7413 recycled.
7414 (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
7415 (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM. Now
7416 uses dataflow.optional_p to determine if problem should be
7417 deleted.
7418 (rest_of_handle_df_initialize): Only start live problem if
7419 -02 or above.
7420 (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
7421 * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
7422 df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
7423 (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
7424 problem_NOTE): Initialize free_blocks_on_set_blocks.
7425 (df_lr_bb_local_compute): Recompute luids if df_live problem is
7426 not active.
7427 (df_live_set_all_dirty, df_note_alloc): New function.
7428 * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
7429 df_get_live_*.
7430 * sched_ebb.c (compute_jump_reg_dependencies): Ditto.
7431 * postreload.c (reload_combine): Ditto.
7432 * cse.c (cse_extended_basic_block): Ditto.
7433 * regmove.c (mark_flags_life_zones): Ditto.
7434 * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
7435 erase_matching_seqs): Ditto.
7436 * bt-load.c (compute_defs_uses_and_gen): Ditto.
7437 * integrate (allocate_initial_values): Ditto.
7438 * combine.c (reg_dead_at_p): Ditto.
7439 * resource.c (mark_target_live_regs): Ditto.
7440 * sched-rgn.c (check_live_1, update_live_1): Ditto.
7441 * config/sh/sh.c (find_r0_life_regions): Ditto.
7442 * global.c (rest_of_handle_global_alloc): Only add back df_live
7443 for -O > 1.
7444 * local-alloc.c (rest_of_handle_local_alloc): Only remove
7445 df_live for -O > 1.
7446 * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
7447 df_get_live_*.
7448 (if_convert): Make sure df_live is there at -O == 1.
7449 (pass_if_after_combine): Cleanup flags.
7450 * init-regs.c (initialize_uninitialized_regs): Make sure df_live
7451 is there at -O == 1.
7452
7453 2007-06-19 Seongbae Park <seongbae.park@gmail.com>
7454
7455 * config/arm/arm.c (arm_get_frame_offsets): Set
7456 offsets->locals_base to avoid negative stack size.
7457 (thumb1_expand_prologue): Assert on negative stack size.
7458
7459 2007-06-19 Sebastian Pop <sebpop@gmail.com>
7460
7461 PR tree-optimization/32367
7462 * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side
7463 of the chrec has no evolution in that loop.
7464 * testsuite/gcc.dg/tree-ssa/pr32367.c: New.
7465
7466 2007-06-19 Bob Wilson <bob.wilson@acm.org>
7467
7468 * config/xtensa/xtensa.c: Include "df.h".
7469 (xtensa_builtin_saveregs): Use adjust_address instead of
7470 change_address.
7471 (xtensa_va_start): Invoke make_tree with sizetype for
7472 expand_builtin_saveregs and then convert the result to a pointer.
7473 Use POINTER_PLUS_EXPR. Use size_int instead of build_int_cst.
7474 (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
7475 Subtract argument size from index value as integers and then use
7476 POINTER_PLUS_EXPR to add the result to the array address.
7477
7478 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
7479
7480 PR target/32335
7481 * config/m32c/m32c.c: Include dataflow header file.
7482 (m32c_emit_prologue): Adjust for prologue insn change.
7483 * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
7484 once inside a PARALLEL. Assume frame size passed in operand 0
7485 includes space to save the fb register.
7486 (prologue_enter_24): Likewise.
7487 (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
7488
7489 2007-06-19 David Daney <ddaney@avtrex.com
7490
7491 PR target/32313
7492 * config/mips/mips.md (cprestore): Mark $gp as used.
7493
7494 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
7495
7496 PR target/32369
7497 * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
7498 (frv_ifcvt_modify_insn): Likewise.
7499
7500 2007-06-19 Richard Guenther <rguenther@suse.de>
7501
7502 * tree-ssa-structalias.c (handle_ptr_arith): Make sure to
7503 only handle positive offsets that fit in a HOST_WIDE_INT.
7504
7505 2007-06-19 Uros Bizjak <ubizjak@gmail.com>
7506
7507 * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
7508 result of rsqrt insn for zero input argument to avoid NaN.
7509
7510 2007-06-19 Richard Guenther <rguenther@suse.de>
7511
7512 PR middle-end/31950
7513 * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
7514
7515 2007-06-19 Jakub Jelinek <jakub@redhat.com>
7516
7517 PR tree-optimization/32353
7518 * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
7519
7520 2007-06-19 Nick Clifton <nickc@redhat.com>
7521
7522 * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread.
7523
7524 2007-06-18 Uros Bizjak <ubizjak@gmail.com>
7525
7526 PR target/32389
7527 * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
7528 * config/i386/i386.c (assign_386_stack_local): Assert that
7529 SLOT_VIRTUAL is valid only before virtual regs are instantiated.
7530 (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
7531 Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
7532 * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
7533
7534 2007-06-18 Steve Ellcey <sje@cup.hp.com>
7535
7536 * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
7537
7538 2007-06-18 Seongbae Park <seongbae.park@gmail.com>
7539
7540 PR rtl-optimization/32321
7541 * gcse.c (replace_store_insn): Update the note before
7542 calling emit_insn_after.
7543
7544 2007-06-18 Kenneth Zadeck <zadeck@naturalbridge.com>
7545
7546 PR middle-end/32355
7547 * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
7548 cse_main.
7549 * df-problems.c (df_note_bb_compute): Fix dumping info.
7550
7551 2007-06-18 Kazu Hirata <kazu@codesourcery.com>
7552
7553 * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
7554 insn with emit_jump_insn.
7555
7556 2007-06-18 Uros Bizjak <ubizjak@gmail.com>
7557
7558 PR tree-optimization/32383
7559 * targhooks.c (default_builtin_reciprocal): Add new bool argument.
7560 * targhooks.h (default_builtin_reciprocal): Update prototype.
7561 * target.h (struct gcc_target): Update builtin_reciprocal.
7562 * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
7563 * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
7564 where arg1 is not SSA_NAME. Pass true to targetm.builtin_reciprocal
7565 when fndecl is in BUILT_IN_MD class.
7566 (execute_convert_to_rsqrt): Ditto.
7567
7568 * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
7569 argument. Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
7570 Convert BUILT_IN_SQRTF code only when md_fn is false.
7571
7572 2007-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
7573
7574 * bt-load.c (move_btr_def): Fix the order of arguments
7575 to validate_replace_rtx.
7576
7577 2007-06-18 Nathan Sidwell <nathan@codesourcery.com>
7578
7579 * config/m68k/m68k-devices.def: Add 54450..54455.
7580
7581 2007-06-17 Uros Bizjak <ubizjak@gmail.com>
7582
7583 PR rtl-optimization/32366
7584 * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
7585 FLOAT_EXTEND]: Prevent non-scalar modes from entering
7586 significand_size.
7587
7588 2007-06-17 Kenneth Zadeck <zadeck@naturalbridge.com>
7589
7590 PR middle-end/32349
7591 * modulo-sched (generate_reg_moves): Added rescan parameter and if
7592 this is true, rescan insn being modified.
7593 (sms_schedule): Added rescan parameter.
7594 (rest_of_handle_sms): Moved freeing of dominance info to before
7595 getting out of cfg_layout.
7596
7597 2007-06-17 Nathan Sidwell <nathan@codesourcery.com>
7598
7599 * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
7600 * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
7601 appropriate.
7602
7603 * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
7604 FL_CF_EMAC from the entry for isac.
7605
7606 * config/m68k/predicates.md (const_call_operand): Adjust comment.
7607 (const_sibcall_operand): New.
7608 (sibcall_operand): Use it.
7609 * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
7610 (m68k_isas): ISAC does not imply FPU or EMAC.
7611 (override_options): Add ISA_C logic for symbolic jump & call.
7612
7613 2007-06-17 Eric Botcazou <ebotcazou@libertysurf.fr>
7614
7615 * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
7616 return mode from the builtin itself.
7617 (sparc_fold_builtin): Fix cast of zero constant.
7618
7619 2007-06-16 Uros Bizjak <ubizjak@gmail.com>
7620
7621 * targhooks.c (default_builtin_reciprocal): New default target hook.
7622 * targhooks.h (default_builtin_reciprocal): Add prototype.
7623 * hooks.c (hook_tree_tree_bool_null): Remove hook.
7624 * hooks.h (hook_tree_tree_bool_null): Remove prototype.
7625 * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
7626 default_builtin_reciprocal.
7627
7628 2007-06-16 Uros Bizjak <ubizjak@gmail.com>
7629
7630 PR middle-end/31723
7631 * hooks.c (hook_tree_tree_bool_null): New hook.
7632 * hooks.h (hook_tree_tree_bool_null): Add prototype.
7633 * tree-pass.h (pass_convert_to_rsqrt): Declare.
7634 * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
7635 * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
7636 and convert it to reciprocal a*rfunc(b).
7637 (execute_convert_to_rsqrt): New function.
7638 (gate_convert_to_rsqrt): New function.
7639 (pass_convert_to_rsqrt): New pass definition.
7640 * target.h (struct gcc_target): Add builtin_reciprocal.
7641 * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
7642 (TARGET_INITIALIZER): Initialize builtin_reciprocal with
7643 TARGET_BUILTIN_RECIPROCAL.
7644 * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
7645
7646 * config/i386/i386.h (TARGET_RECIP): New define.
7647 * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
7648 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
7649 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
7650 and not optimizing for size.
7651 (*rcpsf2_sse): New insn pattern.
7652 (*rsqrtsf2_sse): Ditto.
7653 (rsqrtsf2): New expander. Expand by calling ix86_emit_swsqrtsf
7654 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
7655 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
7656 and not optimizing for size.
7657 (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
7658 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
7659 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
7660 and not optimizing for size.
7661 * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
7662 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
7663 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
7664 and not optimizing for size.
7665 (*sse_rsqrtv4sf2): Do not export.
7666 (sqrtv4sf2): Ditto.
7667 (sse_rsqrtv4sf2): New expander. Expand by calling ix86_emit_swsqrtsf
7668 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
7669 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
7670 and not optimizing for size.
7671 (sqrtv4sf2): Ditto.
7672 * config/i386/i386.opt (mrecip): New option.
7673 * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
7674 (ix86_emit_swsqrtsf): Ditto.
7675 * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
7676 (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
7677 builtin definition.
7678 (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
7679 ix86_expand_unop1_builtin.
7680 (ix86_emit_swdivsf): New function.
7681 (ix86_emit_swsqrtsf): Ditto.
7682 (ix86_builtin_reciprocal): New function.
7683 (TARGET_BUILTIN_RECIPROCAL): Use it.
7684 (ix86_vectorize_builtin_conversion): Rename from
7685 ix86_builtin_conversion.
7686 (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
7687 * doc/invoke.texi (Machine Dependent Options): Add -mrecip to
7688 "i386 and x86_64 Options" section.
7689 (Intel 386 and AMD x86_64 Options): Document -mrecip.
7690
7691 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
7692 Zdenek Dvorak <dvorakz@suse.cz>
7693 Richard Guenther <rguenther@suse.de>
7694 Kaz Kojima <kkojima@gcc.gnu.org>
7695
7696 * tree-vrp.c (compare_values_warnv): Convert val2 to
7697 the type of val1.
7698 (extract_range_from_assert): Create
7699 POINTER_PLUS_EXPR for pointer types.
7700 (extract_range_from_binary_expr): Handle
7701 only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
7702 for pointer types.
7703 * doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
7704 * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
7705 POINTER_PLUS_EXPR as PLUS_EXPR.
7706 (number_of_iterations_lt_to_ne):
7707 For pointer types, use sizetype when
7708 creating MINUS_EXPR/PLUS_EXPRs.
7709 (assert_loop_rolls_lt): For pointer types, use sizetype when
7710 creating MINUS_EXPR/PLUS_EXPRs.
7711 (number_of_iterations_le): Likewise.
7712 (expand_simple_operations): POINTER_PLUS_EXPR are simple also.
7713 (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
7714 like PLUS_EXPR and MINUS_EXPR.
7715 * tree-pretty-print.c (dump_generic_node): Handle
7716 POINTER_PLUS_EXPR.
7717 (op_prio): Likewise.
7718 (op_symbol_1): Likewise.
7719 * optabs.c (optab_for_tree_code): Likewise.
7720 * tree-ssa-loop-manip.c (create_iv): Handle pointer base
7721 specially.
7722 * tree-tailcall.c (process_assignment): Mention
7723 POINTER_PLUS_EXPR in a TODO comment.
7724 * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or
7725 MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
7726 not used with a pointer and an integer type.
7727 * tree-scalar-evolution.c (add_to_evolution_1): Convert the
7728 increment using chrec_convert_rhs instead of chrec_convert.
7729 (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
7730 PLUS_EXPR except for the right hand side's type will be
7731 sizetype.
7732 (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
7733 (fold_used_pointer_cast): Kill.
7734 (pointer_offset_p): Kill.
7735 (fold_used_pointer): Kill.
7736 (pointer_used_p): Kill.
7737 (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
7738 call fold_used_pointer.
7739 (instantiate_parameters_1): Convert the increment
7740 using chrec_convert_rhs instead of chrec_convert.
7741 Handle POINTER_PLUS_EXPR as PLUS_EXPR.
7742 * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
7743 instead of PLUS_EXPR.
7744 (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
7745 PLUS_EXPR for pointers.
7746 (std_gimplify_va_arg_expr): Likewise.
7747 (fold_builtin_memory_op): Likewise.
7748 (fold_builtin_strstr): Likewise.
7749 (fold_builtin_strchr): Likewise.
7750 (fold_builtin_strrchr): Likewise.
7751 (fold_builtin_strpbrk): Likewise.
7752 (expand_builtin_memory_chk): Likewise.
7753 (fold_builtin_memory_chk): Likewise.
7754 (std_expand_builtin_va_start): Use
7755 sizetype for the call to make_tree and then convert
7756 to the pointer type.
7757 (fold_builtin_memchr): Use POINTER_PLUS_EXPR
7758 instead of PLUS_EXPR for adding to a pointer.
7759 (std_gimplify_va_arg_expr): Use fold_build2 for
7760 the creating of POINTER_PLUS_EXPR. For the BIT_AND_EXPR, cast
7761 the operands to sizetype first and then cast the BIT_AND_EXPR
7762 back to the pointer type.
7763 * fold-const.c (build_range_check): Handle pointer types
7764 specially.
7765 (extract_array_ref): Look for POINTER_PLUS_EXPR instead
7766 of PLUS_EXPR's. Make sure the offset is converted to
7767 sizetype.
7768 (try_move_mult_to_index): Strip the NOPs from the offset.
7769 Remove code argument and replace all uses with PLUS_EXPR.
7770 (fold_to_nonsharp_ineq_using_bound): Handle pointer types
7771 specially. Don't use a pointer type for MINUS_EXPR.
7772 (fold_unary): Handle for (T1)(X op Y),
7773 only p+ as that is the only as that can be handled for
7774 binary operators now.
7775 (fold_binary <case POINTER_PLUS_EXPR>): Add folding of
7776 POINTER_PLUS_EXPR.
7777 <case PLUS_EXPR>: Add folding of PTR+INT into
7778 PTR p+ INT.
7779 Don't call try_move_mult_to_index.
7780 <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
7781 into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
7782 (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
7783 Don't call try_move_mult_to_index.
7784 (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
7785 (tree_expr_nonzero_p): Likewise.
7786 (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
7787 of PLUS_EXPR for the complex expression folding.
7788 * tree-chrec.c (chrec_fold_plus_poly_poly): If the
7789 first chrec is a pointer type, then the second should
7790 be sizetype and not the first's type.
7791 For POINTER_PLUS_EXPR, use a different right hand side type.
7792 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
7793 (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
7794 different right hand side type.
7795 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
7796 (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
7797 instead of PLUS_EXPR.
7798 When either operand is zero, convert the other operand.
7799 (chrec_apply): Use chrec_convert_rhs
7800 on the argument x instead of chrec_convert.
7801 (reset_evolution_in_loop): For pointer types, the new_evol
7802 should be sizetype.
7803 (convert_affine_scev): For POINTER_PLUS_EXPR, use a
7804 different right hand side type.
7805 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
7806 (chrec_convert_rhs): New function.
7807 (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
7808 different right hand side type.
7809 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
7810 * tree-chrec.h (chrec_convert_rhs): New prototype.
7811 (build_polynomial_chrec): For pointer types, the right hand
7812 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
7813 POINTER_PLUS_EXPR instead of PLUS_EXPR's.
7814 Remove subtraction case as it is always addition now.
7815 Make sure the offset is converted to sizetype.
7816 (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
7817 Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
7818 * tree-ssa-loop-ivopts.c (determine_base_object): Abort for
7819 PLUS_EXPR in pointer type.
7820 Handle POINTER_PLUS_EXPR.
7821 (tree_to_aff_combination): Likewise.
7822 (force_expr_to_var_cost): Likewise.
7823 (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
7824 instead of PLUS_EXPR for pointers.
7825 * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
7826 instead of PLUS_EXPR of pointer types.
7827 * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
7828 as PLUS_EXPR.
7829 (check_va_list_escapes): Likewise.
7830 (check_all_va_list_escapes): Likewise.
7831 * dwarf2out.c (loc_descriptor_from_tree_1):
7832 Handle POINT_PLUS_EXPR as a PLUS_EXPR.
7833 * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
7834 (string_constant): Likewise.
7835 * tree-ssa-address.c (tree_mem_ref_addr): When adding
7836 the offset to the base, use POINTER_PLUS_EXPR.
7837 (add_to_parts): Convert the index to sizetype.
7838 (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
7839 * matrix-reorg.c (collect_data_for_malloc_call): Stmt
7840 will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
7841 Offset only holds something for PLUS_EXPR.
7842 (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
7843 a PLUS_EXPR.
7844 (analyze_transpose): POINTER_PLUS_EXPR will only show up now
7845 and not PLUS_EXPR.
7846 (analyze_accesses_for_modify_stmt): Likewise.
7847 Remove comment about the type being integral type as it is
7848 wrong now.
7849 (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
7850 PLUS_EXPR.
7851 (transform_access_sites): POINTER_PLUS_EXPR will only show up now
7852 and not PLUS_EXPR.
7853 Correct the type which the artimentic is done in (is now
7854 sizetype).
7855 Reindent one loop.
7856 * tree-data-ref.c (split_constant_offset): Handle
7857 POINTER_PLUS_EXPR
7858 * tree-affine.c (tree_to_aff_combination): Likewise.
7859 * c-typeck.c (build_unary_op): For pointers create the increment
7860 as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
7861 for pointers.
7862 * gimplify.c (gimplify_self_mod_expr): Create a
7863 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
7864 (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
7865 * tree.def (POINTER_PLUS_EXPR): New tree code.
7866 * tree-predcom.c (ref_at_iteration): If we have a pointer
7867 type do the multiplication in sizetype.
7868 * tree-mudflap.c (mf_xform_derefs_1): Create a
7869 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
7870 * tree-ssa-forwprop.c
7871 (forward_propagate_addr_into_variable_array_index):
7872 Don't expect there to be a cast for the index as that
7873 does not exist anymore.
7874 (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
7875 instead of PLUS_EXPR.
7876 Don't check for the first operand of the POINTER_PLUS_EXPR
7877 was the index as it cannot be.
7878 Call forward_propagate_addr_into_variable_array_index with
7879 the SSA_NAME instead of the statement.
7880 * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
7881 (compare_constant): Likewise.
7882 (copy_constant): Likewise.
7883 (compute_reloc_for_constant): Likewise.
7884 (output_addressed_constants): Likewise.
7885 (initializer_constant_valid_p): Likewise.
7886 * tree-ssa.c (tree_ssa_useless_type_conversion_1):
7887 Convert the MIN/MAX of the inner type to the outer
7888 type before comparing them.
7889 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Handle
7890 POINTER_PLUS_EXPR instead of PLUS_EXPR.
7891 (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
7892 of PLUS_EXPR for pointers.
7893 * tree-inline.c (estimate_num_insns_1): Handle
7894 POINTER_PLUS_EXPR.
7895 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
7896 Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
7897 (bump_vector_ptr): Create a POINTER_PLUS_EXPR
7898 instead of PLUS_EXPR for the pointer increment statement.
7899 (vect_update_ivs_after_vectorizer): For pointer types, create
7900 POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
7901 MULT_EXPR in sizetype.
7902 (vect_gen_niters_for_prolog_loop): Add a cast when creating
7903 byte_misalign.
7904 * tree-object-size.c (plus_expr_object_size): Handle
7905 POINTER_PLUS_EXPR instead of PLUS_EXPR. Removing all the extra
7906 code which is trying to figure out which side is a pointer and
7907 is the index.
7908 (check_for_plus_in_loops_1): Likewise.
7909 (check_for_plus_in_loops): Likewise.
7910 * c-common.c (pointer_int_sum): Create a
7911 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
7912 * tree-ssa-structalias.c (handle_ptr_arith): Handle
7913 only POINTER_PLUS_EXPR. Removing all the extra
7914 code which is trying to figure out which side is a pointer and
7915 is the index.
7916 * tree-cfg.c (verify_expr): Add extra checking for pointers and
7917 PLUS_EXPR and MINUS_EXPR.
7918 Also add checking to make sure the operands of POINTER_PLUS_EXPR
7919 are correct.
7920 * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
7921 with make_tree, instead of a pointer type.
7922 * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
7923 for pointers instead of PLUS_EXPR.
7924 (s390_gimplify_va_arg): Likewise.
7925 * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
7926 instead of PLUS_EXPR when doing addition on pointer
7927 types. Use sizetype for the second operand.
7928 (spu_gimplify_va_arg_expr): Likewise.
7929 * config/sparc/sparc.c (sparc_gimplify_va_arg): Use
7930 POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
7931 a pointer. Don't create a BIT_AND_EXPR for pointer types.
7932 * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
7933 for the pointer addition and also use size_int/sizetype
7934 for the offset.
7935 (ix86_gimplify_va_arg): Likewise.
7936 Perform BIT_AND_EXPR on sizetype arguments.
7937 * config/sh/sh.c (sh_va_start): Call make_tree with sizetype
7938 and convert its result to a pointer type. Use POINTER_PLUS_EXPR
7939 for the pointer additions and also use size_int for the offsets.
7940 (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
7941 additions and also use size_int for the offsets. Perform
7942 BIT_AND_EXPR on sizetype arguments.
7943 * config/ia64/ia64.c (ia64_gimplify_va_arg): Use
7944 POINTER_PLUS_EXPR for pointers and create the
7945 BIT_AND_EXPR in sizetype.
7946 * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
7947 instead of PLUS_EXPR for pointer addition.
7948 (rs6000_va_start): Likewise.
7949 Also use sizetype for the offset.
7950 * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
7951 as PLUS_EXPR/MINUS_EXPR.
7952 (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
7953 PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
7954 Don't use BIT_AND_EXPR on a pointer type, convert the
7955 expression to sizetype first.
7956 * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
7957 for pointers.
7958 (mips_gimplify_va_arg_expr): Likewise.
7959 Don't create BIT_AND_EXPR in a pointer type.
7960
7961 2007-06-15 Eric Christopher <echristo@apple.com>
7962
7963 * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
7964 (x86_64-*-darwin*): Ditto.
7965 * config/i386/darwin.h (CRTEND_SPEC): New. Add support
7966 for above.
7967
7968 2007-06-15 Matthew Wilcox <matthew@wil.cx>
7969
7970 * doc/extend.texi: Document behavior of __attribute__((aligned))
7971 on typedefs.
7972
7973 2007-06-15 Mark Mitchell <mark@codesourcery.com>
7974
7975 * rtlanal.c (note_stores): Improve documentation.
7976
7977 2007-06-15 Bernd Schmidt <bernd.schmidt@analog.com>
7978
7979 * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
7980 LOCAL_LABEL_PREFIX): Delete.
7981 * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
7982 (bfin_internal_label): Delete.
7983
7984 2007-06-15 Uros Bizjak <ubizjak@gmail.com>
7985
7986 * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
7987 define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
7988 otherwise define to LIBGCC2_TF_CEXT.
7989 * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
7990 (LIBGCC_TF_CEXT): Ditto.
7991 (TF_SIZE): Ditto.
7992
7993 2007-06-14 Seongbae Park <seongbae.park@gmail.com>
7994
7995 PR rtl-optimization/32339
7996 * df-scan.c (df_uses_record): Don't modify flags but just add to
7997 it for df_ref_record.
7998
7999 2007-06-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
8000
8001 * tree-mudflap.c: Fix whitespace issues.
8002
8003 2007-06-15 Kazu Hirata <kazu@codesourcery.com>
8004
8005 * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.
8006
8007 2007-06-14 Eric Christopher <echristo@apple.com>
8008
8009 * config/i386/sse.md (movdi_to_sse): Rewrite body.
8010 (movv4sf): Use gcc_unreachable instead of abort.
8011
8012 2007-06-14 Uros Bizjak <ubizjak@gmail.com>
8013
8014 PR target/32268
8015 * config/i386/sfp-machine.h (CMPtype): New define.
8016 (mach stubs): Use CMPtype instead of int as a return type.
8017
8018 2007-06-14 Uros Bizjak <ubizjak@gmail.com>
8019
8020 * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
8021 config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
8022 config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
8023 config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
8024 config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
8025 config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
8026 config/soft-fp/soft-fp.h: Update from glibc CVS.
8027
8028 2007-06-14 Bernd Schmidt <bernd.schmidt@analog.com>
8029
8030 * config/bfin/uclinux.h (MFWRAP_SPEC): New.
8031
8032 2007-06-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
8033
8034 PR target/32341
8035 * config/v850/v850.c: Include dataflow header file.
8036 (substitute_ep_register): Fix typo.
8037
8038 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
8039
8040 * configure.ac: Fix earlier checkin.
8041 * configure: Regenerated.
8042
8043 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
8044
8045 * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
8046 * aclocal.m4: Regenerate.
8047 * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
8048 ACX_PROG_CC_WARNINGS_ARE_ERRORS,
8049 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
8050 * configure: Regenerate.
8051 * Makefile.in (LOOSE_WARN): Subst loose_warn.
8052
8053 * Makefile.in (quickstrap): Build libgcc too.
8054
8055 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
8056
8057 * configure.ac: Add --enable-checking=df. Explicitly mention that
8058 the variables are initialized as for "release".
8059 * df-core.c: Use it.
8060 * configure: Regenerate.
8061 * config.in: Regenerate.
8062
8063 2007-06-14 Bob Wilson <bob.wilson@acm.org>
8064
8065 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
8066 validate_replace_rtx instead of replace_rtx.
8067 (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
8068
8069 2007-06-14 Danny Smith <dannysmith@users.sourceforge.net>
8070
8071 * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
8072 (DWARF2_UNWIND_INFO): Override default if configured with
8073 SJLJ EH disabled.
8074 * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
8075 (ENDFILE_SPEC): Add crtend.o.
8076 * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
8077 (ENDFILE_SPEC): Add crtend.o.
8078 (TARGET_USE_JCR_SECTION): Define.
8079 (MD_UNWIND_SUPPORT): Define for 32-bit target.
8080
8081 * config/i386/cygming-crtbegin.c: New file.
8082 * config/i386/cygming-crtend.c: New file.
8083
8084 2007-06-14 Pascal Obry Pascal Obry <obry@adacore.com>
8085
8086 * config/i386/w32-unwind.h: New file.
8087
8088 2007-06-13 Eric Christopher <echristo@apple.com>
8089
8090 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
8091 the user set a value below STACK_BOUNDARY.
8092
8093 2007-06-13 Thiemo Seufer <ths@networkno.de>
8094
8095 * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
8096 imply -lpthread for -pthread.
8097
8098 2007-06-13 Kazu Hirata <kazu@codesourcery.com>
8099
8100 * basic-block.h: Remove the prototype for
8101 free_basic_block_vars.
8102 * cfglayout.h: Remove the prototype for
8103 insn_locators_initialize.
8104 * tree.h: Remove the prototype for emit_line_note.
8105
8106 * tree-ssa-pre.c (mergephitemp): Remove.
8107 (init_pre): Don't use mergephitemp.
8108
8109 2007-06-13 Eric Christopher <echristo@apple.com>
8110
8111 * config/i386/i386.c (override_options): If we've specified
8112 an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
8113
8114 2007-06-13 Bob Wilson <bob.wilson@acm.org>
8115
8116 * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
8117 is defined.
8118
8119 2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
8120
8121 * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
8122 * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
8123 (eh_store_handler): New pattern.
8124 (eh_return): Emit it instead of a plain move.
8125
8126 2007-06-13 Uros Bizjak <ubizjak@gmail.com>
8127
8128 * config/i386/i386.c (ix86_init_mmx_sse_builtins)
8129 [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
8130 [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
8131 def_builtin_const.
8132
8133 2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
8134
8135 * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
8136 (find_next_insn_start, find_load): New functions.
8137 (bfin_reorg): Use them to deal with the fact that parallel insns are
8138 no longer represented as a SEQUENCE.
8139
8140 2007-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
8141
8142 * config/sparc/sparc.c (sparc_override_options): Initialize
8143 fpu mask correctly.
8144
8145 2007-06-13 Dave Korn <dave.korn@artimi.com>
8146
8147 * config/i386/i386.c (ix86_eax_live_at_start_p): Use
8148 df_get_live_out.
8149
8150 2007-06-13 Kazu Hirata <kazu@codesourcery.com>
8151
8152 * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
8153 config/sh/divcost-analysis, dbgcnt.def, df-core.c,
8154 df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
8155 tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
8156 tree-vect-transform.c: Fix comment typos. Follow spelling
8157 conventions.
8158
8159 2007-06-12 Seongbae Park <seongbae.park@gmail.com>
8160
8161 * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
8162 to the exit block use set.
8163 (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring".
8164 * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
8165 * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
8166
8167 2007-06-12 Seongbae Park <seongbae.park@gmail.com>
8168
8169 * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
8170 * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
8171 to indicate an error.
8172 (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters):
8173 New functions.
8174 (dbg_cnt_process_opt): Print an error on a bad argument.
8175 * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
8176 * common.opt (-fdbg-cnt-list): New.
8177 * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
8178
8179 2007-06-12 Eric Botcazou <ebotcazou@adacore.com>
8180
8181 * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
8182 flag on ref-all pointers.
8183
8184 2007-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
8185
8186 PR middle-end/31579
8187 * expr.c (expand_expr_addr_expr_1): Call expand_expr
8188 for the offset with the modifier as EXPAND_INITIALIZER
8189 if the modifier is EXPAND_INITIALIZER.
8190 (expand_expr_real_1 <case INTEGER_CST>): Don't force to
8191 a register if we had an overflow.
8192
8193 2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8194
8195 * real.c (real_isfinite): New.
8196 (real_sqrt): Use it.
8197 * real.h (real_isfinite): New.
8198 * builtins.c: Use it.
8199
8200 2007-06-12 Ian Lance Taylor <iant@google.com>
8201 Daniel Berlin <dberlin@dberlin.org>
8202
8203 PR libstdc++/29286
8204 * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
8205 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
8206 (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
8207 (DECL_NO_TBAA_P): Define.
8208 (struct tree_decl_common): Add no_tbaa_flag field.
8209 * tree-ssa-structalias.c (struct variable_info): Add
8210 no_tbaa_pruning field.
8211 (new_var_info): Initialize no_tbaa_pruning field.
8212 (unify_nodes): Copy no_tbaa_pruning field.
8213 (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
8214 (dump_solution_for_var): Print no_tbaa_pruning flag.
8215 (set_uids_in_ptset): Add no_tbaa_pruning parameter. Change all
8216 callers.
8217 (compute_tbaa_pruning): New static function.
8218 (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
8219 Call compute_tbaa_pruning.
8220 * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
8221 * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
8222 * gimple-low.c (lower_stmt): Likewise.
8223 * tree-gimple.c (is_gimple_stmt): Likewise.
8224 * tree-ssa-operands.c (get_expr_operands): Likewise.
8225 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
8226 * tree-inline.c (estimate_num_insns_1): Likewise.
8227 (copy_result_decl_to_var): Likewise.
8228 * expr.c (expand_expr_real_1): Likewise.
8229 * tree-pretty-print.c (dump_generic_node): Likewise.
8230 * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
8231 * omp-low.c (omp_copy_decl_2): Likewise.
8232 * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
8233 * doc/c-tree.texi (Expression trees): Document
8234 CHANGE_DYNAMIC_TYPE_EXPR.
8235
8236 2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8237
8238 * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
8239 with !HONOR_NANS and !HONOR_INFINITIES.
8240 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
8241
8242 2007-06-12 Tristan Gingold <gingold@adacore.com>
8243
8244 * gcov.c: Comments updated.
8245 (source_info): Add file_time field.
8246 (source_index): New variable.
8247 (mutiple_files): New variable.
8248 (generate_results): New function extracted from process_file.
8249 (process_file): Save and restore chain of functions, generate
8250 results and free structures only if not merging results.
8251 (release_structures): File names are now freed in create_file_names
8252 (create_file_names): Free previous file names.
8253 (find_source): File date is now read here and modifications in
8254 source files is checked here.
8255 (read_graph_file): Only reverse order of functions for the current
8256 object file.
8257 (make_gcov_file_name): Do not generate long names if input_name is
8258 NULL.
8259 (output_lines): If merging results do not display graph, data and
8260 runs informations.
8261 Checking source file modification is done in find_source.
8262
8263 * doc/gcov.texi: Append an s to sourcefile.
8264
8265 2007-06-12 Bernd Schmidt <bernd.schmidt@analog.com>
8266
8267 * config/bfin/bfin.md (UNSPEC_NOP): New constant.
8268 (forced_nop): New pattern.
8269 * config/bfin/bfin.c: Include "df.h".
8270 (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
8271 (bfin_discover_loop): Use df_get_live_in instead of
8272 global_live_at_start.
8273 (bfin_reorder_loops): Pass 0 to cfg_layout_initialize. Call
8274 df_analyze when done.
8275 (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
8276 the insns. Use QImode for the final insn in a bundle. Call
8277 df_insn_rescan on generated NOPs; use gen_forced_nop instead of
8278 gen_nop.
8279 (reorder_var_tracking_notes): New function.
8280 (bfin_reorg): Pass no argument to split_all_insns. Don't call
8281 update_life_info. Call df_analyze after scheduling and bundle
8282 generation. Call reorder_var_tracking_notes if generating these
8283 notes. Call df_finish_pass at the end.
8284
8285 2007-06-12 Dirk Mueller <dmueller@suse.de>
8286
8287 * optabs.c (debug_optab_libfuncs): fix gcc_assert to
8288 a comparison, not an assignment.
8289
8290 2007-06-12 Olivier Hainque <hainque@adacore.com>
8291
8292 * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
8293 Request walking the subtrees only, leaving the current is_lhs/val_only
8294 untouched.
8295 (convert_non_local_reference): Likewise.
8296
8297 2007-06-12 Nathan Sidwell <nathan@codesourcery.com>
8298
8299 * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
8300
8301 2007-06-12 Richard Guenther <rguenther@suse.de>
8302
8303 PR tree-optimization/15353
8304 PR tree-optimization/31657
8305 * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
8306 * timevar.def: Add TV_TREE_IFCOMBINE.
8307 * tree-pass.h (pass_tree_ifcombine): Declare.
8308 * tree-ssa-ifcombine.c: New file.
8309 * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
8310 * tree-flow.h (blocks_in_phiopt_order): Declare.
8311 * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
8312 (tree-ssa-ifcombine.o): New dependencies.
8313
8314 2007-06-12 Uros Bizjak <ubizjak@gmail.com>
8315
8316 PR rtl-optimization/32293
8317 * combine.c (simplify_if_then_else): Truncate return from
8318 nonzero_bits() to correct mode.
8319
8320 2007-06-12 Uros Bizjak <ubizjak@gmail.com>
8321
8322 * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
8323 into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
8324
8325 2007-06-11 Diego Novillo <dnovillo@google.com>
8326
8327 * Makefile.in (reload1.o-warn): Remove.
8328
8329 2007-06-11 Seongbae Park <seongbae.park@gmail.com>
8330
8331 * combine.c (subst): Use reg_overlap_mentioned_p
8332 instead of comparing register numbers directly.
8333
8334 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
8335
8336 * reload1.c (mark_home_live_1): Use the mode parameter.
8337
8338 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
8339
8340 * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
8341 df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
8342 word "deferred".
8343 * df-core.c: Ditto.
8344
8345 2007-06-11 Daniel Berlin <dberlin@dberlin.org>
8346
8347 * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
8348
8349 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
8350
8351 * config/i386/i386.md ("*movtf_internal): Penalize moves to and
8352 from integer registers.
8353 (FP mode splitters): Handle TFmode.
8354
8355 2007-06-11 Eric Botcazou <ebotcazou@adacore.com>
8356
8357 * tree-ssa-structalias.c (find_what_p_points_to): Return false
8358 for ref-all pointers that point-to anything.
8359
8360 2007-06-11 Joseph Myers <joseph@codesourcery.com>
8361
8362 * config/arm/arm.c (arm_output_dwarf_dtprel,
8363 TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
8364
8365 2007-06-11 Bernd Schmidt <bernd.schmidt@analog.com>
8366
8367 * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
8368 movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
8369 to memory moves.
8370
8371 2007-06-11 Rafael Avila de Espindola <espindola@google.com>
8372
8373 * tree.c (signed_or_unsigned_type_for): New.
8374 (unsigned_type_for): Use signed_or_unsigned_type_for.
8375 (signed_type_for): Use signed_or_unsigned_type_for.
8376 * tree.h (signed_or_unsigned_type_for): New.
8377 (get_signed_or_unsigned_type): Remove.
8378 * fold-const.c (fold_negate_expr): Use signed_type_for instead of
8379 lang_hooks.types.signed_type
8380 (size_diffop): Likewise.
8381 (all_ones_mask_p): Likewise.
8382 (build_range_check): Likewise.
8383 (fold_cond_expr_with_comparison): Likewise.
8384 (fold_cond_expr_with_comparison): Likewise.
8385 (unextend): Likewise.
8386 (extract_muldiv_1): Likewise.
8387 (fold_single_bit_test_into_sign_test): Likewise.
8388 (fold_binary): Likewise.
8389 (fold_ternary): Likewise.
8390 (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
8391 instead of get_signed_or_unsigned_type.
8392 * c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
8393 (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
8394 * expr.c (signed_or_unsigned_type_for): Use
8395 signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
8396 * langhooks.c (get_signed_or_unsigned_type): Remove.
8397 (lhd_signed_or_unsigned_type): Remove.
8398 * langhooks.h (lang_hooks_for_types): Remove signed_type and
8399 signed_or_unsigned_type.
8400 (lhd_signed_or_unsigned_type): Remove.
8401 * expmed.c (make_tree): Use signed_type_for instead of
8402 lang_hooks.types.signed_type.
8403 * c-common.c (same_scalar_type_ignoring_signedness): Use
8404 c_common_signed_type instead of lang_hooks.types.signed_type.
8405 (c_common_unsigned_type): New.
8406 (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
8407 (shorten_compare): Use c_common_unsigned_type instead of
8408 c_common_signed_or_unsigned_type.
8409 (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
8410 unsigned_type_for.
8411 * convert.c (convert_to_integer): Use signed_type_for instead of
8412 lang_hooks.types.signed_type.
8413 * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
8414 (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
8415 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
8416 * c-format.c (check_format_types): Use c_common_unsigned_type
8417 instead of unsigned_type_for.
8418 * c-decl.c (groakdeclarator): Likewise.
8419 * c-typeck.c (convert_for_assignment): Likewise.
8420 * c-common.h (c_common_unsigned_type): New.
8421
8422 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
8423
8424 PR target/32280
8425 * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
8426 * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
8427
8428 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
8429
8430 PR middle-end/32279
8431 * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
8432 into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
8433
8434 2007-06-10 Jan Sjodin <jan.sjodin@amd.com>
8435 Sebastian Pop <sebpop@gmail.com>
8436
8437 * lambda-code.c (remove_iv): New.
8438 (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
8439
8440 2007-06-10 Zdenek Dvorak <dvorakz@suse.cz>
8441
8442 * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
8443 * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
8444 * tree-ssa-loop-prefetch.c: Include optabs.h.
8445 (FENCE_FOLLOWING_MOVNT): New macro.
8446 (struct mem_ref): Add independent_p and storent_p fields.
8447 (record_ref): Initalize the new fields.
8448 (gather_memory_references_ref): Return true if the reference
8449 could be analysed.
8450 (gather_memory_references): Check whether all memory accesses
8451 in loop were recorded.
8452 (should_issue_prefetch_p): Return false for nontemporal stores.
8453 (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
8454 may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
8455 (determine_loop_nest_reuse): Detect independent memory references.
8456 (loop_prefetch_arrays): Call mark_nontemporal_stores.
8457 * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
8458 * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
8459 * config/i386/i386.h (x86_mfence): Declare.
8460 (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
8461 * config/i386/i386.c (x86_mfence): New variable.
8462 (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
8463
8464 * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
8465 * optabs.c (init_optabs): Initialize storent_optab.
8466 * optabs.h (enum optab_index): Add OTI_storent.
8467 (storent_optab): Declare.
8468 * genopinit.c (optabs): Add initialization for storent_optab.
8469 * tree.h (MOVE_NONTEMPORAL): New macro.
8470 * expr.c (expand_assignment, store_expr, store_constructor_field,
8471 store_constructor, store_field, expand_expr_real_1): Propagate
8472 nontemporality of the expanded store.
8473 (emit_storent_insn): New function.
8474 * expr.h (expand_assignment, store_expr): Declaration changed.
8475 * function.c (assign_parm_setup_reg): Pass false as nontemporality
8476 to expand_assignment.
8477 * stmt.c (expand_asm_expr): Ditto.
8478 * calls.c (initialize_argument_information): Pass false as
8479 nontemporality to store_expr.
8480 * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
8481 storentsi): New.
8482
8483 2007-06-09 Daniel Berlin <dberlin@dberlin.org>
8484
8485 * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
8486 parameter, use it.
8487 (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
8488
8489 2007-06-09 Daniel Berlin <dberlin@dberlin.org>
8490
8491 * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
8492 and allow DECL_P here.
8493
8494 2007-06-09 Zdenek Dvorak <dvorakz@suse.cz>
8495
8496 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
8497 follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
8498 track of the size of the expression.
8499 * cfghooks.c (merge_blocks): Remove block from loops structure only
8500 after call of the merge_blocks hook.
8501
8502 2007-06-09 Tom Tromey <tromey@redhat.com>
8503
8504 * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
8505 (deprecated_state): Removed.
8506 (start_decl): Update.
8507 (enum deprecated_states): Moved earlier.
8508 (groktypename): Update.
8509 (push_parm_decl): Likewise.
8510 (grokfield): Likewise.
8511 (start_function): Likewise.
8512
8513 2007-06-09 Ian Lance Taylor <iant@google.com>
8514
8515 PR tree-optimization/32169
8516 * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
8517 CONVERT_EXPR, check whether min and max both converted to an
8518 overflow infinity representation.
8519
8520 2007-06-08 Eric Botcazou <ebotcazou@adacore.com>
8521
8522 * reload1.c (fixup_abnormal_edges): Clear bb field for insns
8523 not inserted on the edge.
8524
8525 2007-06-08 Bob Wilson <bob.wilson@acm.org>
8526
8527 * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
8528 instructions if they are supported.
8529 (__divsi3, __umodsi3, __modsi3): Likewise.
8530 (__ashldi3, __ashrdi3, __lshrdi3): New.
8531 * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
8532
8533 2007-06-08 Harsha Jagasia <harsha.jagasia@amd.com>
8534 Tony Linthicum <tony.linthicum@amd.com>
8535
8536 * doc/invoke.texi: Add fvect-cost-model flag.
8537 * common.opt (fvect-cost-model): New flag.
8538 * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
8539 cost fields in stmt_vec_info struct for STMT.
8540 * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
8541 fields in stmt_vec_info struct and access functions for the same.
8542 (TARG_COND_BRANCH_COST): Define cost of conditional branch.
8543 (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
8544 load, store and vector to scalar operation.
8545 (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
8546 (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
8547 (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
8548 (TARG_VEC_STORE_COST): Define cost of vector store.
8549 (vect_estimate_min_profitable_iters): Define new function.
8550 * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
8551 check to evaluate if loop iterations are less than minimum profitable
8552 iterations determined by cost model or minimum vect loop bound defined
8553 by user, whichever is more conservative.
8554 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
8555 run-time check to evaluate if loop iterations are less than minimum
8556 profitable iterations determined by cost model or minimum vect loop
8557 bound defined by user, whichever is more conservative.
8558 (vect_estimate_min_profitable_iterations): New function to estimate
8559 mimimimum iterartions required for vector version of loop to be
8560 profitable over scalar version.
8561 (vect_model_reduction_cost): New function.
8562 (vect_model_induction_cost): New function.
8563 (vect_model_simple_cost): New function.
8564 (vect_cost_strided_group_size): New function.
8565 (vect_model_store_cost): New function.
8566 (vect_model_load_cost): New function.
8567 (vectorizable_reduction): Call vect_model_reduction_cost during
8568 analysis phase.
8569 (vectorizable_induction): Call vect_model_induction_cost during
8570 analysis phase.
8571 (vectorizable_load): Call vect_model_load_cost during analysis phase.
8572 (vectorizable_store): Call vect_model_store_cost during analysis phase.
8573 (vectorizable_call, vectorizable_assignment, vectorizable_operation,
8574 vectorizable_promotion, vectorizable_demotion): Call
8575 vect_model_simple_cost during analysis phase.
8576
8577 2007-06-08 Simon Baldwin <simonb@google.com>
8578
8579 * reg-stack.c (get_true_reg): Readability change. Moved default case
8580 label into direct switch statement scope.
8581
8582 2007-06-08 Simon Baldwin <simonb@google.com>
8583
8584 * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
8585 in gcc_assert() with '==' comparison.
8586
8587 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
8588
8589 * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
8590 TARGET_ABM handling of x86_popcnt variable.
8591
8592 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
8593
8594 * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
8595 __builtin_copysignq and __builtin_infq built-in functions.
8596
8597 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
8598
8599 * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
8600 SSE4.2 section. Correct built-in function names in SSE4A section.
8601
8602 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
8603
8604 PR tree-optimization/32243
8605 * tree-vect-transform.c (vectorizable_type_promotion): Move check
8606 for ncopies after ratio check between nunits_out and nunits_in.
8607 (vectorizable_type_demotion): Remove single-use variable "scalar_type".
8608
8609 2007-06-08 Dorit Nuzman <dorit@il.ibm.com>
8610
8611 PR tree-optimization/32224
8612 * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
8613 vectorization upon a non GIMPLE_MODIFY_STMT.
8614
8615 2007-06-08 Christian Bruel <christian.bruel@st.com>
8616
8617 PR target/29953
8618 * config/sh/sh.md (doloop_end): New pattern and splitter.
8619 * loop-iv.c (simple_rhs_p): Check for hardware registers.
8620
8621 2007-06-08 Zdenek Dvorak <dvorakz@suse.cz>
8622
8623 PR middle-end/32209
8624 * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
8625 functions.
8626 (verify_dominators): Do not change dominance tree.
8627
8628 2007-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
8629
8630 * config/sh/constraints.md: New file.
8631 * config/sh/sh.c: Include tm-constrs.h.
8632 (reg_class_from_letter): Remove.
8633 (prepare_cbranch_operands): Use satisfies_constraint_*
8634 function instead of macro.
8635 (andcosts, broken_move, sh_secondary_reload): Likewise.
8636 * config/sh/predicates.md (trapping_target_operand): Likewise.
8637 (and_operand, arith_operand, arith_reg_or_0_operand,
8638 cmp_operand, logical_operand, target_operand,
8639 ua_address_operand, ua_offset, xor_operand): Likewise.
8640 * config/sh/sh.md: Include constraints.md.
8641 (*movsicc_t_false): Use satisfies_constraint_* function
8642 instead of macro.
8643 (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
8644 lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
8645 movdi_const_16bit+1, beq, bne, *ptb): Likewise.
8646 * config/sh/sh.h (reg_class_from_letter): Remove prototype.
8647 (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
8648 (REG_CLASS_FROM_CONSTRAINT): Remove.
8649 (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
8650 CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
8651 CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
8652 CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
8653 CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
8654 (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
8655 function instead of macro.
8656 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
8657 (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
8658 EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
8659 EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
8660 (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
8661 (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
8662 (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
8663 (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
8664 (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
8665 EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
8666 EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
8667 EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
8668 EXTRA_CONSTRAINT_STR): Likewise.
8669 (GO_IF_LEGITIMATE_INDEX): Fix indentation.
8670
8671 2007-06-07 Geoffrey Keating <geoffk@apple.com>
8672
8673 * config/i386/darwin.h (STACK_BOUNDARY): Define.
8674
8675 2007-06-07 Simon Martin <simartin@users.sourceforge.net>
8676
8677 PR c++/30759
8678 * c-common.h (flag_cpp0x): Replaced by...
8679 (cxx_dialect): ... this new variable specifying the C++ dialect that
8680 is used.
8681 * c-common.c (flag_cpp0x): Removed.
8682 (cxx_dialect): Defined.
8683 * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
8684 cxx_dialect.
8685 * c-opts.c (c_common_post_options): Likewise.
8686 (set_std_cxx98): Set cxx_dialect to cxx98.
8687 (set_std_cxx0x): Set cxx_dialect to cxx0x.
8688
8689 2007-06-07 Geoffrey Keating <geoffk@apple.com>
8690 Hui-May Chang <hm.chang@apple.com>
8691
8692 * doc/invoke.texi (Darwin Options): Update documentation for
8693 -mmacosx-version-min.
8694 * config.gcc (*-*-darwin*): Set extra_gcc_objs.
8695 * config/darwin-driver.c: New file.
8696 * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
8697 * config/t-darwin (darwin-driver.o): New rule.
8698
8699 * config/darwin-c.c (version_as_macro): Ignore low digit.
8700
8701 2007-06-07 Uros Bizjak <ubizjak@gmail.com>
8702
8703 * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
8704 (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
8705 (CSGNMODE): New mode macro.
8706 (CSGNVMODE): New mode attribute.
8707 (copysign<mode>3): Rename from copysingsf3 and copysigndf3. Macroize
8708 expander using CSGNMODE mode macro. Handle TFmode.
8709 (copysign<mode>3_const): Rename from copysignsf3_const and
8710 copysigndf3_const. Macroize pattern using CSGNMODE mode macro.
8711 Handle TFmode.
8712 (copysign<mode>3_var): Rename from copysignsf3_var and
8713 copysigndf3_var. Macroize pattern using CSGNMODE mode macro.
8714 Handle TFmode.
8715 (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
8716 mode macro. Handle TFmode.
8717 * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
8718 (iortf3, *iortf3): Ditto.
8719 (xortf3, *xortf3): Ditto.
8720 * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
8721 TFmode and TImode masks.
8722 (ix86_expand_copysign): Expand TFmode copysign insn.
8723 (IX86_BUILTIN_INFQ): New.
8724 (IX86_BUILTIN_FABSQ): Ditto.
8725 (IX86_BUILTIN_COPYSIGNQ): Ditto.
8726 (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
8727 [__builtin_fabsq]: Ditto.
8728 [__builtin_copysignq]: Ditto.
8729 (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
8730 [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
8731 [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
8732 ix86_expand_binop_builtin().
8733
8734 2007-06-07 Bob Wilson <bob.wilson@acm.org>
8735
8736 * config/xtensa/lib1funcs.asm: Clean up whitespace.
8737
8738 2007-06-07 Steve Ellcey <sje@cup.hp.com>
8739
8740 PR target/31850
8741 * rtl.h (push_to_sequence2): New.
8742 * emit-rtl.c (push_to_sequence2): New.
8743 * function.c (assign_parm_data_all): Add new fields.
8744 (assign_parm_setup_block): Call push_to_sequence2 instead of
8745 push_to_sequence.
8746 (assign_parm_setup_reg): Ditto.
8747 (assign_parm_setup_stack): Ditto.
8748 (assign_parms_unsplit_complex): Ditto.
8749 (assign_parms): Change field name.
8750
8751 2007-06-07 Zdenek Dvorak <dvorakz@suse.cz>
8752
8753 PR tree-optimization/32220
8754 * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
8755 phi node is reached before defining statement.
8756
8757 2007-06-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
8758
8759 PR tree-opt/32231
8760 * tree-vect-transform.c (vectorizable_call): Call update_stmt
8761 after changing the right hand side of the assignment.
8762
8763 2007-06-06 Eric Christopher <echristo@apple.com>
8764
8765 * config.gcc (i?86-*-darwin*): Remove arch parameter.
8766 (x86_64-*-darwin*): Ditto.
8767 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
8768 (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
8769
8770 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
8771
8772 * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
8773 coding conventions.
8774 (add_key): Likewise.
8775 * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
8776 * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
8777 variable names.
8778 * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory
8779 macros.
8780 (add_cost_one_coalesce): Likewise.
8781 * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
8782 variable names. Rename orig to orig_name for consistency.
8783 * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the
8784 coding conventions.
8785 (cprop_into_successor_phis): Avoid using C++ keywords as variable
8786 names.
8787 (record_equivalences_from_stmt): Likewise.
8788 * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
8789 the coding conventions.
8790 (memory_ssa_name_same): Likewise.
8791 (dse_optimize_stmt): Likewise.
8792 (dse_record_phis): Likewise.
8793 (dse_finalize_block): Likewise.
8794 * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
8795 keywords as variable names.
8796 (may_move_till): Cast according to the coding conventions.
8797 (force_move_till_expr): Avoid using C++ keywords as variable names.
8798 (force_move_till): Cast according to the coding conventions.
8799 (memref_hash): Likewise.
8800 (memref_eq): Likewise.
8801 (gather_mem_refs_stmt): Likewise.
8802 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid
8803 using C++ keywords as variable names.
8804 (idx_find_step): Cast according to the coding conventions.
8805 (idx_record_use): Likewise.
8806 (find_depends): Likewise.
8807 (prepare_decl_rtl): Likewise.
8808 (mbc_entry_hash): Likewise.
8809 (mbc_entry_eq): Likewise.
8810 * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
8811 (simplify_replace_tree): Avoid using C++ keywords as variable names.
8812 (idx_infer_loop_bounds): Cast according to the coding conventions.
8813 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
8814 * tree-ssa-math-opts.c (occ_new ): Likwise.
8815 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
8816 macros.
8817 * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as
8818 variable names.
8819 (add_use_op): Likewise.
8820 (add_vop): Likewise.
8821 (add_vuse_op): Likewise.
8822 (add_vdef_op): Likewise.
8823 (get_expr_operands): Likewise.
8824 (push_stmt_changes): Use type safe memory macros.
8825 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
8826 keywords as variable names.
8827 (conditional_replacement): Likewise.
8828 (minmax_replacement): Likewise.
8829 (abs_replacement): Likewise.
8830 * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
8831 coding conventions.
8832 (insert_fake_stores): Avoid using C++ keywords as variable names.
8833 * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
8834 conventions.
8835 * tree-ssa-structalias.c (heapvar_lookup): Likewise.
8836 (heapvar_insert): Use type safe memory macros.
8837 (new_var_info): Cast according to the coding conventions.
8838 (new_constraint): Likewise.
8839 (remove_preds_and_fake_succs): Use type safe memory macros.
8840 * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
8841 conventions.
8842 (thread_single_edge): Likewise.
8843 (thread_through_loop_header): Likewise.
8844
8845 2007-06-06 Eric Christopher <echristo@apple.com>
8846
8847 * config/i386/i386.c (override_options): Move handling
8848 of TARGET_SUBTARGET* earlier.
8849
8850 2007-06-06 Paolo Bonzini <bonzini@gnu.org>
8851
8852 * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
8853 use %n on printf.
8854
8855 2007-06-06 Zdenek Dvorak <dvorakz@suse.cz>
8856
8857 * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
8858 emited outside of basic block.
8859 * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
8860 the created blocks.
8861 * rtl.h (delete_insn_chain): Declaration changed.
8862 * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
8863 non-removed insns.
8864 (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
8865 (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
8866 rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
8867 to delete_insn_chain.
8868 (rtl_verify_flow_info_1): Verify that the insns in header and footer
8869 do not have bb field set.
8870 (rtl_verify_flow_info): Verify that insns between basic blocks do not
8871 have bb field set.
8872 * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
8873 * cfgcleanup.c (try_optimize_cfg): Ditto.
8874
8875 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
8876
8877 * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
8878 (lambda_body_vector_new): Use type safe memory macros.
8879 (lambda_linear_expression_new): Likewise.
8880 (lambda_loopnest_new): Likewise.
8881 (lambda_lattice_new): Likewise.
8882 (replace_uses_equiv_to_x_with_y): Cast according to the coding
8883 conventions. Use type safe memory macros.
8884 * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
8885 (lambda_body_vector_s): Likewise.
8886 * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
8887 * lambda-trans.c (lambda_trans_matrix_new): Likewise.
8888
8889 2007-06-06 Richard Guenther <rguenther@suse.de>
8890
8891 * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
8892 if we need to schedule cfg_cleanup.
8893 (tree_ssa_forward_propagate_single_use_vars): Do so.
8894
8895 2007-06-06 Ian Lance Taylor <iant@google.com>
8896
8897 * fold-const.c (merge_ranges): If range_successor or
8898 range_predecessor fail, just return 0.
8899
8900 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
8901
8902 PR tree-optimization/32216
8903 * tree-vectorizer.c (supportable_widening_operation): Determine
8904 signedness of FIX_TRUNC_EXPR from output operand.
8905 (supportable_narrowing_operation): Ditto.
8906 * tree-vect-generic.c (expand_vector_operations_1): Determine
8907 signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
8908 from input operand.
8909
8910 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
8911
8912 * config/i386/i386.c (enum pta_flags): Move out of struct scope...
8913 (struct pta): ...from here. Change flags to unsigned to avoid
8914 excessive casting (as it is used as a bit mask).
8915 (override_options): Add casts according to the coding convenventions.
8916 (x86_64_elf_unique_section): Likewise.
8917 (examine_argument): Avoid using C++ keywords as variable names.
8918 (construct_container): Likewise.
8919 (legitimize_pic_address): Likewise.
8920 (get_dllimport_decl): Cast according to the coding conventions. Use
8921 type safe memory macros.
8922 (legitimize_address): Cast according to the coding conventions.
8923 (emit_i387_cw_initialization): Corrected the type of slot to enum
8924 ix86_stack_slot.
8925 (ix86_init_machine_status): Use type safe memory macros.
8926 (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
8927 (bdesc_pcmpistr): Likewise.
8928 (bdesc_crc32): Likewise.
8929 (bdesc_sse_3arg): Likewise.
8930 (bdesc_2arg): Likewise.
8931 (bdesc_1arg): Likewise.
8932 (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
8933 (ix86_expand_sse_pcmpistr): Likewise.
8934 (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
8935 (ix86_builtin_vectorized_function): Change the type of fn to unsigned
8936 int to match the langhook definition.
8937 (ix86_builtin_conversion): Change the type of code to unsigned init to
8938 match the langhook definition.
8939 (ix86_preferred_reload_class): Avoid using C++ keywords as variable
8940 names.
8941 (ix86_preferred_output_reload_class): Likewise.
8942 (ix86_cannot_change_mode_class): Likewise.
8943 (ix86_memory_move_cost): Likewise.
8944 (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
8945 avoid excessive casting later on.
8946 (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
8947
8948 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
8949
8950 * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
8951 as flags setting insn.
8952 (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
8953
8954 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
8955
8956 * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
8957 (UNSPEC_ROUND): New.
8958 ("sse4_1_round<mode>2"): New insn pattern.
8959 ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
8960 SSE4.1 targets.
8961 ("floor<mode>2"): Rename from floordf2 and floorsf2. Macroize
8962 expander using SSEMODEF mode macro. Expand using
8963 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
8964 ("ceil<mode>2"): Rename from ceildf2 and ceilsf2. Macroize
8965 expander using SSEMODEF mode macro. Expand using
8966 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
8967 ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2. Macroize
8968 expander using SSEMODEF mode macro. Expand using
8969 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
8970 * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
8971 UNSPEC_ROUND instead of UNSPEC_ROUNDP.
8972 ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
8973 UNSPEC_ROUNDS.
8974
8975 2007-06-06 Jan Sjodin <jan.sjodin@amd.com>
8976 Sebastian Pop <sebpop@gmail.com>
8977
8978 * lambda.h (build_linear_expr): New.
8979 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
8980 Use build_linear_expr, call fold and force_gimple_operand.
8981 (lambda_loopnest_to_gcc_loopnest): Check that there is
8982 something to insert.
8983 * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
8984
8985 2007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
8986
8987 PR preprocessor/23479
8988 * doc/extend.texi: Document the 0b-prefixed binary integer
8989 constant extension.
8990
8991 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
8992
8993 PR tree-optimization/32215
8994 * tree-vectorizer.c (supportable_widening_operation): Return false
8995 for unsupported FIX_TRUNC_EXPR tree code.
8996 (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
8997
8998 2007-06-06 Nathan Froyd <froydnj@codesourcery.com>
8999
9000 * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
9001 register on SPE targets. Change documentation to reflect
9002 reality.
9003 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
9004 Change FIXED_SCRATCH to 14 and document why we're keeping r14
9005 out of the register allocation pool.
9006 (rs6000_reg_live_or_pic_offset_p): New function.
9007 (rs6000_emit_prologue): Move the actual saving of LR up to free
9008 r0 for holding r11. Split saving of SPE 64-bit registers into
9009 its own case. Ensure that offsets will always be in-range for
9010 'evstdd' by using r11 as a scratch register to point at the start
9011 of the SPE save area. Save r11 if necessary, as it is the static
9012 chain register.
9013 (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
9014 into its own case. Ensure that offsets will always be in-range
9015 for 'evldd' by using r11 as a scratch register to point at the
9016 start of the SPE save area. Also adjust r11 when restoring
9017 the stack pointer to compensate for pre-loading r11.
9018
9019 2007-06-05 Thomas Neumann <tneumann@users.sourceforge.net>
9020
9021 * cfg.c (init_flow): Use type safe memory macros.
9022 (alloc_block): Likewise.
9023 (unchecked_make_edge): Likewise.
9024 (dump_flow_info): Avoid using C++ keywords as variable names.
9025 (copy_original_table_clear): Cast according to the coding conventions.
9026 (copy_original_table_set): Likewise.
9027 * cfgexpand (label_rtx_for_bb): Likewise.
9028 (expand_gimple_basic_block): Likewise.
9029 * cfghooks.c (dump_bb): Likewise.
9030 (lv_adjust_loop_header_phi): Avoid using C++ keywords as
9031 variable names.
9032 (lv_add_condition_to_bb): Likewise.
9033 * cfglayout (relink_block_chain): Cast according to the coding
9034 conventions.
9035 (fixup_reorder_chain): Likewise.
9036 (fixup_fallthru_exit_predecessor): Likewise.
9037 * cfgloop.c (glb_enum_p): Likewise.
9038 (get_exit_description): Likewise.
9039 (dump_recorded_exit): Likewise.
9040 * cfgloop.h (enum loop_estimation): Move out of struct scope...
9041 (struct loop): ... from here.
9042 * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
9043 conventions.
9044 * cfgrtl.c (rtl_create_basic_block): Likewise.
9045 (rtl_split_block): Likewise.
9046 (rtl_dump_bb): Likewise.
9047 (cfg_layout_split_block): Likewise.
9048 (init_rtl_bb_info): Use typesafe memory macros.
9049
9050 * graphds.h (struct graph_edge): Renamed edge to graph_edge.
9051 * graphds.h: Updated all usages of edge to graph_edge.
9052 * graphds.c: Likewise.
9053 * cfgloopanal.c: Likewise.
9054
9055 2007-06-05 Ian Lance Taylor <iant@google.com>
9056
9057 * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
9058 PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
9059 (extract_range_from_assert): Set TREE_NO_WARNING when creating an
9060 expression.
9061 (test_for_singularity): Likewise.
9062
9063 2007-06-05 H.J. Lu <hongjiu.lu@intel.com>
9064
9065 * config/i386/constraints.md ("Y2"): Replaced by ...
9066 ("Yt"): This.
9067 * config/i386/i386.md: Likewise.
9068 * config/i386/mmx.md: Likewise.
9069 * config/i386/sse.md: Likewise.
9070
9071 2007-06-05 H.J. Lu <hongjiu.lu@intel.com>
9072
9073 * config/i386/constraints.md ("z"): Replaced by ...
9074 ("Y0"): This.
9075 * config/i386/sse.md (sse4_1_blendvpd): Likewise.
9076 (sse4_1_blendvps): Likewise.
9077 (sse4_1_pblendvb): Likewise.
9078 (sse4_2_pcmpestr): Likewise.
9079 (sse4_2_pcmpestrm): Likewise.
9080 (sse4_2_pcmpestr_cconly): Likewise.
9081 (sse4_2_pcmpistr): Likewise.
9082 (sse4_2_pcmpistrm): Likewise.
9083 (sse4_2_pcmpistr_cconly): Likewise.
9084
9085 2007-06-05 Razya Ladelsky <razya@il.ibm.com>
9086
9087 * matrix-reorg.c (transform_access_sites): Fix computation.
9088 (transform_allocation_sites): Same.
9089
9090 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
9091
9092 * config/i386/i386.c (override_options): Use
9093 TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
9094
9095 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
9096
9097 * config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
9098 (nonimm_not_xmm0_operand): Ditto.
9099 * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
9100 as operand[0] and operand[1] predicate. Use "nonimm_not_xmm0_operand"
9101 as operand[2] predicate. Require "z" class XMM register for
9102 operand[3]. Adjust asm template.
9103 ("sse4_1_blendvpd"): Ditto.
9104 ("sse4_1_pblendvb"): Ditto.
9105 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
9106 force op2 into xmm0 register for variable blend instructions.
9107
9108 2007-06-04 Tom Tromey <tromey@redhat.com>
9109
9110 * c-tree.h (start_enum): Update.
9111 (build_enumerator): Likewise.
9112 * c-decl.c (enum_next_value): Removed.
9113 (enum_overflow): Likewise.
9114 (start_enum): Add c_enum_contents argument. Don't use globals.
9115 (build_enumerator): Likewise.
9116 * c-tree.h (struct c_enum_contents): New struct.
9117
9118 2007-06-04 Tom Tromey <tromey@redhat.com>
9119
9120 * c-common.c (c_common_get_alias_set): Fix indentation.
9121
9122 2007-06-04 Ian Lance Taylor <iant@google.com>
9123
9124 * tree-vrp.c (adjust_range_with_scev): When loop is not expected
9125 to overflow, reduce overflow infinity to regular infinity.
9126 (vrp_var_may_overflow): New static function.
9127 (vrp_visit_phi_node): Check vrp_var_may_overflow.
9128
9129 2007-06-04 Kazu Hirata <kazu@codesourcery.com>
9130
9131 * stor-layout.c (layout_type): Remove duplicate code.
9132
9133 2007-06-04 Uros Bizjak <ubizjak@gmail.com>
9134
9135 PR c/32191
9136 * c-common.c (c_define_builtins): Call targetm.init_builtins ()
9137 before build_common_builtin_nodes ().
9138
9139 2007-06-04 Steve Ellcey <sje@cup.hp.com>
9140
9141 PR target/31733
9142 * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.
9143
9144 2007-06-04 Jan Hubicka <jh@suse.cz>
9145
9146 * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
9147 reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
9148 instead of _stat version.
9149
9150 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
9151
9152 PR tree-optimization/32194
9153 * tree-predcom.c (determine_offset): Check that both references have
9154 the same type.
9155
9156 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
9157
9158 * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
9159 Change dom_bbs to vector. Add argument to iterate_fix_dominators call.
9160 * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
9161 * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
9162 Add argument to iterate_fix_dominators call.
9163 (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
9164 * gcse.c (hoist_code): Change domby to vector.
9165 * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
9166 Add argument to iterate_fix_dominators call.
9167 * loop-doloop.c (doloop_modify): Changed recount_dominator to
9168 recompute_dominator.
9169 * lambda-code.c (perfect_nestify): Ditto.
9170 * cfgloopanal.c: Include graphds.h.
9171 (struct edge, struct vertex, struct graph, dump_graph, new_graph,
9172 add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
9173 (mark_irreducible_loops): Use graphds_scc. Remove argument from
9174 add_edge call.
9175 * graphds.c: New file.
9176 * graphds.h: New file.
9177 * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
9178 (get_dominated_by, get_dominated_by_region): Change return type to
9179 vector.
9180 (verify_dominators): Recompute all dominators and compare the results.
9181 (recount_dominator): Renamed to ...
9182 (recompute_dominator): ... this. Do not check that the block is
9183 dominated by entry.
9184 (iterate_fix_dominators): Reimplemented.
9185 (prune_bbs_to_update_dominators, root_of_dom_tree,
9186 determine_dominators_for_sons): New functions.
9187 * et-forest.c (et_root): New function.
9188 * et-forest.h (et_root): Declare.
9189 * Makefile.in (graphds.o): Add.
9190 (cfgloopanal.o): Add graphds.h dependency.
9191 (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
9192 * basic-block.h (get_dominated_by, get_dominated_by_region,
9193 iterate_fix_dominators): Declaration changed.
9194 (recount_dominator): Renamed to ...
9195 (recompute_dominator): ... this.
9196 * tree-ssa-threadupdate.c (thread_block): Free dominance info.
9197 (thread_through_all_blocks): Do not free dominance info.
9198
9199 2007-06-03 Andreas Schwab <schwab@suse.de>
9200
9201 * config/m68k/m68k.c (override_options): Don't override
9202 REAL_MODE_FORMAT.
9203 * config/m68k/m68k-modes.def (SF, DF): Define to use
9204 motorola_single_format and motorola_double_format, resp.
9205 * real.c (motorola_single_format): Renamed from
9206 coldfire_single_format.
9207 (motorola_double_format): Renamed from coldfire_double_format.
9208 (encode_ieee_extended): Generate a proper canonical NaN image
9209 respecting canonical_nan_lsbs_set.
9210 (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
9211 true.
9212 * real.h: Adjust declarations.
9213
9214 2007-06-03 Kaz Kojima <kkojima@gcc.gnu.org>
9215
9216 PR target/32163
9217 * config/sh/sh.md (symGOT_load): Don't schedule insns when
9218 the symbol is generated with the stack protector.
9219
9220 2007-06-03 Kazu Hirata <kazu@codesourcery.com>
9221
9222 * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
9223 (m68k_get_function_kind): Return m68k_fk_interrupt_handler on
9224 "interrupt".
9225 * doc/extend.texi (interrupt): Mention m68k.
9226
9227 2007-06-02 Uros Bizjak <ubizjak@gmail.com>
9228
9229 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
9230 safe_vector_operand() if input operand is VECTOR_MODE_P operand.
9231 (ix86_expand_sse_pcmpestr): Do not check operands for
9232 "register_operand", when insn operand predicate is "register_operand".
9233 (ix86_expand_sse_pcmpistr): Ditto.
9234
9235 2007-06-02 H.J. Lu <hongjiu.lu@intel.com>
9236 Uros Bizjak <ubizjak@gmail.com>
9237
9238 * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
9239 (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
9240 (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
9241 (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
9242 * config/i386/constraints.md ("z"): New register constraint
9243 for members of SSE_FIRST_REG class.
9244 * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
9245 * config/i386/i386.c (regclass_map): Change class of %xmm0 to
9246 SSE_FIRST_REG class.
9247 (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
9248 (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
9249 (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
9250 (IX86_BUILTIN_PCMPESTRM128): Likewise.
9251 (IX86_BUILTIN_PCMPESTRA128): Likewise.
9252 (IX86_BUILTIN_PCMPESTRC128): Likewise.
9253 (IX86_BUILTIN_PCMPESTRO128): Likewise.
9254 (IX86_BUILTIN_PCMPESTRS128): Likewise.
9255 (IX86_BUILTIN_PCMPESTRZ128): Likewise.
9256 (IX86_BUILTIN_PCMPISTRI128): Likewise.
9257 (IX86_BUILTIN_PCMPISTRM128): Likewise.
9258 (IX86_BUILTIN_PCMPISTRA128): Likewise.
9259 (IX86_BUILTIN_PCMPISTRC128): Likewise.
9260 (IX86_BUILTIN_PCMPISTRO128): Likewise.
9261 (IX86_BUILTIN_PCMPISTRS128): Likewise.
9262 (IX86_BUILTIN_PCMPISTRZ128): Likewise.
9263 (struct builtin_description): Change "flag" field to unsigned.
9264 (bdesc_pcmpestr): New builtin description table.
9265 (bdesc_pcmpistr): Likewise.
9266 (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
9267 v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
9268 Initialize pcmp[ei]str[im] insns for SSE4.2.
9269 (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
9270 (ix86_expand_sse_pcmpistr): Likewise.
9271 (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
9272 * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
9273 (UNSPEC_PCMPISTR): Likewise.
9274 * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
9275 (sse4_2_pcmpestri):New isns pattern.
9276 (sse4_2_pcmpestrm): Likewise.
9277 (sse4_2_pcmpestr_cconly): Likewise.
9278 (sse4_2_pcmpistr): New insn patern and splitter.
9279 (sse4_2_pcmpistri):New isns pattern.
9280 (sse4_2_pcmpistrm): Likewise.
9281 (sse4_2_pcmpistr_cconly): Likewise.
9282 * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
9283 in SSE4.2.
9284
9285 2007-06-01 David Daney <ddaney@avtrex.com>
9286
9287 * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
9288 LOADGP_ABSOLUTE and not binds_local_p.
9289
9290 2007-06-01 Geoffrey Keating <geoffk@apple.com>
9291
9292 * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.
9293
9294 2007-06-01 Ian Lance Taylor <iant@google.com>
9295
9296 * tree-vrp.c (compare_name_with_value): Always set
9297 used_strict_overflow if we get a result from the variable itself.
9298
9299 2007-06-01 Ian Lance Taylor <iant@google.com>
9300
9301 PR rtl-optimization/31455
9302 * lower-subreg.c (find_decomposable_subregs): Don't decompose
9303 subregs which have a cast between modes which are not tieable.
9304
9305 2007-06-01 Uros Bizjak <ubizjak@gmail.com>
9306
9307 * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
9308 breaks after return statements.
9309
9310 2007-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
9311
9312 * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
9313 only after no_new_pseudos.
9314
9315 2007-05-31 Eric Christopher <echristo@apple.com>
9316
9317 * expr.c (convert_move): Assert that we don't have a BLKmode
9318 operand.
9319 (store_expr): Handle BLKmode moves by calling emit_block_move.
9320
9321 2007-05-31 Daniel Berlin <dberlin@dberlin.org>
9322
9323 * c-typeck.c (build_indirect_ref): Include type in error message.
9324 (build_binary_op): Pass types to binary_op_error.
9325 * c-common.c (binary_op_error): Take two type arguments, print out
9326 types with error.
9327 * c-common.h (binary_op_error): Update prototype.
9328
9329 2007-05-31 H.J. Lu <hongjiu.lu@intel.com>
9330
9331 * config/i386/i386.c: Correct coments on -mno-sse4.
9332
9333 2007-05-31 H.J. Lu <hongjiu.lu@intel.com>
9334
9335 * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
9336 (x86_64-*-*): Likewise.
9337 * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
9338 (OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
9339 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
9340 (OPTION_MASK_ISA_SSE2_UNSET): Likewise.
9341 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
9342 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
9343 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
9344 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
9345 (OPTION_MASK_ISA_SSE4): Likewise.
9346 (OPTION_MASK_ISA_SSE4_UNSET): Likewise.
9347 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
9348 (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET. Handle SSE4.2.
9349 (override_options): Support SSE4.2.
9350 (ix86_build_const_vector): Support SImode and DImode.
9351 (ix86_build_signbit_mask): Likewise.
9352 (ix86_expand_int_vcond): Support V2DImode.
9353 (IX86_BUILTIN_CRC32QI): New for SSE4.2.
9354 (IX86_BUILTIN_CRC32HI): Likewise.
9355 (IX86_BUILTIN_CRC32SI): Likewise.
9356 (IX86_BUILTIN_CRC32DI): Likewise.
9357 (IX86_BUILTIN_PCMPGTQ): Likewise.
9358 (bdesc_crc32): Likewise.
9359 (bdesc_sse_3arg): Likewise.
9360 (ix86_expand_crc32): Likewise.
9361 (ix86_init_mmx_sse_builtins): Support SSE4.2.
9362 (ix86_expand_builtin): Likewise.
9363 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
9364 __SSE4_2__ for -msse4.2.
9365 * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
9366 (CRC32MODE): Likewise.
9367 (crc32modesuffix): Likewise.
9368 (crc32modeconstraint): Likewise.
9369 (sse4_2_crc32<mode>): Likewise.
9370 (sse4_2_crc32di): Likewise.
9371 * config/i386/i386.opt (msse4.2): New for SSE4.2.
9372 (msse4): Likewise.
9373 * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
9374 * config/i386/smmintrin.h: Add SSE4.2 intrinsics.
9375 * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
9376 (vcond<mode>): Use SSEMODEI instead of SSEMODE124.
9377 (vcondu<mode>): Likewise.
9378 * doc/extend.texi: Document SSE4.2 built-in functions.
9379 * doc/invoke.texi: Document -msse4.2/-msse4.
9380
9381 2007-05-31 Zdenek Dvorak <dvorakz@suse.cz>
9382
9383 PR tree-optimization/32160
9384 * tree-predcom.c (predcom_tmp_var): New function. Mark created
9385 variable as gimple reg.
9386 (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.
9387
9388 2007-05-31 Kazu Hirata <kazu@codesourcery.com>
9389
9390 * gcc.c (main): Don't consider linker options when issuing the
9391 warning about a linker input file not being used.
9392
9393 2007-05-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9394
9395 * tree-vrp.c (compare_names): Initialize sop.
9396
9397 2007-05-30 Dirk Mueller <dmueller@suse.de>
9398
9399 * cgraphunit.c (cgraph_analyze_function): Remove
9400 computation of inline parameters.
9401
9402 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
9403
9404 * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
9405
9406 2007-05-30 Richard Sandiford <richard@codesourcery.com>
9407
9408 * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
9409 Add vx-common.h. Include vxworks.h between vx-common.h and
9410 arm/vxworks.h.
9411 * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
9412 redefining.
9413 * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
9414 (TARGET_ASM_DESTRUCTOR): Likewise.
9415 * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
9416 instead of arm_is_xscale. Use VXWORKS_OS_CPP_BUILTINS.
9417 (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
9418 (CC1_SPEC): Add -tstrongarm. Line up backslashes.
9419 (VXWORKS_ENDIAN_SPEC): Define.
9420 (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
9421 (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
9422 VXWORKS_* equivalents.
9423 (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
9424 (ASM_FILE_START): Delete.
9425 (TARGET_VERSION): Reformat.
9426 (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
9427 (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
9428 * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
9429 (FPBIT, DPBIT): Define.
9430 (fp-bit.c, dp-bit.c): New rules.
9431 (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
9432 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
9433 * config/arm/arm-protos.h (arm_emit_call_insn): Declare.
9434 * config/arm/arm.h: Include vxworks-dummy.h.
9435 * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
9436 Mark with ATTRIBUTE_UNUSED.
9437 (arm_override_options): Do not allow VxWorks RTP PIC to be used
9438 for Thumb. Force r9 to be the PIC register for VxWorks RTPs and
9439 make it incompatible with -msingle-pic-base.
9440 (arm_function_ok_for_sibcall): Return false for calls that might
9441 go through a VxWorks PIC PLT entry.
9442 (require_pic_register): New function, split out from...
9443 (legitimize_pic_address): ...here. Do not use GOTOFF accesses
9444 for VxWorks RTPs.
9445 (arm_load_pic_register): Handle the VxWorks RTP initialization
9446 sequence. Use pic_reg as a shorthand for cfun->machine->pic_reg.
9447 (arm_emit_call_insn): New function.
9448 (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
9449 * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
9450 (pic_offset_arm): New pattern.
9451 (call, call_value): Use arm_emit_call_insn.
9452 (call_internal, call_value_internal): New expanders.
9453 * config/arm/lib1funcs.asm (__PLT__): Define to empty for
9454 VxWorks unless __PIC__.
9455
9456 2007-05-30 Eric Christopher <echristo@gmail.com>
9457
9458 * genrecog.c: Include regs.h in generated file.
9459 * genemit.c: Ditto. Fix up formatting.
9460 * config/mn10300/constraints.md: New.
9461 * config/mn10300/mn10300.md: Include.
9462 * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
9463 Fix up for removed macro.
9464 * config/mn10300/predicates.md (call_address_operand): Ditto.
9465 * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
9466 (CONST_OK_FOR_I): Ditto.
9467 (CONST_OK_FOR_J): Ditto.
9468 (CONST_OK_FOR_K): Ditto.
9469 (CONST_OK_FOR_L): Ditto.
9470 (CONST_OK_FOR_M): Ditto.
9471 (CONST_OK_FOR_N): Ditto.
9472 (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
9473 (OK_FOR_Q): Ditto.
9474 (OK_FOR_R): Ditto.
9475 (OK_FOR_T): Ditto.
9476 (EXTRA_CONSTRAINT): Ditto.
9477
9478 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
9479
9480 * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
9481 Remove defines.
9482 * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
9483 OPTION_MASK_ISA_64BIT.
9484 * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.
9485
9486 2007-05-30 Richard Guenther <rguenther@suse.de>
9487
9488 PR middle-end/32152
9489 * gimplify.c (gimplify_omp_atomic_pipeline): Use correct
9490 types for comparison.
9491 * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
9492 with original typed arguments.
9493 * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.
9494
9495 2007-05-30 Jakub Jelinek <jakub@redhat.com>
9496
9497 PR tree-optimization/31769
9498 * except.c (duplicate_eh_regions): Clear prev_try if
9499 ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
9500
9501 2007-05-30 Zdenek Dvorak <dvorakz@suse.cz>
9502
9503 * tree-scalar-evolution.c (scev_const_prop): Do not create labels.
9504 * tree-ssa-sink.c (statement_sink_location): Return basic block and
9505 bsi of the location where statements should be inserted.
9506 (sink_code_in_bb): Take bsi from statement_sink_location.
9507 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
9508 instead of bsi_start.
9509 * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
9510 bsi_insert_after.
9511 * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
9512 (bsi_move_before): Document inconsistency with bsi_move_after.
9513 (tree_redirect_edge_and_branch): Do not create labels if not necessary.
9514
9515 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
9516
9517 * config/i386/i386.h (TARGET_ABM): New define.
9518 (TARGET_POPCNT): Ditto.
9519 (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
9520 New temporary defines to redefine from OPTION_ISA_* defines.
9521 (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
9522 New temporary defines to redefine from OPTION_MASK_ISA_* defines.
9523 (ix86_isa_flags): New extern int declaration.
9524 (TARGET_SUBTARGET_DEFAULT): New define.
9525 (TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
9526 (TARGET_SUBTARGET32_DEFAULT): Ditto.
9527 (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
9528 (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
9529 * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
9530 * config/i386/darwin.h: Change TARGET_64BIT define to
9531 OPTION_ISA_64BIT.
9532
9533 * config/i386/i386.opt (m3dnowa): Define as undocumented option
9534 using existing "ix86_isa_flags" varible.
9535 (m32, m64): Use existing "ix86_isa_flags" variable.
9536 (mmmx, m3dnow): Ditto.
9537 (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
9538 (mabm): Define as non-negative option using "x86_abm" variable.
9539 (mpopcnt): Define as non-negative option using "x86_popcnt" variable.
9540
9541 * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
9542 Rewrite feature test bitmap.
9543 (ix86_isa_flags): New initialized global int varible.
9544 (ix86_isa_flags_explicit): New static int variable.
9545 (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
9546 msse, msse2, msse3, msse4.1 and msse4a option is processed. Change
9547 i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
9548 target_flags_explicit.
9549 (override_options): Remove "target_enable" and "target_disable" fields
9550 from "struct ptt". Update processor_target_table accordingly. Remove
9551 PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
9552 defined and rearrange PTA_* bits. Use "ix86_isa_flags" instead of
9553 "target_flags" and "ix86_isa_flags_explicit" instead of
9554 "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
9555 MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*. Set "x86_abm" to true when
9556 PTA_ABM is set in processor_alias_table flags entry. Set "x86_popcnt"
9557 to true when either of PTA_POPCNT or PTA_ABM is set in
9558 processor_alias_table flags entry. Set "x86_prefetch_sse" to true
9559 when either of PTA_PREFETCH_SSE or PTA_SSE is set in
9560 processor_alias_table flags entry. Remove handling of
9561 "target_enable" and "target_disable" fields of processor_target_table.
9562 Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
9563 targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
9564 Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
9565 targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
9566 (def_builtin): Mask "mask" variable with "ix86_isa_flags", not
9567 "target_flags".
9568 (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.
9569
9570 2007-05-29 David Daney <ddaney@avtrex.com>
9571
9572 PR gcc/31975
9573 * config/mips/mips.c (mips_output_mi_thunk): Emit
9574 NOTE_INSN_PROLOGUE_END at beginning of the thunk.
9575
9576 2007-05-29 Hui-May Chang <hm.chang@apple.com>
9577 * config/i386/i386.c (ix86_function_regparm): Added checking of
9578 ix86_force_align_arg_pointer to determine the number of
9579 register parameters.
9580
9581 2007-05-29 Zdenek Dvorak <dvorakz@suse.cz>
9582
9583 * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
9584 (SET_DR_MISALIGNMENT): New.
9585 * tree-vect-analyze.c (vect_compute_data_ref_alignment,
9586 vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
9587 Use SET_DR_MISALIGNMENT.
9588 * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
9589 pointer.
9590 * tree-data-ref.c (create_data_ref, compute_all_dependences,
9591 find_loop_nest): Export.
9592 * tree-data-ref.h (struct data_reference): Change aux field to pointer.
9593 (create_data_ref, compute_all_dependences, find_loop_nest): Declare.
9594 * tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
9595 (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
9596 New macros.
9597 (struct mem_ref): Add field reuse_distance.
9598 (find_or_create_group, record_ref): Use XNEW instead of xcalloc.
9599 Initialize reuse_distance field.
9600 (issue_prefetch_ref): Select temporality of prefetch according to
9601 reuse_distance.
9602 (volume_of_references, volume_of_dist_vector, add_subscript_strides,
9603 self_reuse_distance, determine_loop_nest_reuse): New functions.
9604 (loop_prefetch_arrays): Call determine_loop_nest_reuse.
9605 (tree_ssa_prefetch_arrays): Dump L2 cache size.
9606 * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
9607 dependency.
9608
9609 2007-05-29 Daniel Berlin <dberlin@dberlin.org>
9610
9611 * tree-ssa-alias.c: Add aliasing overview.
9612
9613 2007-05-29 Zuxy Meng <zuxy.meng@gmail.com>
9614 Danny Smith <dannysmith@users.sourceforge.net>
9615
9616 PR target/29498
9617 * config/i386/t-crtfm: Compile crtfastmath.o with
9618 -minline-all-stringops.
9619 * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
9620 * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.
9621
9622 2007-05-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9623
9624 * doc/md.texi: Document constraints on HP PA-RISC.
9625
9626 * pa/constraints.md: New file.
9627 * pa.md: Include constraints.md.
9628 * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
9629 (integer_store_memory_operand, ldil_cint_p): New functions.
9630 * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
9631 * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
9632 IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
9633 * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
9634 * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.
9635
9636 2007-05-28 Andrew Pinski <Andrew_pinski@playstation.sony.com>
9637
9638 PR c/31339
9639 * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
9640 case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
9641 case POSTDECREMENT_EXPR>): Return the error_mark_node
9642 if either the real or imaginary parts would an
9643 error_mark_node.
9644
9645 2007-05-28 Daniel Berlin <dberlin@dberlin.org>
9646
9647 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
9648 name when we remove it from a call.
9649
9650 2007-05-28 Kazu Hirata <kazu@codesourcery.com>
9651
9652 * targhooks.c (default_narrow_bitfield): Remove.
9653 * targhooks.h: Remove the prototype for
9654 default_narrow_bitfield.
9655
9656 * langhooks-def.h: Remove the prototype for
9657 hook_get_alias_set_0.
9658 * langhooks.c (hook_get_alias_set_0): Remove.
9659
9660 * global.c (EXECUTE_IF_CONFLICT): Remove.
9661
9662 2007-05-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
9663
9664 PR tree-opt/32100
9665 * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
9666 return true when truth_value_p is true and the type
9667 is of signed:1.
9668
9669 2007-05-28 Gerald Pfeifer <gerald@pfeifer.com>
9670
9671 * doc/install.texi (Prerequisites): We no longer require Autoconf
9672 2.13 for the top-level.
9673
9674 2007-05-28 Uros Bizjak <ubizjak@gmail.com>
9675
9676 * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
9677 memory access via x86_expand_vector_move_misalign() only for
9678 TImode values on 32-bit targets.
9679
9680 2007-05-28 Razya Ladelsky <razya@il.ibm.com>
9681
9682 * matrix-reorg.c: New file. Implement matrix flattening and
9683 transposing optimization.
9684 * tree-pass.h: Add matrix reorg pass.
9685 * common.opt: Add fipa-mreorg flag.
9686 * Makefile.in: Add matrix-reorg.c.
9687 * passes.c: Add matrix reorg pass.
9688 * varpool.c (add_new_static_var): New function.
9689 * cgraph.h (add_new_static_var): Declare.
9690
9691 2007-05-27 Eric Christopher <echristo@apple.com>
9692
9693 * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
9694 sp_offset depending on stack size. Save r12 depending
9695 on registers we're saving later.
9696 (rs6000_emit_epilogue): Update sp_offset depending only
9697 on stack size.
9698
9699 2007-05-27 Zdenek Dvorak <dvorakz@suse.cz>
9700
9701 * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
9702 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
9703 * ifcvt.c (if_convert): Ditto.
9704 * tree-ssa-threadupdate.c (thread_block): Ditto.
9705 (thread_through_all_blocks): Ditto. Assert that loops were analysed.
9706 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
9707 verify_loop_closed_ssa): Check number_of_loops instead of
9708 current_loops.
9709 * predict.c (tree_estimate_probability): Ditto.
9710 * tree-if-conv.c (main_tree_if_conversion): Ditto.
9711 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
9712 * modulo-sched.c (sms_schedule): Ditto.
9713 * tree-scalar-evolution.c (scev_const_prop): Ditto.
9714 (scev_finalize): Do not do anything if scev analysis was not
9715 initialized.
9716 * cfgloopanal.c (mark_irreducible_loops): Do not check whether
9717 current_loops == NULL.
9718 (mark_loop_exit_edges): Check number_of_loops instead of current_loops.
9719 * loop-init.c (loop_optimizer_init): Do not free current_loops when
9720 there are no loops.
9721 (loop_optimizer_finalize): Assert that loops were analyzed.
9722 (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
9723 rtl_doloop): Check number_of_loops instead of current_loops.
9724 * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
9725 current_loops == NULL.
9726 (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
9727 gate_tree_vectorize tree_linear_transform, check_data_deps,
9728 tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
9729 tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
9730 Check number_of_loops instead of current_loops.
9731 (tree_ssa_loop_done): Do not check whether current_loops == NULL.
9732 * tree-ssa-pre.c (fini_pre): Do not take do_fre argument. Always
9733 free loops if available.
9734 (execute_pre): Do not pass do_fre to fini_pre.
9735
9736 2007-05-27 Tobias Burnus <burnus@net-b.de>
9737
9738 PR middle-end/32083
9739 * real.c (mpfr_from_real): Fix sign of -Inf.
9740
9741 2007-05-27 H.J. Lu <hongjiu.lu@intel.com>
9742
9743 * tree-vect-transform.c (vectorizable_conversion): Initialize
9744 tree_code variables to ERROR_MARK.
9745 (vectorizable_type_demotion): Likewise.
9746 (vectorizable_type_promotion): Likewise.
9747
9748 2007-05-26 Uros Bizjak <ubizjak@gmail.com>
9749
9750 PR target/32065
9751 * config/i386/i386.md (movti): Handle push operands via
9752 ix86_expand_push().
9753
9754 2007-05-26 Kazu Hirata <kazu@codesourcery.com>
9755
9756 * basic-block.h: Remove the prototype for merge_seq_blocks.
9757 * cfgcleanup.c (merge_seq_blocks): Remove.
9758
9759 * tree-flow.h: Remove the prototype for is_aliased_with.
9760 * tree-ssa-alias.c (is_aliased_with): Remove.
9761
9762 2007-05-26 H.J. Lu <hongjiu.lu@intel.com>
9763
9764 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.
9765
9766 * config/i386/i386.c (ix86_expand_sse4_unpack): New.
9767
9768 * config/i386/sse.md (vec_unpacku_hi_v16qi): Call
9769 ix86_expand_sse4_unpack if SSE4.1 is enabled.
9770 (vec_unpacks_hi_v16qi): Likewise.
9771 (vec_unpacku_lo_v16qi): Likewise.
9772 (vec_unpacks_lo_v16qi): Likewise.
9773 (vec_unpacku_hi_v8hi): Likewise.
9774 (vec_unpacks_hi_v8hi): Likewise.
9775 (vec_unpacku_lo_v8hi): Likewise.
9776 (vec_unpacks_lo_v8hi): Likewise.
9777 (vec_unpacku_hi_v4si): Likewise.
9778 (vec_unpacks_hi_v4si): Likewise.
9779 (vec_unpacku_lo_v4si): Likewise.
9780 (vec_unpacks_lo_v4si): Likewise.
9781
9782 2007-05-26 Kazu Hirata <kazu@codesourcery.com>
9783
9784 * c-typeck.c, config/arm/arm.c, config/darwin.c,
9785 config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
9786 omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
9787 follow spelling conventions in various
9788 warning/error/diagnostic messages.
9789
9790 * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
9791 df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
9792 fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
9793 tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
9794 tree-vrp.c: Fix comment typos. Follow spelling conventions.
9795 * doc/tm.texi: Follow spelling conventions.
9796
9797 2007-05-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
9798
9799 PR tree-opt/32090
9800 * tree-ssa-forwprop.c
9801 (forward_propagate_addr_into_variable_array_index): Remove
9802 the lhs argument. Use the type of def_rhs instead of lhs.
9803 (forward_propagate_addr_expr_1): Update use of
9804 forward_propagate_addr_into_variable_array_index.
9805
9806 2007-05-25 Sandra Loosemore <sandra@codesourcery.com>
9807 Nigel Stephens <nigel@mips.com>
9808
9809 * config/mips/mips.c (mips_attribute_table): Add "near" and "far"
9810 function attributes, "far" being an alias for "long_call".
9811 (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
9812 (mips_near_type_p, mips_far_type_p): New.
9813 (mips_comp_type_attributes): New function to check that attributes
9814 attached to a function type are compatible.
9815 (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
9816 TARGET_LONG_CALLS when deciding whether we can do a direct sibcall
9817 to the target function of the thunk.
9818 (mips_encode_section_info): Check for "near" and "far" function
9819 attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.
9820
9821 * config/mips/predicates.md (const_call_insn_operand): Test only
9822 SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.
9823
9824 * doc/extend.texi (Function Attributes): Document MIPS "near" and
9825 "far" attributes.
9826
9827 * testsuite/gcc.target/mips/near-far-1.c: New test case.
9828 * testsuite/gcc.target/mips/near-far-2.c: New test case.
9829 * testsuite/gcc.target/mips/near-far-3.c: New test case.
9830 * testsuite/gcc.target/mips/near-far-4.c: New test case.
9831
9832 2007-05-25 Eric Christopher <echristo@apple.com>
9833
9834 * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
9835 to x86-darwin configurations.
9836 * config/i386/t-darwin: Add softfp support.
9837 * config/i386/t-darwin64: Ditto.
9838 * config/i386/sfp-machine.h: If mach then don't use
9839 aliasing, emit a stub to call.
9840
9841 2007-05-25 Kazu Hirata <kazu@codesourcery.com>
9842
9843 * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
9844 haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
9845 tree-predcom.c, tree-ssa-alias-warnings.c,
9846 tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
9847 comment typos. Follow spelling conventions.
9848 * doc/cpp.texi, doc/invoke.texi: Fix typos.
9849
9850 2007-05-26 Uros Bizjak <ubizjak@gmail.com>
9851
9852 PR target/32065
9853 * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
9854 constants into memory. Expand unaligned memory references for
9855 SSE modes via x86_expand_vector_move_misalign() function.
9856
9857 2007-05-25 Uros Bizjak <ubizjak@gmail.com>
9858
9859 * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
9860 "memory" attribute for "sseishft" type insn without operands[2].
9861
9862 2007-05-25 Dirk Mueller <dmueller@suse.de>
9863 Marcus Meissner <meissner@suse.de>
9864
9865 * doc/extend.texi (alloc_size): New attribute.
9866 * c-common.c (handle_alloc_size_attribute): New.
9867 * tree-object-size.c (alloc_object_size): Use alloc_size
9868 attribute, if available.
9869
9870 2007-05-25 H.J. Lu <hongjiu.lu@intel.com>
9871
9872 * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
9873 with MASK_SSE2.
9874 (__builtin_ia32_vec_ext_v2di): Likewise.
9875 (__builtin_ia32_vec_ext_v4si): Likewise.
9876 (__builtin_ia32_vec_ext_v8hi): Likewise.
9877 (__builtin_ia32_vec_ext_v16qi): Likewise.
9878 (__builtin_ia32_vec_set_v8hi): Likewise.
9879
9880 2007-05-25 H.J. Lu <hongjiu.lu@intel.com>
9881
9882 * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
9883
9884 2007-05-25 Richard Sandiford <richard@codesourcery.com>
9885
9886 * config/arm/arm-protos.h (arm_encode_call_attribute): Delete.
9887 (arm_is_longcall_p): Rename to...
9888 (arm_is_long_call_p): ...this. Take a single tree argument and
9889 return a bool.
9890 * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete.
9891 (CUMULATIVE_ARGS): Remove call_cookie.
9892 (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P)
9893 (ENCODED_LONG_CALL_ATTR_P): Delete.
9894 (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and
9895 LONG_CALL_FLAG_CHAR cases.
9896 (ARM_DECLARE_FUNCTION_SIZE): Delete.
9897 * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use
9898 ARM_DECLARE_FUNCTION_SIZE.
9899 * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie.
9900 (arm_function_arg): Return const0_rtx for VOIDmode arguments.
9901 (arm_encode_call_attribute, current_file_function_operand): Delete.
9902 (arm_function_in_section_p): New function.
9903 (arm_is_longcall_p): Rename to...
9904 (arm_is_long_call_p): ...this. Take the target function as a single
9905 argument and return a bool. Do not rely on call cookies. Check
9906 whether the target symbol is in the same section as the current
9907 function, not just the same compilation unit.
9908 (arm_function_ok_for_sibcall): Use arm_is_long_call_p.
9909 (arm_encode_section_info): Don't encode a call type.
9910 * config/arm/arm.md (call, call_value): Update calls to
9911 arm_is_long(_)call_p. Simplify logic.
9912 (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn):
9913 Update calls to arm_is_long(_)call_p.
9914
9915 2007-05-25 Richard Guenther <rguenther@suse.de>
9916
9917 PR tree-optimization/31982
9918 * tree-ssa-forwprop.c
9919 (forward_propagate_addr_into_variable_array_index): Handle arrays
9920 with element size one.
9921
9922 2007-05-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
9923
9924 * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
9925 (umulsi3_highpart): Likewise.
9926
9927 2007-05-24 Ian Lance Taylor <iant@google.com>
9928
9929 PR rtl-optimization/32069
9930 * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx
9931 is NULL.
9932
9933 2007-05-24 Ollie Wild <aaw@google.com>
9934
9935 * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__
9936 description.
9937
9938 2007-05-24 Richard Sandiford <rsandifo@nildram.co.uk>
9939
9940 * postreload-gcse.c (reg_changed_after_insn_p): New function.
9941 (oprs_unchanged_p): Use it to check all registers in a REG.
9942 (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE.
9943 (reg_set_between_after_reload_p): Delete.
9944 (reg_used_between_after_reload_p): Likewise.
9945 (reg_set_or_used_since_bb_start): Likewise.
9946 (eliminate_partially_redundant_load): Use reg_changed_after_insn_p
9947 and reg_used_between_p instead of reg_set_or_used_since_bb_start.
9948 Use reg_set_between_p instead of reg_set_between_after_reload_p.
9949 * rtlanal.c (reg_set_p): Check whether REG overlaps
9950 regs_invalidated_by_call, rather than just checking the
9951 membership of REGNO (REG).
9952
9953 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz>
9954
9955 * doc/passes.texi: Document predictive commoning.
9956 * doc/invoke.texi (-fpredictive-commoning): Document.
9957 * opts.c (decode_options): Enable flag_predictive_commoning on -O3.
9958 * tree-ssa-loop-im.c (get_lsm_tmp_name): Export. Allow
9959 adding indices to the generated name.
9960 (schedule_sm): Pass 0 to get_lsm_tmp_name.
9961 * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
9962 * tree-pretty-print.c (op_symbol_1): Renamed to ...
9963 (op_symbol_code): ... and exported.
9964 (dump_omp_clause, op_symbol): Use op_symbol_code
9965 instead of op_symbol_1.
9966 * tree-pass.h (pass_predcom): Declare.
9967 * timevar.def (TV_PREDCOM): New timevar.
9968 * tree-ssa-loop.c (run_tree_predictive_commoning,
9969 gate_tree_predictive_commoning, pass_predcom): New.
9970 * tree-data-ref.c (find_data_references_in_loop): Find the
9971 references in dominance order.
9972 (canonicalize_base_object_address): Ensure that the result has
9973 pointer type.
9974 (dr_analyze_innermost): Export.
9975 (create_data_ref): Code to fail for references with invariant
9976 address moved ...
9977 (find_data_references_in_stmt): ... here.
9978 * tree-data-ref.h (dr_analyze_innermost): Declare.
9979 * tree-affine.c: Include tree-gimple.h and hashtab.h.
9980 (aff_combination_find_elt, name_expansion_hash,
9981 name_expansion_eq, tree_to_aff_combination_expand,
9982 double_int_constant_multiple_p, aff_combination_constant_multiple_p):
9983 New functions.
9984 * tree-affine.h (aff_combination_constant_multiple_p,
9985 tree_to_aff_combination_expand): Declare.
9986 * tree-predcom.c: New file.
9987 * common.opt (fpredictive-commoning): New option.
9988 * tree-flow.h (op_symbol_code, tree_predictive_commoning,
9989 stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
9990 * Makefile.in (tree-predcom.o): Add.
9991 (tree-affine.o): Add TREE_GIMPLE_H dependency.
9992 * passes.c (init_optimization_passes): Add dceloop after
9993 copy propagation in loop optimizer. Add predictive commoning
9994 to loop optimizer passes.
9995
9996 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
9997
9998 * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct
9999 default hook.
10000
10001 2007-05-24 Jan Hubicka <jh@suse.cz>
10002
10003 * gengenrtl.c (gendecl, gendef): Output the gens annotated for
10004 statistics.
10005 (genheader): Include statistics.h.
10006
10007 * doc/invoke.texi (-fdump-unnumbered): Update docs when line number
10008 notes are gone.
10009 * print-rtl.c (flag_dump_unnumbered): Update comments.
10010 (print_rtl): Fix my previous change.
10011 * emit-rtl.c (emit_note_before, emit_note_after): Clear out note
10012 specific data.
10013
10014 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz>
10015
10016 PR middle-end/32018
10017 * tree-ssa-threadupdate.c (thread_through_loop_header): Use
10018 set_loop_copy.
10019 (thread_through_all_blocks): Call initialize_original_copy_tables
10020 and free_original_copy_tables.
10021 * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge):
10022 Use set_loop_copy.
10023 * tree-cfg.c (tree_duplicate_sese_region): Ditto.
10024 * cfghooks.c (duplicate_block): Use get_loop_copy.
10025 * cfg.c: Include cfgloop.h.
10026 (loop_copy): New hash table.
10027 (initialize_original_copy_tables): Initialize loop_copy table.
10028 (free_original_copy_tables): Free loop_copy table.
10029 (copy_original_table_clear, copy_original_table_set,
10030 set_loop_copy, get_loop_copy): New functions.
10031 (set_bb_original, set_bb_copy): Use copy_original_table_set.
10032 * cfgloop.h (struct loop): Remove copy field.
10033 * Makefile.in (cfg.o): Add CFGLOOP_H dependency.
10034 * basic-block.h (set_loop_copy, get_loop_copy): Declare.
10035
10036 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
10037
10038 * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for
10039 -msse/-msse2/-msse3.
10040
10041 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
10042
10043 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark
10044 __builtin_ia32_vec_set_v2di with MASK_64BIT.
10045
10046 2007-05-24 Danny Smith <dannysmith@users.sourceforge.net>
10047
10048 PR target/27067
10049 * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document.
10050 * targhooks.h (default_mangle_decl_assembler_name): Declare
10051 default hook.
10052 * targhooks.c (default_mangle_decl_assembler_name): Define
10053 default hook.
10054 * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to
10055 default hook.
10056 * target.h (struct gcc_target): Add mangle_decl_assembler_name field.
10057 * langhooks.c (lhd_set_decl_assembler_name): Call
10058 targetm.mangle_decl_assembler_name for names with global scope.
10059
10060 * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override
10061 default.
10062 (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME.
10063 * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name):
10064 Declare.
10065 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
10066 New. Factored out of i386_pe_encode_section_info.
10067 (gen_stdcall_or_fastcall_suffix): Get name identifier as argument.
10068 Move check for prior decoration of stdcall
10069 symbols to i386_pe_encode_section_info.
10070 (i386_pe_encode_section_info): Adjust call to
10071 gen_stdcall_or_fastcall_suffix. Use
10072 i386_pe_maybe_mangle_decl_assembler_name, if needed.
10073 (i386_pe_mangle_decl_assembler_name): New. Wrap
10074 i386_pe_maybe_mangle_decl_assembler_name.
10075
10076 2007-05-16 Rafael Avila de Espindola <espindola@google.com>
10077
10078 * c-common.c (c_common_signed_or_unsigned_type): Delay the check for
10079 INTEGRAL_TYPE_P and TYPE_UNSIGNED.
10080 * langhooks.c (get_signed_or_unsigned_type): Don't check for
10081 INTEGRAL_TYPE_P or TYPE_UNSIGNED.
10082 (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
10083 TYPE_UNSIGNED.
10084
10085 2007-05-23 Sandra Loosemore <sandra@codesourcery.com>
10086 Nigel Stephens <nigel@mips.com>
10087 Richard Sandiford <richard@codesourcery.com>
10088
10089 Fix up MIPS16 hard float and add support for complex.
10090
10091 * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New.
10092 (TARGET_SOFT_FLOAT_ABI): New.
10093 (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and
10094 __mips_soft_float to reflect the ABI in use, not whether the
10095 FPU is directly accessible (e.g., in MIPS16 mode).
10096 (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI.
10097 (UNITS_PER_FPVALUE): Likewise.
10098
10099 * config/mips/mips.c (mips_expand_call): Remove redundant
10100 TARGET_MIPS16 check.
10101 (mips_arg_regno): New.
10102 (function_arg_advance): When setting bits in cum->fp_code for
10103 MIPS16, don't subtract 1 from cum->arg_number, since it is now
10104 zero-based.
10105 (function_arg): Use mips_arg_regno.
10106 (mips_return_mode_in_fpr_p): New.
10107 (mips16_call_stub_mode_suffix): New.
10108 (mips16_cfun_returns_in_fpr_p): New.
10109 (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p.
10110 (mips_output_function_prologue): Test mips16_hard_float, not
10111 !TARGET_SOFT_FLOAT, to decide when a function stub is required.
10112 (mips_expand_epilogue): Call MIPS16 helper routines to copy
10113 return value into a floating-point register.
10114 (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p.
10115 (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p.
10116 (mips16_fp_args): Handle MIPS32r2 ISA which supports
10117 TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant
10118 word of double arguments from or to the high bits of 64-bit
10119 floating point registers.
10120 (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl.
10121 (mips16_fpret_double): New helper function.
10122 (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p. Add
10123 support for complex modes. Fill in DECL_RESULT for stubdecl.
10124 (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.
10125
10126 * config/mips/mips16.S
10127 (RET, ARG1, ARG2): New.
10128 (MERGE_GPRf, MERGE_GPRt): New.
10129 (DELAYt, DELAYf): New.
10130 (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New.
10131 (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New.
10132 (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New.
10133 (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New.
10134 (SFOP): Renamed to...
10135 (OPSF3): This, and macro-ified. Updated all uses.
10136 (SFOP2): Renamed to...
10137 (OPSF2): This, and macro-ified. Updated all uses.
10138 (SFCMP): Renamed to...
10139 (CMPSF): This, and macro-ified. Updated all uses.
10140 (SFREVCMP): Renamed to...
10141 (REVCMPSF): This, and macro-ified. Updated all uses.
10142 (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified.
10143 (LDDBL1, LDDBL2, RETDBL): Deleted.
10144 (DFOP): Renamed to...
10145 (OPDF3): This, and macro-ified. Updated all uses.
10146 (DFOP2): Renamed to...
10147 (OPDF2): This, and macro-ified. Updated all uses.
10148 (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified.
10149 (DFCMP): Renamed to...
10150 (CMPDF): This, and macro-ified. Updated all uses.
10151 (DFREVCMP): Renamed to...
10152 (REVCMPDF): This, and macro-ified. Updated all uses.
10153 (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified.
10154 (RET_FUNCTION): New.
10155 (__mips16_ret_sf, __mips16_ret_df): Macro-ified.
10156 (__mips16_ret_sc, __mips16_ret_dc): New.
10157 (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2,
10158 STUB_ARGS_6, STUB_ARGS_10): New.
10159 (CALL_STUB_NO_RET): New.
10160 (__mips16_call_stub_1): Macro-ified.
10161 (__mips16_call_stub_5): Macro-ified.
10162 (__mips16_call_stub_2): Macro-ified.
10163 (__mips16_call_stub_6): Macro-ified.
10164 (__mips16_call_stub_9): Macro-ified.
10165 (__mips16_call_stub_10): Macro-ified.
10166 (CALL_STUB_RET): New.
10167 (__mips16_call_stub_sf_0): Macro-ified.
10168 (__mips16_call_stub_sf_1): Macro-ified.
10169 (__mips16_call_stub_sf_5): Macro-ified.
10170 (__mips16_call_stub_sf_2): Macro-ified.
10171 (__mips16_call_stub_sf_6): Macro-ified.
10172 (__mips16_call_stub_sf_9): Macro-ified.
10173 (__mips16_call_stub_sf_10): Macro-ified.
10174 (__mips16_call_stub_df_0): Macro-ified.
10175 (__mips16_call_stub_df_1): Macro-ified.
10176 (__mips16_call_stub_df_5): Macro-ified.
10177 (__mips16_call_stub_df_2): Macro-ified.
10178 (__mips16_call_stub_df_6): Macro-ified.
10179 (__mips16_call_stub_df_9): Macro-ified.
10180 (__mips16_call_stub_df_10): Macro-ified.
10181 (__mips16_call_stub_sc_0): New.
10182 (__mips16_call_stub_sc_1): New.
10183 (__mips16_call_stub_sc_5): New.
10184 (__mips16_call_stub_sc_2): New.
10185 (__mips16_call_stub_sc_6): New.
10186 (__mips16_call_stub_sc_9): New.
10187 (__mips16_call_stub_sc_10): New.
10188 (__mips16_call_stub_dc_0): New.
10189 (__mips16_call_stub_dc_1): New.
10190 (__mips16_call_stub_dc_5): New.
10191 (__mips16_call_stub_dc_2): New.
10192 (__mips16_call_stub_dc_6): New.
10193 (__mips16_call_stub_dc_9): New.
10194 (__mips16_call_stub_dc_10): New.
10195
10196 * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
10197 * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
10198 * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.
10199
10200 2007-05-23 Ian Lance Taylor <iant@google.com>
10201
10202 * doc/invoke.texi (Invoking GCC): Document that the order of the
10203 -l option matters.
10204
10205 2007-05-23 Chen Liqin <liqin@sunnorth.com.cn>
10206
10207 PR target/30987
10208 * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove.
10209 * config/score/predicate.md (const_pow2, const_npow2): Remove.
10210 * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL
10211 undef.
10212
10213 PR target/30474
10214 * config/score/score.c (score_print_operand): Make sure that only
10215 lower bits are used.
10216
10217 2007-05-22 Ian Lance Taylor <iant@google.com>
10218
10219 * tree-vrp.c (avoid_overflow_infinity): New static function,
10220 broken out of set_value_range_to_value.
10221 (set_value_range_to_value): Call avoid_overflow_infinity.
10222 (extract_range_from_assert): Likewise.
10223
10224 2007-05-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
10225
10226 PR middle-end/31095
10227 * builtins.c (expand_builtin_memmove_args): Strip nops that don't
10228 change the type before looking for a COMPOUND_EXPR.
10229
10230 2007-05-22 Ian Lance Taylor <iant@google.com>
10231
10232 * lower-subreg.c (decompose_multiword_subregs): If we change an
10233 insn, call remove_retval_note on it.
10234
10235 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk>
10236
10237 * regs.h (end_hard_regno): New function.
10238 (END_HARD_REGNO, END_REGNO): New macros.
10239 (add_to_hard_reg_set): New function.
10240 (remove_from_hard_reg_set): Likewise.
10241 (in_hard_reg_set_p): Likewise.
10242 (overlaps_hard_reg_set_p): Likewise.
10243 * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
10244 (note_btr_set): Use END_HARD_REGNO.
10245 * caller-save.c (setup_save_areas): Use end_hard_regno.
10246 (mark_set_regs): Use END_HARD_REGNO.
10247 (add_stored_regs): Use end_hard_regno.
10248 (mark_referenced_regs): Use add_to_hard_reg_set.
10249 * combine.c (update_table_tick): Use END_REGNO.
10250 (record_value_for_reg): Likewise.
10251 (record_dead_and_set_regs): Likewise.
10252 (get_last_value_validate): Likewise.
10253 (use_crosses_set_p): Likewise.
10254 (reg_dead_at_p_1): Likewise.
10255 (reg_dead_at_p): Likewise.
10256 (mark_used_regs_combine): Use add_to_hard_reg_set.
10257 (move_deaths): Use END_HARD_REGNO.
10258 (reg_bitfield_target_p): Use end_hard_regno.
10259 (distribute_notes): Use END_HARD_REGNO.
10260 * cse.c (mention_regs): Use END_REGNO.
10261 (insert): Use add_to_hard_reg_set.
10262 (invalidate): Use END_HARD_REGNO.
10263 (invalidate_for_call): Likewise.
10264 (exp_equiv_p): Use END_REGNO.
10265 (cse_insn): Likewise.
10266 * cselib.c (cselib_invalidate_regno): Use end_hard_regno.
10267 * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
10268 * df-scan.c (df_ref_record): Use END_HARD_REGNO.
10269 * function.c (keep_stack_depressed): Use end_hard_regno.
10270 * global.c (global_alloc): Use end_hard_regno.
10271 (global_conflicts): Use add_to_hard_reg_set instead of
10272 mark_reg_live_nc.
10273 (find_reg): Likewise.
10274 (mark_reg_store): Likewise.
10275 (mark_reg_conflicts): Likewise.
10276 (mark_reg_death): Use remove_from_hard_reg_set.
10277 (mark_reg_live_nc): Delete.
10278 (set_preference): Use end_hard_regno.
10279 * local-alloc.c (mark_life): Use add_to_hard_reg_set and
10280 remove_from_hard_reg_set.
10281 (post_mark_life): Use add_to_hard_reg_set.
10282 * mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
10283 (reg_becomes_live): Use add_to_hard_reg_set.
10284 * recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
10285 (peep2_find_free_register): Use add_to_hard_reg_set.
10286 * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
10287 * regclass.c (record_reg_classes): Use in_hard_reg_set_p.
10288 * regrename.c (note_sets): Use add_to_hard_reg_set.
10289 (clear_dead_regs): Use remove_from_hard_reg_set.
10290 (regrename_optimize): Use add_to_hard_reg_set.
10291 (find_oldest_value_reg): Use in_hard_reg_set_p.
10292 * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
10293 (hard_reg_set_here_p): Use end_hard_regno.
10294 (decompose): Likewise.
10295 (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
10296 (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
10297 * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
10298 (mark_home_live): Use end_hard_regno.
10299 (spill_hard_reg): Likewise.
10300 (clear_reload_reg_in_use): Likewise.
10301 * reorg.c (delete_prior_computation): Use END_REGNO.
10302 * resource.c (update_live_status): Use END_HARD_REGNO.
10303 (mark_referenced_resources): Use add_to_hard_reg_set.
10304 (mark_set_resources): Likewise.
10305 (mark_target_live_regs): Likewise. Use remove_from_hard_reg_set.
10306 * rtlanal.c (refers_to_regno_p): Use END_REGNO.
10307 (reg_overlap_mentioned_p): Likewise.
10308 (dead_or_set_p): Likewise. Use an exclusive upper loop bound.
10309 (covers_regno_no_parallel_p): Use END_REGNO.
10310 (find_regno_note): Likewise.
10311 (find_reg_fusage): Use END_HARD_REGNO.
10312 * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
10313 * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
10314
10315 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk>
10316
10317 * mode-switching.c (reg_dies): Change type of second argument to
10318 "HARD_REG_SET *".
10319 (optimize_mode_switching): Update accordingly.
10320
10321 2007-05-22 Richard Sandiford <richard@codesourcery.com>
10322
10323 * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
10324 in favor of...
10325 (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
10326 (hard_reg_set_empty_p): ...these new functions.
10327 * bt-load.c (choose_btr): Use hard_reg_subset_p instead of
10328 GO_IF_HARD_REG_SUBSET.
10329 * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
10330 instead of GO_IF_HARD_REG_EQUAL.
10331 * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
10332 instead of GO_IF_HARD_REG_EQUAL.
10333 * global.c (find_reg): Use hard_reg_set_empty_p instead of
10334 GO_IF_HARD_REG_SUBSET.
10335 (modify_reg_pav): Use hard_reg_set_empty_p instead of
10336 GO_IF_HARD_REG_EQUAL.
10337 * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
10338 of GO_IF_HARD_REG_SUBSET.
10339 * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
10340 instead of GO_IF_HARD_REG_EQUAL.
10341 * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
10342 hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
10343 (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
10344 of GO_IF_HARD_REG_SUBSET,
10345 * reload1.c (finish_spills): Use hard_reg_subset_p instead of
10346 GO_IF_HARD_REG_SUBSET.
10347 * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
10348 instead of GO_IF_HARD_REG_EQUAL.
10349 * config/sh/sh.c (push_regs, calc_live_regs): Use
10350 hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
10351 (hard_regs_intersect_p): Delete.
10352
10353 2007-05-22 Janis Johnson <janis187@us.ibm.com>
10354
10355 * doc/sourcebuild.texi (Test Directives) Add dg-message.
10356
10357 2007-05-22 H.J. Lu <hongjiu.lu@intel.com>
10358 Richard Henderson <rth@redhat.com>
10359
10360 * config.gcc (i[34567]86-*-*): Add smmintrin.h to
10361 extra_headers.
10362 (x86_64-*-*): Likewise.
10363
10364 * i386/i386-modes.def (V2QI): New.
10365
10366 * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and
10367 SSE4A.
10368 (override_options): Support SSE4.1.
10369 (IX86_BUILTIN_BLENDPD): New for SSE4.1.
10370 (IX86_BUILTIN_BLENDPS): Likewise.
10371 (IX86_BUILTIN_BLENDVPD): Likewise.
10372 (IX86_BUILTIN_BLENDVPS): Likewise.
10373 (IX86_BUILTIN_PBLENDVB128): Likewise.
10374 (IX86_BUILTIN_PBLENDW128): Likewise.
10375 (IX86_BUILTIN_DPPD): Likewise.
10376 (IX86_BUILTIN_DPPS): Likewise.
10377 (IX86_BUILTIN_INSERTPS128): Likewise.
10378 (IX86_BUILTIN_MOVNTDQA): Likewise.
10379 (IX86_BUILTIN_MPSADBW128): Likewise.
10380 (IX86_BUILTIN_PACKUSDW128): Likewise.
10381 (IX86_BUILTIN_PCMPEQQ): Likewise.
10382 (IX86_BUILTIN_PHMINPOSUW128): Likewise.
10383 (IX86_BUILTIN_PMAXSB128): Likewise.
10384 (IX86_BUILTIN_PMAXSD128): Likewise.
10385 (IX86_BUILTIN_PMAXUD128): Likewise.
10386 (IX86_BUILTIN_PMAXUW128): Likewise.
10387 (IX86_BUILTIN_PMINSB128): Likewise.
10388 (IX86_BUILTIN_PMINSD128): Likewise.
10389 (IX86_BUILTIN_PMINUD128): Likewise.
10390 (IX86_BUILTIN_PMINUW128): Likewise.
10391 (IX86_BUILTIN_PMOVSXBW128): Likewise.
10392 (IX86_BUILTIN_PMOVSXBD128): Likewise.
10393 (IX86_BUILTIN_PMOVSXBQ128): Likewise.
10394 (IX86_BUILTIN_PMOVSXWD128): Likewise.
10395 (IX86_BUILTIN_PMOVSXWQ128): Likewise.
10396 (IX86_BUILTIN_PMOVSXDQ128): Likewise.
10397 (IX86_BUILTIN_PMOVZXBW128): Likewise.
10398 (IX86_BUILTIN_PMOVZXBD128): Likewise.
10399 (IX86_BUILTIN_PMOVZXBQ128): Likewise.
10400 (IX86_BUILTIN_PMOVZXWD128): Likewise.
10401 (IX86_BUILTIN_PMOVZXWQ128): Likewise.
10402 (IX86_BUILTIN_PMOVZXDQ128): Likewise.
10403 (IX86_BUILTIN_PMULDQ128): Likewise.
10404 (IX86_BUILTIN_PMULLD128): Likewise.
10405 (IX86_BUILTIN_ROUNDPD): Likewise.
10406 (IX86_BUILTIN_ROUNDPS): Likewise.
10407 (IX86_BUILTIN_ROUNDSD): Likewise.
10408 (IX86_BUILTIN_ROUNDSS): Likewise.
10409 (IX86_BUILTIN_PTESTZ): Likewise.
10410 (IX86_BUILTIN_PTESTC): Likewise.
10411 (IX86_BUILTIN_PTESTNZC): Likewise.
10412 (IX86_BUILTIN_VEC_EXT_V16QI): Likewise.
10413 (IX86_BUILTIN_VEC_SET_V2DI): Likewise.
10414 (IX86_BUILTIN_VEC_SET_V4SF): Likewise.
10415 (IX86_BUILTIN_VEC_SET_V4SI): Likewise.
10416 (IX86_BUILTIN_VEC_SET_V16QI): Likewise.
10417 (bdesc_ptest): New.
10418 (bdesc_sse_3arg): Likewise.
10419 (bdesc_2arg): Likewise.
10420 (bdesc_1arg): Likewise.
10421 (ix86_init_mmx_sse_builtins): Support SSE4.1. Handle SSE builtins
10422 with 3 args.
10423 (ix86_expand_sse_4_operands_builtin): New.
10424 (ix86_expand_unop_builtin): Support 2 arg builtins with a constant
10425 smaller than 8 bits as the 2nd arg.
10426 (ix86_expand_sse_ptest): New.
10427 (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins.
10428 (ix86_expand_vector_set): Support SSE4.1.
10429 (ix86_expand_vector_extract): Likewise.
10430
10431 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
10432 __SSE4_1__ for -msse4.1.
10433
10434 * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1.
10435 (UNSPEC_INSERTPS): Likewise.
10436 (UNSPEC_DP): Likewise.
10437 (UNSPEC_MOVNTDQA): Likewise.
10438 (UNSPEC_MPSADBW): Likewise.
10439 (UNSPEC_PHMINPOSUW): Likewise.
10440 (UNSPEC_PTEST): Likewise.
10441 (UNSPEC_ROUNDP): Likewise.
10442 (UNSPEC_ROUNDS): Likewise.
10443
10444 * config/i386/i386.opt (msse4.1): New for SSE4.1.
10445
10446 * config/i386/predicates.md (const_pow2_1_to_2_operand): New.
10447 (const_pow2_1_to_32768_operand): Likewise.
10448
10449 * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header
10450 file.
10451
10452 * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for
10453 SSE4.1.
10454 (sse4_1_insertps): Likewise.
10455 (*sse4_1_extractps): Likewise.
10456 (sse4_1_ptest): Likewise.
10457 (sse4_1_mulv2siv2di3): Likewise.
10458 (*sse4_1_mulv4si3): Likewise.
10459 (*sse4_1_smax<mode>3): Likewise.
10460 (*sse4_1_umax<mode>3): Likewise.
10461 (*sse4_1_smin<mode>3): Likewise.
10462 (*sse4_1_umin<mode>3): Likewise.
10463 (sse4_1_eqv2di3): Likewise.
10464 (*sse4_1_pinsrb): Likewise.
10465 (*sse4_1_pinsrd): Likewise.
10466 (*sse4_1_pinsrq): Likewise.
10467 (*sse4_1_pextrb): Likewise.
10468 (*sse4_1_pextrb_memory): Likewise.
10469 (*sse4_1_pextrw_memory): Likewise.
10470 (*sse4_1_pextrq): Likewise.
10471 (sse4_1_blendpd): Likewise.
10472 (sse4_1_blendps): Likewise.
10473 (sse4_1_blendvpd): Likewise.
10474 (sse4_1_blendvps): Likewise.
10475 (sse4_1_dppd): Likewise.
10476 (sse4_1_dpps): Likewise.
10477 (sse4_1_movntdqa): Likewise.
10478 (sse4_1_mpsadbw): Likewise.
10479 (sse4_1_packusdw): Likewise.
10480 (sse4_1_pblendvb): Likewise.
10481 (sse4_1_pblendw): Likewise.
10482 (sse4_1_phminposuw): Likewise.
10483 (sse4_1_extendv8qiv8hi2): Likewise.
10484 (*sse4_1_extendv8qiv8hi2): Likewise.
10485 (sse4_1_extendv4qiv4si2): Likewise.
10486 (*sse4_1_extendv4qiv4si2): Likewise.
10487 (sse4_1_extendv2qiv2di2): Likewise.
10488 (*sse4_1_extendv2qiv2di2): Likewise.
10489 (sse4_1_extendv4hiv4si2): Likewise.
10490 (*sse4_1_extendv4hiv4si2): Likewise.
10491 (sse4_1_extendv2hiv2di2): Likewise.
10492 (*sse4_1_extendv2hiv2di2): Likewise.
10493 (sse4_1_extendv2siv2di2): Likewise.
10494 (*sse4_1_extendv2siv2di2): Likewise.
10495 (sse4_1_zero_extendv8qiv8hi2): Likewise.
10496 (*sse4_1_zero_extendv8qiv8hi2): Likewise.
10497 (sse4_1_zero_extendv4qiv4si2): Likewise.
10498 (*sse4_1_zero_extendv4qiv4si2): Likewise.
10499 (sse4_1_zero_extendv2qiv2di2): Likewise.
10500 (*sse4_1_zero_extendv2qiv2di2): Likewise.
10501 (sse4_1_zero_extendv4hiv4si2): Likewise.
10502 (*sse4_1_zero_extendv4hiv4si2): Likewise.
10503 (sse4_1_zero_extendv2hiv2di2): Likewise.
10504 (*sse4_1_zero_extendv2hiv2di2): Likewise.
10505 (sse4_1_zero_extendv2siv2di2): Likewise.
10506 (*sse4_1_zero_extendv2siv2di2): Likewise.
10507 (sse4_1_roundpd): Likewise.
10508 (sse4_1_roundps): Likewise.
10509 (sse4_1_roundsd): Likewise.
10510 (sse4_1_roundss): Likewise.
10511 (mulv4si3): Don't expand for SSE4.1.
10512 (smax<mode>3): Likewise.
10513 (umaxv4si3): Likewise.
10514 (uminv16qi3): Likewise.
10515 (umin<mode>3): Likewise.
10516 (umaxv8hi3): Rewrite. Only enabled for SSE4.1.
10517
10518 * doc/extend.texi: Document SSE4.1 built-in functions.
10519
10520 * doc/invoke.texi: Document -msse4.1.
10521
10522 2007-05-22 Nathan Sidwell <nathan@codesourcery.com>
10523
10524 * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec.
10525 * config/m68k/m68k-none.h (ASM_SPEC): Don't override here.
10526 * config/m68k/m68k.h (ASM_PCREL_SPEC): New.
10527 (ASM_SPEC): Add asm_pcrel_spec.
10528 (EXTRA_SPECS): Add asm_pcrel_spec.
10529
10530 2007-05-21 David Daney <ddaney@avtrex.com>
10531
10532 * doc/install.texi (Building a cross compiler): Add requirements
10533 for Java cross compiler.
10534
10535 2007-05-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
10536
10537 PR middle-end/31995
10538 * tree-chrec.c (evolution_function_is_affine_multivariate_p):
10539 Add loopno argument. Use evolution_function_is_invariant_rec_p
10540 instead of evolution_function_is_constant_p.
10541 Update calls to evolution_function_is_affine_multivariate_p.
10542 * tree-chrec.h (evolution_function_is_affine_multivariate_p):
10543 Add loopno argument.
10544 * tree-scalar-evolution.c (gather_chrec_stats): Call
10545 evolution_function_is_affine_multivariate_p with a loop
10546 number of 0.
10547 * tree-data-ref.c (analyze_miv_subscript): Likewise.
10548 (analyze_overlapping_iterations): Likewise.
10549 (access_functions_are_affine_or_constant_p): Likewise.
10550 (build_classic_dist_vector_1): If the access functions
10551 are equal, don't do anything.
10552
10553 2007-05-21 Paolo Bonzini <bonzini@gnu.org>
10554 Paolo Carlini <pcarlini@suse.de>
10555 Uros Bizjak <ubizjak@gmail.com>
10556
10557 * c-cppbuiltin.c (c_cpp_builtins): Define
10558 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
10559 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8,
10560 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate.
10561 * doc/cpp.texi ([Standard Predefined Macros]): Document.
10562
10563 2007-05-21 Mike Stump <mrs@apple.com>
10564
10565 * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil
10566 handling as well.
10567 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
10568
10569 2007-05-21 Uros Bizjak <ubizjak@gmail.com>
10570
10571 * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro
10572 implementation if __OPTIMIZE__ is not defined.
10573 (_mm_alignr_pi8): Ditto.
10574 * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
10575 (_mm_inserti_si64): Ditto.
10576 * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
10577 (_mm_slli_epi16): Ditto.
10578 (_mm_slli_epi32): Ditto.
10579 (_mm_slli_epi64): Ditto.
10580 (_mm_srai_epi16): Ditto.
10581 (_mm_srai_epi32): Ditto.
10582 (_mm_srli_si128): Ditto.
10583 (_mm_slli_si128): Ditto.
10584 (_mm_srli_epi16): Ditto.
10585 (_mm_srli_epi32): Ditto.
10586 (_mm_srli_epi64): Ditto.
10587 (_mm_extract_epi16): Ditto.
10588 (_mm_insert_epi16): Ditto.
10589 (_mm_shufflehi_epi16): Ditto.
10590 (_mm_shufflelo_epi16): Ditto.
10591 (_mm_shuffle_epi32): Ditto.
10592 * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto.
10593 (_m_pextrw): Ditto.
10594 (_mm_insert_pi16): Ditto.
10595 (_m_pinsrw): Ditto.
10596 (_mm_shuffle_pi16): Ditto.
10597 (_m_pshufw): Ditto.
10598 (_mm_shufle_ps): Ditto.
10599 (_mm_prefetch): Ditto.
10600
10601 2007-05-21 Andreas Krebbel <krebbel1@de.ibm.com>
10602
10603 * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed.
10604 * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed.
10605 * real.c (encode_i370_single, decode_i370_single,
10606 encode_i370_double, decode_i370_double): Functions removed.
10607 (i370_single_format, i370_double_format): Initializations removed.
10608 (real_maxval, round_for_format, exact_real_truncate, significand_size):
10609 Consider the log2_b field to always be one.
10610 (ieee_single_format, mips_single_format, coldfire_single_format,
10611 ieee_double_format, mips_double_format, coldfire_double_format,
10612 ieee_extended_motorola_format, ieee_extended_intel_96_format,
10613 ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
10614 ibm_extended_format, mips_extended_format, ieee_quad_format,
10615 mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
10616 decimal_single_format, decimal_double_format, decimal_quad_format,
10617 c4x_single_format, c4x_extended_format, real_internal_format): Remove
10618 initialization of log2_b.
10619 * real.h (i370_single_format, i370_double_format): Declarations
10620 removed.
10621 * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
10622 field to always be one.
10623
10624 2007-05-21 Andreas Schwab <schwab@suse.de>
10625
10626 * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of
10627 NOTE_INSN_BASIC_BLOCK_P.
10628 (process_for_unwind_directive): Likewise.
10629
10630 2007-05-21 Nathan Sidwell <nathan@codesourcery.com>
10631
10632 * builtins.c (expand_builtin_setjmp_setup): Update comment.
10633 * function.h (struct function): Move va_list_gpr_size,
10634 va_list_fpr_size, function_frequency to front of bitfields. Add
10635 calls_unwind_init.
10636 (current_function_calls_unwind_init): New.
10637 * except.c (expand_builtin_unwind_init): Set
10638 current_function_calls_unwind_init not
10639 current_function_has_nonlocal_label.
10640 * reload1.c (has_nonexceptional_receiver): New.
10641 (reload): Use it and current_function_calls_unwind_init to
10642 determine whether call-saved regs must be saved.
10643
10644 2007-05-20 Jan Hubicka <jh@suse.cz>
10645
10646 * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
10647 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
10648 * ddg.c (create_ddg): LIkewise.
10649 * final.c (final): Remove hunk moving line number notes around since
10650 they are no longer present at this stage.
10651 (final_scan_insn): Use NOTE_KIND instead of
10652 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
10653 (output_asm_label): Likewise.
10654 * reorg.c (dbr_schedule): Likewise.
10655 * haifa-sched.c (unlink_other_notes): Likewise.
10656 * mode-switching.c (optimize_mode_switching): Likewise.
10657 * graph.c (start_bb): Likewise.
10658 * rtl.def (NOTE): Update description.
10659 * jump.c (squeeze_notes): Delete.
10660 (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
10661 NOTE_INSN_BASIC_BLOCK_P when possible.
10662 * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
10663 * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
10664 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
10665 (dwarf2out_var_location): Likewise.
10666 * cfgbuild.c (make_edges): Likewise.
10667 (find_basic_blocks_1): Likewise.
10668 * function.c (reorder_blocks_1): Likewise.
10669 (epilogue_done): Likewise.
10670 (reposition_prologue_and_epilogue_notes): Likewise.
10671 * print-rtl.c (print_rtx): Likewise; drop code for printing
10672 line number notes.
10673 (print_rtl): Likewise.
10674 (print_rtl_single): Likewise.
10675 * gcse.c (insert_insn_start_bb): Likewise.
10676 * alias.c (init_alias_analysis): Likewise.
10677 * calls.c (fixup_tail_calls): Likewise.
10678 * except.c (sjlj_emit_function_enter): Likewise.
10679 * emit-rtl.c (add_insn_after): Likeiwse.
10680 (emit_label_before): Likewise.
10681 (emit_label_after): Likewise.
10682 (emit_note_before, emit_note_after, emit_note): Update
10683 parameter to be enum insn_note; do not deal with source
10684 files.
10685 * cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
10686 Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
10687 when possible.
10688 (merge_blocks_move_successor_nojumps): Simplify now when
10689 we don't have BLOCK notes.
10690 (try_optimize_cfg): Likewise.
10691 * cfglayout.c (skip_insns_after_block): Likewise.
10692 (record_effective_endpoints): Likewise.
10693 (duplicate_insn_chain): Likewise.
10694 * varasm.c (output_constant_pool_1): Likewise.
10695 * sched-deps.c (sched_analyze): Likewise.
10696 * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
10697 Exterminate.
10698 (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
10699 * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
10700 (SET_INSN_DELETED): Simplify.
10701 (NOTE_LINE_NUMBER): Exterminate.
10702 (NOTE_LINE_KIND): New.
10703 (NOTE_INSN_BASIC_BLOCK_P): Update.
10704 (enum insn_note): Simplify.
10705 (GET_NOTE_INSN_NAME) Simplify.
10706 (emit_note_before, emit_note_after, emit_note): Update prototype.
10707 (squeeze_notes): Remove.
10708 * sched-int.h (NOTE_NOT_BB_P): Update.
10709 * resource.c (mark_target_live_regs): Update.
10710 * sched-rgn.c (debug_dependencies): Update.
10711 * sched-vis.c (print_insn): Update.
10712 * config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
10713 * config/i386/i386.c (ix86_output_function_epilogue): Update.
10714 * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
10715 (TARGET_ADJUST_UNROLL_MAX): Likewise.
10716 (split_branches): Update.
10717 (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
10718 4.0.0.
10719 (sh_adjust_unroll_max): Exterminate.
10720 * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
10721 * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
10722 (m68hc11_reorg): Likewise.
10723 * config/ia64/ia64.c (emit_insn_group_barriers): Update.
10724 (emit_predicate_relation_info): Update.
10725 (process_for_unwind_directive): Update.
10726 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
10727 (output_call): Update.
10728 * config/pa/pa.c (output_lbranch): Update.
10729 (output_millicode_call): Update.
10730 (output_call): Update.
10731 (pa_combine_instructions): Update.
10732 * config/mips/mips.c (mips16_gp_pseudo_reg): Update.
10733 * config/bfin/bfin.c (gen_one_bundle): Update.
10734 * cfgrtl.c (can_delete_note_p): Update.
10735 (delete_insn): Update.
10736 (rtl_merge_blocks): Update.
10737 (commit_one_edge_insertion): Update.
10738 (rtl_verify_flow_info): Update.
10739 * stmt.c (expand_case): Do not call squeeze_notes.
10740
10741 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10742
10743 PR middle-end/7651
10744 PR c++/11856
10745 PR c/12963
10746 PR c/23587
10747 PR other/29694
10748 * c.opt (Wtype-limits): New.
10749 * doc/invoke.texi (Wtype-limits): Document it.
10750 (Wextra): Enabled by -Wextra.
10751 * c-opts.c (c_common_post_options): Enabled by -Wextra.
10752 * c-common.c (shorten_compare): Warn with Wtype-limits.
10753
10754 2007-05-20 Uros Bizjak <ubizjak@gmail.com>
10755
10756 * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always
10757 inlined function, not as a macro.
10758 (_mm_alignr_pi8): Ditto.
10759 * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
10760 (_mm_inserti_si64): Ditto.
10761 * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
10762 (_mm_extract_epi16): Ditto.
10763 (_mm_insert_epi16): Ditto.
10764 (_mm_shufflehi_epi16): Ditto.
10765 (_mm_shufflelo_epi16): Ditto.
10766 (_mm_shuffle_epi32): Ditto.
10767 * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant.
10768 * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to
10769 all functions.
10770 (_m_from_float): Add __extension__ to conversion. Use 0.0f for
10771 float constant.
10772 (_m_to_float): Use C89 compatible assignment.
10773
10774 2007-05-20 Martin Michlmayr <tbm@cyrius.com>
10775
10776 PR target/32007
10777 * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.
10778
10779 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10780
10781 PR middle-end/7651
10782 * doc/invoke.texi (Wreturn-type): Complete description.
10783 (Wextra): Delete item about return-type warning.
10784 * c-decl.c: Delete redundant Wextra warning.
10785
10786 2007-05-20 Uros Bizjak <ubizjak@gmail.com>
10787
10788 PR target/31585
10789 * config/i386/pmmintrin.h: Do not include xmmintrin.h
10790 * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always
10791 inlined function, not as a macro.
10792 (_mm_prefetch): Ditto.
10793 (_m_pextrw): Ditto.
10794 (_mm_insert_pi16): Ditto.
10795 (_m_pinsrw): Ditto.
10796 (_mm_shuffle_pi16): Ditto. Add const to __N argument.
10797 (_m_pshufw): Ditto. Add const to __N argument.
10798 (_mm_shufle_ps): Ditto. Add const to __mask argument.
10799 * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
10800 (_mm_slli_epi32): Ditto.
10801 (_mm_srli_si128): Implement as always inlined function, not as a
10802 macro. Add __inline to function declaration.
10803 (_mm_slli_si128): Ditto.
10804
10805 2007-05-19 Uros Bizjak <ubizjak@gmail.com>
10806
10807 * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM,
10808 FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT):
10809 New constants.
10810 (struct fenv): New structure.
10811 (FP_HANDLE_EXCEPTIONS): New define.
10812 (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants.
10813 (_FP_DECL_EXP): New define.
10814 (FP_INIT_ROUNDMODE): New define.
10815 (FP_ROUNDMODE): New define.
10816
10817 2007-05-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10818
10819 * doc/invoke.texi (Warning Options): Add -Wconversion-sign.
10820 (Wconversion): Update description.
10821 (Wconversion-sign): New.
10822 * c.opt (Wconversion-sign): New.
10823 * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
10824 means disabled for C++. Otherwise, take the status of Wconversion.
10825 * c-common.c (conversion_warning): Warn with either Wconversion or
10826 Wconversion-sign.
10827 (warnings_for_convert_and_check): Conditions are already checked by
10828 conversion_warning.
10829 (convert_and_check): Don't check warnings if the conversion failed.
10830
10831 2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
10832 Anatoly Sokolov <aesok@dol.ru>
10833
10834 * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
10835 avr_epilogue_uses) : Add declaration.
10836 * config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
10837 * config/avr/constraints.md (R): New constraint.
10838 config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
10839 UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
10840 (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
10841 (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
10842 (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
10843 call_prologue_saves, epilogue_restores, return_from_epilogue,
10844 return_from_main_epilogue, return_from_interrupt_epilogue,
10845 return_from_naked_epilogue, prologue, epilogue): New patterns.
10846 (jump): Handle symbol reference.
10847 * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
10848 avr_output_function_prologue, avr_output_function_epilogue): Remove
10849 functions.
10850 (avr_init_machine_status, expand_prologue, expand_epilogue,
10851 avr_asm_function_end_prologue, avr_epilogue_uses,
10852 avr_asm_function_begin_epilogue): New functions.
10853 (prologue_size, epilogue_size, jump_tables_size): Remove global
10854 variables.
10855 (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
10856 (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
10857 (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
10858 (avr_override_options): Initialise init_machine_status.
10859 (output_movhi): Handle all stack pointer loads.
10860 (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
10861 (avr_output_addr_vec_elt): Do not use variable jump_tables_size.
10862 * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
10863 (EPILOGUE_USES) Redefine.
10864 (machine_function) Declare.
10865
10866 2007-05-19 Richard Sandiford <richard@codesourcery.com>
10867
10868 * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment.
10869 Use a single return statement.
10870
10871 2007-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10872
10873 PR middle-end/30250
10874 * builtins.c (do_mpfr_lgamma_r): New.
10875 (fold_builtin_2): Handle builtin gamma_r/lgamma_r.
10876 * tree.h (CASE_FLT_FN_REENT): New.
10877
10878 2007-05-18 Geoffrey Keating <geoffk@apple.com>
10879
10880 * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
10881 (output_die): Use 'unsigned long' with %x.
10882 * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
10883 HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
10884 * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.
10885
10886 * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP.
10887
10888 2007-05-18 H.J. Lu <hongjiu.lu@intel.com>
10889
10890 PR target/31989
10891 PR target/31681
10892 PR target/31666
10893 * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
10894 true if function has no argument.
10895
10896 2007-05-18 DJ Delorie <dj@redhat.com>
10897
10898 * config/mips/mips.c (mips_offset_within_alignment_p): New.
10899 (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols.
10900
10901 2007-05-18 Uros Bizjak <ubizjak@gmail.com>
10902
10903 * longlong.h (__x86_64__): Add definitions for add_ssaaaa,
10904 sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and
10905 count_trailing_zeros.
10906 (__i386__): Implement count_leading_zeros using __builtin_clz().
10907 Implement count_trailing_zeros usign __builtin_ctz().
10908
10909 2007-05-18 Richard Sandiford <richard@codesourcery.com>
10910
10911 * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.
10912
10913 2007-05-18 Uros Bizjak <ubizjak@gmail.com>
10914
10915 PR middle-end/31344
10916 * expr.c (emit_move_change_mode): Change mode of push operands here.
10917
10918 2007-05-17 Ian Lance Taylor <iant@google.com>
10919
10920 PR tree-optimization/31953
10921 * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
10922 Change all callers.
10923 (set_value_range_to_null): Call set_value_range_to_value.
10924 (extract_range_from_comparison): Likewise.
10925
10926 2007-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10927
10928 * toplev.c (print_version): Output GMP/MPFR version info.
10929
10930 * builtins.c (CASE_MATHFN_REENT): New macro.
10931 (mathfn_built_in): Use it.
10932 * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
10933 BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
10934 BUILT_IN_LGAMMAL_R): New.
10935 * doc/extend.texi: Document new builtins.
10936
10937 PR middle-end/31796
10938 * builtins.c (do_mpfr_remquo): New.
10939 (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER.
10940 (fold_builtin_3): Handle BUILT_IN_REMQUO.
10941
10942 PR middle-end/30251
10943 * builtins.c (fold_builtin_1): Handle y0, y1.
10944 (fold_builtin_2): Handle yn.
10945
10946 PR middle-end/30251
10947 * builtins.c (do_mpfr_bessel_n): New.
10948 (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1.
10949 (fold_builtin_2): Handle BUILT_IN_JN.
10950
10951 2007-05-17 Danny Smith <dannysmith@users.sourceforge.net>
10952
10953 PR target/31965
10954 * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as
10955 TYPE_PRECISION (intmax_type_node).
10956
10957 2007-05-17 Steve Ellcey <sje@cup.hp.com>
10958
10959 PR target/31850
10960 * reload.c (subst_reloads): Remove checking.
10961
10962 2007-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
10963
10964 PR rtl-optimization/31691
10965 * combine.c (simplify_set): Build a new src pattern instead of
10966 substituting its operands in the COMPARE case.
10967
10968 2007-05-17 Zdenek Dvorak <dvorakz@suse.cz>
10969
10970 * tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
10971 (execute_vrp): Preserve loops through jump threading.
10972 * tree-ssa-threadupdate.c (thread_single_edge,
10973 dbds_continue_enumeration_p, determine_bb_domination_status,
10974 thread_through_loop_header): New functions.
10975 (create_edge_and_update_destination_phis,
10976 create_edge_and_update_destination_phis): Set loops for the new blocks.
10977 (prune_undesirable_thread_requests): Removed.
10978 (redirect_edges): Do not pretend that redirect_edge_and_branch can
10979 create new blocks.
10980 (thread_block): Do not call prune_undesirable_thread_requests.
10981 Update loops.
10982 (mark_threaded_blocks): Select edges to thread here.
10983 (thread_through_all_blocks): Take may_peel_loop_headers argument.
10984 Thread edges through loop headers independently.
10985 * cfgloopmanip.c (create_preheader, mfb_keep_just): Export.
10986 * tree-pass.h (TODO_mark_first_instance): New.
10987 (first_pass_instance): Declare.
10988 * cfghooks.c (duplicate_block): Put the block to the original loop
10989 if copy is not specified.
10990 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through
10991 jump threading. Pass may_peel_loop_headers to
10992 thread_through_all_blocks according to first_pass_instance.
10993 * cfgloop.h (create_preheader): Declare.
10994 * tree-flow.h (thread_through_all_blocks): Declaration changed.
10995 * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare.
10996 * passes.c (first_pass_instance): New variable.
10997 (next_pass_1): Set TODO_mark_first_instance.
10998 (execute_todo): Set first_pass_instance.
10999
11000 2007-05-17 Uros Bizjak <ubizjak@gmail.com>
11001
11002 PR tree-optimization/24659
11003 * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi,
11004 OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi,
11005 OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and
11006 OTI_vec_pack_ufix_trunc.
11007 (vec_unpacks_float_hi_optab): Define new macro.
11008 (vec_unpacks_float_lo_optab): Ditto.
11009 (vec_unpacku_float_hi_optab): Ditto.
11010 (vec_unpacku_float_lo_optab): Ditto.
11011 (vec_pack_sfix_trunc_optab): Ditto.
11012 (vec_pack_ufix_trunc_optab): Ditto.
11013 * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab
11014 and vec_pack_[s|u]fix_trunc_optab using
11015 vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns
11016 * tree-vectorizer.c (supportable_widening_operation): Handle
11017 FLOAT_EXPR and CONVERT_EXPR. Update comment.
11018 (supportable_narrowing_operation): New function.
11019 * tree-vectorizer.h (supportable_narrowing_operation): Prototype.
11020 * tree-vect-transform.c (vectorizable_conversion): Handle
11021 (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
11022 (vect_gen_widened_results_half): Move before vectorizable_conversion.
11023 (vectorizable_type_demotion): Call supportable_narrowing_operation()
11024 to check for target support.
11025 * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab
11026 for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab
11027 for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab
11028 for VEC_PACK_FIX_TRUNC_EXPR.
11029 (expand_binop): Special case mode of the result for
11030 vec_pack_[u|s]fix_trunc_optab.
11031 (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and
11032 vec_pack_[u|s]fix_trunc_optab.
11033
11034 * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR,
11035 VEC_PACK_FIX_TRUNC_EXPR): New tree codes.
11036 * tree-pretty-print.c (dump_generic_node): Handle
11037 VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
11038 VEC_PACK_FIX_TRUNC_EXPR.
11039 (op_prio): Ditto.
11040 * expr.c (expand_expr_real_1): Ditto.
11041 * tree-inline.c (estimate_num_insns_1): Ditto.
11042 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
11043
11044 * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander.
11045 (vec_unpacks_float_lo_v8hi): Ditto.
11046 (vec_unpacku_float_hi_v8hi): Ditto.
11047 (vec_unpacku_float_lo_v8hi): Ditto.
11048 (vec_unpacks_float_hi_v4si): Ditto.
11049 (vec_unpacks_float_lo_v4si): Ditto.
11050 (vec_pack_sfix_trunc_v2df): Ditto.
11051
11052 * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]:
11053 Document.
11054 [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto.
11055 [VEC_PACK_FIX_TRUNC_EXPR]: Ditto.
11056 * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document.
11057 [vec_pack_ufix_trunc]: Ditto.
11058 [vec_unpacks_float_hi]: Ditto.
11059 [vec_unpacks_float_lo]: Ditto.
11060 [vec_unpacku_float_hi]: Ditto.
11061 [vec_unpacku_float_lo]: Ditto.
11062
11063 2007-05-16 Uros Bizjak <ubizjak@gmail.com>
11064
11065 * soft-fp/README: Update for new files.
11066 * soft-fp/floattisf.c: New file.
11067 * soft-fp/floattidf.c: New file.
11068 * soft-fp/floattitf.c: New file.
11069 * soft-fp/floatuntisf.c: New file.
11070 * soft-fp/floatuntidf.c: New file.
11071 * soft-fp/floatuntitf.c: New file.
11072 * soft-fp/fixsfti.c: New file.
11073 * soft-fp/fixdfti.c: New file.
11074 * soft-fp/fixtfti.c: New file.
11075 * soft-fp/fixunssfti.c: New file.
11076 * soft-fp/fixunsdfti.c: New file.
11077 * soft-fp/fixunstfti.c: New file.
11078 * soft-fp/extendxftf.c: New file.
11079 * soft-fp/trunctfxf.c: New file.
11080
11081 * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section.
11082 (__trunctfxf2): Ditto.
11083
11084 * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2,
11085 __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti,
11086 __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf,
11087 __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2,
11088 __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2,
11089 __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets.
11090
11091 * config/i386/t-fprules-softfp64: New file.
11092 * config/i386/sfp-machine.h: New file.
11093 * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu,
11094 x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64
11095 and soft-fp/t-softfp to tmake_file.
11096 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
11097 i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.
11098
11099 * config/i386/t-linux64 (softfp_wrap_start): New.
11100 (softfp_wrap_end): New.
11101 * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
11102 supported for TARGET_64BIT.
11103
11104 2007-05-16 Rafael Avila de Espindola <espindola@google.com>
11105
11106 * c-common.c (c_common_signed_or_unsigned_type): Emulate
11107 c_common_unsigned_type behavior.
11108
11109 2007-05-16 Paolo Bonzini <bonzini@gnu.org>
11110
11111 * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr
11112 calls as pure.
11113
11114 2007-05-16 Eric Christopher <echristo@apple.com>
11115
11116 * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
11117 saving after stack push. Set sp_offset whenever we push.
11118 (rs6000_emit_epilogue): Move altivec register restore before
11119 stack push.
11120
11121 2007-05-16 Richard Sandiford <richard@codesourcery.com>
11122
11123 * configure.ac: Allow sysroots to be relocated under $prefix as
11124 well as $exec_prefix.
11125 * configure: Regenerate.
11126
11127 2007-05-16 Richard Sandiford <richard@codesourcery.com>
11128
11129 Revert:
11130
11131 2007-05-12 Richard Sandiford <richard@codesourcery.com>
11132
11133 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
11134 (gcc_tooldir): Likewise.
11135 * configure: Regenerate.
11136 * Makefile.in (libsubdir_to_prefix): New variable, based on the
11137 old configure.ac gcc_tooldir setting.
11138 (prefix_to_exec_prefix): New variable.
11139 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
11140 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
11141
11142 2007-05-14 Janis Johnson <janis187@us.ibm.com>
11143
11144 * c-typeck.c (build_binary_op): Return early for error.
11145
11146 2007-05-15 Zdenek Dvorak <dvorakz@suse.cz>
11147
11148 * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate
11149 struct nb_iter_bound.
11150 (free_numbers_of_iterations_estimates_loop): Use ggc_free.
11151 * gengtype.c (open_base_files): Add cfhloop.h to the list of includes.
11152 * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated.
11153 * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h.
11154 (struct scev_info_str, scalar_evolution_info): Add GTY markers.
11155 (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str.
11156 (del_scev_info): Use ggc_free.
11157 (scev_initialize): Allocate scalar_evolution_info in gc memory.
11158 * loop-init.c: Include ggc.h.
11159 (loop_optimizer_init): Use GGC_CNEW to allocate struct loops.
11160 (loop_optimizer_finalize): Use ggc_free.
11161 * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
11162 pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
11163 pass_iv_optimize): Add TODO_ggc_collect.
11164 * function.h (struct function): Remove skip marker from
11165 x_current_loops.
11166 * cfgloop.c: Include ggc.h.
11167 (flow_loops_free, flow_loop_free): Free the loop descriptions in gc
11168 memory.
11169 (establish_preds): Vector superloops is gc allocated.
11170 (alloc_loop): Allocate loop using GGC_CNEW. Allocate head of
11171 loop->exits list.
11172 (flow_loops_find): Vector larray is gc allocated.
11173 (loop_exit_free): Use ggc_free.
11174 (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit. Reflect
11175 that head of exits list is now not a part of struct loop.
11176 (record_loop_exits): Allocate exits table in gc memory.
11177 (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect
11178 that head of exits list is now not a part of struct loop.
11179 * cfgloop.h (struct lpt_decision, struct nb_iter_bound,
11180 struct loop_exit): Add GTY marker.
11181 (struct loop): Add GTY marker. Make superloops vector gc allocated.
11182 Add skip marker to aux field. Make head of exits list a separate
11183 object.
11184 (struct loops): Add GTY marker. Make larray vector gc allocated.
11185 Add param marker to exits table.
11186 (get_loops): Type changed.
11187 * Makefile.in (tree-scalar-evolution.o): Add
11188 gt-tree-scalar-evolution.h dependency.
11189 (cfgloop.o, loop-init.o): Add ggc.h dependency.
11190 (GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
11191 * basic-block.h (struct basic_block_def): Remove skip marker from
11192 loop_father field.
11193
11194 2007-05-14 Uros Bizjak <ubizjak@gmail.com>
11195
11196 * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead
11197 of 0 in the call to expand_expr().
11198 (expand_builtin_mathfn_3): Ditto.
11199 (expand_builtin_interclass_mathfn): Ditto.
11200 (expand_builtin_cexpi): Ditto.
11201 (expand_builtin_int_roundingfn): Ditto.
11202 (expand_builtin_int_roundingfn_2): Ditto.
11203 (expand_builtin_pow): Ditto.
11204 (expand_builtin_powi): Ditto.
11205 (expand_builtin_bswap): Ditto.
11206 (expand_builtin_unop): Ditto.
11207 (expand_builtin_fabs): Ditto.
11208 (get_builtin_sync_mem): Use NULL_RTX instead of NULL in
11209 the call to expand_expr().
11210 (expand_builtin_sync_operation): Ditto.
11211 (expand_builtin_compare_and_swap): Ditto.
11212 (expand_builtin_lock_test_and_set): Ditto.
11213 * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL
11214 instead of 0 in the call to expand_expr().
11215 (expand_builtin_extract_return_addr): Ditto.
11216 (expand_builtin_eh_return): Ditto.
11217 (expand_eh_return): Ditto.
11218 * explow.c (expr_size): Ditto.
11219 * expr.c (optimize_bitfield_assignment_op): Ditto.
11220 (expand_assignement): Ditto.
11221 (store_expr): Ditto.
11222 (store_field): Ditto.
11223 (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in
11224 the call to expand_expr().
11225 (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0
11226 in the call to expand_expr().
11227 [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR,
11228 BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto.
11229 [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead
11230 of expand_expr().
11231 * optabs.c (expand_vec_shift_expr): Ditto.
11232 (expand_vec_cond_expr): Ditto.
11233 (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the
11234 call to expand_expr().
11235 * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0
11236 in the call to expand_expr().
11237
11238 2007-05-14 Dave Korn <dave.korn@artimi.com>
11239
11240 * genautomata.c (gen_regexp_el): Allocate correct size for regexp.
11241
11242 2007-05-14 Rafael Avila de Espindola <espindola@google.com>
11243
11244 * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
11245 instead of c_common_unsigned_type.
11246 (c_common_unsigned_type): Remove.
11247 (shorten_compare): Use c_common_signed_or_unsigned_type instead of
11248 c_common_unsigned_type.
11249 (c_common_nodes_and_builtins): Use unsigned_type_for instead of
11250 c_common_unsigned_type.
11251 * c-common.h (c_common_unsigned_type): Remove.
11252 * c-decl.c (grokdeclarator): Use unsigned_type_for instead of
11253 c_common_unsigned_type.
11254 * c-format.c (check_format_types): Use unsigned_type_for instead of
11255 c_common_unsigned_type.
11256 * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
11257 * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead
11258 of c_common_unsigned_type.
11259 * convert.c (convert_to_integer): Use unsigned_type_for instead of
11260 lang_hooks.types.unsigned_type.
11261 * expmed.c (make_tree): Use unsigned_type_for instead of
11262 lang_hooks.types.unsigned_type.
11263 * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
11264 lang_hooks.types.unsigned_type.
11265 (build_range_check): Likewise.
11266 (fold_unary): Likewise.
11267 (fold_binary): Likewise.
11268 (fold_ternary): Likewise.
11269 * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
11270 * langhooks.h (lang_hooks_for_types): Remove unsigned_type.
11271 * tree.c (get_unsigned_type): New.
11272 (unsigned_type_for): Use get_unsigned_type instead of
11273 lang_hooks.types.unsigned_type.
11274
11275 2007-05-14 Kazu Hirata <kazu@codesourcery.com>
11276
11277 * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p
11278 to m68k_get_function_kind. Update its prototype.
11279 * config/m68k/m68k.c (m68k_attribute_table): Add an entry for
11280 interrupt_thread.
11281 (m68k_interrupt_function_p): Return enum m68k_function_type
11282 instead of bool. Rename to m68k_get_function_kind.
11283 (m68k_handle_fndecl_attribute): Reject interrupt_thread if the
11284 target is not fido.
11285 (m68k_compute_frame_layout): Don't mark any register for save
11286 if an interrupt_thread attribute is specified.
11287 (m68k_hard_regno_rename_ok): Update a use of
11288 m68k_interrupt_function_p.
11289 * config/m68k/m68k.h (EPILOGUE_USES): Update a use of
11290 m68k_interrupt_function_p.
11291 (m68k_function_type): New.
11292 * config/m68k/m68k.md (*return): Output a 'sleep' instruction
11293 for a function with an interrupt_thread attribute.
11294 * doc/extend.texi: Document the interrupt_thread attribute.
11295
11296 2007-05-13 Daniel Berlin <dberlin@dberlin.org>
11297
11298 Fix PR tree-optimization/31911
11299 * tree-ssa-pre.c (phi_translate): Make sure to cache results even
11300 if they didn't change the expression.
11301
11302 2007-05-13 Zdenek Dvorak <dvorakz@suse.cz>
11303
11304 * tree-scalar-evolution.c (resolve_mixers): Exported.
11305 * tree-scalar-evolution.h (resolve_mixers): Declare.
11306 * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p,
11307 ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
11308 record_record_differ_p, record_array_differ_p, array_ptr_differ_p,
11309 base_object_differ_p, base_addr_differ_p, analyze_array_indexes,
11310 init_array_ref, init_pointer_ref, analyze_indirect_ref,
11311 strip_conversion, analyze_offset_expr, address_analysis,
11312 object_analysis, analyze_offset): Removed.
11313 (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias,
11314 split_constant_offset, canonicalize_base_object_address,
11315 object_address_invariant_in_loop_p, disjoint_objects_p,
11316 dr_may_alias_p, dr_address_invariant_p): New functions.
11317 (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices
11318 and dr_analyze_alias.
11319 (initialize_data_dependence_relation): Use dr_may_alias_p
11320 and object_address_invariant_in_loop_p.
11321 (compute_self_dependence): Handle the case when
11322 DDR_ARE_DEPENDENT (ddr) is chrec_dont_know.
11323 (find_data_references_in_stmt): Restrict the analysis of data
11324 references to the given loop nest.
11325 (find_data_references_in_loop): Made static. Pass loop nest to
11326 find_data_references_in_stmt.
11327 (compute_data_dependences_for_loop): Use DR_VOPS.
11328 (free_data_ref): Free DR_VOPS.
11329 * tree-data-ref.h (struct first_location_in_loop): Replaced by ...
11330 (struct innermost_loop_behavior): ... new.
11331 (struct base_object_info): Replaced by ...
11332 (struct indices): ... new.
11333 (struct dr_alias): New.
11334 (enum data_ref_type): Removed.
11335 (struct data_reference): Consist of struct innermost_loop_behavior,
11336 struct indices and struct dr_alias.
11337 (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed.
11338 (DR_MEMTAG): Renamed to ...
11339 (DR_SYMBOL_TAG): ... this.
11340 (find_data_references_in_loop): Declaration removed.
11341 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT
11342 instead of DR_OFFSET_MISALIGNMENT. DR_ALIGNED_TO is never NULL.
11343 (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG.
11344 * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
11345
11346 2007-05-13 Revital Eres <eres@il.ibm.com>
11347
11348 * tree-ssa-dse.c (get_use_of_stmt_lhs): New function
11349 which walks virtual def-use chains to find redundant stores.
11350 (dse_optimize_stmt): Call it.
11351
11352 2007-05-12 Steven Bosscher <steven@gcc.gnu.org>
11353
11354 * gcse.c (gcse_main): Do jump bypassing in CPROP2.
11355 * passes.c (init_optimization_passes): Move pass_jump_bypass
11356 after loop2.
11357
11358 * basic-block.h (bb_has_eh_pred): Fix style issue.
11359
11360 2007-05-12 Steven Bosscher <steven@gcc.gnu.org>
11361
11362 PR rtl-optimization/31848
11363 * loop-invariant.c (move_invariant_reg): If we move an insn
11364 with a REG_EQUAL note, and that insn is not always executed,
11365 remove the REG_EQUAL note.
11366
11367 2007-05-12 Richard Guenther <rguenther@suse.de>
11368
11369 PR tree-optimization/31797
11370 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
11371 propagate into a stmt that has volatile ops.
11372
11373 2007-05-12 Richard Sandiford <richard@codesourcery.com>
11374
11375 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
11376 (gcc_tooldir): Likewise.
11377 * configure: Regenerate.
11378 * Makefile.in (libsubdir_to_prefix): New variable, based on the
11379 old configure.ac gcc_tooldir setting.
11380 (prefix_to_exec_prefix): New variable.
11381 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
11382 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
11383
11384 2007-05-11 Silvius Rus <rus@google.com>
11385
11386 * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o.
11387 * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic.
11388 * c-common.h (strict_aliasing_warning): Change return type.
11389 * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing.
11390 * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning.
11391 (build_c_cast): Condition call to strict_aliasing_warning.
11392 * doc/invoke.texi: Update description of -Wstrict-aliasing[=n].
11393 * flags.h (set_Wstrict_aliasing): Declare.
11394 * opts.c (set_Wstrict_alising): Define, add call to.
11395 * tree-flow.h (strict_aliasing_warning_backend): Declare.
11396 * tree-ssa-alias-warnings.c: New file.
11397 * tree-ssa-alias.c (compute_may_aliases): Add call to
11398 strict_aliasing_warning_backend.
11399
11400 2007-05-11 Zdenek Dvorak <dvorakz@suse.cz>
11401
11402 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
11403 Use loop_depth and loop_outer accessor functions.
11404 * tree-ssa-loop-im.c (outermost_invariant_loop, set_level,
11405 determine_invariantness_stmt, move_computations_stmt): Ditto.
11406 * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path,
11407 add_loop, loopify, unloop, fix_loop_structure): Ditto.
11408 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto.
11409 * tree-scalar-evolution.c (interpret_loop_phi,
11410 compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop,
11411 instantiate_parameters_1, scev_const_prop): Ditto.
11412 * cfghooks.c (make_forwarder_block): Ditto.
11413 * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
11414 * modulo-sched.c (loop_canon_p): Ditto.
11415 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
11416 slpeel_can_duplicate_loop_p): Ditto.
11417 * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto.
11418 * tree-cfg.c (tree_duplicate_sese_region): Ditto.
11419 * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit,
11420 cancel_loop, verify_loop_structure): Ditto.
11421 (flow_loop_nested_p, superloop_at_depth, flow_loop_free,
11422 add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the
11423 superloops vector instead of "pred" array.
11424 (establish_preds): Take father loop as an argument. Initialize the
11425 superloops vector.
11426 (flow_loop_tree_node_add): Pass father loop to establish_preds.
11427 Do not initialize loop->outer.
11428 (flow_loop_tree_node_remove): Truncate the superloops vector.
11429 * cfgloop.h (struct loop): Removed field "outer", fields "depth" and
11430 "pred" merged to "superloops" vector.
11431 (loop_depth, loop_outer): New.
11432 (fel_init): Use loop_outer.
11433
11434 2007-05-11 Jan Hubicka <jh@suse.cz>
11435
11436 * cgraphunit.c: Include gt-cgraphunit.h
11437 (static_ctors, static_dtors): New static vars.
11438 (record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions,
11439 based on implementation in c-common.c
11440 (cgraph_finalize_function): Call record_cdtor_fn.
11441 (cgraph_optimize): Call cgraph_build_cdtor_fns.
11442 * decl.c (finish_function): Do not call c_record_cdtor_fn.
11443 (c_write_global_declarations): Do not call c_build_cdtor_fns.
11444 * c-common.c (static_ctors, static_dtors, c_record_cdtor_fn,
11445 build_cdtor, c_build_cdtor_fns): Remove.
11446 * c-common.h (static_ctors, static_dtors, c_record_cdtor_fn,
11447 c_build_cdtor_fns): Remove prototype.
11448
11449 2007-05-11 Paolo Carlini <pcarlini@suse.de>
11450
11451 PR other/31852
11452 * builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE.
11453 * builtins.def: Add BUILT_IN_MEMCHR, use the latter.
11454 * builtins.c (fold_builtin_memchr): New.
11455 (expand_builtin_memchr): Call the latter.
11456 (expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR.
11457 * doc/extend.texi ([Other built-in functions provided by GCC]):
11458 Document memchr.
11459
11460 2007-05-11 Andreas Krebbel <krebbel1@de.ibm.com>
11461
11462 * config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM,
11463 PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF,
11464 PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT,
11465 PFPO_OP1_TYPE_SHIFT): Constants added.
11466 (DFP_ALL): Mode macro defined.
11467 ("*trunc<BFP:mode><DFP_ALL:mode>2", "*trunc<DFP_ALL:mode><BFP:mode>2",
11468 "*extend<BFP:mode><DFP_ALL:mode>2", "*extend<DFP_ALL:mode><BFP:mode>2"):
11469 Insn definitions added.
11470 ("trunc<BFP:mode><DFP_ALL:mode>2", "trunc<DFP_ALL:mode><BFP:mode>2",
11471 "extend<BFP:mode><DFP_ALL:mode>2", "extend<DFP_ALL:mode><BFP:mode>2"):
11472 Expanders added.
11473
11474 2007-05-10 Zdenek Dvorak <dvorakz@suse.cz>
11475
11476 PR tree-optimization/31885
11477 * tree-chrec.c (chrec_contains_undetermined): Do not consider
11478 NULL_TREE to be undetermined.
11479 (automatically_generated_chrec_p): Return false for NULL.
11480
11481 2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
11482
11483 * config/bfin/bfin.h (MOVE_RATIO): Define.
11484
11485 2007-05-10 Richard Sandiford <richard@codesourcery.com>
11486
11487 * config.gcc (sparc-wrs-vxworks): New target.
11488 * config/sparc/vxworks.h, config/sparc/t-vxworks: New files.
11489 * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare.
11490 * config/sparc/sparc.h: Include vxworks-dummy.h.
11491 (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to
11492 include LABEL_REFs too.
11493 * config/sparc/sparc.c (sparc_expand_move): Don't assume that
11494 _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on
11495 VxWorks.
11496 (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs
11497 on VxWorks.
11498 (load_pic_register): Use gen_vxworks_load_got for VxWorks.
11499 (sparc_emit_call_insn): New function.
11500 (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding
11501 functions when generating VxWorks PIC.
11502 * config/sparc/sparc.md (vxworks_load_got): New pattern.
11503 (call, call_value): Use sparc_emit_call_insn instead of
11504 emit_call_insn.
11505
11506 2007-05-09 Bob Wilson <bob.wilson@acm.org>
11507
11508 * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if.
11509
11510 2007-05-09 Bob Wilson <bob.wilson@acm.org>
11511
11512 * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
11513 for floating-point values if HOST_BITS_PER_LONG > 32. Use
11514 split_double instead of operand_subword.
11515
11516 2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
11517
11518 * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define.
11519 * config/bfin/bfin.c (bfin_local_alignment): New function.
11520 * config/bfin/bfin-protos.h (bfin_local_alignment): Declare it.
11521
11522 2007-05-08 Chao-ying Fu <fu@mips.com>
11523
11524 * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document.
11525 * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes.
11526 (smsub_widen_optab, umsub_widen_optab): Define.
11527 * optabs.c (init_optabs): Initialize smsub_widen_optab and
11528 umsub_widen_optab.
11529 * genopinit.c (optabs): Fill in smsub_widen_optab and
11530 umsub_widen_optab.
11531 * expr.c (expand_expr_real_1): Try to use smsub_widen_optab
11532 and umsub_widen_optab to implement multiply-subtract sequences.
11533 * config/mips/mips.md (*msac<u>_di): Rename to...
11534 (<u>msubsidi4): ...this. Extend condition to include
11535 GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint
11536 of operand 0 to "ka" and use the three-operand form of msub<u>
11537 for TARGET_DSPR2.
11538 * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert
11539 to define_expands.
11540
11541 2007-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
11542
11543 PR rtl-optimization/28011
11544 * reload.c (push_reload): Set dont_share if IN appears in OUT
11545 also when IN is a PLUS rtx.
11546 (reg_overlap_mentioned_for_reload_p): Return true if X and IN
11547 are same PLUS rtx.
11548
11549 2007-05-08 Kazu Hirata <kazu@codesourcery.com>
11550
11551 * emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL. Don't
11552 call unshare_all_decls.
11553 (unshare_all_rtl): Adjust the call to unshare_all_rtl_1.
11554 (unshare_all_decls): Remove.
11555
11556 2007-05-08 Simon Martin <simartin@users.sourceforge.net>
11557
11558 PR 31847
11559 * tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree
11560 dumps.
11561
11562 2007-05-08 Sandra Loosemore <sandra@codesourcery.com>
11563 Nigel Stephens <nigel@mips.com>
11564
11565 * config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC.
11566 Update comments and all uses.
11567 (MIN_FPRS_PER_FMT): Define.
11568 * config/mips/mips.c (function_arg): Fix to correctly handle
11569 the -mips32r2 -mfp64 -mabi=32 case.
11570 (override_options): Enable use of odd-numbered registers for
11571 SFmode values on MIPS32.
11572 (mips_save_reg_p): Save whole floating-point register pair if
11573 either half is used.
11574 (compute_frame_size): Fix comment.
11575
11576 2007-05-08 Jie Zhang <jie.zhang@analog.com>
11577
11578 * config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third
11579 argument of type bool.
11580 * config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth
11581 argument. Safely select temporary P register according to it.
11582 (do_link): Change call site of add_to_reg accordingly.
11583 (do_unlink): Add epilogue_p as a fourth argument and pass it
11584 to add_to_reg.
11585 (expand_interrupt_handler_epilogue): Change call of do_unlink
11586 accordingly.
11587 (bfin_expand_prologue): Add a third argument sibcall_p.
11588 * config/bfin/bfin.md (epilogue): Change call of
11589 bfin_expand_epilogue accordingly.
11590 (sibcall_epilogue): Likewise.
11591 (eh_return_internal): Likewise.
11592
11593 * config/bfin/bfin-protos.h (enum bfin_cpu): Add
11594 BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561.
11595 * config/bfin/bfin.c (bfin_handle_option): Handle
11596 -mcpu=bf534, -mcpu=bf536 and -mcpu=bf561.
11597 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS):
11598 Support bf534, bf536 and bf561.
11599 * doc/invoke.texi (Blackfin Options): Document -mcpu and -msim.
11600
11601 2007-05-08 Uros Bizjak <ubizjak@gmail.com>
11602
11603 PR target/31854
11604 * config/i386/i386.c (ix86_function_regparm): Process local
11605 functions only when TREE_CODE (decl) equals FUNCTION_DECL.
11606
11607 2007-05-07 Mike Stump <mrs@apple.com>
11608
11609 * doc/invoke.texi (Warning Options): Document that -Wempty-body
11610 also checks for and while statements in C++.
11611
11612 2007-05-07 Nathan Froyd <froydnj@codesourcery.com>
11613
11614 * gcc.c (at_file_supplied): New variable.
11615 (main): Set it if we expanded argv.
11616 (do_spec_1): Pass an @-file to the linker if we were called with
11617 an @-file argument and HAVE_GNU_LD.
11618 * collect2.c (at_file_supplied): New variable.
11619 (response_file): New variable.
11620 (collect_exit): Unlink response_file if necessary.
11621 (handler): Likewise.
11622 (do_wait): Likewise.
11623 (main): Set at_file_supplied if we expanded argv.
11624 (collect_execute): Pass an @-file to subprocesses if we were called
11625 with an @-file argument.
11626 * configure.ac: Add define for HAVE_GNU_LD.
11627 * configure: Regenerate.
11628 * config.in: Regenerate.
11629
11630 2007-05-07 Naveen.H.S <naveen.hs@kpitcummins.com>
11631
11632 * config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd
11633 operand to HI mode.
11634 (mulsi3): New.
11635 (divsi3): New.
11636 (udivsi3): New.
11637
11638 2007-05-07 Jayant Sonar <jayants@kpitcummins.com>
11639
11640 * config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
11641 (TARGET_ENCODE_SECTION_INFO): Re-define.
11642 (m32c_encode_section_info): New
11643 (function_vector_handler): New
11644 (current_function_special_page_vector): New
11645 (m32c_special_page_vector_p): New.
11646 * config/m32c/m32c-protos.h (m32c_special_page_vector_p):
11647 Prototype.
11648 * config/m32c/jump.md: Added instruction JSRS for functions
11649 with attribute "function_vector".
11650 * doc/extend.texi (function_vector): Added description
11651 for M16C, M32C targets.
11652
11653 2007-05-07 DJ Delorie <dj@redhat.com>
11654
11655 PR 31794
11656 * config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3,
11657 ashrpsi3, lshrpsi3): Update shift count constraint.
11658
11659 2007-05-07 Danny Smith <dannysmith@users.sourceforge.net>
11660 Nathan Froyd <froydnj@codesourcery.com>
11661
11662 PR 22133
11663 * c-incpath.c (add_path): Strip trailing path separators.
11664
11665 2007-05-07 Eric Botcazou <ebotcazou@adacore.com>
11666
11667 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered.
11668 Free dominance info before purging EH edges.
11669 (eliminate_degenerate_phis): Likewise.
11670 (propagate_rhs_into_lhs): Set cfg_altered to true instead of 1.
11671
11672 2007-05-07 Jan Hubicka <jh@suse.cz>
11673
11674 * gimplify.c (gimplify_expr): Do not crash when folding
11675 (void *)(int)&a + 4.
11676
11677 2007-05-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
11678
11679 PR driver/31694
11680 * c-opts.c (lang_fortran): Make it non static.
11681 * c-common.h (lang_fortran): New prototype.
11682 * c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the
11683 -lang-fortran option was passed by the driver.
11684
11685 2007-05-06 Eric Botcazou <ebotcazou@adacore.com>
11686
11687 * timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead
11688 of ASSERT_CHECKING. Tweak message.
11689
11690 2007-05-06 Revital Eres <eres@il.ibm.com>
11691
11692 PR 30957
11693 * loop-unroll.c (insert_var_expansion_initialization):
11694 Initialize the expansions with -zero instead of +zero.
11695
11696 2007-05-05 Aurelien Jarno <aurelien@aurel32.net>
11697
11698 * config/pa/pa.md: Split tgd_load, tld_load and tie_load
11699 into pic and non-pic versions. Mark r19 as used for
11700 tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used
11701 for tgd_load, tld_load and tie_load .
11702 * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
11703 version of tgd_load, tld_load and tie_load depending on the
11704 value of flag_pic.
11705
11706 2007-05-04 Ulrich Drepper <drepper@redhat.com>
11707 Jakub Jelinek <jakub@redhat.com>
11708
11709 * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
11710 (__do_global_dtors_aux): Use more paranoid loop to run
11711 destructors if HIDDEN_DTOR_LIST_END.
11712 (__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END.
11713
11714 2007-05-04 Jakub Jelinek <jakub@redhat.com>
11715
11716 * varasm.c (align_variable): Don't increase alignment for
11717 DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through
11718 DATA_ALIGNMENT or CONSTANT_ALIGNMENT.
11719
11720 2007-05-04 Josh Conner <jconner@apple.com>
11721
11722 * basic-block.h (cdi_direction): Assign values to all enumeration
11723 constants.
11724 (dom_computed): Remove.
11725 (dom_info_state): New.
11726 (set_dom_info_availability): New.
11727 * tree-ssa-loop-im.c (determine_invariantness): Initialize
11728 walk_data.dom_direction.
11729 * cfghooks.c (delete_basic_block): Use dom_info_available_p()
11730 instead of dom_computed[].
11731 (split_edge): Likewise.
11732 (create_basic_block): Likewise.
11733 (merge_blocks): Likewise.
11734 * ifcvt.c (find_if_header): Likewise.
11735 * tree-cfgcleanup.c (cleanup_tree_cfg): Likewise.
11736 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
11737 * tree-ssa.c (verify_ssa): Likewise.
11738 * tree-cfg.c (tree_verify_flow_info): Likewise.
11739 (remove_edge_and_dominated_blocks): Likewise.
11740 * dominance.c (dom_computed): Make static.
11741 (calc_dfs_tree_nonrec): Change third param to a bool.
11742 (calc_dfs_tree): Change second param to a bool.
11743 (calc_idioms): Change second param to a bool. Use
11744 dom_convert_dir_to_idx.
11745 (init_dom_info): Validate dir before using.
11746 (dom_convert_dir_to_idx): New.
11747 (calculate_dominance_info): Use dom_convert_dir_to_idx. New
11748 variable 'reverse' used for calling calc_dfs_tree and calc_idoms.
11749 (free_dominance_info): Use dom_convert_dir_to_idx.
11750 (get_immediate_dominator): Likewise.
11751 (set_immediate_dominator): Likewise.
11752 (get_dominated_by): Likewise.
11753 (redirect_immediate_dominators): Likewise.
11754 (nearest_common_denominator): Likewise.
11755 (dominated_by_p): Likewise.
11756 (bb_dom_dfs_in): Likewise.
11757 (bb_dom_dfs_out): Likewise.
11758 (recount_dominator): Likewise.
11759 (iterate_fix_dominators): Likewise.
11760 (add_to_dominance_info): Likewise.
11761 (delete_from_dominance_info): Likewise.
11762 (first_dom_son): Likewise.
11763 (next_dom_son): Likewise.
11764 (dom_info_available_p): Likewise.
11765 (dom_info_state): New.
11766 (set_dom_info_availability): New.
11767
11768 2007-05-04 Andreas Krebbel <krebbel1@de.ibm.com>
11769
11770 * config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"):
11771 Expander removed.
11772 ("fix_trunc<DSF:mode><GPR:mode>2"): Expander added.
11773
11774 2007-05-04 Bob Wilson <bob.wilson@acm.org>
11775
11776 * config/xtensa/xtensa.md (adddi3, adddi_carry): Delete.
11777 (subdi3, subdi_carry): Delete.
11778
11779 2007-05-04 Jan Hubicka <jh@suse.cz>
11780 Richard Guenther <rguenther@suse.de>
11781
11782 * opts.c (decode_options): Do not fiddle with inlining
11783 parameters in case of optimizing for size.
11784 * ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing
11785 for size do nothing.
11786 (cgraph_decide_inlining_of_small_function): When optimizing for
11787 size never inline functions increasing caller size.
11788 (cgraph_early_inlining): Inline for size when optimizing for size.
11789
11790 2007-05-04 Bernd Schmidt <bernd.schmidt@analog.com>
11791
11792 * config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
11793 logical operations piecewise.
11794 (<optab>di_zesidi_di, <optab>di_sesidi_di, negdi2, one_cmpldi2,
11795 zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi,
11796 subdi_sesidi_di): Delete.
11797 (add_with_carry): Produce carry in CC instead of a DREG to shorten
11798 the generated sequence. Allow three-reg add in constraints. Rewrite
11799 the rtl expression for carry to avoid zero_extend of a constant.
11800 (sub_with_carry): New pattern.
11801 (adddi3, subdi3): Change into define_expand. For subtract, generate a
11802 different sequence not involving jumps.
11803 (notbi): Now a named pattern.
11804
11805 2007-05-04 Bradley Lucier <lucier@math.purdue.edu>
11806
11807 * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
11808 Add the note about a significant loss of accuracy of some
11809 mathematical routines when these options are used.
11810
11811 2007-05-04 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
11812
11813 * haifa-sched.c (rtx_vec_t): New typedef.
11814 (contributes_to_priority_p): Extract piece of priority () into new
11815 static function.
11816 (priority): Use the function. Add assertion.
11817 (rank_for_schedule, set_priorities): Add assertion to check that
11818 insn's priority is initialized.
11819 (clear_priorities, calc_priorities): Change signature. Make it update
11820 all relevant insns. Update all callers ('add_to_speculative_block ()'
11821 and 'create_block_check_twin ()').
11822 * sched-int.h (struct haifa_insn_data): Remove field 'priority_known'.
11823 Add new field 'priority_status'.
11824 (INSN_PRIORITY_STATUS): New macro.
11825 (INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS.
11826
11827 2007-05-04 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
11828
11829 * sched-ebb.c (debug_ebb_dependencies): New static function.
11830 (init_ready_list): Use it.
11831
11832 * sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()'
11833 with changed signature and 'debug_rgn_dependencies ()'.
11834 (debug_rgn_dependencies): New static function.
11835 (init_ready_list): Use it.
11836
11837 * sched-int.h (debug_dependencies): Declare.
11838
11839 2007-05-04 Andreas Krebbel <krebbel1@de.ibm.com>
11840
11841 * libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section.
11842
11843 2007-05-04 Dirk Mueller <dmueller@suse.de>
11844
11845 * c.opt(Wmain,ffreestanding): Enable for C++,ObjC++.
11846
11847 2007-05-03 Jan Hubicka <jh@suse.cz>
11848
11849 * fold-const.c (fold_unary): Convert (T1)(X op Y) into
11850 ((T1)X op (T1)Y), for pointer type in more cases than before.
11851
11852 * gimplify.c (gimplify_expr): Fold (void *)&a + 4.
11853
11854 * tree-object-size.c (plus_expr_object_size): When operand size is
11855 unknown, return unknown.
11856
11857 2007-05-03 Dirk Mueller <dmueller@suse.de>
11858
11859 * doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove.
11860
11861 * config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated
11862 options.
11863
11864 * config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove.
11865
11866 2007-05-03 Janis Johnson <janis187@us.ibm.com>
11867
11868 * doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors.
11869
11870 2007-05-03 Joseph Myers <joseph@codesourcery.com>
11871
11872 * config/soft-fp/double.h, config/soft-fp/extended.h,
11873 config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
11874 config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
11875 config/soft-fp/op-2.h, config/soft-fp/op-4.h,
11876 config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
11877 glibc CVS.
11878
11879 2007-05-03 Ian Lance Taylor <iant@google.com>
11880
11881 * config/rs6000/rs6000.c (rs6000_override_options): Don't set
11882 MASK_PPC_GFXOPT for 8540 or 8548.
11883
11884 2007-05-03 Uros Bizjak <ubizjak@gmail.com>
11885
11886 * tree-vect-transform.c (vect_update_inits_of_drs): Use
11887 vect_print_dump_info() to output debug information.
11888
11889 2007-05-03 Uros Bizjak <ubizjak@gmail.com>
11890
11891 PR target/31768
11892 * config/i386/i386.c (print_operand) ['z']: Output 'w' for
11893 operands of size 2 when operand is not MEM_P.
11894
11895 2007-05-03 Zdenek Dvorak <dvorakz@suse.cz>
11896
11897 PR tree-optimization/30565
11898 * lambda-code.c (perfect_nestify): Fix updating of dominators.
11899
11900 2007-05-03 Bernd Schmidt <bernd.schmidt@analog.com>
11901
11902 * config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns.
11903 (umulsi3_highpart): Use them.
11904 * config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move
11905 for final accumulator to D regisster tranfser.
11906
11907 2007-05-03 Dorit Nuzman <dorit@il.ibm.com>
11908
11909 PR tree-optimization/31699
11910 * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove
11911 wrong code.
11912 (vect_enhance_data_refs_alignment): Compute peel amount using
11913 TYPE_VECTOR_SUBPARTS instead of vf.
11914 * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise.
11915
11916 2007-05-02 Brooks Moses <brooks.moses@codesourcery.com>
11917
11918 PR bootstrap/31776
11919 * system.h: Remove inclusion of double-int.h
11920 * tree.h: Include double-int.h
11921 * gengtype.c: Likewise
11922 * cfgloop.h: Likewise
11923 * Makefile.in: Adjust dependencies on double-int.h
11924
11925 2007-05-02 Eric Christopher <echristo@apple.com>
11926
11927 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate
11928 -shared to -Zdynamiclib.
11929
11930 2007-05-02 Seongbae Park <seongbae.park@gmail.com>
11931
11932 PR c++/31663
11933 * c-common.c (strip_pointer_or_array_types): New function.
11934 * c-common.h (strip_pointer_or_array_types): New function declaration.
11935
11936 2007-05-03 Zdenek Dvorak <dvorakz@suse.cz>
11937
11938 PR tree-optimization/31771
11939 * tree-cfg.c (move_block_to_fn): Assign bb to the correct index.
11940
11941 2007-05-02 Paul Brook <paul@codesourcery.com>
11942
11943 * config/arm/bpabi.S (aeabi_lcmp): Fix result on overflow.
11944
11945 2007-05-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
11946
11947 PR middle-end/29715
11948 * fold-const.c (fold_comparision): Remove the "foo++ == CONST"
11949 transformation.
11950
11951 2007-05-02 Nick Clifton <nickc@redhat.com>
11952
11953 * config/frv/predicates.md (symbolic_operand): Accept CONSTs.
11954
11955 2007-05-02 Richard Guenther <rguenther@suse.de>
11956
11957 PR tree-optimization/31146
11958 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
11959 argument, single_use_p. If we have a single use that is
11960 a conversion to the definition rhs type, propagate that rhs.
11961 (forward_propagate_addr_expr): Pass single_use_p argument
11962 to forward_propagate_addr_expr_1.
11963
11964 2007-05-01 H.J. Lu <hongjiu.lu@intel.com>
11965
11966 * config/i386/i386.c (ix86_expand_sse_comi): Remove unused
11967 variable.
11968
11969 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
11970
11971 * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of
11972 'AMD Family 10 core'.
11973
11974 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
11975
11976 * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3
11977 and athlon64-sse3 as improved versions of k8, opteron and athlon64
11978 with SSE3 instruction set support.
11979 * doc/invoke.texi: Likewise.
11980
11981 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
11982
11983 * config/i386/i386.c (override_options): Tuning 32-byte loop
11984 alignment for amdfam10 architecture. Increasing the max loop
11985 alignment to 24 bytes.
11986
11987 2007-05-01 Kazu Hirata <kazu@codesourcery.com>
11988
11989 * config/m68k/constraints.md: New.
11990 * config/m68k/m68k.h (REG_CLASS_FROM_LETTER,
11991 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
11992 EXTRA_CONSTRAINT): Remove.
11993 * config/m68k/m68k.md: Include constraints.md.
11994 * expr.c (expand_expr_real_1): Copy DECL_RTL before using it.
11995
11996 2007-05-01 Ian Lance Taylor <iant@google.com>
11997
11998 PR tree-optimization/31739
11999 * tree-vrp.c (vrp_val_is_max): New static function.
12000 (vrp_val_is_min): New static function.
12001 (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
12002 copying the node.
12003 (set_value_range): Use vrp_val_is_{max,min}.
12004 (extract_range_from_assert): Likewise.
12005 (extract_range_from_binary_expr): Likewise.
12006 (extract_range_from_unary_expr): Likewise.
12007 (dump_value_range, vrp_meet): Likewise.
12008 (vrp_visit_phi_node): Likewise.
12009 * tree.c (build_distinct_type_copy): Revert change of 2007-04-27.
12010
12011 2007-05-01 Mark Mitchell <mark@codesourcery.com>
12012
12013 * config/i386/gmon-sol2.c (size_t): New type.
12014 (intptr_t): Likewise.
12015 (s_textsize): Declare as size_t.
12016 (sbrk): Declare.
12017 (monstartup): Use size_t for sizes.
12018 (_mcount): Save and restore registers.
12019 (internal_mcount): Pass 0 as the first argument to monstartup
12020 in 64-bit mode.
12021 (moncontrol): Convert pointer to appropriately sized integer
12022 before passing to profil.
12023
12024 2007-05-01 Joseph Myers <joseph@codesourcery.com>
12025
12026 * config/rs6000/darwin-ldouble.c (__gcc_qunord): Define if
12027 __NO_FPRS__, not just if _SOFT_DOUBLE.
12028 * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qunord): Likewise.
12029 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use __gcc_qunord
12030 also for E500 double.
12031 * config/rs6000/rs6000.md (buneq, bunge, bungt, bunle, bunlt,
12032 suneq, sunge, sungt, sunle, sunlt): Disable for (TARGET_HARD_FLOAT
12033 && !TARGET_FPRS).
12034
12035 2007-05-01 Richard Guenther <rguenther@suse.de>
12036
12037 * tree-ssa-loop-manip.c (ip_normal_pos): Check if last stmt
12038 is NULL.
12039
12040 2007-05-01 Joseph Myers <joseph@codesourcery.com>
12041
12042 * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.
12043
12044 2007-05-01 Jan Hubicka <jh@suse.cz>
12045
12046 * tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is
12047 invariant.
12048
12049 2007-05-01 Jan Hubicka <jh@suse.cz>
12050
12051 * tree.h (maybe_fold_offset_to_component_ref): Remove.
12052 (maybe_fold_offset_to_reference): Declare.
12053 * fold-const.c (fold_unary): Do not fold
12054 (type *)&A into &A->field_of_type_and_offset_0
12055 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): When base type
12056 size is unknown, give up.
12057 (maybe_fold_offset_to_component_ref): Ignore firelds with unknown
12058 offsets.
12059 (maybe_fold_offset_to_reference): New.
12060 (maybe_fold_stmt_indirect): Use it.
12061 (fold_stmt_r): Fold (type *)&A+offset into A->field_if_type_and_offset.
12062 * gimplify.c (gimplify_conversion): Canonicalize conversions to
12063 field references.
12064 (gimplify_expr): Likewise for plus_expr.
12065
12066 2007-05-01 Zdenek Dvorak <dvorakz@suse.cz>
12067
12068 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use
12069 bsi_after_labels. Always insert statements before bsi.
12070 * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
12071 * predict.c (apply_return_prediction): Check for empty blocks.
12072 * cfgexpand.c (lab_rtx_for_bb): New variable.
12073 (label_rtx_for_bb): Do not create new tree labels.
12074 (expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb.
12075 (tree_expand_cfg): Initialize lab_rtx_for_bb.
12076 * tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after
12077 creating edges.
12078 (label_for_bb): Add field used.
12079 (update_eh_label, main_block_label): Mark the label used.
12080 (cleanup_dead_labels): Remove unused labels.
12081
12082 2007-05-01 Richard Guenther <rguenther@suse.de>
12083
12084 * tree-vrp.c (set_value_range): Do not allocate equiv bitmap
12085 if it is not about to be set.
12086 (get_value_range): Do not pre-allocate equiv bitmap.
12087 (update_value_range): No need to clear equiv field.
12088 (add_equivalence): Change prototype to get bitmap pointer.
12089 Allocate bitmap here if it is not already.
12090 (extract_range_from_assert): Do not allocate bitmap here.
12091 Update callers to add_equivalence.
12092 (extract_range_from_ssa_name): Likewise.
12093 (get_vr_for_comparison): New static helper.
12094 (compare_name_with_value): Handle NULL equiv bitmap by
12095 peeling the first iteration of the comparison loop.
12096 Use get_vr_for_comparison.
12097 (compare_names): Handle NULL equiv bitmaps by using fake
12098 ones. Use get_vr_for_comparison.
12099
12100 2007-04-30 Brooks Moses <brooks.moses@codesourcery.com>
12101
12102 * double-int.c (mpz_set_double_int): Moved from
12103 tree-ssa-loop-niter.c.
12104 (mpz_get_double_int): Likewise; also, add option to wrap
12105 out-of-range integers.
12106 * double-int.h: New prototypes for above.
12107 * tree.c (get_static_type_bounds): Moved from
12108 tree-ssa-loop-niter.c; now returns TYPE_MIN_VALUE and
12109 TYPE_MAX_VALUE if they exist..
12110 * tree.h: New prototype for above.
12111 * tree-ssa-loop-niter.c: Adjust mpz_to_double_int and
12112 get_type_bounds calls.
12113 (mpz_set_double_int): Move to double-int.c.
12114 (get_type_bounds): Move to tree.c, rename to
12115 get_static_type_bounds.
12116 (mpz_to_double_int): Move to double-int.c, rename to
12117 mpz_get_double_int.
12118
12119 2007-04-30 Bob Wilson <bob.wilson@acm.org>
12120
12121 * config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that
12122 DIV0 exception can fall through to a normal return.
12123
12124 2007-04-30 Alexandre Oliva <aoliva@redhat.com>
12125
12126 PR middle-end/22156
12127 Temporarily revert:
12128 2007-04-06 Andreas Tobler <a.tobler@schweiz.org>
12129 * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
12130 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
12131 * tree-sra.c (try_instantiate_multiple_fields): Needlessly
12132 initialize align to silence bogus warning.
12133 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
12134 * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove
12135 all_no_warning.
12136 (struct sra_walk_fns): Remove use_all parameter from use.
12137 (sra_hash_tree): Handle BIT_FIELD_REFs.
12138 (sra_elt_hash): Don't hash bitfld blocks.
12139 (sra_elt_eq): Skip them in parent compares as well. Handle
12140 BIT_FIELD_REFs.
12141 (sra_walk_expr): Don't maintain or pass down use_all_p.
12142 (scan_use): Remove use_all parameter.
12143 (scalarize_use): Likewise. Re-expand assignment to
12144 BIT_FIELD_REF of gimple_reg. De-scalarize before input or
12145 output, and re-scalarize after output. Don't mark anything
12146 for no warning.
12147 (scalarize_ldst): Adjust.
12148 (scalarize_walk_gimple_modify_statement): Likewise.
12149 (build_element_name_1): Handle BIT_FIELD_REFs.
12150 (instantiate_element): Don't warn for any element whose parent
12151 is used as a whole.
12152 (instantiate_missing_elements_1): Return the sra_elt.
12153 (canon_type_for_field): New.
12154 (try_instantiate_multiple_fields): New.
12155 (instantiate_missing_elemnts): Use them.
12156 (mark_no_warning): Removed.
12157 (generate_one_element_ref): Handle BIT_FIELD_REFs.
12158 (REPLDUP, sra_build_elt_assignment): New.
12159 (generate_copy_inout): Use them.
12160 (generate_element_copy): Likewise. Handle bitfld differences.
12161 (generate_element_zero): Don't recurse for blocks. Use
12162 sra_build_elt_assignment.
12163 (generate_one_element_int): Take elt instead of var. Use
12164 sra_build_elt_assignment.
12165 (generate_element_init_1): Adjust.
12166 (scalarize_use, scalarize_copy): Use REPLDUP.
12167 (scalarize_ldst): Move assert before dereference.
12168 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
12169
12170 2007-04-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
12171
12172 PR C++/31721
12173 * tree.c (reconstruct_complex_type): Reconstruct a reference
12174 correctly.
12175 Also use the same mode for the pointer as the old pointer type.
12176
12177 2007-04-30 Francois-Xavier Coudert <coudert@clipper.ens.fr>
12178
12179 * doc/trouble.texi (Interoperation): Remove note about Ultrix
12180 Fortran compiler.
12181
12182 2007-04-29 Zdenek Dvorak <dvorakz@suse.cz>
12183
12184 PR rtl-optimization/31676
12185 * df-scan.c (record_nonlocal_goto_receiver_defs): New function.
12186 (df_refs_record): Call it.
12187
12188 2007-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
12189
12190 * rtl.def (SS_ABS): New code.
12191 * config/bfin/bfin.c (print_operand): New modifier 'v'.
12192 (enum bfin_builtins): Add BFIN_BUILTIN_SUM_2X16, BFIN_BUILTIN_ABS_1x32,
12193 BFIN_BUILTIN_ROUND_1x32, BFIN_BUILTIN_MULT_1x32x32,
12194 BFIN_BUILTIN_MULT_1x32x32NS, BFIN_BUILTIN_SSASHIFT_1x32.
12195 (bfin_init_builtins): Define them.
12196 (bdesc_1arg, bdesc_2arg): Add some of them here, ...
12197 (bfin_expand_builtin): ... and handle the others here.
12198 * config/bfin/bfin.md (ssabssi2, ssroundsi2, ssashiftsi3,
12199 flag_mul_macv2hi_parts_acconly_andcc0): New patterns.
12200 (ss_absv2hi2): Renamed from absv2hi; use ss_abs code.
12201 (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3): Shift count
12202 operand is only HImode.
12203
12204 2007-04-29 Steven Bosscher <steven@gcc.gnu.org>
12205
12206 * regclass.c (scan_one_insn): Remove splitting of
12207 two address insns.
12208
12209 2007-04-28 Sandra Loosemore <sandra@codesourcery.com>
12210 Nigel Stephens <nigel@mips.com>
12211
12212 * config/mips/mips.h (SLOW_BYTE_ACCESS): Turn off for MIPS16.
12213
12214 2007-04-28 Jan Hubicka <jh@suse.cz>
12215
12216 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Use
12217 insn_locators_alloc instead of insn_locators_initialize;
12218 call reset_block_changes.
12219 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
12220 * config/sh/sh.c (sparc_output_mi_thunk): Likewise.
12221 * config/is64/ia64.c (ia64_output_mi_thunk): Likewise.
12222 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
12223 * config/score/score.c (th_output_mi_thunk): Likewise.
12224 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
12225 * cfglyaout.c (set_curr_insn_source_location, set_curr_insn_block):
12226 tolerate uninitialized locator info.
12227
12228 Re-apply:
12229 * function.c (init_function_start): Don't init line number info.
12230 (expand_function_end): Update.
12231 (reset_block_changes, record_block_change, finalize_block_changes,
12232 check_block_change, free_block_changes): Kill.
12233 * function.h (reset_block_changes, record_block_change,
12234 finalize_block_changes, check_block_change, free_block_changes):
12235 Remove prototypes.
12236 (struct function): Remove ib_boundaries_block.
12237 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
12238 Use curr_insn_locator to initialize locator.
12239 (emit_line_note): Remove.
12240 * cfgexpand.c (expand_gimple_cond_expr): Update.
12241 (construct_exit_block): Likewise.
12242 (tree_expand_cfg): Initialize/finalize locators.
12243 * expr.c (expand_expr_real): Update.
12244 * cfglayout.c (line_locators_locs, line_locators_lines,
12245 file_locators_locs, file_locators_files): Remove.
12246 (set_block_levels): Move to cfgexpand.c.
12247 (insn_locators_initialize): Remove.
12248 (pass_insn_locators_initialize): Remove.
12249 (locations_locators_locs, locations_locators_vals): New static vars.
12250 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
12251 Likewise.
12252 (insn_locators_alloc, insn_locators_finalize,
12253 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
12254 New functions.
12255 (locator_location): New.
12256 (locator_line, locator_file): Rewrite.
12257 * rtl.h (emit_line_note): Kill.
12258 (insn_locators_alloc, insn_locators_finalize,
12259 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
12260 Declare.
12261 * tree-inline.c (initialize_cfun): Do not initialize
12262 ib_boundaries_block.
12263 * passes.c (pass_insn_locators_initialize): Remove.
12264
12265 2007-04-28 Zdenek Dvorak <dvorakz@suse.cz>
12266
12267 * tree-cfg.c (move_block_to_fn): Release bb from dominance
12268 info. Update last_basic_block correctly.
12269
12270 2007-04-27 Kaz Kojima <kkojima@gcc.gnu.org>
12271
12272 PR target/31701
12273 * config/sh/sh.c (output_stack_adjust): Avoid using the frame
12274 register itself to hold the offset constant. Tell flow the use
12275 of r4 and r5 when they are used.
12276
12277 2007-04-27 Richard Guenther <rguenther@suse.de>
12278
12279 * tree-ssa-forwprop.c (forward_propagate_into_cond): Keep track
12280 if we simplified anything.
12281 (tree_ssa_forward_propagate_single_use_vars): Defer overflow
12282 warnings until we did a simplification and the stmt was not
12283 marked as TREE_NO_WARNING.
12284
12285 2007-04-27 Mike Stump <mrs@apple.com>
12286
12287 * config/rs6000/darwin.h (ALWAYS_PUSH_CONSTS_USING_REGS_P): Remove.
12288
12289 2007-04-27 Ian Lance Taylor <iant@google.com>
12290
12291 PR middle-end/31710
12292 * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
12293 TYPE_MAX_VALUE exist, convert them to the new type.
12294
12295 2007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
12296
12297 * tree-cfgcleanup.c (cleanup_tree_cfg): Verify dominance info
12298 if it claims to be available.
12299 * tree-ssa-dce.c (remove_dead_stmt): Mark cfg as altered when
12300 edge is redirected.
12301 (perform_tree_ssa_dce): Always free postdominators.
12302
12303 2007-04-27 Richard Henderson <rth@redhat.com>
12304
12305 * config/alpha/predicates.md (aligned_memory_operand): Mark
12306 as define_special_predicate.
12307 (unaligned_memory_operand, normal_memory_operand): Likewise.
12308 (reg_or_unaligned_mem_operand): Remove.
12309 (any_memory_operand): Match the documentation and check for
12310 non-renumbered pseudos during reload.
12311 * config/alpha/alpha.c (alpha_secondary_reload): Rename from
12312 alpha_secondary_reload_class, update to new interface, make static.
12313 Handle CQImode like HImode. Remove FP subreg check.
12314 (alpha_expand_mov): Use replace_equiv_address.
12315 (alpha_expand_mov_nobwx): Use any_memory_operand.
12316 (TARGET_SECONDARY_RELOAD): New.
12317 * config/alpha/alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Remove.
12318 (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
12319 * config/alpha/sync.md (I12MODE, I48MODE, modesuffix): Move ...
12320 * config/alpha/alpha.md: ... here.
12321 (RELOAD12, reloadmode): New.
12322 (movcqi): New.
12323 (reload_in<RELOAD12>): Macro-ize from reload_inqi, reload_inhi.
12324 Don't handle the aligned case here.
12325 (reload_out<RELOAD12>): Macro-ize from reload_outqi, reload_outhi.
12326 (reload_in<I12MODE>_aligned): Macro-ize from reload_inqi_help,
12327 reload_inhi_help. Don't expect a scratch register.
12328 (reload_out<I12MODE>_aligned): Macro-ize from reload_outqi_help,
12329 reload_outhi_help.
12330 * config/alpha/alpha-protos.h (alpha_secondary_reload_class): Remove.
12331
12332 2007-04-27 Richard Guenther <rguenther@suse.de>
12333
12334 * tree-ssa-forwprop.c (get_prop_dest_stmt): Fix comment typo.
12335
12336 2007-04-27 Richard Guenther <rguenther@suse.de>
12337
12338 PR tree-optimization/30965
12339 PR tree-optimization/30978
12340 * Makefile.in (tree-ssa-forwprop.o): Depend on $(FLAGS_H).
12341 * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove.
12342 (find_equivalent_equality_comparison): Likewise.
12343 (simplify_cond): Likewise.
12344 (get_prop_source_stmt): New helper.
12345 (get_prop_dest_stmt): Likewise.
12346 (can_propagate_from): Likewise.
12347 (remove_prop_source_from_use): Likewise.
12348 (combine_cond_expr_cond): Likewise.
12349 (forward_propagate_comparison): New function.
12350 (forward_propagate_into_cond): Rewrite to use fold for
12351 tree combining.
12352 (tree_ssa_forward_propagate_single_use_vars): Call
12353 forward_propagate_comparison to propagate comparisons.
12354
12355 2007-04-27 Richard Guenther <rguenther@suse.de>
12356
12357 PR tree-optimization/31715
12358 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make
12359 sure to do computation on the offset in an appropriate
12360 signed type.
12361
12362 2007-04-27 Richard Sandiford <richard@codesourcery.com>
12363
12364 * reload.h (elimination_target_reg_p): Declare.
12365 * reload.c (find_reloads): Don't apply the reg_rtx move
12366 optimization if the SET_DEST satisfies elimination_target_reg_p.
12367 * reload1.c (elimination_target_reg_p): New function.
12368 (gen_reload): In the move/add2 fallback, make sure that op0
12369 does not overlap the destination register.
12370
12371 2007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
12372
12373 * tree-ssa-loop-im.c (determine_invariantness_stmt): Attempt to
12374 transform only GIMPLE_MODIFY_STMTs.
12375 * tree-complex.c (expand_complex_operations_1): Ditto.
12376 (expand_complex_div_wide): Do not create gotos in COND_EXPR branches.
12377 * tree-ssa-loop-manip.c (build_if_stmt): Removed.
12378 (tree_transform_and_unroll_loop): Do not create gotos in COND_EXPR
12379 branches.
12380 * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
12381 tree_mod_subtract, tree_ic, tree_stringop_fixed_value): Ditto.
12382 * omp-low.c (expand_parallel_call, expand_omp_for_generic,
12383 expand_omp_for_static_chunk, expand_omp_for_static_nochunk): Ditto.
12384 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes,
12385 slpeel_add_loop_guard): Ditto.
12386 * tree-mudflap.c (mf_build_check_statement_for): Ditto.
12387 * lambda-code.c (perfect_nestify): Ditto.
12388 * tree-iterator.c (tsi_split_statement_list_before): Fix splitting
12389 before the first statement.
12390 * tree-optimize.c (execute_free_datastructures): Fix comments.
12391 (execute_free_cfg_annotations): Do not call disband_implicit_edges.
12392 * tree-flow.h (disband_implicit_edges): Declaration removed.
12393 * tree-cfg.c (make_cond_expr_edges): Remove gotos from COND_EXPR
12394 branches.
12395 (cleanup_dead_labels, tree_redirect_edge_and_branch): Handle
12396 COND_EXPRs without gotos.
12397 (disband_implicit_edges, has_label_p): Removed.
12398 (tree_verify_flow_info): Verify that COND_EXPR branches are empty.
12399 (tree_lv_add_condition_to_bb): Do not create gotos in COND_EXPR
12400 branches.
12401 * tree.c (build3_stat): Mark COND_EXPRs used as statements as having
12402 side effects.
12403 * tree-pretty-print.c (dump_implicit_edges): Dump implicit edges
12404 also for COND_EXPRs.
12405 * cfgexpand.c (label_rtx_for_bb): New function.
12406 (expand_gimple_cond_expr): Do not expect gotos in COND_EXPR branches.
12407 Use label_rtx_for_bb to find the labels.
12408 (expand_gimple_basic_block): Remove RETURN_EXPR at the end of the
12409 last block. Detect fallthru edges.
12410
12411 2007-04-26 Ian Lance Taylor <iant@google.com>
12412
12413 PR target/28675
12414 * reload.c (find_reloads_subreg_address): If the address was valid
12415 in the original mode but not in the new mode, reload the whole
12416 address.
12417
12418 2007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
12419
12420 * tree-cfgcleanup.c (cfgcleanup_altered_bbs): New global variable.
12421 (remove_fallthru_edge): Use remove_edge_and_dominated_blocks.
12422 (cleanup_control_expr_graph): Do not invalidate dominance info.
12423 Record altered blocks.
12424 (cleanup_control_flow, cleanup_forwarder_blocks): Removed.
12425 (cleanup_control_flow_bb, split_bbs_on_noreturn_calls,
12426 cleanup_tree_cfg_bb): New functions.
12427 (remove_forwarder_block): Do not maintain the worklist of blocks.
12428 Record altered blocks.
12429 (cleanup_tree_cfg_1): Iterate over cfgcleanup_altered_bbs,
12430 not over whole cfg.
12431 (cleanup_tree_cfg): Do not iterate cleanup_tree_cfg_1. Only call
12432 delete_unreachable_blocks if dominators are not available.
12433 * tree-inline.c (optimize_inline_calls): Free dominance information
12434 earlier.
12435 * tree-flow.h (remove_edge_and_dominated_blocks,
12436 cfgcleanup_altered_bbs): Altered.
12437 * tree-cfg.c (replace_uses_by, tree_merge_blocks): Record altered
12438 blocks.
12439 (get_all_dominated_blocks, remove_edge_and_dominated_blocks): New
12440 functions.
12441 (tree_purge_dead_eh_edges): Use remove_edge_and_dominated_blocks,
12442 do not invalidate dominators.
12443
12444 2007-04-26 Anatoly Sokolov <aesok@post.ru>
12445
12446 * config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and
12447 ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture.
12448 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12449 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
12450
12451 2007-04-26 Steve Ellcey <sje@cup.hp.com>
12452
12453 * config/ia64/ia64.md (ip_value): Fix itanium_class attribute.
12454
12455 2007-04-26 Richard Guenther <rguenther@suse.de>
12456
12457 PR tree-optimization/31703
12458 * tree-ssa-loop-im.c (rewrite_bittest): Make sure to use
12459 the right type for the target of the bittest.
12460
12461 2007-04-26 Richard Sandiford <richard@codesourcery.com>
12462
12463 * config/i386/vx-common.h (RETURN_IN_MEMORY): Use
12464 ix86_sol10_return_in_memory.
12465
12466 2007-04-26 Richard Sandiford <richard@codesourcery.com>
12467
12468 * config/i386/i386.c (ix86_sol10_return_in_memory): Remove unused
12469 variables.
12470
12471 2007-04-26 Jakub Jelinek <jakub@redhat.com>
12472
12473 PR c++/31598
12474 * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE.
12475
12476 PR tree-optimization/30558
12477 * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW
12478 clear this_state.prev_try.
12479
12480 2007-04-26 Richard Sandiford <richard@codesourcery.com>
12481 Mark Mitchell <mark@codesourcery.com>
12482
12483 * config/i386/i386-protos.h (ix86_sol10_return_in_memory): Declare.
12484 * config/i386/i386.c (ix86_sol10_return_in_memory): New function.
12485 * config/i386/sol2-10.h (RETURN_IN_MEMORY): Use it.
12486
12487 2007-04-26 Richard Sandiford <richard@codesourcery.com>
12488
12489 PR driver/31107
12490 * doc/invoke.texi (%:print-asm-header): Document.
12491 * gcc.c (asm_options): Use %:print-asm-header() for --target-help
12492 and -ftarget-help.
12493 (static_spec_functions): Add print-asm-header.
12494 (main): Print a banner before the --target-help linker options.
12495 (print_asm_header_spec_function): New function.
12496
12497 2007-04-25 Kaz Kojima <kkojima@gcc.gnu.org>
12498
12499 PR target/31403
12500 * config/sh/sh.md (movsi_ie): Fix length for TARGET_SH2A.
12501 (movsf_ie): Likewise.
12502
12503 2007-04-25 Paolo Carlini <pcarlini@suse.de>
12504
12505 * doc/extend.texi ([Type Traits]): Adjust per N2255.
12506
12507 2007-04-25 Bob Wilson <bob.wilson@acm.org>
12508
12509 * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an
12510 exception for divide-by-zero.
12511 (__umodsi3, __modsi3): Likewise.
12512
12513 2007-04-25 Dirk Mueller <dmueller@suse.de>
12514
12515 * c-typeck.c (build_compound_expr): Annotate warning()
12516 call with OPT_Wunused_value.
12517 * tree-ssa.c (warn_uninit): Annotate warning with
12518 OPT_Wunintialized.
12519 * c-common.c (handle_sentinel_attribute): Annotate warning
12520 call with OPT_Wattributes.
12521
12522 2007-04-25 Thiemo Seufer <ths@mips.com>
12523
12524 * config/mips/mips.opt (mdmx, mmt, mno-mdmx): New options.
12525 (mips16): Fix typo.
12526 * config/mips/mips.h (ASM_SPEC): Pass -mmt/-mno-mt and -mdmx/-mno-mdmx
12527 on to the assembler. Improve handling of -mno-mips16. Add handling
12528 of -mno-mips3d, -mno-dsp, -mno-dspr2.
12529 * doc/invoke.texi (MIPS Options): Whitespace cleanup. Fix wrong use
12530 of @itemx. Document -mno-dsp, -mno-dspr2, -mno-paired-single, -mdmx,
12531 -mno-mdmx, -mno-mips3d, -mmt and -mno-mt.
12532
12533 2007-04-25 Danny Smith <dannysmith.users.sourceforge.net>
12534
12535 PR target/31680
12536 * config/i386/winnt.c (i386_pe_file_end): Strip only
12537 USER_LABEL_PREFIX when writing export name.
12538
12539 2007-04-25 Richard Sandiford <richard@codesourcery.com>
12540
12541 * config.gcc (sh-wrs-vxworks): Don't include dbxelf.h. Include
12542 sh/elf.h, vx-common.h and vxworks.h.
12543 * config/sh/sh.h: Include config/vxworks-dummy.h.
12544 (SUBTARGET_OVERRIDE_OPTIONS): Define.
12545 (OVERRIDE_OPTIONS): Use it.
12546 * config/sh/sh.md (GOTaddr2picreg): Add suport for VxWorks RTPs.
12547 (vxworks_picreg): New pattern.
12548 * config/sh/vxworks.h (TARGET_OS_CPP_BUILTINS): Use
12549 VXWORKS_OS_CPP_BUILTINS.
12550 (LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine
12551 to their VXWORKS_* equivalents.
12552 (SUBTARGET_OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
12553 (SUBTARGET_LINK_EMUL_SUFFIX, FUNCTION_PROFILER): Define.
12554 * config/sh/lib1funcs.asm (NO_FPSCR_VALUES): Define for VxWorks PIC.
12555 (set_fpscr, ic_invalidate): Add VxWorks PIC sequences.
12556 * config/sh/t-vxworks (MULTILIB_OPTIONS): Add m4a, -mrtp and
12557 -mrtp/-fPIC multilibs.
12558 (MULTILIB_EXCEPTIONS): Generalize globs accordingly.
12559 (MULTILIB_MATCHES, EXTRA_MULTILIB_PARTS): Define.
12560 (MULTILIB_OSDIRNAMES): Delete.
12561
12562 2007-04-25 Anatoly Sokolov <aesok@post.ru>
12563
12564 PR target/18989
12565 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.
12566
12567 2007-04-24 Brooks Moses <brooks.moses@codesourcery.com>
12568
12569 * real.c (mpfr_from_real): Handle Inf and NaN, and allow the
12570 rounding mode to be specified by the caller.
12571 (real_to_mpfr) Likewise.
12572 * real.h: Update mpfr_from_real, mpfr_to_real prototypes to
12573 include new arguments.
12574 * builtins.c: Update mpfr_from_real, mpfr_to_real calls.
12575
12576 2007-04-24 Ian Lance Taylor <iant@google.com>
12577
12578 PR tree-optimization/31605
12579 * tree-vrp.c (set_value_range): Check that min and max are not
12580 both overflow infinities.
12581 (set_value_range_to_value): New static function.
12582 (extract_range_from_binary_expr): Call set_value_range_to_value.
12583 (extract_range_from_cond_expr): Likewise.
12584 (extract_range_from_expr): Likewise.
12585 (extract_range_from_unary_expr): Likewise. Don't create a range
12586 which overflows on both sides.
12587 (vrp_meet): Check for a useless range.
12588 (vrp_visit_phi_node): If we see a constant which looks like an
12589 overflow infinity, turn off the TREE_OVERFLOW flag.
12590
12591 2007-04-24 Ian Lance Taylor <iant@google.com>
12592
12593 * flow.c (elim_reg_cond): Handle a comparison of a subreg.
12594
12595 2007-04-24 Simon Martin <simartin@users.sourceforge.net>
12596
12597 PR diagnostic/25923
12598 * tree-pass.h (TDF_DIAGNOSTIC): New dump control to specify that a
12599 diagnostic message is being built.
12600 * tree-pretty-print.c (dump_generic_node): Only write the
12601 formatted text into BUFFER's stream if we are not building a
12602 diagnostic message.
12603 * toplev.c (default_tree_printer): Pass TDF_DIAGNOSTIC to
12604 dump_generic_node.
12605 * Makefile.in (toplev.o): Depend on tree-pass.h.
12606
12607 2007-04-24 Ian Lance Taylor <iant@google.com>
12608
12609 PR tree-optimization/31602
12610 * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for
12611 conditionals in the copied loop header.
12612 * tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow
12613 warnings if TREE_NO_WARNING is set.
12614 * doc/invoke.texi (Warning Options): Clarify that
12615 -Wstrict-overflow does not warn about loops.
12616
12617 2007-04-24 Janis Johnson <janis187@us.ibm.com>
12618
12619 * config/rs6000/rs6000.c (function_arg_advance): For 32-bit ELF ABI,
12620 expand on the comment about _Decimal128 arguments and check the
12621 integer result of the modulus operation; for 64-bit ELF ABI, ensure
12622 that _Decimal128 argument uses even/odd register pair.
12623 (function_arg): Ditto.
12624
12625 2007-04-24 Hui-May Chang <hm.chang@apple.com>
12626
12627 * reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
12628 instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
12629
12630 2007-04-24 Richard Guenther <rguenther@suse.de>
12631 Olga Golovanevsky <olga@il.ibm.com>
12632
12633 * fold-const.c (multiple_of_p): Check for bottom
12634 to be zero.
12635
12636 2007-04-24 Richard Henderson <rth@redhat.com>
12637
12638 * libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from
12639 IS_IBM_EXTENDED. Also define in terms of WIDEST_HARDWARE_FP_SIZE.
12640 * libgcc2.c (__floatdisf): Avoid double-word arithmetic when
12641 looking for non-zero bits shifted out. Avoid a recursive call
12642 when constructing the scalar.
12643 (__floatundisf): Likewise.
12644
12645 2007-04-24 Nathan Froyd <froydnj@codesourcery.com>
12646
12647 * dwarf2out.c (field_byte_offset): Move the existing logic
12648 under the control of PCC_BITFIELD_TYPE_MATTERS and just use
12649 the bit offset of the field if !PCC_BITFIELD_TYPE_MATTERS.
12650
12651 2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
12652
12653 PR target/31641
12654 * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant
12655 length argument of 0 for memset.
12656 (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
12657 unsigned shift instead of the signed variant.
12658
12659 2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
12660
12661 * config/s390/s390.md ("*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs_ibm",
12662 "fix_trunc<BFP:mode><GPR:mode>2_ieee", "fix_truncdfsi2_ibm",
12663 "floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm",
12664 "*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
12665 "*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
12666 "*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee",
12667 "*extendsftf2_ibm", "*add<mode>3", "*add<mode>3_ibm", "*sub<mode>3_ibm",
12668 "*mul<mode>3", "*mul<mode>3_ibm", "*div<mode>3", "*div<mode>3_ibm",
12669 "*neg<mode>2_ibm", "*abs<mode>2_ibm"): Insn definitions removed.
12670 ("fix_trunc<BFP:mode><GPR:mode>2_bfp", "floatsi<mode>2",
12671 "truncdfsf2", "trunctf<mode>2", "add<mode>3", "sub<mode>3",
12672 "mul<mode>3", "div<mode>3"): Insn definitions added.
12673 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fix_trunc<mode>di2",
12674 "fix_trunc<mode>si2"): gen_fix_trunc<BFP:mode><GPR:mode>2_ieee renamed
12675 to gen_fix_trunc<BFP:mode><GPR:mode>2_bfp.
12676 ("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2",
12677 "trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add<mode>3",
12678 "sub<mode>3", "mul<mode>3", "div<mode>3"): Expander removed.
12679 ("fix_trunc<mode>si2", "extend<DSF:mode><BFP:mode>2"): Expander added.
12680 * config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT,
12681 TARGET_FLOAT_FORMAT): Macro definitions removed.
12682 (FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore.
12683 * config/s390/s390.c (struct processor_costs, z900_cost, z990_cost,
12684 z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der.
12685 (s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches.
12686 (s390_gen_rtx_const_DI): Function removed.
12687 * config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed.
12688
12689 2007-04-24 Richard Sandiford <richard@codesourcery.com>
12690
12691 * optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions
12692 over an external ffs function.
12693
12694 2007-04-24 Chao-ying Fu <fu@mips.com>
12695 Richard Sandiford <richard@nildram.co.uk>
12696
12697 * doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document.
12698 * optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes.
12699 (smadd_widen_optab, umadd_widen_optab): Define.
12700 * optabs.c (init_optabs): Initialize smadd_widen_optab and
12701 umadd_widen_optab.
12702 * genopinit.c (optabs): Fill in smadd_widen_optab and
12703 umadd_widen_optab.
12704 * expr.c (expand_expr_real_1): Try to use smadd_widen_optab
12705 and umadd_widen_optab to implement multiply-add sequences.
12706 * config/mips/mips.md (*<su>mul_acc_di): Rename to...
12707 (<u>maddsidi4): ...this. Extend condition to include
12708 GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint
12709 of operand 0 to "ka" and use the three-operand form of madd<u>
12710 for TARGET_DSPR2.
12711 * config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert
12712 to define_expands.
12713 * config/mips/constraints.md (ka): New register constraint.
12714
12715 2007-04-24 Jan Hubicka <j@suse.cz>
12716
12717 Revert:
12718
12719 2007-04-23 Jan Hubicka <jh@suse.cz>
12720 * function.c (init_function_start): Don't init line number info.
12721 (expand_function_end): Update.
12722 (reset_block_changes, record_block_change, finalize_block_changes,
12723 check_block_change, free_block_changes): Kill.
12724 * function.h (reset_block_changes, record_block_change,
12725 finalize_block_changes, check_block_change, free_block_changes):
12726 Remove prototypes.
12727 (struct function): Remove ib_boundaries_block.
12728 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
12729 Use curr_insn_locator to initialize locator.
12730 (emit_line_note): Remove.
12731 * cfgexpand.c (expand_gimple_cond_expr): Update.
12732 (construct_exit_block): Likewise.
12733 (tree_expand_cfg): Initialize/finalize locators.
12734 * expr.c (expand_expr_real): Update.
12735 * cfglayout.c (line_locators_locs, line_locators_lines,
12736 file_locators_locs, file_locators_files): Remove.
12737 (set_block_levels): Move to cfgexpand.c.
12738 (insn_locators_initialize): Remove.
12739 (pass_insn_locators_initialize): Remove.
12740 (locations_locators_locs, locations_locators_vals): New static vars.
12741 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
12742 Likewise.
12743 (insn_locators_alloc, insn_locators_finalize,
12744 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
12745 New functions.
12746 (locator_location): New.
12747 (locator_line, locator_file): Rewrite.
12748 * rtl.h (emit_line_note): Kill.
12749 (insn_locators_alloc, insn_locators_finalize,
12750 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
12751 Declare.
12752 * tree-inline.c (initialize_cfun): Do not initialize
12753 ib_boundaries_block.
12754 * passes.c (pass_insn_locators_initialize): Remove.
12755
12756 2007-04-24 Daniel Franke <franke.daniel@gmail.com>
12757
12758 * doc/invoke.texi: Removed leading '-' from option index entries.
12759
12760 2007-04-23 Zdenek Dvorak <dvorakz@suse.cz>
12761
12762 * tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_node):
12763 Use phi_nodes_ptr.
12764 (create_phi_node): Use set_phi_nodes.
12765 * omp-low.c (expand_omp_parallel): Use bb_stmt_list.
12766 * tree-if-conv.c (process_phi_nodes): Use set_phi_nodes.
12767 (combine_blocks): Use bb_stmt_list and set_bb_stmt_list.
12768 * tree-flow-inline.h (phi_nodes, set_phi_nodes,
12769 (bsi_start, bsi_last): Use bb_stmt_list.
12770 (phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions.
12771 * cfgexpand.c (expand_gimple_basic_block): Use bb_stmt_list.
12772 Traverse the statements using tsi iterator.
12773 * basic-block.h (struct basic_block_def): Fields stmt_list
12774 and phi_nodes moved to ...
12775 (struct tree_bb_info): ... new structure.
12776 * tree-cfg.c (create_bb): Allocate il.tree. Use set_bb_stmt_list.
12777 (tree_merge_blocks): Use bb_stmt_list and set_bb_stmt_list.
12778 (remove_bb): Handle blocks with NULL stmt list. Clear il.tree field.
12779 (tree_verify_flow_info): Verify that il.tree is not set for
12780 entry and exit block.
12781 (tree_split_block): Use set_bb_stmt_list.
12782
12783 2007-04-23 Mike Stump <mrs@apple.com>
12784
12785 * config/i386/i386.c (ix86_tune_features
12786 [X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on
12787 nocona and core2.
12788
12789 2007-04-23 H.J. Lu <hongjiu.lu@intel.com>
12790
12791 * config/i386/i386.md (prefix_extra): New attribute.
12792 (length): Add prefix_extra.
12793
12794 * onfig/i386/sse.md (sse2_movdqu): Set prefix_data16.
12795 (sse2_movntv2di): Likewise.
12796 (sse2_cvtps2dq): Likewise.
12797 (sse2_cvtpd2pi): Likewise.
12798 (sse2_cvttpd2pi): Likewise.
12799 (*sse2_cvtpd2ps): Likewise.
12800 (*add<mode>3): Likewise.
12801 (sse2_ssadd<mode>3): Likewise.
12802 (sse2_usadd<mode>3): Likewise.
12803 (*sub<mode>3): Likewise.
12804 (sse2_sssub<mode>3): Likewise.
12805 (sse2_ussub<mode>3): Likewise.
12806 (*mulv8hi3): Likewise.
12807 (*smulv8hi3_highpart): Likewise.
12808 (*umulv8hi3_highpart): Likewise.
12809 (sse2_umulv2siv2di3): Likewise.
12810 (sse2_pmaddwd): Likewise.
12811 (ashr<mode>3): Likewise.
12812 (lshr<mode>3): Likewise.
12813 (ashl<mode>3): Likewise.
12814 (sse2_ashlti3): Likewise.
12815 (sse2_lshrti3): Likewise.
12816 (*umaxv16qi3): Likewise.
12817 (*smaxv8hi3): Likewise.
12818 (*uminv16qi3): Likewise.
12819 (*sminv8hi3): Likewise.
12820 (sse2_eq<mode>3): Likewise.
12821 (sse2_gt<mode>3): Likewise.
12822 (*and<mode>3): Likewise.
12823 (sse2_nand<mode>3): Likewise.
12824 (*ior<mode>3): Likewise.
12825 (*xor<mode>3): Likewise.
12826 (sse2_packsswb): Likewise.
12827 (sse2_packssdw): Likewise.
12828 (sse2_packuswb): Likewise.
12829 (sse2_punpckhbw): Likewise.
12830 (sse2_punpcklbw): Likewise.
12831 (sse2_punpckhwd): Likewise.
12832 (sse2_punpcklwd): Likewise.
12833 (sse2_punpckhdq): Likewise.
12834 (sse2_punpckldq): Likewise.
12835 (sse2_punpckhqdq): Likewise.
12836 (sse2_punpcklqdq): Likewise.
12837 (*sse2_pinsrw): Likewise.
12838 (*sse2_pextrw): Likewise.
12839 (sse2_pshufd_1): Likewise.
12840 (sse2_uavgv16qi3): Likewise.
12841 (sse2_uavgv8hi3): Likewise.
12842 (sse2_psadbw): Likewise.
12843 (sse2_pmovmskb): Likewise.
12844 (*sse2_maskmovdqu): Likewise.
12845 (*sse2_maskmovdqu_rex64): Likewise.
12846 (sse4a_extrqi): Likewise.
12847 (sse4a_extrq): Likewise.
12848 (sse3_lddqu): Set prefix_rep.
12849 (sse3_addsubv4sf3): Likewise.
12850 (sse3_haddv4sf3): Likewise.
12851 (sse3_hsubv4sf3): Likewise.
12852 (sse_cvtss2si): Likewise.
12853 (sse_cvtss2si_2): Likewise.
12854 (sse_cvtss2siq): Likewise.
12855 (sse_cvtss2siq_2): Likewise.
12856 (sse_cvttss2si): Likewise.
12857 (sse_cvttss2siq): Likewise.
12858 (sse2_cvttps2dq): Likewise.
12859 (sse3_movshdup): Likewise.
12860 (sse3_movsldup): Likewise.
12861 (sse2_cvtsd2si): Likewise.
12862 (sse2_cvtsd2si_2): Likewise.
12863 (sse2_cvtsd2siq): Likewise.
12864 (sse2_cvtsd2siq_2): Likewise.
12865 (sse2_cvttsd2si): Likewise.
12866 (sse2_cvttsd2siq): Likewise.
12867 (*sse2_cvtpd2dq): Likewise.
12868 (*sse2_cvttpd2dq): Likewise.
12869 (sse2_pshuflw_1): Likewise.
12870 (sse2_pshufhw_1): Likewise.
12871 (sse4a_insertqi): Likewise.
12872 (sse4a_insertq): Likewise.
12873 (ssse3_phaddwv8hi3): Set prefix_data16 and prefix_extra.
12874 (ssse3_phadddv4si3): Likewise.
12875 (ssse3_phaddswv8hi3): Likewise.
12876 (ssse3_phsubwv8hi3): Likewise.
12877 (ssse3_phsubdv4si3): Likewise.
12878 (ssse3_phsubswv8hi3): Likewise.
12879 (ssse3_pmaddubswv8hi3): Likewise.
12880 (ssse3_pmulhrswv8hi3): Likewise.
12881 (ssse3_pshufbv16qi3): Likewise.
12882 (ssse3_psign<mode>3): Likewise.
12883 (ssse3_palignrti): Likewise.
12884 (abs<mode>2): Likewise.
12885 (ssse3_phaddwv4hi3): Set prefix_extra.
12886 (ssse3_phadddv2si3): Likewise.
12887 (ssse3_phaddswv4hi3): Likewise.
12888 (ssse3_phsubwv4hi3): Likewise.
12889 (ssse3_phsubdv2si3): Likewise.
12890 (ssse3_phsubswv4hi3): Likewise.
12891 (ssse3_pmaddubswv4hi3): Likewise.
12892 (ssse3_pmulhrswv4hi3): Likewise.
12893 (ssse3_pshufbv8qi3): Likewise.
12894 (ssse3_psign<mode>3): Likewise.
12895 (ssse3_palignrdi): Likewise.
12896 (abs<mode>2): Likewise.
12897 (sse2_cvtdq2ps): Set mode to V4SF instead of V2DF.
12898 (*vec_dupv2df): Set mode to V2DF instead of V4SF.
12899 (sse2_pmovmskb): Set mode to SI instead of V2DF.
12900
12901 2007-04-23 Nick Clifton <nickc@redhat.com>
12902
12903 * params.def: Fix formatting of emacs local variables.
12904
12905 2007-04-23 H.J. Lu <hongjiu.lu@intel.com>
12906
12907 * config/i386/sse.md (sse2_stored): Don't split to inter-unit
12908 move if inter-unit move isn't allowed.
12909 Don't split moving the first element of V2DI to DI to inter-unit
12910 move if inter-unit move isn't allowed.
12911
12912 2007-04-23 Richard Guenther <rguenther@suse.de>
12913
12914 * tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS
12915 and CDI_POST_DOMINATORS separately.
12916
12917 2007-04-23 Nick Clifton <nickc@redhat.com>
12918
12919 * c.opt (Wformat-contains-nul): Add warning attribute.
12920
12921 2007-04-23 Jan Hubicka <jh@suse.cz>
12922
12923 * function.c (init_function_start): Don't init line number info.
12924 (expand_function_end): Update.
12925 (reset_block_changes, record_block_change, finalize_block_changes,
12926 check_block_change, free_block_changes): Kill.
12927 * function.h (reset_block_changes, record_block_change,
12928 finalize_block_changes, check_block_change, free_block_changes):
12929 Remove prototypes.
12930 (struct function): Remove ib_boundaries_block.
12931 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
12932 Use curr_insn_locator to initialize locator.
12933 (emit_line_note): Remove.
12934 * cfgexpand.c (expand_gimple_cond_expr): Update.
12935 (construct_exit_block): Likewise.
12936 (tree_expand_cfg): Initialize/finalize locators.
12937 * expr.c (expand_expr_real): Update.
12938 * cfglayout.c (line_locators_locs, line_locators_lines,
12939 file_locators_locs, file_locators_files): Remove.
12940 (set_block_levels): Move to cfgexpand.c.
12941 (insn_locators_initialize): Remove.
12942 (pass_insn_locators_initialize): Remove.
12943 (locations_locators_locs, locations_locators_vals): New static vars.
12944 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
12945 Likewise.
12946 (insn_locators_alloc, insn_locators_finalize,
12947 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
12948 New functions.
12949 (locator_location): New.
12950 (locator_line, locator_file): Rewrite.
12951 * rtl.h (emit_line_note): Kill.
12952 (insn_locators_alloc, insn_locators_finalize,
12953 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
12954 Declare.
12955 * tree-inline.c (initialize_cfun): Do not initialize
12956 ib_boundaries_block.
12957 * passes.c (pass_insn_locators_initialize): Remove.
12958
12959 2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
12960
12961 PR middle-end/31448
12962 * expr.c (reduce_to_bit_field_precision): Handle
12963 CONST_INT rtx's.
12964
12965 2007-04-22 Uros Bizjak <ubizjak@gmail.com>
12966
12967 PR tree-optimization/24659
12968 * optabs.h (enum optab_index) [OTI_vec_unpacks_hi,
12969 OTI_vec_unpacks_lo]: Update comment to mention floating point operands.
12970 (vec_pack_trunc_optab): Rename from vec_pack_mod_optab.
12971 * genopinit.c (optabs): Rename vec_pack_mod_optab
12972 to vec_pack_trunc_optab.
12973 * tree-vect-transform.c (vectorizable_type_demotion): Do not fail
12974 early for scalar floating point operands for NOP_EXPR.
12975 (vectorizable_type_promotion): Ditto.
12976 * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return
12977 vec_pack_trunc_optab.
12978 (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab.
12979
12980 * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR.
12981 * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]:
12982 Rename from VEC_PACK_MOD_EXPR.
12983 (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto.
12984 * expr.c (expand_expr_real_1): Ditto.
12985 * tree-inline.c (estimate_num_insns_1): Ditto.
12986 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
12987
12988 * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander.
12989 (vec_unpacks_lo_v4sf): Ditto.
12990 (vec_pack_trunc_v2df): Ditto.
12991 (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi.
12992 (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
12993 (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di.
12994
12995 * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from
12996 vec_pack_mod_v8hi.
12997 (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
12998
12999 * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]:
13000 Rename from VEC_PACK_MOD_EXPR. This expression also represent
13001 packing of floating point operands.
13002 [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also
13003 represent unpacking of floating point operands.
13004 * doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation.
13005 [vec_unpacks_hi]: Ditto.
13006 [vec_unpacks_lo]: Ditto.
13007
13008 2007-04-22 Jan Hubicka <jh@suse.cz>
13009
13010 * final.c (rest_of_handle_final): Call
13011 targetm.asm_out.constructor/targetm.asm_out.destructor
13012 * cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set
13013 proper priority via decl_*_priority_insert.
13014 * c-common.c (c_expand_body): Likewise.
13015
13016 2007-04-22 Richard Guenther <rguenther@suse.de>
13017
13018 PR tree-optimization/29789
13019 * tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts.
13020 (rewrite_reciprocal): New helper split out from
13021 determine_invariantness_stmt.
13022 (rewrite_bittest): Likewise.
13023 (determine_invariantness_stmt): Rewrite (A >> B) & 1 to
13024 A & (1 << B) if (1 << B) is loop invariant but (A >> B)
13025 is not.
13026
13027 2007-04-22 Revital Eres <eres@il.ibm.com>
13028
13029 * loop-unroll.c (var_to_expand): New field to support also
13030 insns of the form x = something + x.
13031 (analyze_insn_to_expand_var): Use it.
13032 (expand_var_during_unrolling): Likewise.
13033
13034 2007-04-21 Zdenek Dvorak <dvorakz@suse.cz>
13035
13036 * predict.c: Include pointer-set.h.
13037 (bb_predictions): New variable.
13038 (tree_predicted_by_p, tree_predict_edge,
13039 remove_predictions_associated_with_edge): Use bb_predictions map
13040 instead of bb->predictions.
13041 (clear_bb_predictions, assert_is_empty): New functions.
13042 (combine_predictions_for_bb): Use bb_predictions map. Call
13043 clear_bb_predictions.
13044 (tree_estimate_probability): Create and free bb_predictions map.
13045 * Makefile.in (predict.o): Add pointer-set.h dependency.
13046 * basic-block.h (struct basic_block_def): Remove predictions
13047 field.
13048 * cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions.
13049
13050 2007-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
13051
13052 PR target/31480
13053 * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
13054 is null.
13055
13056 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
13057
13058 * timevar.c (timevar_print): Change reference of --disable-checking to
13059 --enable-checking=release. Also warn if assert checking is disabled.
13060
13061 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
13062
13063 PR C/30265
13064 * c-gimplifier.c (gimplify_compound_literal_expr): Mark the
13065 decl as addressable if the compound literal was marked as
13066 addressable.
13067 Mark the decl as a gimple register if it is a complex or
13068 vector decl and does not live in memory.
13069
13070 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
13071
13072 * tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
13073 (GENERIC_NEXT): New function macro.
13074 (PHI_CHAIN): Use phi_node's new chain variable.
13075 (tree_phi_node): Change tree_common to tree_base
13076 and add the chain field.
13077 * tree-phinodes.c (make_phi_node): Don't set
13078 TREE_TYPE on the new node.
13079 * c-decl.c (lang_tree_node): Use GENERIC_NEXT
13080 instead of checking GIMPLE_TUPLE_P in chain_next.
13081 * tree-vect-transform.c
13082 (get_initial_def_for_induction): Look at
13083 PHI_RESULT_TREE for the type of the phi node.
13084 (update_vuses_to_preheader): Use PHI_CHAIN
13085 instead of TREE_CHAIN on the phi node.
13086 * tree-ssa-structalias.c (compute_points_to_sets):
13087 Likewise.
13088 (ipa_pta_execute): Likewise.
13089
13090 2007-04-21 Richard Guenther <rguenther@suse.de>
13091
13092 PR middle-end/31136
13093 * fold-const.c (fold_unary): Call fold_convert_const on the
13094 original tree.
13095
13096 2007-04-21 Alexandre Oliva <aoliva@redhat.com>
13097
13098 * gcse.c (store_killed_in_insn): Handle PARALLELs.
13099 (store_killed_in_pat): New.
13100
13101 2007-04-20 Richard Henderson <rth@redhat.com>
13102
13103 PR target/31628
13104 * config/i386/i386.c (type_has_variadic_args_p): Look for any
13105 TREE_LIST with a void_type_node value, not void_list_node exactly.
13106
13107 2007-04-21 Douglas Gregor <doug.gregor@gmail.com>
13108
13109 * doc/standards.texi: Re-arrange into language-specific
13110 subsections. Add a C++ section, documenting which standards we
13111 support.
13112
13113 2007-04-21 Zdenek Dvorak <dvorakz@suse.cz>
13114
13115 * tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex.
13116 * tree-ssa-operands.c (finalize_ssa_vuse_ops): Free new_ops.
13117
13118 2007-04-20 Daniel Jacobowitz <dan@codesourcery.com>
13119
13120 * config/rs6000/sysv4.h (STARTFILE_DEFAULT_SPEC): Include
13121 ecrti.o and crtbegin.o.
13122 (LIB_DEFAULT_SPEC): Include -lc.
13123 (ENDFILE_DEFAULT_SPEC): Include crtend.o and ecrtn.o.
13124
13125 2007-04-20 Richard Henderson <rth@redhat.com>
13126
13127 PR target/28623
13128 * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
13129 argument; update all callers.
13130 (get_unaligned_offset): New.
13131 * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
13132 get_unaligned_address, just pass on the address directly.
13133 (unaligned_extendqidi): Use gen_lowpart instead of open-coding
13134 the subreg in the helper patterns.
13135 (unaligned_extendqidi_le): Use get_unaligned_offset.
13136 (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
13137 (unaligned_extendhidi_be): Likewise.
13138 (unaligned_extendhidi): Tidy.
13139 * config/alpha/alpha-protos.h: Update.
13140
13141 2007-04-20 Richard Henderson <rth@redhat.com>
13142
13143 * config/alpha/alpha.h (CPP_SPEC, CPP_SUBTARGET_SPEC): Remove.
13144 (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
13145 * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
13146 * config/alpha/linux-elf.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
13147 * config/alpha/freebsd.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
13148 (CPP_SPEC): Don't include %(cpp_subtarget).
13149 * config/alpha/netbsd.h (CPP_SPEC): Rename CPP_SUBTARGET_SPEC.
13150 (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
13151 * config/alpha/osf.h (CPP_SPEC, EXTRA_SPECS): Similarly.
13152
13153 2007-04-20 Jakub Jelinek <jakub@redhat.com>
13154
13155 * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
13156 for __builtin_ia32_cmpordss.
13157
13158 PR tree-optimization/31632
13159 * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
13160 and arg1 for optimizations of comparison against min/max values.
13161 Fold arg0 to arg1's type for optimizations of comparison against
13162 min+1 and max-1 values.
13163
13164 2007-04-19 Bernd Schmidt <bernd.schmidt@analog.com>
13165
13166 * reload.c (combine_reloads): When trying to use a dying register,
13167 check whether it's uninitialized and don't use if so.
13168
13169 2007-04-19 Brooks Moses <brooks.moses@codesourcery.com>
13170
13171 * fold-const.c: Remove prototypes for native_encode_expr and
13172 native_interpret_expr.
13173 (native_encode_expr): Make non-static.
13174 (native_interpret_expr): Likewise.
13175 * tree.h: Add prototypes for the above.
13176
13177 2007-04-19 Joseph Myers <joseph@codesourcery.com>
13178
13179 * config/rs6000/spe.md (*frob_tf_ti, *frob_ti_tf, *frob_ti_tf_2,
13180 *mov_si<mode>_e500_subreg0, *mov_si<mode>_e500_subreg0_2,
13181 *mov_sitf_e500_subreg8, *mov_sitf_e500_subreg8_2, spe_extenddftf2,
13182 spe_fix_trunctfsi2_internal, spe_negtf2_internal, cmptfeq_gpr,
13183 tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
13184 Add length attributes.
13185
13186 2007-04-19 Janis Johnson <janis187@us.ibm.com>
13187
13188 * ginclude/float.h: Check that __STDC_WANT_DEC_FP__ is defined,
13189 not that it is 1.
13190
13191 * c-cppbuiltin.c (c_cpp_builtins): Remove definition of
13192 __STDC_WANT_DEC_FP__.
13193
13194 2007-04-19 Joseph Myers <joseph@codesourcery.com>
13195
13196 * configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
13197 for long double compatibility.
13198 * configure: Regenerate.
13199
13200 2007-04-19 Eric Botcazou <ebotcazou@libertysurf.fr>
13201
13202 PR rtl-optimization/29841
13203 * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
13204 trap instructions.
13205 * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
13206 that may cause control flow transfer from being moved.
13207
13208 2007-04-18 Jan Hubicka <jh@suse.cz>
13209
13210 * fold-const.c (div_if_zero_remainder): Do signed divide for pointer
13211 types.
13212
13213 2007-04-18 Eric Christopher <echristo@apple.com>
13214
13215 * config/rs6000/darwin.md (load_macho_picbase): Use link register
13216 only. Update operands.
13217 * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
13218 * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
13219 link register to pic register.
13220
13221 2007-04-18 Dirk Mueller <dmueller@suse.de>
13222
13223 PR diagnostic/31227
13224 * tree-vrp.c (search_for_addr_array): New.
13225 (check_array_bounds): Suppress warning about
13226 address taken of array refs if its not de-referenced.
13227
13228 2007-04-18 Dorit Nuzman <dorit@il.ibm.com>
13229
13230 * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
13231 * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.
13232
13233 * tree-vectorizer.h (NITERS_KNOWN_P): New.
13234 * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
13235 instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.
13236
13237 * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
13238 dump print.
13239 (vect_analyze_operations): Fix indenetation. Fix a comment. Fix a
13240 print message.
13241 (vect_analyze_scalar_cycles): Fix indentation.
13242 (vect_enhance_data_refs_alignment): Fix check in case of peeling.
13243 (vect_mark_relevant): Include phis in relevance analysis.
13244
13245 * tree-vect-transform.c (vect_transform_loop): Add an assert.
13246
13247 2007-04-18 Anatoly Sokolov <aesok@post.ru>
13248
13249 * config/avr/avr.c (ptrreg_to_str): Replace error() with
13250 output_operand_lossage().
13251
13252 2007-04-18 Dorit Nuzman <dorit@il.ibm.com>
13253
13254 * tree-vect-transform.c (get_initial_def_for_reduction): Clean away
13255 the unused code for reduction without adjust-in-epilog to simplify the
13256 function.
13257
13258 2007-04-18 Wolfgang Gellerich <gellerich@de.ibm.com>
13259
13260 * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant.
13261 (S390_TDC_NEGATIVE_ZERO): New constant.
13262 (S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant.
13263 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant.
13264 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant.
13265 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant.
13266 (S390_TDC_POSITIVE_INFINITY): New constant.
13267 (S390_TDC_NEGATIVE_INFINITY): New constant.
13268 (S390_TDC_POSITIVE_QUIET_NAN): New constant.
13269 (S390_TDC_NEGATIVE_QUIET_NAN): New constant.
13270 (S390_TDC_POSITIVE_SIGNALING_NAN): New constant.
13271 (S390_TDC_NEGATIVE_SIGNALING_NAN): New constant.
13272 (S390_TDC_INFINITY): New constant.
13273 * config/s390/s390.c (s390_canonicalize_comparison): Renamed
13274 UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like
13275 optimization for UNSPEC_CCZ_TO_INT.
13276 * config/s390/s390.md ("*TDC_insn_<mode>"): New insn.
13277 ("*ccz_to_int"): New insn.
13278 ("isinf<mode>2"): New insn.
13279 (UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT.
13280 (UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT.
13281 (UNSPEC_CCZ_TO_INT): New constant.
13282
13283 2007-04-18 Richard Guenther <rguenther@suse.de>
13284
13285 PR tree-optimization/19431
13286 PR tree-optimization/21463
13287 * tree-pass.h (pass_phiprop): Declare.
13288 * passes.c (init_optimization_passes): New phiprop pass.
13289 * tree-ssa-forwprop.c (struct phiprop_d): New structure.
13290 (phivn_valid_p): New helper function.
13291 (phiprop_insert_phi): Likewise.
13292 (propagate_with_phi): Likewise.
13293 (tree_ssa_phiprop): New propagator propagating loads
13294 through phi nodes if profitable.
13295
13296 2007-04-18 Dorit Nuzman <dorit@il.ibm.com>
13297
13298 * tree-vect-analyze.c (process_use): New function.
13299 (vect_mark_stmts_to_be_vectorized): Factor out code to process_use.
13300 Check phis in all bbs.
13301 * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant
13302 assert.
13303
13304 2007-04-18 Bernd Schmidt <bernd.schmidt@analog.com>
13305
13306 * reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way
13307 we use REG_EQUAL.
13308
13309 2007-04-17 Anatoly Sokolov <aesok@post.ru>
13310
13311 PR target/30483
13312 * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
13313 error().
13314
13315 2007-04-17 H.J. Lu <hongjiu.lu@intel.com>
13316
13317 * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
13318 on "0".
13319 (sse_vmmulv4sf3): Likewise.
13320 (sse2_vmaddv2df3): Likewise.
13321 (sse2_vmmulv2df3): Likewise.
13322
13323 2007-04-17 Zdenek Dvorak <dvorakz@suse.cz>
13324
13325 PR rtl-optimization/31360
13326 * cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
13327 (target_reg_cost): New.
13328 (init_set_costs): Initialize target_reg_cost. Add comments
13329 regarding the rationale of the costs.
13330 (global_cost_for_size): Renamed to...
13331 (estimate_reg_pressure_cost): ... and simplify. Decrease importance
13332 of register pressure.
13333 * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
13334 estimate_reg_pressure_cost. Add number of ivs.
13335 (determine_set_costs): Dump target_reg_cost.
13336 * loop-invariant.c (gain_for_invariant): Use
13337 estimate_reg_pressure_cost. Removed n_inv_uses argument.
13338 (best_gain_for_invariant, find_invariants_to_move): Remove
13339 n_inv_uses.
13340 * cfgloop.h (target_small_cost, target_pres_cost): Removed.
13341 (target_reg_cost): Declare.
13342 (global_cost_for_size): Declaration removed.
13343 (estimate_reg_pressure_cost): Declare.
13344
13345 2007-04-17 Peter Bergner <bergner@vnet.ibm.com>
13346
13347 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode
13348 regnos into even/odd register pairs.
13349 * config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and
13350 TDmode similar to the other floating point modes.
13351 [SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode.
13352 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New
13353 define_expand's.
13354 (negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr,
13355 nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's.
13356 (movdd_hardfloat64): Use TARGET_MFPGPR.
13357
13358 2007-04-17 Bernd Schmidt <bernd.schmidt@analog.com>
13359
13360 * reload1.c (delete_output_reload): Don't count output in n_inherited.
13361
13362 Revert
13363 2005-01-05 Richard Henderson <rth@redhat.com>
13364 PR rtl-opt/10692
13365 * reload1.c (do_input_reload): Restrict the optimization deleteing
13366 a previous output reload to RELOAD_FOR_INPUT.
13367
13368 2007-04-17 Dorit Nuzman <dorit@il.ibm.com>
13369
13370 * tree-vectorizer.h (stmt_vec_info_type): Add enum value
13371 induc_vec_info_type.
13372 (vectorizable_induction): New function declaration.
13373 * tree-vect-transform.c (get_initial_def_for_induction): No need to
13374 check if already vectorized. Find first place in BB where new stmts
13375 can be inserted. Takes only one argument.
13376 (vectorizable_induction): New function.
13377 (vect_transform_stmt): Add case for induc_vec_info_type to call
13378 vectorizable_induction.
13379 (vect_transform_loop): Consider phis for vectorization.
13380 * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
13381 condition.
13382 (analyze_operations): Call vectorizable_induction when analyzing phis.
13383 Fix comment.
13384 (vect_mark_stmts_to_be_vectorized): Remove redundant checks.
13385 (vect_mark_relevant): Include phis in relevance analysis.
13386 (vect_mark_stmts_to_be_vectorize): Likewise.
13387 * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts.
13388
13389 2007-04-16 Lawrence Crowl <crowl@google.com>
13390
13391 * doc/invoke.texi (Debugging Options): Add documentation for the
13392 -femit-struct-debug options -femit-struct-debug-baseonly,
13393 -femit-struct-debug-reduced, and
13394 -femit-struct-debug-detailed[=...].
13395
13396 * c-opts.c (c_common_handle_option): Add
13397 OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
13398 and OPT_femit_struct_debug_detailed_.
13399 * c.opt: Add specifications for
13400 -femit-struct-debug-baseonly, -femit-struct-debug-reduced,
13401 and -femit-struct-debug-detailed[=...].
13402 * opts.c (set_struct_debug_option): Parse the
13403 -femit-struct-debug-... options.
13404 * opts.c (matches_main_base, main_input_basename,
13405 main_input_baselength, base_of_path, matches_main_base): Add
13406 variables and functions to compare header base name to compilation
13407 unit base name.
13408 * opts.c (should_emit_struct_debug): Add to determine to emit a
13409 structure based on the option.
13410 (dump_struct_debug) Also disabled function to debug this
13411 function.
13412 * opts.c (handle_options): Save the base name of the
13413 compilation unit.
13414
13415 * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
13416 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
13417 This hook indicates if a type is generic. Set it by default
13418 to "never generic".
13419 * langhooks.h (struct lang_hooks_for_types): Add a new hook
13420 to determine if a struct type is generic or not.
13421 * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
13422 * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
13423 * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
13424 with live C++ hook.
13425
13426 * flags.h (enum debug_info_usage): Add an enumeration to describe
13427 a program's use of a structure type.
13428 * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
13429 to indicate the program's usage of the type. Filter structs based
13430 on the -femit-struct-debug-... specification.
13431 (gen_type_die): Split into two routines, gen_type_die and
13432 gen_type_die_with_usage. gen_type_die is now a wrapper
13433 that assumes direct usage.
13434 (gen_type_die_with_usage): Replace calls to gen_type_die
13435 with gen_type_die_with_usage adding the program usage of
13436 the referenced type.
13437 (dwarf2out_imported_module_or_decl): Suppress struct debug
13438 information using should_emit_struct_debug when appropriate.
13439
13440 2007-04-16 Ian Lance Taylor <iant@google.com>
13441
13442 PR tree-optimization/31522
13443 * tree-vrp.c (vr_phi_edge_counts): New static variable.
13444 (vrp_initialize): Allocate vr_phi_edge_counts.
13445 (vrp_visit_phi_node): Don't push to infinity if we saw a new
13446 executable edge. Drop test for all constants.
13447 (vrp_finalize): Free vrp_phi_edge_counts.
13448
13449 * doc/cpp.texi (Common Predefined Macros): Clarify description of
13450 __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
13451
13452 * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
13453 predecessors at head rather than tail.
13454
13455 2007-04-16 Matthias Klose <doko@debian.org>
13456
13457 * config/alpha/linux.h (CPP_SPEC): Define.
13458 * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
13459
13460 2007-04-16 Aldy Hernandez <aldyh@redhat.com>
13461
13462 * function.h: Remove sequence_stack extern declaration.
13463
13464 2007-04-16 Kazu Hirata <kazu@codesourcery.com>
13465
13466 * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
13467 TARGET_FIDOA.
13468 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
13469 defined.
13470
13471 2007-04-16 Anatoly Sokolov <aesok@post.ru>
13472
13473 * config/avr/avr.c (avr_arch_types): Rearranging array.
13474 (enum avr_arch): Add.
13475 (avr_mcu_types): Use avr_arch enumeration constants instead of
13476 numbers.
13477 * config/avr/avr.h (LINK_SPEC): Simplify.
13478
13479 2007-04-16 Kazu Hirata <kazu@codesourcery.com>
13480
13481 * config/m68k/m68k.c (m68k_libcall_value,
13482 m68k_function_value): Use macros for register names more.
13483
13484 * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
13485 instead.
13486 (M68K_REGNAME): Use A6_REG.
13487 * config/m68k/m68k.md (FP_REG): Rename to A6_REG.
13488
13489 2007-04-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
13490
13491 PR middle-end/28071
13492 * sched-int.h (struct deps): Split field 'pending_lists_length' into
13493 'pending_read_list_length' and 'pending_write_list_length'. Update
13494 comment.
13495 * sched-deps.c (add_insn_mem_dependence): Change signature. Update
13496 to handle two length counters instead of one. Update all uses.
13497 (flush_pending_lists, sched_analyze_1, init_deps): Update to handle
13498 two length counters instead of one.
13499 * sched-rgn.c (propagate_deps): Update to handle two length counters
13500 instead of one.
13501
13502 2007-04-16 H.J. Lu <hongjiu.lu@intel.com>
13503
13504 PR target/31582
13505 * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
13506 copy of source, pass it to ix86_expand_vector_set and return
13507 it as target.
13508
13509 2007-04-16 David Ung <davidu@mips.com>
13510 Joseph Myers <joseph@codesourcery.com>
13511
13512 * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
13513 PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
13514 * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
13515 Add 74K processor information.
13516 * config/mips/mips.md: Include 74k.md.
13517 (cpu): Add 74kc,74kf,74kx.
13518 (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
13519 * config/mips/74k.md: New.
13520 * doc/invoke.texi (MIPS Options): Document 74K support.
13521
13522 2007-04-16 Dorit Nuzman <dorit@il.ibm.com>
13523
13524 * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
13525 vectorizable_* functions.
13526 * tree-vect-transform.c (vectorizable_call): Add check for
13527 STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
13528 (vectorizable_store): likewise.
13529 (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
13530 Add comments.
13531 (vectorizable_operation, vectorizable_type_demotion): Likewise.
13532 (vectorizable_type_promotion, vectorizable_load): Likewise.
13533 (vectorizable_live_operation, vectorizable_condition): Likewise.
13534 (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
13535 STMT_VINFO_LIVE_P.
13536 (vect_transform_stmt): Reorganize calls to vectorizable_* functions.
13537
13538 2007-04-15 Kazu Hirata <kazu@codesourcery.com>
13539
13540 * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
13541 register numbers more.
13542 * config/m68k/m68k.h (STACK_POINTER_REGNUM,
13543 FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
13544 M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
13545 FUNCTION_VALUE_REGNO_P): Likewise.
13546 * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
13547 STATIC_CHAIN_REGNUM): Likewise.
13548 * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
13549 * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
13550 STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
13551 * config/m68k/m68k.md (FP_REG): New.
13552
13553 2007-04-15 Kazu Hirata <kazu@codesourcery.com>
13554
13555 * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
13556 alignment on fido.
13557
13558 2007-04-15 Kazu Hirata <kazu@codesourcery.com>
13559
13560 * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
13561 tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
13562 comment typos.
13563
13564 2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
13565
13566 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
13567 cold loops.
13568
13569 2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
13570
13571 PR c/31520
13572 * c-decl.c (finish_decl): Grab the type of the decl after the call
13573 to store_init_value.
13574
13575 2007-04-14 Steven Bosscher <steven@gcc.gnu.org>
13576
13577 * common.opt (fforward-propagate): Fix "Optimization" annotation.
13578
13579 2007-04-14 Jakub Jelinek <jakub@redhat.com>
13580
13581 PR c++/25874
13582 * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free
13583 dominators, post dominators and cleanup cfg before returning.
13584
13585 2007-04-14 Bernd Schmidt <bernd.schmidt@analog.com>
13586
13587 * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
13588 * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.
13589
13590 2007-04-14 Kazu Hirata <kazu@codesourcery.com>
13591
13592 * config.gcc: Recognize fido.
13593 * config/m68k/m68k-devices.def (fidoa): New.
13594 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
13595 __mfido__.
13596 (FL_FIDOA, TARGET_FIDOA): New.
13597 * config/m68k/m68k.opt (mfidoa): New.
13598
13599 2007-04-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13600
13601 PR middle-end/31322
13602 * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
13603 when a personality function is used.
13604
13605 2007-04-13 Bob Wilson <bob.wilson@acm.org>
13606
13607 * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
13608
13609 2007-04-13 Mike Stump <mrs@apple.com>
13610
13611 * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
13612 we can...
13613 * config/darwin.opt (fapple-kext): Make C++ only.
13614 * config/darwin.c (darwin_override_options): Remove code to ensure
13615 -fapple-kext is given for C++ only.
13616
13617 2007-04-13 Richard Sandiford <richard@codesourcery.com>
13618
13619 * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
13620 * config/mips/mips.c (override_options): Call
13621 SUBTARGET_OVERRIDE_OPTIONS, if defined.
13622
13623 2007-04-13 H.J. Lu <hongjiu.lu@intel.com>
13624
13625 * config/i386/i386.opt (msvr3-shlib): Removed.
13626
13627 * doc/invoke.texi: Remove -msvr3-shlib.
13628
13629 2007-04-13 H.J. Lu <hongjiu.lu@intel.com>
13630
13631 * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
13632 with "popcnt" instruction.
13633
13634 2007-04-13 Richard Guenther <rguenther@suse.de>
13635
13636 PR tree-optimization/21258
13637 * tree-vrp.c (compare_case_labels): New helper.
13638 (find_switch_asserts): New function.
13639 (find_assert_locations): Call it for SWITCH_EXPRs.
13640
13641 2007-04-13 Uros Bizjak <ubizjak@gmail.com>
13642
13643 * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
13644 * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
13645 check is now implied in X87_FLOAT_MODE_P.
13646 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
13647 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
13648 (fix_trunc<mode>_i386_fisttp): Ditto.
13649 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
13650 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
13651 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
13652 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
13653 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
13654 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
13655 (unnamed_splitters): Ditto.
13656 * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
13657 for X87_FLOAT_MODE_P mode. Override FIRST_FLOAT_REG with
13658 FIRST_SSE_REG for local functions when SSE math is enabled or
13659 for functions with sseregparm attribute.
13660 (standard_80387_constant_p): Return -1 if mode is not
13661 X87_FLOAT_MODE_P.
13662 (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
13663 (ix86_expand_compare): Ditto.
13664 (ix86_expand_carry_flag_compare): Ditto.
13665 (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
13666 of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
13667 DECIMAL_FLOAT_MODE_P.
13668 (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
13669 of SCALAR_FLOAT_MODE_P.
13670 (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
13671 [MINUS]: ... here. Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
13672 checks before FLOAT_MODE_P.
13673 [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
13674 before FLOAT_MODE_P.
13675 [DIV]: Ditto.
13676 [NEG]: Ditto.
13677 [ABS]: Ditto.
13678 [SQRT]: Ditto.
13679 [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
13680
13681 2007-04-12 Paolo Bonzini <bonzini@gnu.org>
13682 Charles Wilson <libtool@cwilson.fastmail.fm>
13683
13684 * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
13685 (libgcc.mvars): Don't depend on them.
13686 * configure.ac (as, collect-ld, nm): Create from exec-tool.in.
13687 * exec-tool.in: New.
13688
13689 2007-04-12 Brooks Moses <brooks.moses@codesourcery.com>
13690
13691 * doc/invoke.text (--help): Document --help=common.
13692
13693 2007-04-12 Thomas Neumann <tneumann@users.sourceforge.net>
13694
13695 * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
13696
13697 2007-04-12 Richard Sandiford <richard@codesourcery.com>
13698
13699 * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
13700 * genemit.c (main): Emit #include "integrate.h".
13701 * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
13702 (LOADGP_RTP): New mips_loadgp_style.
13703 * config/mips/mips.h: Include config/vxworks-dummy.h.
13704 (TARGET_RTP_PIC): New macro.
13705 (TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
13706 (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
13707 (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
13708 for TARGET_RTP_PIC.
13709 * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define. Pass down
13710 -mvxworks-pic when using -mrtp and a PIC option.
13711 * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
13712 for RTP PIC.
13713 (mips_symbolic_constant_p, mips_symbolic_address_p)
13714 (mips_symbol_insns): Handle SYMBOL_HALF.
13715 (override_options): Warn about -G and -mrtp being used together.
13716 Initialize mips_lo_relocs[SYMBOL_HALF].
13717 (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
13718 (mips_emit_loadgp): Handle LOADGP_RTP.
13719 (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
13720 * config/mips/mips.md (loadgp_rtp): New insn and splitter.
13721 (tablejump): Handle function-relative case table entries if
13722 TARGET_RTP_PIC.
13723 * config/mips/predicates.md (symbol_ref_operand): New predicate.
13724
13725 2007-04-12 Richard Sandiford <richard@codesourcery.com>
13726
13727 * config/mips/mips.md (load_call<mode>): Allow any general register.
13728 destination.
13729 (sibcall_value_internal, sibcall_value_multiple_internal)
13730 (call_value_internal, call_value_split, call_value_multiple_internal)
13731 (call_value_multiple_split): Remove constraints from operand 0.
13732
13733 2007-04-12 Richard Sandiford <richard@codesourcery.com>
13734
13735 * config/mips/mips-protos.h: In comments, refer to loadgp_absolute
13736 rather than loadgp_noshared.
13737 * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
13738 instead of gen_loadgp_noshared. Use gen_loadgp_newabi instead of
13739 gen_loadgp.
13740 * config/mips/mips.md (loadgp): Rename to...
13741 (loadgp_newabi): ...this.
13742 (loadgp_noshared): Rename to...
13743 (loadgp_absolute): ...this.
13744
13745 2007-04-12 Richard Sandiford <richard@codesourcery.com>
13746
13747 * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
13748 false for locally-binding symbols.
13749 (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
13750
13751 2007-04-12 Richard Sandiford <richard@codesourcery.com>
13752
13753 * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
13754 (SYMBOL_GOT_PAGE_OFST): ...this.
13755 (SYMBOL_GOT_GLOBAL): Rename to...
13756 (SYMBOL_GOT_DISP): ...this.
13757 (SYMBOL_GOTOFF_GLOBAL): Rename to...
13758 (SYMBOL_GOTOFF_DISP): ...this. Update comments accordingly.
13759 * config/mips/mips.c (mips_global_symbol_p): New function.
13760 (mips_symbol_binds_local_p): Likewise.
13761 (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
13762 and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST. Use
13763 mips_global_symbol_p and mips_symbol_binds_local_p.
13764 (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
13765 (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
13766 SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
13767 SYMBOL_GOTOFF_DISP.
13768 (mips_ok_for_lazy_binding_p): New function.
13769 (mips_load_call_address, mips_expand_call): Use it.
13770 (mips_dangerous_for_la25_p): Likewise.
13771 * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
13772 (*got_disp<mode>): Use got_disp_operand instead of
13773 global_got_operand. Use SYMBOL_GOTOFF_DISP instead of
13774 SYMBOL_GOTOFF_GLOBAL.
13775 (*got_page<mode>): Use got_page_ofst_operand instead of
13776 local_got_operand.
13777 * config/mips/predicates.md (const_call_insn_operand): Use
13778 SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
13779 (global_got_operand): Rename to...
13780 (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
13781 SYMBOL_GOT_GLOBAL.
13782 (local_got_operand): Rename to...
13783 (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
13784 of SYMBOL_GOT_LOCAL.
13785
13786 2007-04-12 Richard Sandiford <richard@codesourcery.com>
13787
13788 * config/mips/mips.h (TARGET_SPLIT_CALLS): Check
13789 TARGET_CALL_CLOBBERED_GP.
13790 (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
13791 (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
13792 (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
13793 (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
13794 of TARGET_ABICALLS && !TARGET_NEWABI.
13795 (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
13796 * config/mips/mips.c (mips_load_call_address): Check
13797 TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
13798 (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
13799 Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
13800 (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
13801 TARGET_ABICALLS && TARGET_NEWABI.
13802 (mips_current_loadgp_style): Check TARGET_USE_GOT instead of
13803 TARGET_ABICALLS.
13804 (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
13805 (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
13806 TARGET_ABICALLS && TARGET_NEWABI.
13807 (mips_output_mi_thunk): Check TARGET_USE_GOT instead of
13808 TARGET_ABICALLS. Check TARGET_CALL_SAVED_GP instead of
13809 TARGET_NEWABI. Use TARGET_USE_PIC_FN_ADDR_REG to decide
13810 whether indirect calls must use $25.
13811 (mips_extra_live_on_entry): Check TARGET_GOT instead of
13812 TARGET_ABICALLS.
13813 * config/mips/mips.md (jal_macro): Check flag_pic and
13814 TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
13815 (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
13816 instead of TARGET_ABICALLS.
13817 (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
13818 TARGET_ABICALLS && TARGET_OLDABI.
13819 (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
13820 (sibcall): In the comment above the define_insn, mention
13821 TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
13822 * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
13823 instead of TARGET_ABICALLS.
13824
13825 2007-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
13826
13827 * doc/md.texi (Blackfin family constraints): Document PA and PB.
13828 * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
13829 (MACFLAGS_MATCH_P): New macro.
13830 * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
13831 (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
13832 * config/bfin/bfin.md (MACFLAG_IS_M): New constant. Renumber some of
13833 the other MACFLAG constants.
13834 (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
13835 (flag_machi): Tighten constraints. Renumber some of the operands.
13836 (flag_machi_acconly): Tighten constraints. Correct operand numbers in
13837 output template.
13838 (flag_machi_parts_acconly): New pattern.
13839 (flag_macinithi): Tighten constraints. Allow any accumulator to be
13840 used.
13841 (flag_macinit1hi): Tighten constraints.
13842 (flag_mul_macv2hi_parts_acconly): New pattern.
13843
13844 * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
13845 Use a more efficient implementation.
13846 * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
13847 inline sequences when not optimizing for size.
13848
13849 * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
13850 movhi_high2low): Delete, merge functionality into...
13851 (packv2hi): ... this pattern.
13852
13853 2007-02-11 Jie Zhang <jie.zhang@analog.com>
13854 * config/bfin/bfin.opt (msim): New option.
13855 (mcpu=): New option.
13856 * config/bfin/bfin-protos.h (enum bfin_cpu): New.
13857 (bfin_cpu_t): Typedef of enum bfin_cpu.
13858 (bfin_cpu_type): New declaration.
13859 * config/bfin/elf.h (STARTFILE_SPEC): Add support for
13860 -msim and -mcpu= options.
13861 (LIB_SPEC): Likewise.
13862 * config/bfin/bfin.c (bfin_cpu_type): Define.
13863 (bfin_handle_option): Handle -mcpu= option.
13864 * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
13865 (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
13866 __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
13867
13868 2007-04-12 Richard Sandiford <richard@codesourcery.com>
13869
13870 * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
13871 (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
13872 (powerpc-wrs-vxworksae): Use ${tm_file}.
13873 (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
13874 after elfos.h. Remove i386/sysv4.h and add i386/vx-common.h.
13875 * config/i386/vx-common.h: New file.
13876
13877 2007-04-12 Richard Sandiford <richard@codesourcery.com>
13878
13879 * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
13880 of crt0.o%s.
13881
13882 2007-04-12 Andreas Krebbel <krebbel1@de.ibm.com>
13883
13884 * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
13885 ldxtr.
13886
13887 2007-04-12 Douglas Gregor <doug.gregor@gmail.com>
13888
13889 PR c++/31078
13890 PR c++/31103
13891 * c-common.c (c_build_qualified_type): Set canonical type
13892 appropriately.
13893
13894 2007-04-12 Richard Guenther <rguenther@suse.de>
13895
13896 * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
13897 lower bound and element size if lower bound is not zero
13898 or either of the ARRAY_REF operands is set.
13899
13900 2007-04-12 Richard Guenther <rguenther@suse.de>
13901
13902 PR tree-optimization/24689
13903 PR tree-optimization/31307
13904 * fold-const.c (operand_equal_p): Compare INTEGER_CST array
13905 indices by value.
13906 * gimplify.c (canonicalize_addr_expr): To be consistent with
13907 gimplify_compound_lval only set operands two and three of
13908 ARRAY_REFs if they are not gimple_min_invariant. This makes
13909 it never at this place.
13910 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
13911
13912 2007-04-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13913
13914 * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
13915 null before emitting a .nsubspa directive.
13916
13917 2007-04-11 Diego Novillo <dnovillo@redhat.com>
13918
13919 * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
13920 need_to_partition_p if there are no memory statements in the
13921 function.
13922
13923 2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
13924
13925 * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
13926 (gcd_of_steps_may_divide_p): New function.
13927 (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
13928
13929 2007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
13930
13931 * reload.c (find_reloads_toplev, find_reloads_address,
13932 find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
13933 not a pointer equality test, to decide if we need to call
13934 push_reg_equiv_alt_mem.
13935
13936 2007-04-11 Sebastian Pop <sebastian.pop@inria.fr>
13937
13938 * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
13939 insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps):
13940 New.
13941 (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
13942
13943 2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
13944
13945 * tree-data-ref.c (add_multivariate_self_dist): Force the distance
13946 vector to be positive.
13947
13948 2007-04-11 Diego Novillo <dnovillo@redhat.com>
13949
13950 PR 30735
13951 PR 31090
13952 * doc/invoke.texi: Document --params max-aliased-vops and
13953 avg-aliased-vops.
13954 * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
13955 debug_memory_partitions): Move to tree-flow.h
13956 * params.h (AVG_ALIASED_VOPS): Define.
13957 * tree-ssa-alias.c (struct mp_info_def): Remove. Update all
13958 users.
13959 (mp_info_t): Likewise.
13960 (get_mem_sym_stats_for): New.
13961 (set_memory_partition): Move from tree-flow-inline.h.
13962 (mark_non_addressable): Only clear the set of symbols for the
13963 partition if it exists.
13964 (dump_memory_partitions): Move from tree-ssa-operands.c
13965 (debug_memory_partitions): Likewise.
13966 (need_to_partition_p): New.
13967 (dump_mem_ref_stats): New.
13968 (debug_mem_ref_stats): New.
13969 (dump_mem_sym_stats): New.
13970 (debug_mem_sym_stats): New.
13971 (update_mem_sym_stats_from_stmt): New.
13972 (compare_mp_info_entries): New.
13973 (mp_info_cmp): Call it.
13974 (sort_mp_info): Change argument to a list of mem_sym_stats_t
13975 objects.
13976 (get_mpt_for): Move from tree-ssa-operands.c.
13977 (find_partition_for): New.
13978 (create_partition_for): Remove.
13979 (estimate_vop_reduction): New.
13980 (update_reference_counts): New.
13981 (build_mp_info): New.
13982 (compute_memory_partitions): Refactor.
13983 Document new heuristic.
13984 Call build_mp_info, update_reference_counts,
13985 find_partition_for and estimate_vop_reduction.
13986 (compute_may_aliases): Populate virtual operands before
13987 calling debugging dumps.
13988 (delete_mem_sym_stats): New.
13989 (delete_mem_ref_stats): New.
13990 (init_mem_ref_stats): New.
13991 (init_alias_info): Call it.
13992 (maybe_create_global_var): Remove alias_info argument.
13993 Get number of call sites and number of pure/const call sites
13994 from gimple_mem_ref_stats().
13995 (dump_alias_info): Call dump_memory_partitions first.
13996 (dump_points_to_info_for): Show how many times a pointer has
13997 been dereferenced.
13998 * opts.c (decode_options): For -O2 set --param
13999 max-aliased-vops to 500.
14000 For -O3 set --param max-aliased-vops to 1000 and --param
14001 avg-aliased-vops to 3.
14002 * fortran/options.c (gfc_init_options): Remove assignment to
14003 MAX_ALIASED_VOPS.
14004 * tree-flow-inline.h (gimple_mem_ref_stats): New.
14005 * tree-dfa.c (dump_variable): Dump memory reference
14006 statistics.
14007 Dump NO_ALIAS* settings.
14008 (referenced_var_lookup): Tidy.
14009 (mem_sym_stats): New.
14010 * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
14011 and ORIG are different SSA names for a memory partition.
14012 * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
14013 * tree-flow.h (struct mem_sym_stats_d): Define.
14014 (mem_sym_stats_t): Define.
14015 (struct mem_ref_stats_d): Define.
14016 (struct gimple_df): Add field mem_ref_stats.
14017 (enum noalias_state): Define.
14018 (struct var_ann_d): Add bitfield noalias_state.
14019 (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
14020 debug_mem_ref_stats, debug_memory_partitions,
14021 debug_mem_sym_stats): Declare.
14022 * tree-ssa-structalias.c (update_alias_info): Update call
14023 sites, pure/const call sites and asm sites in structure
14024 returned by gimple_mem_ref_stats.
14025 Remove local variable IS_POTENTIAL_DEREF.
14026 Increase NUM_DEREFS if the memory expression is a potential
14027 dereference.
14028 Call update_mem_sym_stats_from_stmt.
14029 If the memory references memory, call
14030 update_mem_sym_stats_from_stmt for all the direct memory
14031 symbol references found.
14032 (intra_create_variable_infos): Set noalias_state field for
14033 pointer arguments according to the value of
14034 flag_argument_noalias.
14035 * tree-ssa-structalias.h (struct alias_info): Remove fields
14036 num_calls_found and num_pure_const_calls_found.
14037 (update_mem_sym_stats_from_stmt): Declare.
14038 * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
14039 Set default value to 100.
14040 (PARAM_AVG_ALIASED_VOPS): Define.
14041
14042 2007-04-11 Richard Guenther <rguenther@suse.de>
14043
14044 PR middle-end/31530
14045 * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
14046 a * -b + c as c - a * b if we honor sign dependent rounding.
14047
14048 2007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
14049
14050 * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
14051 bfin_expand_strmov.
14052 * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
14053 bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
14054 variables.
14055 (initialize_trampoline): Don't use old-style function definition.
14056 (bfin_secondary_reload): Mark IN_P argument as unused.
14057
14058 2007-04-10 Sebastian Pop <sebastian.pop@inria.fr>
14059
14060 PR tree-optimization/31343
14061 * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
14062 (build_polynomial_chrec): Return a scalar when the evolution is zero.
14063 * testsuite/gcc.dg/vect/pr31343.c: New.
14064
14065 2007-04-10 Eric Christopher <echristo@apple.com>
14066
14067 * config/i386/i386.h (X87_FLOAT_MODE_P): New.
14068 * config/i386/i386.md (*cmpfp0): Use.
14069 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
14070 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
14071 (fix_trunc<mode>_i386_fisttp): Ditto.
14072 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
14073 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
14074 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
14075 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
14076 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
14077 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
14078 (unnamed_splitters): Ditto.
14079 * config/i386/i386.c (output_fix_trunc): Assert that
14080 we're not being passed a TFmode operand.
14081
14082 2007-04-10 Zdenek Dvorak <dvorakz@suse.cz>
14083
14084 PR tree-optimization/31526
14085 * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
14086 n_basic_blocks to find newly added blocks.
14087
14088 2007-04-10 Uros Bizjak <ubizjak@gmail.com>
14089
14090 * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
14091 alternative.
14092 (fix_trunc<mode>si_sse): Ditto.
14093 (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
14094 (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
14095 (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
14096 (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
14097 (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
14098 expander using SSEMODEF mode macro.
14099 (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
14100 expander using SSEMODEF mode macro.
14101 (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
14102 *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
14103 (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
14104 *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
14105 (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
14106 *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
14107 (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
14108 Macroize insn using X87MODEF mode macro.
14109
14110 2007-04-09 H.J. Lu <hongjiu.lu@intel.com>
14111
14112 * config/i386/sse.md (sse2_pinsrw): Removed.
14113 (sse2_pextrw): Renamed to ...
14114 (*sse2_pextrw): This.
14115
14116 2007-04-09 Jan Hubicka <jh@suse.cz>
14117
14118 PR target/27869
14119 * config/i386/sse.md
14120 (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
14121 (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
14122 (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
14123 (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
14124
14125 2007-04-09 Jan Hubicka <jh@suse.cz>
14126
14127 * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
14128 multiple fields of union.
14129
14130 2007-04-09 Zdenek Dvorak <dvorakz@suse.cz>
14131
14132 * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
14133 (create_preheaders): Check that loops are available.
14134 (fix_loop_structure): Clean up, improve comments.
14135 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
14136 Check that loops are available. Set LOOP_CLOSED_SSA to the loops
14137 state flags.
14138 * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
14139 * predict.c (tree_estimate_probability): Do not call
14140 calculate_dominance_info. Call create_preheaders.
14141 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
14142 rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
14143 flags.
14144 * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
14145 * cfgloop.h (LOOP_CLOSED_SSA): New constant.
14146 * tree-cfg.c (tree_split_edge): Make an assert more precise.
14147 * tree-ssa-threadedge.c (thread_across_edge): Comment the function
14148 arguments.
14149
14150 2007-04-08 Jan Hubicka <jh@suse.cz>
14151
14152 * tree.h (maybe_fold_offset_to_component_ref): Declare.
14153 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
14154 * fold-const.c (fold_unary): Use it.
14155
14156 2007-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
14157
14158 * varasm.c (assemble_variable): Remove call to
14159 lang_hooks.decls.prepare_assemble_variable.
14160 * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
14161 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
14162 * langhooks.h (lang_hooks_for_decls): Remove
14163 prepare_assemble_variable.
14164
14165 2007-04-08 Mike Stump <mrs@apple.com>
14166
14167 * config/i386/i386.c: Use inc/dec on Core2.
14168
14169 2007-04-08 Steven Bosscher <steven@gcc.gnu.org>
14170
14171 * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
14172 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
14173 lhd_tree_inlining_end_inlining): Remove.
14174 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
14175 add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
14176 end_inlining hooks.
14177 * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
14178 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
14179 lhd_tree_inlining_end_inlining): Remove prototypes.
14180 (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
14181 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
14182 LANG_HOOKS_TREE_INLINING_START_INLINING,
14183 LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
14184
14185 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
14186 not set it.
14187
14188 2007-04-08 Anatoly Sokolov <aesok@post.ru>
14189
14190 PR target/29932
14191 * config/avr/predicates.md (io_address_operand): Delete predicate.
14192 (low_io_address_operand): Don't use 'mode' argument.
14193 (higth_io_address_operand): Rename ...
14194 (high_io_address_operand): ... to this. Don't use 'mode' argument.
14195 * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
14196 for above change.
14197
14198 2007-04-07 Daniel Berlin <dberlin@dberlin.org>
14199
14200 Revert change removing staticp.
14201
14202 2007-04-07 Anatoly Sokolov <aesok@post.ru>
14203
14204 PR target/30289
14205 * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
14206 earlyclobber.
14207
14208 2007-04-07 Bruce Korb <bkorb@gnu.org>
14209
14210 * c.opt: Add -Wformat-contains-nul.
14211 * c-format.c (set_Wformat): Set warn_format_contains_nul to the
14212 -Wformat setting.
14213 (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
14214 the NUL byte warning.
14215
14216 2007-04-07 H.J. Lu <hongjiu.lu@intel.com>
14217
14218 * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
14219
14220 2007-04-06 Daniel Berlin <dberlin@dberlin.org>
14221
14222 * tree.c (staticp): No longer use staticp langhook.
14223 * langhooks.c (lhd_staticp): Removed.
14224 * langhooks.h (struct lang_hooks): Remove staticp.
14225 * c-common.c (c_staticp): Remove.
14226 * c-common.h (c_staticp): Ditto.
14227 * langhooks-defs.h (lhd_staticp): Ditto.
14228 (LHD_HOOKS_STATICP): Ditto
14229 * tree.h (gcc_assert_lowered): New macro.
14230
14231 2007-04-06 Zdenek Dvorak <dvorakz@suse.cz>
14232
14233 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
14234 argument "reliable".
14235 (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
14236 Add argument "reliable". Propagate it through calls.
14237 (infer_loop_bounds_from_undefined): Derive number of iterations
14238 estimates from references in blocks that do not dominate loop latch.
14239 (gcov_type_to_double_int): New function.
14240 (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
14241 and expected_loop_iterations_unbounded.
14242 * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
14243 (expected_loop_iterations): Use expected_loop_iterations_unbounded.
14244 * tree-data-ref.c (estimated_loop_iterations): Export.
14245 (get_references_in_stmt): Fix -- do not return addresses of local
14246 objects.
14247 * cfgloop.h (expected_loop_iterations_unbounded,
14248 estimated_loop_iterations): Declare.
14249
14250 2007-04-06 Andreas Tobler <a.tobler@schweiz.org>
14251
14252 * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
14253
14254 2007-04-06 Uros Bizjak <ubizjak@gmail.com>
14255
14256 * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
14257 and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
14258 (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
14259 Use output_387_reg_move().
14260 (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
14261 expander using X87MODEF12 mode macro.
14262 (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
14263 choosing register preferences. Use output_387_reg_move().
14264 (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
14265 instead of "x". Use output_387_reg_move().
14266 (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
14267 *truncxfdf2_i387_noop. Macroize insn using X87MODEF12 mode macro.
14268 (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
14269 *truncxfdf2_i387. Macroize insn using X87MODEF12 mode macro.
14270 Use output_387_reg_move().
14271 (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
14272 mode macro.
14273 (*truncxf?f_i387 splitter): Ditto.
14274
14275 2007-04-06 Daniel Berlin <dberlin@dberlin.org>
14276
14277 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
14278 LANG_HOOKS_SAFE_FROM_P.
14279 * expr.c (safe_from_p): Remove langhook call.
14280 * langhooks.h (lang_hooks): Remove safe_from_p.
14281 (lhd_safe_from_p): Remove prototype.
14282 * langhooks.c (lhd_safe_from_p): Remove.
14283
14284 2007-04-06 Jan Hubicka <jh@suse.cz>
14285
14286 * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
14287 functions.
14288
14289 2007-04-06 Uros Bizjak <ubizjak@gmail.com>
14290
14291 * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
14292 * config/i386/i386.md (*movsf_1, *movdf_nointeger,
14293 *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
14294 *movxf_integer): Use output_387_reg_move() for x87 reg->mem
14295 alternative.
14296 (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
14297 *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
14298
14299 2007-04-05 Richard Henderson <rth@redhat.com>
14300
14301 * config/alpha/alpha.c (print_operand) [+]: Remove.
14302 (alpha_end_function): Print nop if call at end of function.
14303 * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
14304 * config/alpha/alpha.md (UNSPEC_LDGP1): New.
14305 (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
14306 (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
14307 (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
14308 the call pattern. Update peepholes to match.
14309
14310 2007-04-05 Janis Johnson <janis187@us.ibm.com>
14311
14312 * doc/extend.texi (Other Builtins): Add decimal float variants
14313 of signbit.
14314 * builtins.def: Ditto.
14315 * builtins.c (expand_builtin): Ditto.
14316
14317 2007-04-05 Uros Bizjak <ubizjak@gmail.com>
14318 H.J. Lu <hongjiu.lu@intel.com>
14319
14320 PR target/31478
14321 * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
14322 of V8HImode when calling ix86_binary_operator_ok.
14323 (sse2_pmaddwd): Call ix86_binary_operator_ok.
14324 (sdot_prodv8hi): Operands 1 and 2 must be register.
14325
14326 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
14327
14328 * tree-sra.c (try_instantiate_multiple_fields): Needlessly
14329 initialize align to silence bogus warning.
14330
14331 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
14332
14333 PR middle-end/22156
14334 * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove
14335 all_no_warning.
14336 (struct sra_walk_fns): Remove use_all parameter from use.
14337 (sra_hash_tree): Handle BIT_FIELD_REFs.
14338 (sra_elt_hash): Don't hash bitfld blocks.
14339 (sra_elt_eq): Skip them in parent compares as well. Handle
14340 BIT_FIELD_REFs.
14341 (sra_walk_expr): Don't maintain or pass down use_all_p.
14342 (scan_use): Remove use_all parameter.
14343 (scalarize_use): Likewise. Re-expand assignment to
14344 BIT_FIELD_REF of gimple_reg. De-scalarize before input or
14345 output, and re-scalarize after output. Don't mark anything
14346 for no warning.
14347 (scalarize_ldst): Adjust.
14348 (scalarize_walk_gimple_modify_statement): Likewise.
14349 (build_element_name_1): Handle BIT_FIELD_REFs.
14350 (instantiate_element): Don't warn for any element whose parent
14351 is used as a whole.
14352 (instantiate_missing_elements_1): Return the sra_elt.
14353 (canon_type_for_field): New.
14354 (try_instantiate_multiple_fields): New.
14355 (instantiate_missing_elemnts): Use them.
14356 (mark_no_warning): Removed.
14357 (generate_one_element_ref): Handle BIT_FIELD_REFs.
14358 (REPLDUP, sra_build_elt_assignment): New.
14359 (generate_copy_inout): Use them.
14360 (generate_element_copy): Likewise. Handle bitfld differences.
14361 (generate_element_zero): Don't recurse for blocks. Use
14362 sra_build_elt_assignment.
14363 (generate_one_element_int): Take elt instead of var. Use
14364 sra_build_elt_assignment.
14365 (generate_element_init_1): Adjust.
14366 (scalarize_use, scalarize_copy): Use REPLDUP.
14367 (scalarize_ldst): Move assert before dereference.
14368 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
14369
14370 2007-04-05 Steven Bosscher <steven@gcc.gnu.org>
14371
14372 * regmove.c: Fix unused variable warnings due to previous commit.
14373
14374 2007-04-05 Steven Bosscher <steven@gcc.gnu.org>
14375
14376 * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
14377 (regmove_bb_head): Remove.
14378 (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
14379 (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
14380 problems with fixup_match_1.
14381 Don't initialize/free regmove_bb_head.
14382
14383 (reg_is_remote_constant_p): If an insn is in the same basic block
14384 but not before INSN, consider it remote, too.
14385
14386 2007-04-05 Anatoly Sokolov <aesok@post.ru>
14387
14388 PR target/25448
14389 * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
14390 DECL_ASSEMBLER_NAME, not the DECL_NAME.
14391
14392 2007-04-05 H.J. Lu <hongjiu.lu@intel.com>
14393
14394 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
14395 (CONDITIONAL_REGISTER_USAGE): Likewise.
14396
14397 2007-04-04 Richard Henderson <rth@redhat.com>
14398
14399 * config/alpha/lib1funcs.asm: Remove unused file.
14400
14401 2007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
14402
14403 PR other/31356
14404 * opts.c (print_specific_help): Fix --help=<language>
14405 header line.
14406 (common_handle_option): Support --help=common.
14407
14408 2007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
14409
14410 PR other/31353
14411 * gcc.c (main): Do not run the linker if
14412 print_subprocess_help indicates that it shouldn't be
14413 run.
14414
14415 2007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
14416
14417 PR doc/31355
14418 * doc/invoke.texi (--help=): Document <languages> value, fix
14419 formatting in tables of values.
14420
14421 2007-04-04 Danny Smith <dannysmith.users.sourceforge.net>
14422
14423 * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
14424 dllimport attribute of virtual methods.
14425
14426 2007-04-04 Chen Liqin <liqin@sunnorth.com.cn>
14427
14428 * config/score/crti.asm: Change _bss_start to __bss_start.
14429 * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
14430 (OUTGOING_REG_PARM_STACK_SPACE) update.
14431 * config/score/score.opt: add options to make backend support
14432 score5, score5u, score7 and score7d.
14433 * config/score/score.md: Likewise.
14434 * config/score/misc.md: Likewise.
14435 * config/score/mac.md: Likewise.
14436 * doc/invoke.texi: Likewise.
14437 * doc/md.texi: update constraints define.
14438
14439 2007-04-03 Richard Henderson <rth@redhat.com>
14440
14441 * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
14442 an appropriate type, use the mode instead.
14443
14444 2007-04-03 Richard Sandiford <richard@codesourcery.com>
14445
14446 * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
14447 Set the default --with-arch setting to mips2.
14448 * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
14449 (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
14450 (MULTILIB_OSDIRNAMES): Delete.
14451 (MULTILIB_DIRNAMES): Define.
14452 * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
14453 (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
14454 (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
14455 definitions, except for _WRS_R3K_EXC_SUPPORT. Call
14456 VXWORKS_OS_CPP_BUILTINS.
14457 (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
14458 (MIPS_DEBUGGING_INFO): Undefine.
14459 (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
14460
14461 2007-04-03 Jakub Jelinek <jakub@redhat.com>
14462
14463 PR middle-end/30704
14464 * fold-const.c (native_encode_real): Encode real.c provided longs
14465 as a series of 32-bit native integers.
14466 (native_interpret_real): Interpret buffer as a series of 32-bit
14467 native integers.
14468
14469 2007-04-03 Richard Guenther <rguenther@suse.de>
14470
14471 * genpreds.c (write_insn_constraint_len): Write function
14472 optimized for CONSTRAINT_LEN implementation.
14473 (write_tm_preds_h): Output insn_constraint_len inline and
14474 use it for CONSTRAINT_LEN.
14475 (write_insn_preds_c): Don't output insn_constraint_len.
14476 * doc/md.texi (define_register_constraint): Document multi-letter
14477 constraints shall have the same length if they start with the same
14478 letter.
14479
14480 2007-04-03 Uros Bizjak <ubizjak@gmail.com>
14481
14482 PR target/31175
14483 * config/i386/i386.md (isinf<mode>2): Expand only when
14484 TARGET_C99_FUNCTIONS is set.
14485
14486 2007-04-03 Uros Bizjak <ubizjak@gmail.com>
14487
14488 * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
14489 (x86_64-*-linux*): Ditto.
14490 * config/i386/i386.opt (mpc): New option.
14491 * config/i386/i386.c (overrride_options): Handle
14492 ix87_precision_string.
14493 * config/i386/crtprec.c: New file.
14494 * config/i386/t-crtpc: Ditto.
14495 * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
14496 and -mpc80 options.
14497 * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
14498 * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
14499 crtprec32.o, crtprec64.o and crtprec80.o.
14500
14501 * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
14502 and -mpc80 options.
14503 (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
14504
14505 2007-04-02 Eric Christopher <echristo@apple.com>
14506
14507 * doc/invoke.texi (i386 and x86-64 Options): Document -m64
14508 limitations on darwin.
14509
14510 2007-04-02 Anatoly Sokolov <aesok@post.ru>
14511
14512 PR target/31137
14513 * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
14514
14515 2007-04-02 Dave Korn <dave.korn@artimi.com>
14516
14517 * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
14518
14519 2007-04-02 Dave Korn <dave.korn@artimi.com>
14520
14521 * libgcc2.h (exception_descriptor): Don't forward-declare.
14522 (__get_eh_table_language, __get_eh_table_version): Delete
14523 prototypes of long-dead functions.
14524
14525 2007-04-01 Daniel Berlin <dberlin@dberlin.org>
14526
14527 * ebitmap.h: New file
14528 * ebitmap.c: New file
14529 * Makefile.in (ebitmap.o): New target.
14530
14531 2007-04-01 Jan Hubicka <jh@suse.cz>
14532
14533 * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
14534 before very first instruction.
14535
14536 2007-04-01 Jan Hubicka <jh@suse.cz>
14537
14538 * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
14539 waring on 64bit hosts.
14540 * bitmap.h: Fix typo in bitmap_head_def.
14541
14542 2007-04-01 Steven Bosscher <steven@gcc.gnu.org>
14543
14544 PR rtl-optimization/31391
14545 * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
14546 into a DELETED_LABEL note, and the label is in an empty basic
14547 block, update BB_END as well as BB_HEAD.
14548
14549 2007-04-01 Richard Henderson <rth@redhat.com>
14550
14551 PR tree-optimization/31169
14552 * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
14553 to varying if the range is outside [0, prec-1].
14554
14555 2007-04-01 Richard Sandiford <richard@codesourcery.com>
14556
14557 PR target/31388
14558 * config/mips/mips.md (load_const_gp): New insn.
14559 * config/mips/mips.c (mips_split_symbol): Avoid using or creating
14560 the MIPS16 GP pseudo register if no_new_pseudos.
14561 (mips16_gp_pseudo_reg): Use gen_load_const_gp.
14562
14563 2007-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
14564
14565 PR target/31364
14566 * config/rs6000/rs6000.md (call): Convert to LR hard reg for
14567 secureplt.
14568 (call_value): Likewise.
14569
14570 2007-03-31 Wolfgang Bangerth <bangerth@dealii.org>
14571 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14572
14573 PR 14737
14574 * doc/invoke.texi: (optimization options): Reword description
14575 of -ffast-math. Document its primary purpose.
14576
14577 2007-03-31 Richard Guenther <rguenther@suse.de>
14578
14579 * omp-low.c (splay-tree.h): Include.
14580 (lookup_decl): Replace splay-tree usage by pointer-map.
14581 (maybe_lookup_decl): Likewise.
14582 (new_omp_context): Likewise.
14583 (delete_omp_context): Likewise.
14584 * gimplify.c (splay-tree.h): Include.
14585 * tree-inline.c (insert_decl_map): Replace splay-tree usage by
14586 pointer-map.
14587 (remap_ssa_name): Likewise.
14588 (remap_decl): Likewise.
14589 (remap_type_1): Likewise.
14590 (remap_type): Likewise.
14591 (copy_body_r): Likewise.
14592 (expand_call_inline): Likewise.
14593 (clone_body): Likewise.
14594 (copy_tree_r): Likewise.
14595 (remap_save_expr): Likewise.
14596 (unsave_r): Likewise.
14597 (unsave_expr_now): Likewise.
14598 (tree_function_versioning): Likewise.
14599 (build_duplicate_type): Likewise.
14600 * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
14601 (struct copy_body_data): Replace splay-tree by pointer-map.
14602 * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
14603 not $(SPLAY_TREE_H).
14604 (gimplify.o): Depend on $(SPLAY_TREE_H).
14605 (omp-low.p): Likewise.
14606
14607 2007-03-31 Anatoly Sokolov <aesok@post.ru>
14608
14609 * config/avr/predicates.md (even_register_operand,
14610 odd_register_operand): New predicates.
14611 * config/avr/avr.md (movw peephole2): New.
14612 (movw_r peephole2): New.
14613
14614 2007-03-30 Rafael Avila de Espindola <espindola@google.com>
14615
14616 * tree.h (get_signed_or_unsigned_type): New.
14617 * fold-const.c (operand_equal_for_comparison_p): Use
14618 get_signed_or_unsigned_type instead of
14619 lang_hooks.types.signed_or_unsigned_type.
14620 * expr.c (store_expr): Ditto.
14621 * langhooks.c (get_signed_or_unsigned_type): New.
14622 (lhd_signed_or_unsigned_type): New.
14623 * langhooks.h (lhd_signed_or_unsigned_type): New.
14624 * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
14625
14626 2007-03-30 Richard Henderson <rth@redhat.com>
14627
14628 * tree-ssa-loop-ivopts.c: Include target.h.
14629 (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
14630 (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
14631 (force_expr_to_var_cost): Use produce_memory_decl_rtl.
14632 * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
14633
14634 2007-03-30 Richard Henderson <rth@redhat.com>
14635 Kai Tietz <kai.tietz@onevision.com>
14636
14637 * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
14638 default for 64-bit.
14639 (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
14640 (TARGET_64BIT_MS_ABI): New.
14641 (DBX_REGISTER_NUMBER): Handle 64-bit.
14642 (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
14643 (LONG_TYPE_SIZE): Force to 32.
14644 (REG_PARM_STACK_SPACE): New.
14645 (OUTGOING_REG_PARM_STACK_SPACE): New.
14646 (REGPARM_MAX, SSE_REGPARM_MAX): New.
14647 (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
14648 (STACK_BOUNDARY): Use 128 for 64-bit.
14649 * config/i386/cygwin.asm: Use push/ret to preserve call stack.
14650 Add 64-bit implementation.
14651 * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
14652 argument unused.
14653 * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
14654 (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
14655 Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
14656 for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
14657 (ix86_handle_cconv_attribute): Don't warn when ignoring if
14658 TARGET_64BIT_MS_ABI.
14659 (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
14660 (ix86_pass_by_reference): Likewise.
14661 (ix86_function_value_regno_p): Likewise.
14662 (ix86_build_builtin_va_list): Likewise.
14663 (ix86_va_start, ix86_gimplify_va_arg): Likewise.
14664 (function_arg_advance_ms_64): New.
14665 (function_arg_advance): Call it.
14666 (function_arg_ms_64): New.
14667 (function_arg): Call it.
14668 (function_value_ms_64): New.
14669 (ix86_function_value_1): Call it.
14670 (return_in_memory_ms_64): New.
14671 (ix86_return_in_memory): Call it.
14672 (setup_incoming_varargs_ms_64): New.
14673 (ix86_setup_incoming_varargs): Call it.
14674 (ix86_expand_prologue): Handle 64-bit stack probing.
14675 (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
14676 (output_pic_addr_const): Likewise.
14677 (x86_this_parameter): Likewise.
14678 (x86_output_mi_thunk): Likewise.
14679 (x86_function_profiler): Likewise.
14680 (TARGET_STRICT_ARGUMENT_NAMING): New.
14681 * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
14682 (TARGET_64BIT_MS_ABI): New.
14683 (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
14684 * config/i386/i386.md (allocate_stack_worker): Remove.
14685 (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
14686 describe the clobber of eax without a match_scratch.
14687 (allocate_stack_worker_postreload): Remove.
14688 (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
14689 describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
14690 (allocate_stack_worker_rex64_postreload): Remove.
14691 (allocate_stack): Handle 64-bit.
14692 * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
14693 * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
14694 (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
14695 (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
14696 (STANDARD_STARTFILE_PREFIX_1): Likewise.
14697 * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
14698 * config.build (x86_64-*-mingw*): New host.
14699 * config.host (x86_64-*-mingw*): New host.
14700 * config.gcc (x86_64-*-mingw*): New target.
14701 * gthr-win32.h (__gthread_key_create): Mark dtor unused.
14702
14703 2007-03-30 Richard Henderson <rth@redhat.com>
14704 Kai Tietz <kai.tietz@onevision.com>
14705
14706 * c-pragma.c (struct def_pragma_macro_value): New.
14707 (struct def_pragma_macro): New.
14708 (pushed_macro_table): New.
14709 (dpm_hash, dpm_eq): New.
14710 (handle_pragma_push_macro, handle_pragma_pop_macro): New.
14711 (init_pragma): Install them.
14712 * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
14713
14714 2007-03-30 Anatoly Sokolov <aesok@post.ru>
14715
14716 * config/avr/avr.c (avr_override_options): Clear
14717 'flag_delete_null_pointer_checks'.
14718
14719 2007-03-30 Paolo Carlini <pcarlini@suse.de>
14720
14721 PR c++/26099
14722 * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
14723 RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
14724 RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
14725 RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
14726 RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
14727 RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
14728 RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
14729 C++ extensions.
14730 * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
14731
14732 2007-03-30 Steven Bosscher <steven@gcc.gnu.org>
14733
14734 * regmove.c: Move all of pass_stack_adjustments from here...
14735 * combine-stack-adj.c: ...to this new file.
14736 * Makefile.in: Add rules for combine-stack-adj.o.
14737
14738 2007-03-30 Zdenek Dvorak <dvorakz@suse.cz>
14739
14740 PR tree-optimization/31383
14741 * tree-data-ref.c (affine_function_equal_p): Do not require the
14742 vectors to have the same length.
14743
14744 2007-03-30 Jan Hubicka <jh@suse.cz>
14745
14746 PR middle-end/30700
14747 * dwarf2out.c (reference_to_unused): Ask cgraph for functions
14748 availablility; add more sanity checking; ask varpool only about
14749 VAR_DECL.
14750
14751 2007-03-29 Richard Henderson <rth@redhat.com>
14752
14753 * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
14754 to decide, but __SIZEOF_LONG_LONG__.
14755
14756 2007-03-29 Richard Henderson <rth@redhat.com>
14757
14758 * emutls.c (struct __emutls_array): New.
14759 (emutls_destroy): Use it instead of casting element 0 from void*.
14760 (__emutls_get_address): Likewise.
14761
14762 2007-03-29 Richard Henderson <rth@redhat.com>
14763
14764 * varasm.c (initializer_constant_valid_p): Don't deny
14765 DECL_DLLIMPORT_P on functions.
14766
14767 * config/i386/cygming.h: Remove function declarations.
14768 (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
14769 (ASM_OUTPUT_LABELREF): Remove.
14770 (COMMON_ASM_OP): Remove.
14771 (ASM_OUTPUT_COMMON): Remove.
14772 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
14773 (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
14774 (ASM_DECLARE_FUNCTION_NAME): Likewise.
14775 * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
14776 Rename from TARGET_ENCODE_SECTION_INFO.
14777 * config/i386/netware.h: Likewise.
14778 * config/i386/i386-protos.h: Update.
14779 * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
14780 of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
14781 (legitimate_constant_p): Reject dllimports.
14782 (dllimport_map, get_dllimport_decl): New.
14783 (legitimize_dllimport_symbol): New.
14784 (legitimize_address, ix86_expand_move): Use it.
14785 (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
14786 * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
14787 (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
14788 (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
14789 * config/i386/predicates.md (constant_call_address_operand): Only
14790 accept symbols; reject dllimport_p symbols.
14791 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
14792 i386_pe_maybe_record_exported_symbol.
14793 * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
14794 (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
14795 (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
14796 trust the setting of DECL_DLLIMPORT_P.
14797 (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
14798 (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
14799 (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
14800 tidy the argument scanning loop.
14801 (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
14802 SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
14803 (i386_pe_strip_name_encoding): Remove.
14804 (i386_pe_binds_local_p): New.
14805 (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
14806 (i386_pe_output_labelref): Remove.
14807 (i386_pe_asm_output_aligned_decl_common): New.
14808 (i386_pe_maybe_record_exported_symbol): Rename from
14809 i386_pe_record_exported_symbol; check for dllexported symbols.
14810
14811 2007-03-29 Zack Weinberg <zack@mrtock.ucsd.edu>
14812
14813 * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
14814 add comment explaining why vsnprintf cannot be used.
14815
14816 2007-03-29 Douglas Gregor <doug.gregor@gmail.com>
14817
14818 PR tree-optimization/30666
14819 * tree.c (build_complex_type): When creating type names for DWARF2
14820 debug info, create TYPE_DECLs for TYPE_NAME instead of
14821 IDENTIFIER_NODEs.
14822 (build_common_tree_nodes_2): Use build_complex_type when building
14823 predefined complex types, to preserve canonical types.
14824
14825 2007-03-29 Steven Bosscher <steven@gcc.gnu.org>
14826
14827 * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
14828 (noce_get_alt_condition): Look at it to determine whether to
14829 reverse the condition or not.
14830 (noce_get_condition): Substitute the truth for lies.
14831 (noce_find_if_block): Set the then_else_reversed field.
14832
14833 2007-03-29 Lars Poeschel <larsi@wh2.tu-dresden.de>
14834
14835 * config/fr30/fr30.md (movdi): Do not accept immediates as the
14836 destination of this insn.
14837 * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
14838 than calling gen_rtx_SET directly. Use r0 to hold the value of
14839 'address + 4' rather than a stack based temporary which can be
14840 mis-optimized away.
14841
14842 2007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
14843
14844 * config/s390/s390.c (s390_secondary_input_reload_class,
14845 s390_secondary_output_reload_class): Functions removed.
14846 (s390_secondary_reload): New function.
14847 (TARGET_SECONDARY_RELOAD): Target macro defined.
14848 * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
14849 SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
14850 * config/s390/s390.md ("reload_outti", "reload_outdi",
14851 "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
14852 "reload_out<mode>"): Expanders removed.
14853 ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
14854 "reload<mode>_nonoffmem_out"): Expanders added.
14855
14856 2007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
14857
14858 * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair
14859 action if SRC->DEST replacement failed anyway.
14860
14861 2007-03-28 Mike Stump <mrs@apple.com>
14862
14863 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
14864 * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
14865 * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
14866
14867 2007-03-28 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
14868
14869 * config.gcc: Accept barcelona as a variant of amdfam10.
14870 * config/i386/i386.c (override_options): Likewise.
14871 * doc/invoke.texi: Likewise.
14872
14873 2007-03-28 Eric Botcazou <ebotcazou@adacore.com>
14874
14875 * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
14876 offsets for BIT_FIELD_REF and COMPONENT_REF.
14877
14878 2007-03-28 Richard Guenther <rguenther@suse.de>
14879
14880 * tree.c (is_global_var): Move ...
14881 * tree-flow-inline.h (is_global_var): ... here.
14882 * tree.h (is_global_var): Remove declaration.
14883
14884 2007-03-28 Uros Bizjak <ubizjak@gmail.com>
14885
14886 * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
14887 option.
14888 (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
14889 * config/i386/i386.c (ix86_tune_features): Initialize new
14890 tuning option.
14891 * config/i386/predicates.md (promotable_binary_operator): Use
14892 TARGET_TUNE_PROMOTE_HIMODE_IMUL.
14893
14894 2007-03-28 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
14895
14896 PR target/31380
14897 * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
14898
14899 2007-03-28 Lars Poeschel <larsi@wh2.tu-dresden.de>
14900
14901 * config/fr30/fr30.md (movsi_internal): Change destination
14902 constraint from m to V and add m to the end.
14903
14904 2007-03-28 Christian Bruel <christian.bruel@st.com>
14905
14906 * config/sh/sh.md (movsi_i): Fix type attribute.
14907
14908 2007-03-28 Christian Bruel <christian.bruel@st.com>
14909
14910 * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
14911 (movsf_ie): Likewise.
14912
14913 2007-03-28 Christian Bruel <christian.bruel@st.com>
14914
14915 * config.gcc: Add sh4-300 to multilib.
14916 * config/sh/t-mlib-sh4-300: New file.
14917
14918 2007-03-28 Andreas Krebbel <krebbel1@de.ibm.com>
14919
14920 * config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
14921 ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
14922 fix_trunc<mode>di2.
14923 ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
14924 fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
14925 ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
14926 "fixuns_trunctddi2"): Whitespace fix.
14927
14928 2007-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
14929
14930 * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
14931 the definition of struct sh_args.
14932 (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
14933 CALL_COOKIE_INT_REG_GET): Likewise.
14934
14935 2007-03-28 Steven Bosscher <steven@gcc.gnu.org>
14936
14937 * ifcvt.c (cond_exec_find_if_block): Return FALSE if no
14938 transformations are applied successfully.
14939
14940 2007-03-27 Douglas Gregor <doug.gregor@gmail.com>
14941
14942 * tree.c (tree_contains_struct): Permit 512 tree codes.
14943 * tree.h (tree_contains_struct): Ditto.
14944 (MAX_TREE_CODES): Ditto.
14945 (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
14946 SPARE member to store remaining padding bits.
14947
14948 2007-03-27 Anatoly Sokolov <aesok@post.ru>
14949
14950 * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
14951 architecture.
14952
14953 2007-03-27 Janis Johnson <janis187@us.ibm.com>
14954
14955 * configure.ac: Fix assembler test for powerpc*-linux decimal float.
14956 * configure: Regenerate.
14957
14958 * configure: Regenerate using the correct version of autoconf.
14959
14960 2007-03-27 Anatoly Sokolov <aesok@post.ru>
14961
14962 * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
14963 pointer regs.
14964 * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
14965 regs to "__SP_L__" and "__SP_H__".
14966
14967 2007-03-27 Richard Guenther <rguenther@suse.de>
14968
14969 * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
14970 computations with it with a HOST_WIDE_INT variable.
14971
14972 2007-03-26 Mike Stump <mrs@apple.com>
14973
14974 * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
14975 objective-c-header, objective-c++-header and objc++-cpp-output
14976 support.
14977 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
14978
14979 2007-03-26 Richard Henderson <rth@redhat.com>
14980
14981 PR target/31361
14982 * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
14983 IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
14984 IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
14985 IX86_BUILTIN_PSRLQ128): New.
14986 (ix86_init_mmx_sse_builtins): Add them.
14987 (ix86_expand_builtin): Expand them.
14988 * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
14989 operand 2 be TImode.
14990 * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
14991 _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
14992 _mm_srli_epi64): Mark __B const.
14993 (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
14994 (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
14995 _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
14996 new two-vector shift builtins.
14997
14998 2007-03-26 Ian Lance Taylor <iant@google.com>
14999
15000 PR tree-optimization/31345
15001 * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
15002 [+INF, +INF(OVF)] into VARYING.
15003
15004 2007-03-26 Zack Weinberg <zackw@panix.com>
15005
15006 * gengtype-parse.c: New file.
15007 * gengtype-yacc.y: Delete.
15008 * gengtype-lex.l: Don't include gengtype-yacc.h.
15009 Define YY_DECL and yyterminate appropriately for recursive
15010 descent parser. yylval is now a string out-parameter to yylex.
15011 (HWS, EOID): New shorthand.
15012 (IWORD): Add a couple more types.
15013 (yylex): Add a setup stanza. Remove the complex rules for
15014 detecting GTY'ed types and typedefs; replace with simple
15015 keyword detectors. Adjust everything for the changed
15016 definition of yylval. Ignore all pp-directives, not just #define.
15017 (yyerror): Delete.
15018 (parse_file): Rename yybegin; do not call yyparse.
15019 (yyend): New.
15020 * gengtype.c (xasprintf): Export again.
15021 (this_file): New. Use everywhere __FILE__ was being used.
15022 (get_lang_bitmap): Special case types defined in gengtype.c.
15023 (do_typedef, new_structure): Suppress definition of certain types.
15024 (new_structure): Improve diagnostics of duplicate definitions.
15025 Make sure location_s is associated with input.h.
15026 (nreverse_pairs, define_location_structures): New functions.
15027 (main): Improve tagging of kludge types. Remove old kludges
15028 for input.h types; use define_location_structures.
15029 * gengtype.h: Update prototypes. Define token codes here.
15030 * Makefile.in: Remove all references to gengtype-yacc.
15031 Add rules for gengtype-parse.o. Adjust rules for gengtype-lex.o
15032 and gengtype.
15033 * bitmap.h (struct bitmap_head_def): Coalesce definitions,
15034 add GTY((skip)) to the field that's only conditionally there.
15035 * doc/install.texi: Document that Bison is no longer required
15036 unless building treelang.
15037
15038 * gengtype.c: Don't include gtyp-gen.h.
15039 (srcdir): Declare here.
15040 (base_files, lang_dir_names): Allocate dynamically.
15041 (gt_files, num_gt_files, num_lang_dirs): New globals.
15042 (measure_input_list, read_input_line, read_input_list)
15043 (set_lang_bitmap): New functions.
15044 (get_base_file_bitmap): Rename get_lang_bitmap and drastically
15045 simplify, relying on read_input_list to set up the bitmaps.
15046 (main): Arguments are no longer unused. Check for correct number
15047 of command line arguments, set srcdir and srcdir_len, then call
15048 read_input_list, before doing anything else. No need to worry
15049 about duplicates in main loop.
15050 * configure.ac: Simplify the calculation of all_gtfiles.
15051 Put language tags in there. Don't set or substitute
15052 all_gtfiles_files_langs or all_gtfiles_files_frags.
15053 * Makefile.in: Revamp the way gengtype is invoked, now that it
15054 takes a file on its command line with a much simpler format.
15055 Remove or replace with gtyp-input.list all references to gtyp-gen.h.
15056 (GTFILES): Remove duplicates and C source files.
15057 * c-config-lang.in, cp/config-lang.in, objc/config-lang.in
15058 * objcp/config-lang.in: Add c-pragma.h to gtfiles.
15059 * configure: Regenerate.
15060
15061 * gengtype.h: Remove all type definitions to gengtype.c; leave
15062 only definitions of options_p, type_p, and pair_p as opaque
15063 pointers. Update prototypes.
15064 * gengtype.c: Many type definitions moved here from gengtype.h.
15065 Consolidate type definitions at the top of the file.
15066 (xvasprintf): Delete.
15067 (xasprintf): Make static.
15068 (create_nested_pointer_option): Add 'next' parameter.
15069 (create_field_all, create_field_at): New functions.
15070 (create_field): Now a thin wrapper around create_field_all.
15071 (create_optional_field): Rename create_optional_field_ and add
15072 line argument. Original name is now a macro which supplies
15073 __LINE__.
15074 (oprintf): Use vsnprintf directly.
15075 (close_output_files): Use fatal rather than perror/exit.
15076 (note_def_vec, note_def_vec_alloc): Use create_field_at.
15077 (main): Set progname. Don't use exit.
15078 * gengtype-yacc.y (struct_fields): Use create_field_at.
15079 (option, optionseqopt): Delete.
15080 (optionseq): Consolidate productions from option here so we
15081 can use the first argument to create_option.
15082
15083 * gengtype-lex.l: Distinguish unions from structures in the
15084 token type. Don't call find_structure; return the tag as a string.
15085 * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and
15086 ENT_UNION. Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is
15087 string. Reorganize typedef_struct production accordingly.
15088 Use create_nested_ptr_option.
15089 * gengtype.c (create_nested_ptr_option): New function.
15090 * gengtype.h: Declare it.
15091
15092 * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
15093 (string_type): Don't declare.
15094 (do_scalar_typedef): Declare.
15095 (create_scalar_type): Update prototype.
15096 * gengtype.c (string_type): Make static.
15097 (scalar_nonchar, scalar_char): New.
15098 (do_scalar_typedef): Export. Always use scalar_nonchar for the type.
15099 (resolve_typedef): Use scalar_nonchar for error recovery.
15100 (create_scalar_type): Remove name_len field. Return scalar_char
15101 or scalar_nonchar as appropriate.
15102 (adjust_field_type): Look at scalar_is_char boolean to decide whether
15103 to use string_type.
15104 (throughout): Use scalar_nonchar instead of calling
15105 create_scalar_type, whenever possible.
15106 (main): Initialize scalar_char and scalar_nonchar before calling
15107 gen_rtx_next.
15108 * gengtype-lex.l: Adjust for removal of second argument to
15109 create_scalar_type. Use yylval.s instead of yylval.t when
15110 returning SCALAR.
15111 * gengtype-yacc.y: Type of SCALAR is string. Call
15112 create_scalar_type from type:SCALAR rule. Adjust for removal of
15113 second argument to create_scalar_type.
15114
15115 * vec.h: Remove all #if IN_GENGTYPE blocks.
15116 Add comment saying that changes may require adjustments to gengtype.
15117 * gengtype.c: Don't include coretypes.h or tm.h.
15118 Add comment to inclusion of errors.h.
15119 (note_def_vec, note_def_vec_alloc): New functions.
15120 * gengtype.h: Declare new functions.
15121 * gengtype-lex.l: Don't include coretypes.h.
15122 (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
15123 Delete.
15124 (update_lineno): Remove unnecessary prototype.
15125 (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
15126 (VEC rule): Just return VEC_TOKEN.
15127 * gengtype-yacc.y (VEC_TOKEN): New token type.
15128 (type): Add a production for VEC(a,b).
15129 * Makefile.in: Update dependencies.
15130
15131 * gengtype-lex.l: Remove rules for parsing pointer-to-function
15132 typedefs that use the old PARAMS macro.
15133
15134 * gengtype-lex.l: Remove all rules and states relating to yacc
15135 input files.
15136 * gengtype-yacc.y: Similarly.
15137 * gengtype.c (note_yacc_type): Delete function.
15138 * gengtype.h: Update prototypes.
15139
15140 2007-03-26 Joseph Myers <joseph@codesourcery.com>
15141
15142 * tree-pretty-print.c (dump_generic_node): Report precision of
15143 unnamed integer types.
15144
15145 2007-03-26 Steven Bosscher <steven@gcc.gnu.org>
15146
15147 * ifcvt.c (noce_try_store_flag_constants): Don't check
15148 no_new_pseudos here.
15149 (noce_try_store_flag_constants): Don't check no_new_pseudos.
15150 (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
15151 noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
15152 noce_try_sign_mask): Likewise.
15153 (if_convert): Check no_new_pseudos here.
15154
15155 (cond_exec_process_if_block, noce_process_if_block, find_if_block):
15156 Remove prototypes.
15157 (struct noce_if_info): Add then_bb, else_bb, join_bb members.
15158 (noce_get_condition): Handle new then_else_reversed argument.
15159 (noce_init_if_info): Remove, fold into noce_find_if_block.
15160 (noce_process_if_block): Take a struct noce_if_info as the
15161 argument. Don't set up one based on ce_if_info. Update pointer
15162 references accordingly.
15163 (cond_move_process_if_block): Likewise.
15164 (process_if_block): Removed.
15165 (find_if_block): Removed. Move functionality two new functions,
15166 noce_find_if_block and cond_exec_find_if_block.
15167 (noce_find_if_block): New function. Be aware of IF-THEN-JOIN
15168 blocks and the symmetric IF-ELSE-JOIN case.
15169 (cond_exec_find_if_block): Also new function mostly based on old
15170 find_if_block and process_if_block.
15171 (find_if_header): Replace find_if_block call with separately
15172 guarded calls to noce_find_if_block and cond_exec_find_if_block.
15173 (find_cond_trap): Update noce_get_condition call.
15174 (dead_or_predicable): Likewise.
15175
15176 2007-03-26 Jakub Jelinek <jakub@redhat.com>
15177
15178 * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
15179 Remove.
15180 (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
15181 IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
15182 IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
15183 (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
15184 v4si_ftype_v4si_v2di. Remove __builtin_ia32_psllw128,
15185 __builtin_ia32_pslld128, __builtin_ia32_psllq128,
15186 __builtin_ia32_psrlw128, __builtin_ia32_psrld128,
15187 __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
15188 __builtin_ia32_psrad128 builtins.
15189
15190 2007-03-26 Uros Bizjak <ubizjak@gmail.com>
15191
15192 * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
15193 * config/i386/constraints.md
15194 (define_constraint "I"): Use IN_RANGE macro.
15195 (define_constraint "J"): Ditto.
15196 (define_constraint "K"): Ditto.
15197 (define_constraint "M"): Ditto.
15198 (define_constraint "N"): Ditto.
15199 (define_constraint "O"): Ditto.
15200 * config/i386/predicates.md
15201 (define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
15202 (define_predicate "const_0_to_3_operand"): Ditto.
15203 (define_predicate "const_0_to_7_operand"): Ditto.
15204 (define_predicate "const_0_to_15_operand"): Ditto.
15205 (define_predicate "const_0_to_63_operand"): Ditto.
15206 (define_predicate "const_0_to_255_operand"): Ditto.
15207 (define_predicate "const_1_to_31_operand"): Ditto.
15208 (define_predicate "const_2_to_3_operand"): Ditto.
15209 (define_predicate "const_4_to_7_operand"): Ditto.
15210
15211 2007-03-25 David Edelsohn <edelsohn@gnu.org>
15212
15213 * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
15214 in SImode for save_world.
15215 * config/rs6000/altivec.md (save_world, restore_world): Convert to
15216 LR hard reg.
15217
15218 2007-03-25 Dorit Nuzman <dorit@il.ibm.com>
15219
15220 PR tree-optimization/30784
15221 * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
15222 BIT_FIELD_REF.
15223
15224 2007-03-25 Revital Eres <eres@il.ibm.com>
15225
15226 * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
15227 Fold movement_possibility function into it.
15228
15229 2007-03-25 David Edelsohn <edelsohn@gnu.org>
15230
15231 * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
15232 (load_macho_picbase_{si,di}): Convert to LR hard reg.
15233 (call_indirect_nonlocal_darwin64): Same.
15234 (call_nonlocal_darwin64): Same.
15235 (call_value_indirect_nonlocal_darwin64): Same.
15236 (call_value_nonlocal_darwin64): Same.
15237 (sibcall_nonlocal_darwin64): Same.
15238 (sibcall_value_nonlocal_darwin64): Same.
15239 (sibcall_symbolic_64): Same.
15240 (sibcall_value_symbolic_64): Same.
15241 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
15242 LR pseudo.
15243 (rs6000_emit_load_toc_table): Same.
15244 * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
15245 * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
15246 (mull_call): Same.
15247 (divss_call): Same.
15248 (divus_call): Same.
15249 (quoss_call): Same.
15250 (quous_call): Same.
15251 (load_toc_v4_pic_si): Same
15252 (load_toc_v4_PIC_1): Same.
15253 (load_toc_v4_PIC_1b): Same.
15254 (call_indirect_aix{32,64}): Same.
15255 (call_value_indirect_aix{32,64}): Same.
15256 (call): Same.
15257 (call_value): Same.
15258 (call_local{32,64}): Same.
15259 (call_value_local{32,64}): Same.
15260 (call_indirect_nonlocal_aix{32,64}): Same.
15261 (call_nonlocal_aix{32,64}): Same.
15262 (call_value_indirect_nonlocal_aix{32,64}): Same.
15263 (call_value_nonlocal_aix{32,64}): Same.
15264 (call_indirect_nonlocal_sysv<mode>): Same.
15265 (call_nonlocal_sysv<mode>): Same.
15266 (call_value_indirect_nonlocal_sysv<mode>): Same.
15267 (call_value_nonlocal_sysv<mode>): Same.
15268 (sibcall): Same.
15269 (sibcall_local{32,64}): Same.
15270 (sibcall_value_local{32,64}): Same.
15271 (sibcall_nonlocal_aix{32,64}): Same.
15272 (sibcall_value_nonlocal_aix{32,64}): Same.
15273 (sibcall_nonlocal_sysv<mode>): Same.
15274 (sibcall_value): Same.
15275 (sibcall_value_nonlocal_sysv<mode>): Same.
15276
15277 2007-03-24 Paul Brook <paul@codesourcery.com>
15278
15279 * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
15280 * config/arm/linux-eabi.h: Remove legacy syscall hack.
15281
15282 2007-03-24 Richard Henderson <rth@redhat.com>
15283
15284 * config/ia64/constraints.md: New file.
15285 * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
15286 satisfies_constraint_?.
15287 * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
15288 ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
15289 ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
15290 ia64_output_mi_thunk): Likewise.
15291 (ia64_const_ok_for_letter_p): Remove.
15292 (ia64_const_double_ok_for_letter_p): Remove.
15293 (ia64_extra_constraint): Remove.
15294 * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
15295 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
15296 CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
15297 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
15298 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
15299 EXTRA_MEMORY_CONSTRAINT): Remove.
15300 * config/ia64/ia64.md: Include constriants.md. Replace
15301 CONST_OK_FOR_? with satisfies_constraint_?.
15302
15303 2007-03-23 Michael Meissner <michael.meissner@amd.com>
15304 H.J. Lu <hongjiu.lu@intel.com>
15305
15306 * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
15307 DPD or BID name.
15308 (name macros): Use DPD_BID_NAME to convert names properly.
15309
15310 * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
15311 decimal floating point format.
15312 (init_floating_libfuncs): Change decimal functions so that they
15313 have a "bid_" prefix if the decimal system uses the BID format,
15314 and "dpd_" prefix if the decimal system uses the DPD format.
15315 (init_interclass_conv_libfuncs): Ditto.
15316 (init_intraclass_conv_libfuncs): Ditto.
15317
15318 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
15319 using the BID format.
15320
15321 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
15322 whether we are using the BID decimal format.
15323 * configure: Regenerate.
15324
15325 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
15326 the compiler has decimal floating point enabled. Define
15327 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
15328 instead of DPD.
15329
15330 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
15331 using the BID format.
15332
15333 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
15334 whether we are using the BID decimal format.
15335 * configure: Regenerate.
15336
15337 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
15338 the compiler has decimal floating point enabled. Define
15339 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
15340 instead of DPD.
15341
15342 * doc/install.texi (--enable-decimal-float): Document BID and DPD
15343 options, and that it is enabled for i386/x86_64 systems.
15344
15345 * Makefile.in (enable_decimal_float): New.
15346 (DECNUMFMT): New.
15347 (DECNUMINC): Add -I$(DECNUMFMT).
15348 (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
15349 to $(DECNUMFMT) from $(DECNUM).
15350
15351 * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
15352 Substitute enable_decimal_float.
15353 * configure: Regenerated.
15354
15355 PR other/30529
15356 * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
15357 unsigned long.
15358
15359 * configure.ac: Enable decimal float for x86_64-*-linux*.
15360 * configure: Regenerated.
15361
15362 PR other/30530
15363 * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
15364 decimal128ClearSign to flip and clear the sign bit in decimal128.
15365 (decimal_real_maxval): Set decimal128SetSign to set the sign
15366 bit in decimal128.
15367
15368 2007-03-23 Ian Lance Taylor <iant@google.com>
15369
15370 * fold-const.c (fold_binary): Correct warning for X - c >= X.
15371
15372 2007-03-23 Ian Lance Taylor <iant@google.com>
15373
15374 * tree-dump.c (dump_files): Correct comment.
15375
15376 2007-03-23 Ian Lance Taylor <iant@google.com>
15377
15378 * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
15379
15380 2007-03-23 Steven Bosscher <steven@gcc.gnu.org>
15381
15382 * tracer.c (tracer): Don't take FLAGS argument. Assert we are
15383 in cfglayout mode. Don't go into and out of cfglayout mode.
15384 Link the blocks in the order of the constructed traces.
15385 (rest_of_handle_tracer): Adjust call to tracer.
15386 * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
15387 Don't go into cfglayout mode.
15388 (rtl_loop_done): Don't go out of cfglayout mode.
15389 * cfglayout.c (relink_block_chain): New function, split out from...
15390 (fixup_reorder_chain): ...here. Remove redundant checking.
15391 (cfg_layout_finalize): Don't clear the header, footer, and aux
15392 fields here, move the code to do so to relink_block_chain. Likewise
15393 for free_original_copy_tables.
15394 * rtl.h (tracer): Update prototype.
15395 * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
15396 Assert we are in cfglayout mode. Don't go into and out of cfglayout
15397 mode. Use relink_block_chain to serialize the CFG according to the
15398 new basic block order. Move targetm.cannot_modify_jumps_p check from
15399 here...
15400 (gate_handle_reorder_blocks): ...to here.
15401 (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
15402 from here...
15403 (gate_duplicate_computed_gotos): ...to here.
15404 (rest_of_handle_reorder_blocks): Don't see if anything has changed,
15405 something always changes when going into and out of cfglayout mode.
15406 Perform an expensive cfg cleanup while going into cfglayout mode.
15407 Always update liveness information on HAVE_conditional_execution
15408 targets. Reserialize the basic blocks and go out of cfglayout mode.
15409 * reg-stack.c: Include cfglayout.h.
15410 (rest_of_handle_stack_regs): Go into and out of cfglayout mode around
15411 the call to reorder_basic_blocks.
15412 * basic-block.h (reorder_basic_blocks): Update prototype.
15413 (relink_block_chain): New prototype.
15414 * passes.c (pass_outof_cfg_layout_mode): Move after cse2.
15415
15416 2007-03-23 Joseph Myers <joseph@codesourcery.com>
15417
15418 * config/mips/mips.md (type, hazard, *movdi_32bit,
15419 *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
15420 *movhi_internal, *movqi_internal, *movsf_hardfloat,
15421 *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
15422 movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
15423 mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
15424 applicable.
15425 (movcc): Change first xfer to multi.
15426 * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
15427 config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
15428 config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
15429 config/mips/generic.md: Change reservations using "xfer" to use
15430 "mfc,mtc".
15431 * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
15432 using match_operand.
15433 (ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
15434 * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
15435 examining mode.
15436 (ir_sr70_xfer_to): Use "mtc" instead of examining mode.
15437
15438 2007-03-22 Richard Henderson <rth@redhat.com>
15439
15440 * config/i386/i386.c: Remove unnecessary function declarations.
15441 Move targetm definition, and all related macros, to the end of
15442 the file. Resort some functions to put definitions before uses.
15443 (ix86_attribute_table): Make static. Move to end of file.
15444 (ix86_gimplify_va_arg): Make static.
15445
15446 2007-03-22 Richard Henderson <rth@redhat.com>
15447
15448 * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
15449 don't increase local_regparm with force_align_arg_pointer check.
15450 (ix86_function_sseregparm): Assert 32-bit.
15451 (type_has_variadic_args_p): New.
15452 (ix86_return_pops_args): Early exit for 64-bit. Reindent; use
15453 type_has_variadic_args_p.
15454 (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
15455 (init_cumulative_args): Remove TARGET_DEBUG_ARG. Remove zero_cum;
15456 use memset instead. Do maybe_vaarg check first; skip attribute
15457 tests if true; skip attribute tests for 64-bit.
15458 (construct_container): Remove TARGET_DEBUG_ARG.
15459 (function_arg_advance_32, function_arg_advance_64): Split out ...
15460 (function_arg_advance): ... from here.
15461 (function_arg_32, function_arg_64): Split out ...
15462 (function_arg): ... from here.
15463 (ix86_pass_by_reference): Tidy.
15464 (ix86_function_value_regno_p): Rearrange w/ switch on regno.
15465 (function_value_32): New, from parts of ix86_function_value
15466 and ix86_value_regno.
15467 (function_value_64): New, from parts of ix86_function_value
15468 and ix86_libcall_value.
15469 (ix86_function_value_1): New.
15470 (ix86_function_value, ix86_libcall_value): Use it.
15471 (return_in_memory_32, return_in_memory_64): Split out ...
15472 (ix86_return_in_memory): ... from here.
15473 (ix86_struct_value_rtx): Skip for 64-bit.
15474 (ix86_libcall_value, ix86_value_regno): Remove.
15475 (setup_incoming_varargs_64): Split out ...
15476 (ix86_setup_incoming_varargs): ... from here.
15477 (ix86_va_start): Remove TARGET_DEBUG_ARG.
15478 (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
15479 * config/i386/i386-protos.h (ix86_function_value): Remove.
15480 * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
15481
15482 2007-03-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15483
15484 PR other/23572
15485 * c-lex.c (interpret_float): On overflow, emit pedantic warning if
15486 infinities not supported, otherwise emit warning if -Woverflow. On
15487 underflow, emit warning if -Woverflow.
15488 * real.c (real_from_string): Return -1 if underflow, +1 if overflow
15489 and 0 otherwise.
15490 * real.h (real_from_string): Update declaration
15491
15492 2007-03-22 Kai Tietz <kai.tietz@onevision.com>
15493 Richard Henderson <rth@redhat.com>
15494
15495 * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
15496 * calls.c (compute_argument_block_size, expand_call,
15497 emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
15498 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
15499 * function.c (STACK_DYNAMIC_OFFSET): Likewise.
15500 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
15501 * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
15502 config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
15503 config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
15504 config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
15505 Set to 1.
15506
15507 2007-03-22 Joseph Myers <joseph@codesourcery.com>
15508
15509 * c-incpath.c (add_sysroot_to_chain): New.
15510 (merge_include_chains): Add sysroot argument. Call
15511 add_sysroot_to_chain if sysrooted.
15512 (register_include_chains): Update call to merge_include_chains.
15513 * doc/cppopts.texi: Document use of '=' in include directory
15514 arguments.
15515
15516 2007-03-22 Uros Bizjak <ubizjak@gmail.com>
15517
15518 * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
15519 Macroize expander using SSEMODEF mode macro. Use SSE_FLOAT_MODE_P.
15520 (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
15521 insn pattern using X87MODEF12 mode macro.
15522
15523 2007-03-21 Seongbae Park <seongbae.park@gmail.com>
15524
15525 * regmove.c (regmove_optimize): Use reg_mentioned_p
15526 instead of reg_overlap_mentioned_p for DST.
15527
15528 2007-03-21 Mike Stump <mrs@apple.com>
15529
15530 * c.opt: Fixup for Objective-C/C++.
15531
15532 2007-03-21 Steve Ellcey <sje@cup.hp.com>
15533
15534 * explow.c (convert_memory_address): Fold memory reference when
15535 POINTERS_EXTEND_UNSIGNED < 0
15536
15537 2007-03-21 Richard Henderson <rth@redhat.com>
15538
15539 PR target/31245
15540 * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
15541 * config/i386/mmintrin.h (__m64): Likewise.
15542 * config/i386/xmmintrin.h (__m128): Likewise.
15543
15544 2007-03-21 Richard Sandiford <richard@codesourcery.com>
15545
15546 * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
15547 (VXWORKS_OS_CPP_BUILTINS): Define.
15548 * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
15549 (TARGET_OS_CPP_BUILTINS): ...here. Use VXWORKS_OS_CPP_BUILTINS.
15550
15551 2007-03-21 Richard Sandiford <richard@codesourcery.com>
15552
15553 * rtl.h (constant_pool_reference_p): Delete.
15554 (find_constant_src): Declare.
15555 * rtlanal.c (find_constant_src): New function.
15556 * simplify-rtx.c (constant_pool_reference_p): Delete.
15557 * config/i386/i386.md: Use find_constant_src instead of
15558 constant_pool_reference_p/avoid_constant_pool_reference pairs.
15559
15560 2007-03-21 Richard Sandiford <richard@codesourcery.com>
15561
15562 * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
15563 * c-cppbuiltin.c (c_cpp_builtins): Define them.
15564
15565 2007-03-20 Mark Mitchell <mark@codesourcery.com>
15566
15567 * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
15568 * config/arm/arm.c (arm_elf_asm_cdtor): New function.
15569 (arm_elf_asm_constructor): Use it.
15570 (arm_elf_asm_destructor): New function.
15571
15572 2007-03-20 Bernd Schmidt <bernd.schmidt@analog.com>
15573
15574 * jump.c (mark_jump_label): Treat SEQUENCE specially.
15575
15576 2007-03-20 Nathan Sidwell <nathan@codesourcery.com>
15577
15578 * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
15579
15580 2007-03-19 Andrew Haley <aph@redhat.com>
15581
15582 PR tree-optimization/31264
15583 * tree-vrp.c (register_edge_assert_for_1): Don't look though
15584 VIEW_CONVERT_EXPRs.
15585
15586 2007-03-19 Paolo Bonzini <bonzini@gnu.org>
15587
15588 PR rtl-optimization/30907
15589 * fwprop.c (forward_propagate_into): Never propagate inside a loop.
15590 (fwprop_init): Always call loop_optimizer_initialize.
15591 (fwprop_done): Always call loop_optimizer_finalize.
15592 (fwprop): We always have loop info now.
15593 (gate_fwprop_addr): Remove.
15594 (pass_fwprop_addr): Use gate_fwprop as gate.
15595
15596 PR rtl-optimization/30841
15597 * df-problems.c (df_ru_local_compute, df_rd_local_compute,
15598 df_chain_alloc): Call df_reorganize_refs unconditionally.
15599 * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
15600 refs_organized to refs_organized_size.
15601 (df_ref_create_structure): Use refs_organized_size instead of
15602 bitmap_size if refs had been organized, and keep refs_organized_size
15603 up-to-date.
15604 * df.h (struct df_ref_info): Change refs_organized to
15605 refs_organized_size.
15606 (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
15607 bitmap_size.
15608
15609 2007-03-19 Mark Mitchell <mark@codesourcery.com>
15610
15611 * except.c (output_function_exception_table): Do not reference the
15612 EH personality routine for functions that do not require an
15613 exception table.
15614
15615 2007-03-20 Jakub Jelinek <jakub@redhat.com>
15616
15617 PR c/30762
15618 * c-typeck.c (convert_for_assignment): Call comptypes for
15619 RECORD_TYPE or UNION_TYPE.
15620
15621 PR inline-asm/30505
15622 * reload1.c (reload): Do invalid ASM checking after
15623 cleanup_subreg_operands.
15624
15625 2007-03-19 Jeff Law <law@redhat.com>
15626
15627 * tree-cfg.c (find_taken_edge): Tighten conditions for
15628 optimizing computed gotos.
15629
15630 2007-03-19 Michael Matz <matz@suse.de>
15631
15632 * builtins.c (expand_builtin_sync_operation,
15633 expand_builtin_compare_and_swap,
15634 expand_builtin_lock_test_and_set): Care for extending CONST_INTs
15635 correctly.
15636
15637 * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
15638 sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
15639 for operand 3.
15640
15641 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
15642
15643 * doc/tm.texi: Add brackets around the return type of
15644 TARGET_SECONDARY_RELOAD.
15645
15646 2007-03-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
15647 Richard Guenther <rguenther@suse.de>
15648
15649 PR tree-optimization/31254
15650 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
15651 Use handled_component_p () where appropriate. Continue
15652 propagating into the rhs if we propagated into an INDIRECT_REF
15653 on the lhs.
15654
15655 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
15656
15657 * config/s390/s390.md (op_type attribute): RRR instruction type added.
15658 (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
15659 (xde, xdee): Mode attributes adjusted to support DFP modes.
15660 (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
15661 ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
15662 DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
15663 "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
15664 "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
15665 "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
15666 "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
15667 numbers.
15668 ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
15669 "movsf"): Insn definitions removed.
15670 ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
15671 "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
15672 "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
15673 definitions added.
15674 ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
15675 "reload_in<mode>", "reload_out<mode>"): Expander added.
15676 ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
15677 Expander removed.
15678
15679 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
15680
15681 * config/s390/s390.md: Only non-functional changes. Renamed
15682 FPR mode macro to BFP all over the file.
15683
15684 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
15685
15686 * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
15687 (op_type attribute): RRF instruction type added.
15688 (fT0): New mode attribute.
15689 ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
15690 "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
15691 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new
15692 instruction no secondary memory is needed when moving DFmode values
15693 between GPRs and FPRs.
15694
15695 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
15696
15697 * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
15698 inverted and documentation adjusted.
15699 ("mhard-dfp", "msoft-dfp"): New options.
15700 * config/s390/s390.c (s390_handle_arch_option): New architecture
15701 switch: z9-ec.
15702 (override_options): Sanity checks for the new options added.
15703 * config.gcc: New architecture switch: z9-ec.
15704 * config/s390/s390.h (processor_flags): PF_DFP added.
15705 (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
15706 (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
15707 when the bit is NOT set so remove it from the defaults.
15708
15709 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
15710
15711 * genemit.c (main): Print include statement for dfp.h.
15712 * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
15713 is not available.
15714
15715 2007-03-19 Hans-Peter Nilsson <hp@axis.com>
15716
15717 * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
15718
15719 2007-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
15720
15721 PR target/31022
15722 * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
15723 instead of PATTERN.
15724
15725 2007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15726
15727 * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
15728 attr_length_call, output_call, output_indirect_call): Cleanup
15729 formatting of targetm calls.
15730
15731 2007-03-19 Hans-Peter Nilsson <hp@axis.com>
15732
15733 * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
15734
15735 2007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15736
15737 * pa.md: Add fpstore_load and store_fpload instruction types. Provide
15738 reservation, bypass and anti-bypass descriptions for these
15739 instructions. Update move patterns.
15740 * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
15741 TYPE_FPSTORE.
15742
15743 2007-03-18 Dorit Nuzman <dorit@il.ibm.com>
15744
15745 * tree-vect-transform.c (get_initial_def_for_induction): Replace
15746 GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
15747 (get_initial_def_for_reduction): Likewise.
15748
15749 2007-03-16 Daniel Berlin <dberlin@dberlin.org>
15750
15751 Fix PR tree-optimization/29922
15752 * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
15753 (get_representative): Removed.
15754 (value_dies_in_block_x): Update for rvuse removal.
15755 (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
15756 (compute_antic_aux): Handle when PHI nodes appear in
15757 non-single-successors.
15758 (dump_bitmap_of_names): Removed.
15759 (compute_antic_safe): Renamed and removed rvuse calculation.
15760 Calculate only antic safe.
15761 (insert_into_preds_of_block): Remove assert.
15762 (execute_pre): Update for renamed functions.
15763 (defer_or_phi_translate_block): New function.
15764
15765 2007-03-17 Kazu Hirata <kazu@codesourcery.com>
15766
15767 * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
15768 config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
15769 typos.
15770 * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
15771 Follow spelling conventions.
15772
15773 * tree-data-ref.h: Remove the prototype for analyze_array.
15774
15775 2007-03-17 Dorit Nuzman <dorit@il.ibm.com>
15776
15777 PR tree-optimization/31041
15778 * tree-vect-transform.c (get_initial_def_for_induction): Call
15779 force_gimple_operand.
15780
15781 2007-03-17 Olga Golovanevsky <olga@il.ibm.com>
15782
15783 * ipa-type-escape.c (look_for_casts) : Revert code to use
15784 handled_component_p due to ada test a-numaux.adb.
15785
15786 2007-03-17 Kazu Hirata <kazu@codesourcery.com>
15787
15788 * final.c (final_scan_insn): Alter the condition of a
15789 conditional trap if we have nonstandard CC.
15790
15791 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
15792
15793 * configure.ac: Remove excess quoting from asm line 0 test.
15794 * configure: Rebuilt.
15795
15796 2007-03-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15797
15798 * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
15799 * c-common.c (convert_and_check): Move warning logic to...
15800 (warnings_for_convert_and_check): ...here. Define.
15801 * c-common.h (warnings_for_convert_and_check): Declare.
15802
15803 2007-03-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15804
15805 * pa.c (attr_length_call): Partially revert change of 2007-03-09.
15806 (output_call): Likewise.
15807
15808 2007-03-16 Richard Sandiford <richard@codesourcery.com>
15809
15810 * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
15811
15812 2007-03-16 Richard Sandiford <richard@codesourcery.com>
15813
15814 * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
15815
15816 2007-03-16 Uros Bizjak <ubizjak@gmail.com>
15817
15818 * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
15819 opteron, athlon-64 and athlon-fx processor_alias_table entries.
15820
15821 2007-03-16 Sebastian Pop <sebastian.pop@inria.fr>
15822
15823 PR tree-optimization/31183
15824 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
15825 Use double_int instead of unsigned int for representing access_strides.
15826 * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
15827
15828 2007-03-16 Richard Guenther <rguenther@suse.de>
15829
15830 PR tree-optimization/31146
15831 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
15832 to allow recursion of forward_propagate_addr_expr.
15833 (forward_propagate_addr_into_variable_array_index): Likewise.
15834 (forward_propagate_addr_expr): Likewise.
15835 (tree_ssa_forward_propagate_single_use_vars): Likewise.
15836 (forward_propagate_addr_expr_1): Recurse on simple copies
15837 instead of propagating into them. Do so for useless conversions
15838 as well.
15839 (forward_propagate_addr_expr): Clean up unused statements after
15840 recursion.
15841
15842 2007-03-16 Richard Guenther <rguenther@suse.de>
15843
15844 * builtins.c (expand_builtin_cexpi): Use the right argument
15845 for the expansion via cexp.
15846
15847 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
15848
15849 * configure.ac: Don't require ELF binutils to tolerate # 0 "".
15850 * configure: Rebuilt.
15851
15852 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
15853
15854 PR debug/29906
15855 * dwarf2out.c (force_type_die): Adjust comment.
15856 (dwarf2out_imported_module_or_decl): Handle base AT_import types.
15857
15858 2007-03-15 DJ Delorie <dj@redhat.com>
15859
15860 * config/frv/predicates.md (minmax_operator): Don't check operands
15861 here.
15862
15863 2007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
15864
15865 * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
15866 Update constant estimates of number of iterations.
15867 (record_nonwrapping_iv): Add "upper" argument. "data_size_bounds_p"
15868 argument renamed to "realistic".
15869 (compute_estimated_nb_iterations): Removed.
15870 (record_niter_bound): New function.
15871 (idx_infer_loop_bounds): For possible but unlikely tail arrays,
15872 call record_nonwrapping_iv with upper = false.
15873 (infer_loop_bounds_from_signedness): Pass upper argument to
15874 record_nonwrapping_iv.
15875 (estimate_numbers_of_iterations_loop): Do not call
15876 compute_estimated_nb_iterations. Record estimate based on profile
15877 information. Initialize the constant estimates of number of
15878 iterations.
15879 * tree-data-ref.c (estimated_loop_iterations): Return the recorded
15880 estimates.
15881 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
15882 number of iterations is too small.
15883 * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
15884 (EST_NOT_AVAILABLE): Removed.
15885 (struct loop): Replace estimated_nb_iterations by any_upper_bound,
15886 nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
15887 fields.
15888
15889 2007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
15890
15891 * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
15892 Handle NE_EXPR guards.
15893
15894 2007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15895
15896 PR c++/24924
15897 * c-opts.c (c_common_post_options): Handle C++ post-processing here.
15898 Set also -pedantic-errors by default for the preprocessor unless
15899 -fpermissive is given.
15900
15901 2007-03-15 Richard Guenther <rguenther@suse.de>
15902
15903 PR middle-end/29719
15904 PR middle-end/31161
15905 * builtins.c (expand_builtin_cexpi): As a fallback if we
15906 don't have builtins for sincos or cexp create a function
15907 declaration for cexp and expand to a call to that.
15908 (expand_builtin_int_roundingfn): Always fall
15909 back to floor/ceil and its variants even if they may be
15910 not available.
15911
15912 2007-03-15 Steven Bosscher <steven@gcc.gnu.org>
15913
15914 PR middle-end/31159
15915 * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
15916 jump tables, move the call to delete_dead_jumptables from here...
15917 (cfg_layout_finalize): ...to here. But rebuild jump labels first.
15918 * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
15919 don't allow merging of blocks that try_redirect_by_replacing_jump
15920 also does not handle when not optimizing.
15921
15922 2007-03-15 Uros Bizjak <ubizjak@gmail.com>
15923 Francois-Xavier Coudert <coudert@clipper.ens.fr>
15924
15925 * config/i386/i386.md (x86_sahf_1): Correctly handle
15926 HAVE_AS_IX86_SAHF.
15927
15928 2007-03-15 Uros Bizjak <ubizjak@gmail.com>
15929
15930 PR target/31167
15931 * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
15932 x86_64_general_operand as operand[2] predicate. Remove "iF"
15933 from operand constraints and use "e" constraint instead.
15934 (*subti3_1, *subti3_1 splitter): Ditto.
15935 (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
15936 operand[1] predicate.
15937
15938 2007-03-14 Sebastian Pop <sebastian.pop@inria.fr>
15939
15940 * tree-loop-linear.c (gather_interchange_stats): For multidimensional
15941 arrays, multiply the access strides by the size of the sub-array.
15942 * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
15943
15944 2007-03-14 Uros Bizjak <ubizjak@gmail.com>
15945
15946 * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
15947 the configured assembler supports the sahf mnemonic.
15948 * configure: Regenerate.
15949 * config.in: Regenerate.
15950
15951 * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
15952 emit "sahf" or ".byte\t0x9e" as asm template.
15953
15954 2007-03-14 Michael Meissner <michael.meissner@amd.com>
15955
15956 PR 31018
15957 * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
15958 option to replace hard coded TARGET_xxx in md file.
15959 (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
15960 (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
15961 (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
15962 (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
15963 (X86_TUNE_NOT_UNPAIRABLE): Ditto.
15964 (X86_TUNE_NOT_VECTORMODE): Ditto.
15965 (TUNE_SHORTEN_X87_SSE): Use new tuning option.
15966 (TUNE_AVOID_VECTOR_DECODE): Ditto.
15967 (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
15968 (TUNE_SLOW_IMUL_IMM8): Ditto.
15969 (TUNE_MOVE_M1_VIA_OR): Ditto.
15970 (TUNE_NOT_UNPAIRABLE): Ditto.
15971 (TUNE_NOT_VECTORMODE): Ditto.
15972
15973 * config/i386/i386.c (ix86_tune_features): Fill in new tuning
15974 options.
15975
15976 * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
15977 tuning options instead of hard coded TARGET_xxx.
15978 (fix ssemode peephole2's): Ditto.
15979 (imul peephole2's): Ditto.
15980 (movsi_or): Ditto.
15981 (movdi_or_rex64): Ditto.
15982 (move peephole2): Ditto.
15983 (not peephole2's): Ditto.
15984
15985 2007-03-14 Dirk Mueller <dmueller@suse.de>
15986
15987 * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
15988 * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
15989 * c-parser.c (c_parser_if_body): Always add an empty statement in case
15990 of empty body.
15991 * c-parser.c (c_parser_do_statement): Warn about empty body in
15992 do/while statement.
15993 * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
15994 * doc/invoke.texi (-Wempty-body): Update documentation.
15995
15996 2007-03-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15997
15998 PR c/21438
15999 * c-common.h (warn_for_div_by_zero): Declare.
16000 * c-common.c (warn_for_div_by_zero): Define.
16001 * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
16002 warning.
16003
16004 2007-03-14 Richard Sandiford <richard@codesourcery.com>
16005
16006 * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
16007 to PREFIX and STANDARD_PREFIX.
16008
16009 2007-03-14 Richard Sandiford <richard@codesourcery.com>
16010 Phil Edwards <phil@codesourcery.com>
16011
16012 * gthr-vxworks.h: Add an extern "C" wrapper for C++.
16013 (__gthread_once_t): Remove busy field for RTPs.
16014 (__GTHREAD_ONCE_INIT): Update accordingly.
16015
16016 2007-03-14 Richard Sandiford <richard@codesourcery.com>
16017
16018 * doc/invoke.texi: Document VxWorks options.
16019
16020 2007-03-14 Uros Bizjak <ubizjak@gmail.com>
16021
16022 * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
16023
16024 2007-03-13 Seongbae Park <seongbae.park@gmail.com>
16025
16026 PR tree-optimization/30590
16027 * tree-nrv.c (tree_nrv): Check for the partial update of the
16028 return value.
16029
16030 2007-03-13 Alexandre Oliva <aoliva@redhat.com>
16031
16032 * flags.h (flag_random_seed): Remove declaration, in favor of...
16033 * toplev.h (get_random_seed, set_random_seed): ... these.
16034 * tree.c (get_file_function_name): Use the former.
16035 * opts.c (common_handle_option): Use the latter.
16036 * toplev.c
16037
16038 2007-03-13 Steven Bosscher <steven@gcc.gnu.org>
16039
16040 PR middle-end/31127
16041 * cse.c (cse_find_path): Do not bail out if a basic block that
16042 we already visited now becomes part of a path that starts at a
16043 different basic block. Just disallow this, to make sure we
16044 visit each basic block at most once.
16045
16046 2007-03-13 Jan Hubicka <jh@suse.cz>
16047
16048 * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold
16049 attributes, when profile esitmate is present, calls with very low
16050 frequency are cold.
16051
16052 2007-03-13 Zdenek Dvorak <dvorakz@suse.cz>
16053
16054 PR tree-optimization/30730
16055 PR tree-optimization/26900
16056 * tree-ssa-loop-niter.c: Include gmp.h.
16057 (bounds): New type.
16058 (mpz_set_double_int, get_type_bounds, mpz_to_double_int,
16059 split_to_var_and_offset, determine_value_range,
16060 bound_difference_of_offsetted_base, refine_bounds_using_guard,
16061 bound_difference, bounds_add, bounds_negate,
16062 number_of_iterations_ne_max, dump_affine_iv): New functions.
16063 (number_of_iterations_ne, number_of_iterations_lt_to_ne,
16064 assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
16065 difference of initial and final value of control iv to validate
16066 results.
16067 (number_of_iterations_cond): Add loop parameter. Determine bounds
16068 on the difference of the extremes of the control iv. Add dumps.
16069 (expand_simple_operations): Handle phi nodes.
16070 (simplify_using_initial_conditions): Do not record used conditions.
16071 (number_of_iterations_exit): Pass loop to number_of_iterations_cond.
16072 Do not set additional_info.
16073 (implies_nonnegative_p, implies_ge_p): Removed.
16074 (derive_constant_upper_bound): Do not use parameter `additional'.
16075 (record_estimate): Parameter `additional' removed. Parameter
16076 `i_bound' added. Do not call derive_constant_upper_bound.
16077 (record_nonwrapping_iv): Use derive_constant_upper_bound to
16078 bound the number of iterations estimate.
16079 (estimate_numbers_of_iterations_loop): Pass the estimate from
16080 the number of iterations analysis to record_estimate.
16081 * tree.h (multiple_of_p): Declare.
16082 * tree-scalar-evolution.c (expression_expensive_p): Removed.
16083 (scev_const_prop): Do not check expression_expensive_p.
16084 * fold-const.c (multiple_of_p): Exported.
16085 * double-int.c (double_int_mask): Exported.
16086 * double-int.h (double_int_mask): Declare.
16087 * tree-flow.h (struct tree_niter_desc): Removed additional_info
16088 field. Added max field.
16089
16090 2007-03-13 David Taylor <taylor@candd.org>
16091
16092 PR driver/12448:
16093 * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
16094 default -MQ.
16095
16096 2007-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16097
16098 PR target/31123
16099 * pa.md (vdepi_ior): Don't allow zero length deposit. Likewise for
16100 two unamed patterns.
16101
16102 2007-03-13 Uros Bizjak <ubizjak@gmail.com>
16103
16104 * config/i386/i386.opt (mcx16, msahf): New options.
16105 * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
16106 (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
16107
16108 * config/i386/driver-i386.c (bit_LAHF_LM): New define.
16109 (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
16110 Output -mcx16 and -msahf options when corresponding bit is set.
16111
16112 * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
16113 and -msahf options.
16114
16115 2007-03-13 Alexandre Oliva <aoliva@redhat.com>
16116
16117 * configure.ac: Test for assembler tolerance to # 0 "".
16118 * configure, config.in: Rebuilt.
16119 * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.
16120
16121 2007-03-13 Geoffrey Keating <geoffk@apple.com>
16122
16123 * doc/invoke.texi (Spec Files): Update for '%{,' spec.
16124
16125 * config/rs6000/darwin-fallback.c: Compile file only on powerpc.
16126 (handle_syscall): Handle direct system calls.
16127 * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
16128
16129 2007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
16130
16131 * doc/invoke.texi: Fix cpp.info cross-reference.
16132 * doc/passes.texi: Fix gcc.info cross-reference.
16133
16134 2007-03-12 Zdenek Dvorak <dvorakz@suse.cz>
16135
16136 PR tree-optimization/30835
16137 * lambda-code.c (can_convert_to_perfect_nest): Check whether
16138 bb_for_stmt is not NULL before accessing it.
16139
16140 2007-03-12 Joseph Myers <joseph@codesourcery.com>
16141
16142 * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
16143 some multilibs.
16144
16145 2007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
16146
16147 PR 30635
16148 * doc/install.texi: Document --enable-stage1-languages
16149
16150 2007-03-12 Steven Bosscher <steven@gcc.gnu.org>
16151
16152 * tree-pass.h (pass_into_cfg_layout_mode,
16153 pass_outof_cfg_layout_mode): Declare.
16154 * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
16155 pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
16156 * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
16157 (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
16158
16159 2007-03-12 Seongbae Park <seongbae.park@gmail.com>
16160
16161 * c-decl.c (warn_variable_length_array): New function.
16162 Refactored from grokdeclarator to handle warn_vla
16163 and handle unnamed array case.
16164 (grokdeclarator): Refactored VLA warning case.
16165 * c.opt (Wvla): New flag.
16166 * doc/invoke.texi (Wvla): New warning.
16167
16168 2007-03-12 Richard Henderson <rth@redhat.com>
16169
16170 * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
16171 (TARGET_SECTION_TYPE_FLAGS): New.
16172
16173 2007-03-12 Richard Henderson <rth@redhat.com>
16174
16175 * config/darwin.c (machopic_reloc_rw_mask): New.
16176 * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
16177 * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
16178
16179 2007-03-12 Mark Mitchell <mark@codesourcery.com>
16180
16181 * cppdefault.c (cpp_EXEC_PREFIX): New variable.
16182 * cppdefault.h (cpp_PREFIX): Document.
16183 (cpp_PREFIX_len): Likewise.
16184 (cpp_EXEC_PREFIX): New variable.
16185 * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
16186 * c-incpath.c (add_standard_paths): Correct logic for relocating
16187 paths within prefix.
16188
16189 2007-03-12 Uros Bizjak <ubizjak@gmail.com>
16190
16191 * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
16192 fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
16193 mode macro.
16194 (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
16195 fix_truncdfdi_sse using SSEMODEF mode macro.
16196 (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
16197 fix_truncdfsi_sse using SSEMODEF mode macro.
16198 (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
16199 (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
16200
16201 2007-03-12 Richard Sandiford <richard@codesourcery.com>
16202
16203 * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
16204 elfos.h to tm_file.
16205
16206 2007-03-12 Olga Golovanevsky <olga@il.ibm.com>
16207
16208 * tree.h : Add multiple_of_p declaration.
16209 * fold-const.c (multiple_of_p): Make multiple_of_p public.
16210 * ipa-type-escape.c (results_of_malloc): Redundant.
16211 (visited_stmts): New. Visited stmt for walk_use_def_chains.
16212 (cast_type): Extended with new members.
16213 (check_cast): Returns cast_type.
16214 (cast): New structure for data of walk_use_def_chains.
16215 (is_malloc_result, is_cast_from_non_pointer_1,
16216 is_cast_from_non_pointer,
16217 is_array_access_through_pointer_and_index): New functions.
16218 (look_for_casts): Returns cast types.
16219 (check_call): Returns void.
16220 (okay_pointer_operation): Use support of pointer plus index,
16221 pointer plus constant and allow all multiplications.
16222
16223 2007-03-11 Richard Guenther <rguenther@suse.de>
16224
16225 PR tree-optimization/31115
16226 * tree-vrp.c (extract_range_from_binary_expr): Make sure
16227 the shift count is positive and non-anti-range for RSHIFT_EXPR.
16228 A shift count of zero is not special as with *_DIV_EXPR.
16229 (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
16230 direction.
16231
16232 2007-03-11 Ian Lance Taylor <iant@google.com>
16233
16234 * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
16235 the *_DIV_EXPR codes correctly with overflow infinities.
16236
16237 2007-03-11 Ira Rosen <irar@il.ibm.com>
16238
16239 * tree-data-ref.c (analyze_offset): Add a return value (bool) to
16240 indicate success/failure of the analysis. Add negation to subtrahend
16241 in case of subtraction. Fail if both operands contain constants.
16242 (create_data_ref): Fail if analyze_offset fails.
16243
16244 2007-03-11 Uros Bizjak <ubizjak@gmail.com>
16245
16246 * config/i386/i386.md (frndintxf2): Rename to ...
16247 (rintxf2): ... this. Remove expander having same name.
16248 (rintsf2, rintdf2): Implement using SSEMODEF macro.
16249 (roundsf2, rounddf2): Ditto.
16250 (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
16251 (lround<mode>di2, lround<mode>si2): Ditto.
16252
16253 2007-03-11 Steven Bosscher <steven@gcc.gnu.org>
16254
16255 * lower-subreg.c: Include except.h.
16256 (decompose_multiword_subregs): Verify that the only control flow
16257 insns we can split are loads to multi-words pseudos.
16258 Handle breaking such blocks after splitting, instead of calling
16259 find_many_sub_basic_blocks.
16260
16261 * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
16262 on the new basic block. Add a lengthy comment explaining why we
16263 thought this was necessary.
16264 * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
16265
16266 2007-03-10 Mark Mitchell <mark@codesourcery.com>
16267
16268 PR c++/30924
16269 * tree.c (walk_type_fields): Recurse into the element type of
16270 ARRAY_TYPEs if there is a pointer set.
16271
16272 2007-03-10 Dirk Mueller <dmueller@suse.de>
16273
16274 * c-common.c (warn_logical_operator): Fix condition.
16275
16276 2007-03-10 Tobias Schl�ter <tobi@gcc.gnu.org>
16277
16278 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
16279 quotation mark.
16280 * config/darwin.c (machopic_select_section): Remove superfluous
16281 argument in call to categorize_decl_for_section. Remove unused
16282 variable shlib.
16283
16284 2007-03-10 Joseph Myers <joseph@codesourcery.com>
16285
16286 * configure.ac (glibc_header_dir): Set using with_build_sysroot if
16287 defined.
16288 * configure: Regenerate.
16289
16290 2007-03-10 Uros Bizjak <ubizjak@gmail.com>
16291
16292 PR target/31101
16293 * config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
16294 (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
16295 (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
16296 Add LABEL_NUSES to emitted label.
16297 * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
16298 branch probability value to emitted jump insn.
16299 * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
16300 Do not check life information and do not re-arrange input operands
16301 for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.
16302
16303 2007-03-10 Kaz Kojima <kkojima@gcc.gnu.org>
16304
16305 * config/sh/sh.c (sh_insn_length_adjustment): Adjust for
16306 the change of decode_asm_operands.
16307
16308 2007-03-10 Kaz Kojima <kkojima@gcc.gnu.org>
16309
16310 * mode-switching.c (create_pre_exit): Skip blockage insn.
16311
16312 2007-03-09 Diego Novillo <dnovillo@redhat.com>
16313
16314 * tree-pass.h (TODO_update_smt_usage): Remove.
16315 Update all users.
16316 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
16317 argument SOME.
16318 Update all users.
16319
16320 2007-03-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16321
16322 * pa.c (attr_length_call): Revise condition for long
16323 pc-relative branch.
16324 (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long
16325 local calls on the SOM target. Don't use "LONG_PIC_PCREL" call
16326 sequence on SOM target.
16327
16328 2007-03-09 Geoffrey Keating <geoffk@apple.com>
16329
16330 * gcc.c: Document %{, in big comment at top.
16331 (input_suffix_matches): Remove special handling for .s and
16332 .S.
16333 (input_spec_matches): New.
16334 (handle_braces): Handle %{,.
16335 (validate_switches): ',' indicates a value which is not a switch.
16336 * config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
16337 to detect assembler input.
16338 * config/i386/sol2.h (CPP_SPEC): Likewise.
16339 * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
16340 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
16341 * config/rs6000/lynx.h (ASM_SPEC): Likewise.
16342 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
16343 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
16344 -m64 causes deployment target to default to 10.5.
16345 * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
16346
16347 2007-03-09 Richard Henderson <rth@redhat.com>
16348
16349 PR target/26090
16350 * target.h (targetm.asm.out.reloc_rw_mask): New.
16351 * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
16352 (TARGET_ASM_OUT): Use it.
16353 * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
16354 * varasm.c (categorize_decl_for_section): Remove shlib argument;
16355 use the new reloc_rw_mask target hook instead.
16356 (default_section_type_flags_1): Merge into...
16357 (default_section_type_flags): ... here.
16358 (decl_readonly_section_1): Merge into...
16359 (decl_readonly_section): ... here.
16360 (default_elf_select_section_1): Merge into...
16361 (default_elf_select_section): ... here.
16362 (default_unique_section_1): Merge into...
16363 (default_unique_section): ... here.
16364 (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
16365 (default_select_rtx_section): Use it.
16366 (default_elf_select_rtx_section): Likewise.
16367 * output.h: Update to match.
16368 * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
16369 * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
16370 (TARGET_ASM_RELOC_RW_MASK): New.
16371 * config/i386/i386.c (x86_64_elf_select_section): Adjust call
16372 to categorize_decl_for_section.
16373 (x86_64_elf_unique_section): Likewise.
16374 * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
16375 TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
16376 (TARGET_ASM_RELOC_RW_MASK): New.
16377 * config/ia64/ia64.c (ia64_rwreloc_select_section,
16378 ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
16379 (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
16380 (TARGET_RWRELOC): Remove.
16381 (ia64_section_type_flags): Adjust call to default_section_type_flags.
16382 * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
16383 * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
16384 (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
16385 (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
16386 (rs6000_xcoff_select_section): Use decl_readonly_section.
16387 (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
16388 * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
16389 (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
16390 (TARGET_SECTION_TYPE_FLAGS): Remove.
16391 * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
16392
16393 2007-03-09 Roger Sayle <roger@eyesopen.com>
16394
16395 * fold-const.c (fold_comparison): Remove compile-time evaluation of
16396 complex constant equality/inequality comparisons for here.
16397 (fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
16398 known at compile-time or can be simplified to a scalar comparison.
16399 (fold_relational_const): Move compile-time evaluation of complex
16400 constant equality/inequality comparisons to here.
16401
16402 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
16403
16404 PR rtl-optimization/30643
16405 * cse.c (cse_insn): Recompute dest_hash after insert_regs for
16406 dest_addr_elt.
16407 (fold_rtx): Recurse, like before 2006-11-03.
16408
16409 2007-03-09 DJ Delorie <dj@redhat.com>
16410
16411 * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to
16412 m32c-pragma.o.
16413
16414 2007-03-09 Aldy Hernandez <aldyh@redhat.com>
16415
16416 PR tree-optimization/30375
16417 * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
16418 LHS of statements is not the same.
16419 * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.
16420
16421 2007-03-09 Chao-ying Fu <fu@mips.com>
16422
16423 * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
16424 REV 2.
16425 * doc/invoke.texi (-mdspr2): Document new option.
16426 * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
16427 New unspec for DSP REV 2.
16428 (<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
16429 these instructions are extended in DSP REV 2.
16430 (mips-dspr2.md): Include.
16431 * config/mips/mips.opt (mdspr2): New option.
16432 * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
16433 MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
16434 MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
16435 (override_options): Check TARGET_DSPR2 to enable MASK_DSP.
16436 (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
16437 (dsp_bdesc): Add DSP REV 2 builtins. Remove 32-bit only DSP builtins.
16438 (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
16439 and 2 builtins.
16440 (bdesc_map): Add one field of unsupported_target_flags.
16441 (bdesc_arrays): Update entries to have extra fields. Add
16442 dsp_32only_bdesc.
16443 (mips_init_builtins): Initialize new function types.
16444 Check unsupported_target_fileds to filter out builtins.
16445 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
16446 TARGET_DSPR2.
16447 (ASM_SPEC): Pass mdspr2 to the assembler.
16448 * config/mips/mips-dspr2.md: New file.
16449
16450 2007-03-09 Sa Liu <saliu@de.ibm.com>
16451
16452 * config/rs6000/altivec.md: Fix vcond patterns using if_then_else.
16453
16454 2007-03-09 Ian Lance Taylor <iant@google.com>
16455
16456 * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
16457 argument) like -Wstrict-overflow=2.
16458 * doc/invoke.texi (Warning Options): Update documentation.
16459
16460 2007-03-09 Dirk Mueller <dmueller@suse.de>
16461
16462 PR c++/17946
16463 * doc/invoke.texi (-Wlogical-op): Document.
16464 * common.opt (-Wlogical-op): New.
16465 * c-common.h (warn_logical_operator): Declare.
16466 * c-common.c (warn_logical_operator): Define.
16467 * c-typeck.c (parser_build_binary_op): Call
16468 warn_logical_operator.
16469
16470 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
16471
16472 * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
16473 * final.c (final_scan_insn): Test for non-"" file name.
16474
16475 2007-03-09 Sebastian Pop <sebastian.pop@inria.fr>
16476
16477 * doc/loop.texi: Document the Omega linear constraints solver.
16478 * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
16479 omega-max-geqs, omega-max-eqs, omega-max-wild-cards,
16480 omega-hash-table-size, omega-max-keys, and
16481 omega-eliminate-redundant-constraints.
16482 * tree-pass.h (pass_check_data_deps): Declared.
16483 * omega.c: New.
16484 * omega.h: New.
16485 * timevar.def (TV_CHECK_DATA_DEPS): Declared.
16486 * tree-ssa-loop.c (check_data_deps, gate_check_data_deps,
16487 pass_check_data_deps): New.
16488 * tree-data-ref.c (init_data_ref): Remove declaration.
16489 (dump_data_dependence_relation): Dump DDR_INNER_LOOP.
16490 (analyze_array): Renamed init_array_ref, move up initializations.
16491 (init_data_ref): Renamed init_pointer_ref. Moved before its call.
16492 Removed arguments that are set to NULL.
16493 (analyze_indirect_ref): Correct indentation, correct call to
16494 init_pointer_ref.
16495 (object_analysis): Call init_array_ref instead of analyze_array.
16496 (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
16497 (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
16498 of DR_ACCESS_FNS_ADDR.
16499 (init_omega_eq_with_af, omega_extract_distance_vectors,
16500 omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
16501 ddr_consistent_p): New.
16502 (compute_affine_dependence): Check consistency of ddrs when
16503 flag_check_data_deps is passed.
16504 (analyze_all_data_dependences): Uncomment.
16505 (tree_check_data_deps): New.
16506 * tree-data-ref.h: Include omega.h.
16507 (DR_ACCESS_FNS_ADDR): Removed.
16508 (data_dependence_relation): Add inner_loop.
16509 (DDR_INNER_LOOP): New.
16510 * common.opt (fcheck-data-deps): New.
16511 * tree-flow.h (tree_check_data_deps): Declare.
16512 * Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
16513 (OBJS-common): Depend on omega.o.
16514 (omega.o): Define.
16515 * passes.c (pass_check_data_deps): Scheduled.
16516 * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
16517 PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
16518 PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
16519 PARAM_VECT_MAX_VERSION_CHECKS,
16520 PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.
16521
16522 2007-03-09 Richard Guenther <rguenther@suse.de>
16523
16524 PR tree-optimization/30904
16525 PR middle-end/31058
16526 * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR
16527 the same way as *_DIV_EXPR.
16528
16529 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
16530
16531 * recog.c (decode_asm_operands): No mixed declarations and code.
16532
16533 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
16534
16535 * rtl.def (ASM_INPUT): Add location.
16536 * rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
16537 (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
16538 (decode_asm_operands): Add loc operand.
16539 (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define.
16540 * stmt.c (expand_asm): Rename to...
16541 (expand_asm_loc): ... this. Add locus argument. Pass it on to
16542 gen_rtx_ASM_INPUT_loc.
16543 (expand_asm_expr): Adjust.
16544 * recog.c (decode_asm_operands): Add loc operand.
16545 (check_asm_operands, extract_insn): Adjust.
16546 * reload1.c (maybe_fix_stack_asms): Likewise.
16547 * final.c (asm_insn_count): Likewise.
16548 (final_scan_insn): Output # line before and after asm.
16549
16550 2007-03-09 Daniel Berlin <dberlin@dberlin.org>
16551
16552 * tree-ssa-structalias.c (variable_info): Remove
16553 finished_solution.
16554 (new_var_info): Ditto.
16555 (shared_bitmap_info_t): New structure.
16556 (shared_bitmap_table): New variable.
16557 (shared_bitmap_hash): New function.
16558 (shared_bitmap_eq): Ditto
16559 (shared_bitmap_lookup): Ditto.
16560 (shared_bitmap_add): Ditto.
16561 (merge_smts_into): Change to take bitmap directly.
16562 (find_what_p_points_to): Rewrite to use shared bitmap hashtable.
16563 (init_alias_vars): Init shared bitmap hashtable.
16564 (delete_points_to_sets): Delete shared bitmap hashtable.
16565 * tree-ssa-operands.c (add_virtual_operand): Partially revert the
16566 is_aliased removal as a change that was still necessary was
16567 deleted.
16568
16569 2007-03-09 Uros Bizjak <ubizjak@gmail.com>
16570
16571 * config/i386/i386.h (override_options): Conditionally disable
16572 x86_sahf for 64bit targets only.
16573
16574 2007-03-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
16575
16576 PR C/31072
16577 * c-decl.c (merge_decls): Don't call make_var_volatile.
16578 * varasm.c (make_var_volatile): Remove.
16579 * output.h (make_var_volatile): Remove.
16580
16581 2007-03-08 Zdenek Dvorak <dvorakz@suse.cz>
16582
16583 PR tree-optimization/31085
16584 * tree-ssa-address.c (create_mem_ref): Fix test of type of base.
16585
16586 2007-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16587
16588 * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
16589 llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
16590 ATTR_CONST_NOTHROW_LIST.
16591
16592 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
16593 FIX_TRUNC_EXPR.
16594
16595 2007-03-08 Diego Novillo <dnovillo@redhat.com>
16596
16597 * doc/tree-ssa.texi: Remove documentation for V_MUST_DEF.
16598
16599 2007-03-08 Geoffrey Keating <geoffk@apple.com>
16600
16601 PR 31013
16602 * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
16603 is declared.
16604 * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
16605 passed, use shared libgcc.
16606
16607 2007-03-08 Roger Sayle <roger@eyesopen.com>
16608
16609 * tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt
16610 instead of calling build2 with a GIMPLE_MODIFY_STMT.
16611 (honor_protect_cleanup_actions, lower_try_finally_switch):
16612 Likewise.
16613 * tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt,
16614 ifc_temp_var): Likewise.
16615 * tree-inline.c (setup_one_parameter): Likewise.
16616 * tree-mudflap.c (mf_decl_cache_locals,
16617 mf_build_check_statement_for): Likewise.
16618 * tree-nested.c (init_tmp_var, save_tmp_var,
16619 finalize_nesting_tree_1): Likewise.
16620 * tree-outof-ssa.c (insert_copy_on_edge,
16621 insert_backedge_copies): Likewise.
16622 * tree-profile.c (tree_gen_edge_profiler,
16623 tree_gen_ic_profiler): Likewise.
16624 * tree-scalar-evolution.c (scev_const_prop): Likewise.
16625 * tree-sra.c (sra_build_assignment): Likewise.
16626 * tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise.
16627 * tree-ssa-math-opts.c (insert_reciprocals,
16628 execute_cse_sincos_1): Likewise.
16629 * tree-tailcall.c (adjust_accumulator_values,
16630 adjust_return_value): Likewise.
16631 * tree-vect-patterns.c (vect_pattern_recog_1): Likewise.
16632 * tree-vect-transform.c (vect_create_data_ref_ptr,
16633 bump_vector_ptr, vect_init_vector, get_initial_def_for_induction,
16634 vect_create_epilog_for_reduction, vectorizable_reduction,
16635 vectorizable_call, vectorizable_conversion,
16636 vectorizable_assignment, vectorizable_operation,
16637 vectorizable_type_demotion, vect_gen_widened_results_half,
16638 vect_permute_store_chain, vectorizable_store,
16639 vect_setup_realignment, vect_permute_load_chain,
16640 vectorizable_load, vectorizable_condition,
16641 vect_create_cond_for_align_checks): Likewise.
16642 * tree-vrp.c (build_assert_expr_for): Likewise.
16643
16644 2007-03-08 Ian Lance Taylor <iant@google.com>
16645
16646 * tree-vrp.c: Include "intl.h".
16647 (usable_range_p): New static function.
16648 (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
16649 overflowed values, juts set *strict_overflow_p.
16650 (compare_values): Only return -2 if one of the operands is not a
16651 constant.
16652 (compare_ranges): Call usable_range_p.
16653 (compare_range_with_value): Likewise.
16654 (vrp_evaluate_conditional_warnv): Rename from
16655 vrp_evaluate_conditional. Make static. Change all callers.
16656 (vrp_evaluate_conditional): New function.
16657 (simplify_div_or_mod_using_ranges): Issue warning about reliance
16658 on signed overflow.
16659 (simplify_abs_using_ranges): Likewise.
16660 (simplify_stmt_for_jump_threading): Add within_stmt parameter.
16661 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
16662 within_stmt parameter.
16663 * tree-ssa-propagate.c (fold_predicate_in): Update call to
16664 vrp_evaluate_conditional.
16665 * tree-ssa-threadedge.c
16666 (record_temporary_equivalences_from_stmts_at_dest): Change
16667 simplify parameter to take a second tree parameter.
16668 (simplify_control_stmt_condition): Likewise.
16669 (thread_across_edge): Likewise.
16670 * tree-flow.h (vrp_evaluate_conditional): Update declaration.
16671 (thread_across_edge): Likewise.
16672 * Makefile.in (tree-vrp.o): Depend upon intl.h.
16673
16674 2007-03-08 Uros Bizjak <ubizjak@gmail.com>
16675
16676 * config/i386/i386.h (TARGET_SAHF): New define.
16677 * config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]:
16678 Also enable for m_K8, m_AMDFAM10 and m_CORE2.
16679 (x86_sahf): New global variable.
16680 (override_options): Add PTA_NO_SAHF to pta_flags enum. Recode
16681 pta_flags masks using shifts. Add PTA_NO_SAHF to x86_64 and
16682 nocona processor flags. Set x86_sahf when PTA_NO_SAHF is not set
16683 in processor flags. Do not unconditionally disable TARGET_USE_SAHF
16684 for 64-bit.
16685 (ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF.
16686 (ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF
16687 when expanding fcomi/sahf based tests.
16688 (ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when
16689 expanding sahf based alternative. Emit sahf based sequence when
16690 optimizing for code size.
16691 * config/i386/i386.md (x86_sahf_1): Do not disable for
16692 TARGET_64BIT, enable for TARGET_SAHF.
16693
16694 2007-03-08 Martin Michlmayr <tbm@cyrius.com>
16695
16696 * tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove
16697 spurious whitespace from error message.
16698
16699 2007-03-08 Volker Reichelt <reichelt@netcologne.de>
16700
16701 PR c++/30852
16702 * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
16703
16704 2007-03-08 Alexandre Oliva <aoliva@redhat.com>
16705
16706 * c-decl.c (grokdeclarator): Disable warnings for anonymous
16707 bitfields.
16708 * tree-sra.c (instantiate_element): Propagate disabled warnings
16709 from the element itself to the created variable.
16710
16711 2007-03-07 Richard Henderson <rth@redhat.com>
16712
16713 PR target/30848
16714 * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
16715 silently fix up the stack in the case of a missing register.
16716
16717 2007-03-07 Paul Brook <paul@codesourcery.com>
16718
16719 * config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds.
16720
16721 2007-03-07 Joseph Myers <joseph@codesourcery.com>
16722
16723 * config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs):
16724 New.
16725 (phase1_vrs): Use them.
16726 (DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New.
16727 (__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD,
16728 __gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare.
16729 (restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and
16730 __gnu_Unwind_Restore_WMMXC if required.
16731 (_Unwind_VRS_Pop): Implement iWMMXt support.
16732 * config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD,
16733 gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC,
16734 gnu_Unwind_Save_WMMXC): Define.
16735
16736 2007-03-07 Richard Sandiford <richard@codesourcery.com>
16737
16738 * config/vxworks.h (vxworks_override_options): Declare.
16739 (VXWORKS_OVERRIDE_OPTIONS): Use it.
16740 * config/vxworks.c: Include target.h and toplev.h.
16741 (vxworks_override_options): New function.
16742 * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.
16743
16744 2007-03-07 Andreas Krebbel <krebbel1@de.ibm.com>
16745
16746 * config/s390/s390.c (override_options): Don't emit an error when
16747 -mstack-size is used without providing -mstack-guard.
16748 (s390_emit_prologue): Choose stack_guard value automatically if not
16749 provided via command line.
16750 * doc/invoke.texi: Adjust description of -mstack-guard and
16751 -mstack-size.
16752
16753 2007-03-07 Richard Sandiford <richard@codesourcery.com>
16754
16755 * config/i386/i386.c (output_set_got): Add a GOT initialization
16756 sequence for VxWorks PIC.
16757 (legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
16758 around labels as well as symbols. Use gotoff_operand instead
16759 of local_symbolic_operand.
16760 (legitimize_pic_address): Use gotoff_operand instead of
16761 local_symbolic_operand. Use @GOT accesses for labels as
16762 well as symbols.
16763 (ix86_output_addr_diff_elt): Use PC-relative rather than
16764 GP-relative offsets for VxWorks PIC.
16765 (ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
16766 no_new_pseudos. Check whether the returned register is op0.
16767 * config/i386/i386.md (tablejump): Use PC-relative rather than
16768 GP-relative offsets for VxWorks PIC.
16769 * config/i386/predicates.md (gotoff_operand): New predicate.
16770
16771 2007-03-06 Richard Sandiford <richard@codesourcery.com>
16772
16773 * config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine
16774 before defining.
16775 * config/vxworks-dummy.h: New file.
16776 * config/i386/i386.h: Include it.
16777
16778 2007-03-07 Alexandre Oliva <aoliva@redhat.com>
16779
16780 * dwarf2out.c (is_inlined_entry_point): New
16781 (add_high_low_attributes): Emit DW_AT_entry_pc along with
16782 DW_AT_ranges if the first subblock is the entry point.
16783
16784 2007-03-06 David Daney <ddaney@avtrex.com>
16785
16786 * doc/install.texi (mips-*-*): Change recommended binutils
16787 version.
16788
16789 2007-03-06 Anatoly Sokolov <aesok@post.ru>
16790
16791 * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
16792 ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
16793 devices.
16794 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
16795 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
16796
16797 2007-03-06 Jan Hubicka <jh@suse.cz>
16798
16799 * errors.h (warning, error, fatal, internal_error): Mark as cold.
16800 * predict.c (maybe_hot_bb): Cold functions are never hot; hot
16801 functions are hot.
16802 (probably_cold_bb_p): Cold functions are cold.
16803 (probably_never_executed_bb_p): Cold functions are cold.
16804 (tree_bb_level_predictions): Predict calls to cold functions as not
16805 taken.
16806 (compute_function_frequency): Check hot/cold attributes.
16807 * function.h (function_frequency): Update comments.
16808 * predict.def (PRED_COLD_FUNCTION): Predict cold function.
16809 * c-common.c (handle_hot_attribute, handle_cold_attribute): New.
16810 (c_common_att): Add cold and hot.
16811
16812 * doc/extend.texi (hot,cold attributes): Document.
16813
16814 2007-03-06 Andrew Haley <aph@redhat.com>
16815
16816 * function.c (expand_function_end): Move blockage to just after we
16817 emit the label for the naked return from the function.
16818
16819 2007-03-06 Richard Sandiford <richard@codesourcery.com>
16820
16821 * config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine
16822 before redefining.
16823
16824 2007-03-06 Jan Hubicka <jh@suse.cz>
16825
16826 * reg-stack.c (reg_to_stack): Large models don't allow NAN to be
16827 loaded for constant large models. Non-large 64bit PIC can do.
16828 * i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
16829 * cmodel.h: Add LARGE PIC.
16830 * i386.md (UNSPEC_PLTOFF): New.
16831 (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other
16832 unspecs as needed.
16833 (*call_1_rex64): Disable for large models.
16834 (*call_1_rex64_large): New.
16835 (*call_value_1_rex64): Disable for large models.
16836 (*call_value_1_rex64_large): New.
16837 (set_rip_rex4): New.
16838 (set_got_offset_rex64): New.
16839 * predicates.md (constant_call_address_operand): For large model
16840 constant calls are not possible.
16841 * i386-protos.h (construct_plt_address): Declare.
16842 * i386.c (override_options): Accept large models.
16843 (ix86_expand_prologue): Expand large PIC GOT pointer load.
16844 (legitimate_constant_p): Add new UNSPECs.
16845 (legitimate_pic_operand_p): Likewise.
16846 (legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
16847 (legitimize_pic_address): Do easy RIP relative way for TLS only for
16848 non-large model.
16849 (output_pic_addr_const): Add PLTOFF.
16850 (ix86_output_addr_diff_elt): Output 64bit tables when needed.
16851 (ix86_expand_move): Legitimize pic address when in PIC mode.
16852 (construct_plt_address): New function.
16853 (ix86_expand_call): Offload the address to register and use GOT
16854 pointer for large model.
16855 * invoke.texi (mcmodel=large): Update documentation.
16856
16857 2007-03-06 Richard Henderson <rth@redhat.com>
16858
16859 * config/i386/i386.c (x86_use_leave, x86_push_memory,
16860 x86_zero_extend_with_and, x86_movx, x86_double_with_add,
16861 x86_use_bit_test, x86_unroll_strlen, x86_deep_branch,
16862 x86_branch_hints, x86_use_sahf, x86_partial_reg_stall,
16863 x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop,
16864 x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify,
16865 x86_split_long_moves, x86_promote_QImode, x86_fast_prefix,
16866 x86_single_stringop, x86_qimode_math, x86_promote_qi_regs,
16867 x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8,
16868 x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
16869 x86_partial_reg_dependency, x86_memory_mismatch_stall,
16870 x86_prologue_using_move, x86_epilogue_using_move, x86_shift1,
16871 x86_sse_partial_reg_dependency, x86_sse_split_regs,
16872 x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
16873 x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec,
16874 x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit,
16875 x86_schedule, x86_use_bt, x86_pad_returns,
16876 x86_use_xchgb): Merge into ...
16877 (ix86_tune_features): ... here. New array.
16878 (x86_cmove, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
16879 x86_bswap): Merge into ...
16880 (ix86_arch_features): ... here. New array.
16881 (x86_3dnow_a): Remove.
16882 (x86_accumulate_outgoing_args): Make static.
16883 (x86_arch_always_fancy_math_387): Make static.
16884 (ix86_tune_mask, ix86_arch_mask): Move ...
16885 (override_options): ... to local variables here. Apply the
16886 appropriate mask to each element of ix86_arch_features and
16887 ix86_tune_features. Adjust TARGET_CMOVE and TARGET_USE_SAHF
16888 as were done in the old macros.
16889 (standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS.
16890 * config/i386/i386.h (x86_use_leave, x86_push_memory,
16891 x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch,
16892 x86_branch_hints, x86_unroll_strlen, x86_double_with_add,
16893 x86_partial_reg_stall, x86_movx, x86_use_himode_fiop,
16894 x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb,
16895 x86_read_modify_write, x86_read_modify, x86_split_long_moves,
16896 x86_promote_QImode, x86_single_stringop, x86_fast_prefix,
16897 x86_himode_math, x86_qimode_math, x86_promote_qi_regs,
16898 x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4,
16899 x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8,
16900 x86_partial_reg_dependency, x86_memory_mismatch_stall,
16901 x86_accumulate_outgoing_args, x86_prologue_using_move,
16902 x86_epilogue_using_move, x86_decompose_lea,
16903 x86_arch_always_fancy_math_387, x86_shift1,
16904 x86_sse_partial_reg_dependency, x86_sse_split_regs,
16905 x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
16906 x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves,
16907 x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
16908 x86_use_incdec, x86_pad_returns, x86_bswap,
16909 x86_partial_flag_reg_stall): Remove.
16910 (enum ix86_tune_indices): New.
16911 (ix86_tune_features): New.
16912 (TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND,
16913 TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN,
16914 TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS,
16915 TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX,
16916 TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL,
16917 TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0,
16918 TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES,
16919 TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode,
16920 TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH,
16921 TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS,
16922 TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4,
16923 TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES,
16924 TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY,
16925 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS,
16926 TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR,
16927 TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE,
16928 TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP,
16929 TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE,
16930 TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS,
16931 TARGET_EXT_80387_CONSTANTS): Use it.
16932 (enum ix86_arch_indices): New.
16933 (ix86_arch_features): New.
16934 (TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD,
16935 TARGET_BSWAP): Use it.
16936 (ix86_tune_mask, ix86_arch_mask): Remove.
16937
16938 2007-03-06 Joseph Myers <joseph@codesourcery.com>
16939
16940 PR bootstrap/31020
16941 * configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir):
16942 Define using $${sysroot_headers_suffix}.
16943 * configure: Regenerate.
16944 * cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a
16945 multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC
16946 defined.
16947 * doc/invoke.texi (-print-sysroot-headers-suffix): Document.
16948 * gcc.c (print_sysroot_headers_suffix): New.
16949 (option_map): Include --print-sysroot-headers-suffix.
16950 (display_help): Mention -print-sysroot-headers-suffix.
16951 (process_command): Handle -print-sysroot-headers-suffix.
16952 (do_spec_1): Append multilib directory to include-fixed path if
16953 sysroot suffixes in use.
16954 (main): Handle -print-sysroot-headers-suffix.
16955 * Makefile.in (start.encap): Don't depend on xlimits.h
16956 (xlimits.h): Remove.
16957 (stmp-int-hdrs): Don't depend on xlimits.h. Inline generation of
16958 limits.h for each multilib in fixinc_list.
16959 (fixinc_list, s-fixinc_list): New.
16960 (stmp-fixinc): Depend on fixinc_list. If not copying headers,
16961 generate them for each multilib in fixinc_list.
16962 (stmp-fixproto): Use include-fixed. Run fixproto for each
16963 multilib in fixinc_list.
16964 (mostlyclean): Don't remove xlimits.h.
16965 (clean): Remove include-fixed.
16966 (real-install-headers-tar, real-install-headers-cpio,
16967 real-install-headers-cp): Don't copy include, only include-fixed.
16968 (install-mkheaders): Depend on fixinc_list. Don't depend on
16969 xlimits.h. Save limits.h files for each multilib in fixinc_list.
16970 Always save mkinstalldirs. Preserve ${sysroot_headers_suffix} in
16971 SYSTEM_HEADER_DIR setting in mkheaders.conf.
16972
16973 2007-03-06 Jan Hubicka <jh@suse.cz>
16974
16975 * regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load
16976 NANs easilly.
16977
16978 2007-03-06 Richard Sandiford <richard@codesourcery.com>
16979
16980 * configure.ac: Allow tm_file to contain build-directory files.
16981 * configure: Regenerate.
16982 * config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file.
16983 * config/m68k/t-uclinux (sysroot-suffix.h): New target.
16984 * config/m68k/print-sysroot-suffix.sh: New file.
16985
16986 2007-03-06 Richard Sandiford <richard@codesourcery.com>
16987
16988 * config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
16989 of pic_offset_table_rtx if reload_completed.
16990 (CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
16991 PIC_OFFSET_TABLE_REGNUM.
16992 * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
16993 return true.
16994 (m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
16995 (m68k_output_mi_thunk): Rewrite to use RTL. Honor vcall_offset.
16996
16997 2007-03-06 Richard Sandiford <richard@codesourcery.com>
16998
16999 * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
17000 functions that call eh_return.
17001
17002 2007-03-06 Richard Sandiford <richard@codesourcery.com>
17003
17004 * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
17005 functions that need a constant pool.
17006
17007 2007-03-06 Richard Sandiford <richard@codesourcery.com>
17008
17009 PR target/28181
17010 * config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare.
17011 (m68k_preferred_reload_class): Likewise.
17012 * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment.
17013 (SECONDARY_RELOAD_CLASS): Define.
17014 (PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class.
17015 (LIMIT_RELOAD_CLASS): Delete.
17016 * config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address
17017 registers from storing bytes.
17018 (m68k_secondary_reload_class): New function.
17019 (m68k_preferred_reload_class): Likewise.
17020
17021 2007-03-06 Richard Sandiford <richard@codesourcery.com>
17022
17023 * config/m68k/m68k.c (m68k_save_reg): Remove special case for
17024 leaf functions.
17025 (m68k_expand_prologue): Likewise.
17026
17027 2007-03-06 Richard Sandiford <richard@codesourcery.com>
17028
17029 * config/m68k/m68k-protos.h (output_sibcall): Declare.
17030 (mips_expand_epilogue): Add a bool parameter.
17031 (m68k_legitimize_sibcall_address): Declare.
17032 * config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
17033 (m68k_expand_epilogue): Add a parameter to select between sibling
17034 and normal epilogues. Only generate a return for the latter.
17035 (m68k_ok_for_sibcall_p): New function.
17036 (m68k_legitimize_sibcall_address, output_sibcall): New functions.
17037 * config/m68k/m68k.md (sibcall, *sibcall): New patterns.
17038 (sibcall_value, *sibcall_value): Likewise.
17039 (*call, *call_value): Require !SIBLING_CALL_P.
17040 (epilogue): Update call to m68k_expand_epilogue.
17041 (sibcall_epilogue): New pattern.
17042 * config/m68k/predicates.md (const_call_operand): Say that this
17043 predicate applies to sibling calls too.
17044 (sibcall_operand): New predicate.
17045
17046 2007-03-06 Richard Sandiford <richard@codesourcery.com>
17047
17048 * config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q
17049 alternatives as movsi_cf.
17050 (movsf_cf_hard): Add commentary.
17051
17052 2007-03-06 Kazu Hirata <kazu@codesourcery.com>
17053 Richard Sandiford <richard@codesourcery.com>
17054
17055 * config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
17056 (m68k_movem_pattern_p, m68k_output_movem): Likewise.
17057 (m68k_expand_prologue, m68k_expand_epilogue): Likewise.
17058 * config/m68k/m68k.h (EPILOGUE_USES): Define. Treat all registers
17059 as being live on exit from an interrupt function.
17060 (PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
17061 * config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
17062 (m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
17063 (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
17064 (m68k_interrupt_function_p): Globalize.
17065 (m68k_compute_frame_layout): Remove reverse mask code.
17066 (m68k_emit_movem, m68k_set_frame_related): New functions.
17067 (m68k_output_function_prologue): Delete in favor of...
17068 (m68k_expand_prologue): ...this new function.
17069 (m68k_output_function_epilogue): Delete in favor of...
17070 (m68k_expand_epilogue): ...this new function.
17071 (m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
17072 functions.
17073 (print_operand): Handle %?.
17074 * config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
17075 (UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
17076 (prologue, epilogue): New patterns.
17077 (return): Turn into a define_expand.
17078 (*return): New pattern, derived from old "return" pattern. Use rte
17079 rather than rts for interrupt functions. Only use rtd if the pop
17080 count is nonzero.
17081 (*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
17082 (*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
17083 (link, *link, unlink, *unlink, load_got): Likewise.
17084
17085 2007-03-06 Richard Sandiford <richard@codesourcery.com>
17086
17087 PR target/23482
17088 PR target/17114
17089 * config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare.
17090 (m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise.
17091 (m68k_matches_q_p, m68k_matches_u_p): Likewise.
17092 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p
17093 and m68k_matches_u_p.
17094 (PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete.
17095 (INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete.
17096 (GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete.
17097 (LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete.
17098 (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete.
17099 (REG_STRICT_P): New macro.
17100 (LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than
17101 PCREL_GENERAL_OPERAND_OK.
17102 (REG_OK_FOR_BASE_P): Merge definitions. Use REG_STRICT_P and
17103 m68k_legitimate_base_reg_p.
17104 (REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p.
17105 (GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p.
17106 (PIC_CASE_VECTOR_ADDRESS): Update comment.
17107 * config/m68k/m68k.c (m68k_address): New structure.
17108 (m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p)
17109 (m68k_decompose_index, m68k_legitimate_constant_address_p)
17110 (m68k_jump_table_ref_p, m68k_decompose_address)
17111 (m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p)
17112 (m68k_matches_u_p): New functions.
17113 (print_operand_address): Rewrite to use m68k_decompose_index.
17114
17115 2007-03-05 David Taylor <dtaylor@emc.com>
17116
17117 * gcc.c: Correct copyright date in --version output.
17118
17119 2007-03-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17120
17121 * pa.md: In unamed move patterns, disparge copies between general
17122 and floating point registers using '?' modifier. Don't include 'f'
17123 constraint for register preferences in DImode, SImode, HImode and
17124 QImode patterns. Likewise for 'r' in DFmode and SFmode patterns.
17125 Remove constraints for copies between general and floating registers
17126 in soft-float DFmode pattern.
17127 (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
17128 floating register.
17129 (movsf): Likewise.
17130
17131 2007-03-05 Mike Stump <mrs@apple.com>
17132
17133 * c-common.c (targetcm): Add.
17134 * c-opts.c (c_common_handle_option): Handle language specific
17135 target options.
17136 * opts.c (handle_option): Verify language for target options, if
17137 any are given.
17138 * opth-gen.awk: Add CL_LANG_ALL.
17139 * target-def.h (TARGET_HANDLE_C_OPTION): Add.
17140 (TARGETCM_INITIALIZER): Add.
17141 * target.h (struct gcc_targetcm): Add.
17142 (targetcm): Add.
17143 * targhooks.c (default_handle_c_option): Add.
17144 * targhooks.h (default_handle_c_option): Add.
17145 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Add.
17146
17147 * config/darwin.opt (iframework): Add.
17148 * config/darwin.h (TARGET_HAS_TARGETCM): Add.
17149 * config/darwin-c.c (handle_c_option): Add.
17150 (TARGET_HANDLE_C_OPTION): Add.
17151 (targetcm): Add.
17152 * doc/invoke.texi (Darwin Options): Add -iframework.
17153
17154 2007-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17155
17156 * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
17157 conversion.
17158
17159 2007-03-05 Ian Lance Taylor <iant@google.com>
17160
17161 * c.opt (fgnu89-inline): New option.
17162 * c-opts.c (c_common_post_options): Set default value for
17163 flag_gnu89_inline.
17164 * c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove.
17165 (pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for
17166 inline functions.
17167 (diagnose_mismatched_decls, merge_decls, start_decl): Likewise.
17168 (grokdeclarator, start_function): Likewise.
17169 * c-cppbuiltin.c (c_cpp_builtins): Define either
17170 __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__.
17171 * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
17172 (C Dialect Options): Document -fgnu89-inline.
17173 * doc/extend.texi (Function Attributes): Explain what the
17174 gnu_inline attribute does.
17175 * doc/cpp.texi (Common Predefined Macros): Document
17176 __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
17177
17178 2007-03-05 Ian Lance Taylor <iant@google.com>
17179
17180 PR tree-optimization/31034
17181 * tree-vrp.c (extract_range_from_assert): Don't try to handle a
17182 half-range if the other side is an overflow infinity.
17183
17184 2007-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
17185
17186 * config.gcc (bfin*-uclinux*): Use t-bfin-uclinux.
17187 (bfin*-linux-uclibc*): New configuration.
17188 * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefined before
17189 defining.
17190 * config/bfin/linux.h: New file.
17191 * config/bfin/libgcc-bfin.ver: New file.
17192 * config/bfin/t-bfin-uclinux: New file.
17193 * config/bfin/t-bfin-linux: New file.
17194 * config/bfin/uclinux.h (LINUX_TARGET_OS_CPP_BUILTINS): New macro.
17195 (TARGET_OS_CPP_BUILTINS): New macro.
17196
17197 2007-03-05 Richard Guenther <rguenther@suse.de>
17198
17199 * fold-const.c (fold_binary): Remove duplicate folding
17200 of comparison of non-null ADDR_EXPR against null.
17201
17202 2007-03-05 Richard Guenther <rguenther@suse.de>
17203 Dorit Nuzman <dorit@il.ibm.com>
17204
17205 PR tree-optimization/26420
17206 * tree-vectorizer.c (vectorize_loops): Bail out early if there
17207 are no loops in the function. Only print the number of
17208 vectorized loops if it is greater than zero or we are supposed
17209 to print information about unvectorized loops.
17210
17211 2007-03-05 Revital Eres <eres@il.ibm.com>
17212
17213 * gcc.dg/var-expand1.c: New test.
17214 * loop-unroll.c (analyze_insn_to_expand_var): Add dump info
17215 when an accumulator is expanded.
17216
17217 2007-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
17218
17219 PR other/30465
17220 * c-common.c (convert_and_check): Don't give warnings for
17221 conversion if 'expr' already overflowed.
17222
17223 2007-03-04 Roger Sayle <roger@eyesopen.com>
17224
17225 PR middle-end/30744
17226 * fold-const.c (fold_comparison): Enforce type consistency when
17227 transforming ~X op ~Y to Y op X, and ~X op C to X op' ~C.
17228
17229 2007-03-04 Zdenek Dvorak <dvorakz@suse.cz>
17230
17231 * tree-ssa-address.c (create_mem_ref): Do not put an expression
17232 containing a cast to the base of TARGET_MEM_REF.
17233
17234 2007-03-04 Martin Michlmayr <tbm@cyrius.com>
17235
17236 * tree.c (tree_contains_struct_check_failed): Remove spurious
17237 whitespace from error message.
17238
17239 2007-03-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
17240
17241 PR target/30406
17242 * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
17243 instead of precision.
17244
17245 2007-03-04 Roman Zippel <zippel@linux-m68k.org>
17246 Nathan Sidwell <nathan@codesourcery.com>
17247
17248 * emit-rtl.c (find_auto_inc): New.
17249 (try_split): recreate REG_INC notes,
17250 Use regular for loops rather than whiles.
17251
17252 2007-03-03 Andreas Schwab <schwab@suse.de>
17253
17254 * configure.ac (HAVE_AS_REL16): Move test back to correct place.
17255 * configure: Regenerate.
17256
17257 2007-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17258
17259 * builtins.def (ATTR_MATHFN_FPROUNDING): Rely on
17260 flag_rounding_math, not flag_unsafe_math_optimizations.
17261
17262 * c-pretty-print.c (pp_c_direct_abstract_declarator): Use
17263 fold_build2.
17264 * config/alpha/alpha.c (alpha_fold_builtin_zapnot,
17265 alpha_fold_vector_minmax): Likewise.
17266 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
17267 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
17268
17269 2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
17270
17271 * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
17272 (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
17273 if the lhs has side-effects.
17274 <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
17275
17276 2007-03-02 Uros Bizjak <ubizjak@gmail.com>
17277
17278 * config/i386/i386.h (TUNEMASK): Remove define.
17279 (ARCHMASK): Remove define.
17280 (TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK.
17281 Use ix86_arch_mask variable instead of ARCHMASK.
17282 * config/i386/i386.c (override_options): Ditto.
17283 (standard_80387_constant_p): Ditto.
17284
17285 2007-03-02 Ian Lance Taylor <iant@google.com>
17286
17287 Used signed infinities in VRP.
17288 * tree-vrp.c (uses_overflow_infinity): New static function.
17289 (supports_overflow_infinity): New static function.
17290 (make_overflow_infinity): New static function.
17291 (negative_overflow_infinity): New static function.
17292 (positive_overflow_infinity): New static function.
17293 (is_negative_overflow_infinity): New static function.
17294 (is_positive_overflow_infinity): New static function.
17295 (is_overflow_infinity): New static function.
17296 (overflow_infinity_range_p): New static function.
17297 (compare_values_warnv): New function split out of compare_values.
17298 (compare_value): Call it.
17299 (set_value_range_to_nonnegative): Add overflow_infinity
17300 parameter. Change caller.
17301 (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
17302 Change callers.
17303 (vrp_expr_computes_nonzero): Likewise.
17304 (compare_ranges, compare_range_with_value): Likewise.
17305 (compare_name_with_value, compare_names): Likewise.
17306 (vrp_evaluate_conditional): Likewise.
17307 (set_value_range): Handle infinity
17308 (vrp_operand_equal_p, operand_less_p): Likewise.
17309 (extract_range_from_assert): Likewise.
17310 (vrp_int_const_binop): Likewise.
17311 (extract_range_from_binary_expr): Likewise.
17312 (extract_range_from_unary_expr): Likewise.
17313 (extract_range_from_comparison): Likewise.
17314 (extract_range_from_expr): Likewise.
17315 (dump_value_range): Likewise.
17316 (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
17317 (test_for_singularity): Likewise.
17318 (vrp_int_const_binop): Remove inline qualifier.
17319 (adjust_range_with_scev): Add comment.
17320 * tree-flow.h (vrp_evaluate_conditional): Update declaration.
17321
17322 2007-03-02 Diego Novillo <dnovillo@redhat.com>
17323
17324 * tree-ssa-structalias.c (could_have_pointers): Tidy.
17325 (get_constraint_for): Likewise.
17326 (do_structure_copy): Likewise.
17327 (find_func_aliases): Fix references to MODIFY_EXPR.
17328 (intra_create_variable_infos): Tidy.
17329 * tree-ssa-operands.c (add_virtual_operand): Add argument
17330 IS_CALL_SITE.
17331 When adding members of alias sets, if IS_CALL_SITE is true and
17332 the symbol is not call-clobbered, skip it.
17333 Adjust all callers.
17334
17335 2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
17336
17337 * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
17338 entry by means of emit_insn_at_entry.
17339
17340 2007-03-02 Richard Henderson <rth@redhat.com>
17341
17342 * expr.h (promoted_input_arg): Remove decl.
17343 * function.c (promoted_input_arg): Merge into ...
17344 * combine.c (setup_incoming_promotions): ... only caller.
17345 Rearrange to avoid double loop.
17346
17347 2007-03-02 Ben Elliston <bje@au.ibm.com>
17348 Peter Bergner <bergner@vnet.ibm.com>
17349 Janis Johnson <janis187@us.ibm.com>
17350
17351 * config/rs6000/dfp.md: New file.
17352 * config/rs6000/rs6000.md: Include dfp.md.
17353 (add<mode>3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands.
17354 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode
17355 and TDmode decimal float modes in FP registers.
17356 (num_insns_constant): Likewise.
17357 (rs6000_legitimate_offset_address_p): Likewise.
17358 (rs6000_legitimize_address): Likewise.
17359 (rs6000_legitimize_reload_address): Likewise.
17360 (rs6000_legitimate_address): Likewise.
17361 (rs6000_emit_move): Likewise.
17362 (function_arg_boundary): Likewise.
17363 (function_arg_advance): Likewise.
17364 (rs6000_darwin64_record_arg_recurse): Likewise.
17365 (function_arg): Likewise.
17366 (rs6000_gimplify_va_arg): Likewise.
17367 (rs6000_split_multireg_move): Likewise.
17368 (rs6000_output_function_epilogue): Likewise.
17369 (rs6000_output_function_epilogue): Likewise.
17370 (rs6000_register_move_cost): Likewise.
17371 (rs6000_function_value): Likewise.
17372 (rs6000_libcall_value): Likewise.
17373
17374 2007-03-02 Richard Sandiford <richard@codesourcery.com>
17375
17376 * config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks.
17377
17378 2007-03-02 Richard Sandiford <richard@codesourcery.com>
17379
17380 * config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc.
17381 Use $MULTIDIR to choose between the kernel and RTP headers,
17382 and use $WIND_BASE and $WIND_USR to locate them.
17383
17384 2007-03-02 Uros Bizjak <ubizjak@gmail.com>
17385
17386 * config/i386/i386.c (override_options): Put initialization of
17387 ix86_tune_mask and ix86_arch_mask to the correct place.
17388
17389 2007-03-02 Uros Bizjak <ubizjak@gmail.com>
17390 Michael Meissner <michael.meissner@amd.com>
17391
17392 PR target/31019
17393 * config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask.
17394 (ARCHMASK): Define.
17395 (TARGET_CMOVE): Use ARCHMASK.
17396 (TARGET_CMPXCHG): Ditto.
17397 (TARGET_CMPXCHG8B): Ditto.
17398 (TARGET_XADD): Ditto.
17399 (TARGET_BSWAP): Ditto.
17400 * config/i386/i386.c (ix86_tune_mask): New global variable.
17401 (ix86_arch_mask): Ditto.
17402 (override_options): Initialize ix86_tune_mask and
17403 ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in
17404 target_flags.
17405
17406 2007-03-02 Ben Elliston <bje@au.ibm.com>
17407
17408 PR 30992
17409 * config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.".
17410
17411 2007-03-02 Joseph Myers <joseph@codesourcery.com>
17412
17413 * target.h (init_dwarf_reg_sizes_extra): New target hook.
17414 * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default.
17415 * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document.
17416 * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this
17417 hook.
17418 * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA,
17419 rs6000_init_dwarf_reg_sizes_extra): New.
17420 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support
17421 SPE register high parts.
17422
17423 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
17424
17425 * Makefile.in: Add install-pdf target as
17426 copied from automake v1.10 rules.
17427 * configure.ac: Add install-pdf to target list.
17428 * configure: Regenerate.
17429
17430 2007-03-01 Paul Brook <paul@codesourcery.com>
17431
17432 * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
17433 modes to LDRD for DImode.
17434 (output_move_double): Fixup out of range ldrd/strd.
17435 (vfp_secondary_reload_class): Rename...
17436 (coproc_secondary_reload_class): ... to this. Add wb argument.
17437 * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
17438 coproc_secondary_reload_class for CLASS_IWMMXT.
17439 (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
17440 * arm-protos.h (coproc_secondary_reload_class): Update prototype.
17441
17442 2007-03-01 Zdenek Dvorak <dvorakz@suse.cz>
17443
17444 * tree-ssa-loop-prefetch.c (determine_unroll_factor): Bound the
17445 unroll factor by the estimated number of iterations.
17446 (loop_prefetch_arrays): Do not prefetch in loops that iterate less
17447 than prefetch latency.
17448
17449 * config/i386/driver-i386.c (describe_cache, detect_caches_amd,
17450 decode_caches_intel, detect_caches_intel): New functions.
17451 (host_detect_local_cpu): Use detect_caches_amd and
17452 detect_caches_intel.
17453
17454 2007-03-01 Richard Henderson <rth@redhat.com>
17455
17456 * expr.c (emit_move_complex_push): Export.
17457 (emit_move_complex_parts): Split out from ...
17458 (emit_move_complex): ... here.
17459 * expr.h (emit_move_complex_push, emit_move_complex_parts): Declare.
17460 * config/i386/i386.md (movcdi): New.
17461
17462 2007-03-01 Uros Bizjak <ubizjak@gmail.com>
17463
17464 * config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also
17465 size of mode1 to check for tieable modes in MMX case.
17466
17467 2007-03-01 Richard Sandiford <richard@codesourcery.com>
17468
17469 * Makefile.in (rtlanal.o): Depend on tree.h.
17470 * rtl.h (offset_within_section_p, split_const): Declare.
17471 * rtlanal.c: Include tree.h.
17472 (offset_within_block_p): New function, taken from
17473 mips_offset_within_object_p.
17474 (split_const): New function, taken from mips_split_const.
17475 * config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p):
17476 Declare.
17477 * config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
17478 (CONSTANT_ADDRESS_P): Only accept legitimate constants.
17479 (LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p.
17480 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define.
17481 (m68k_illegitimate_symbolic_constant_p): New function.
17482 * config/m68k/m68k.md (movsi): Remove misleading predicates.
17483 If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a
17484 symbolic constant that might be outside the symbol's section,
17485 move the symbol first and then add the offset.
17486 * config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P):
17487 Override.
17488 * config/mips/mips.c (mips_split_const): Delete.
17489 (mips_offset_within_object_p): Delete.
17490 (mips_symbolic_constant_p): Use offset_within_section_p and
17491 split_const instead of mips_offset_within_object_p and
17492 mips_split_const.
17493 (mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address)
17494 (mips_legitimize_const_move, print_operand_reloc)
17495 (mips_dangerous_for_la25_p): Use split_const instead of
17496 mips_split_const.
17497
17498 2007-02-28 Eric Christopher <echristo@apple.com>
17499
17500 * Makefile.in (install-include-dir): Don't rm -rf include.
17501
17502 2007-02-28 Richard Guenther <rguenther@suse.de>
17503
17504 PR middle-end/30364
17505 * fold-const.c (fold_binary): Do not associate expressions
17506 with more than one variable for integer types that do not wrap.
17507
17508 2007-02-28 Sandra Loosemore <sandra@codesourcery.com>
17509
17510 * builtins.c (fold_builtin_call_list, fold_builtin_call_valist):
17511 Delete, and replace with...
17512 (fold_builtin_call_array): This. Update callers to use it.
17513 * fold-const.c (fold_build_call_list): Delete, and replace with...
17514 (fold_build_call_array): This.
17515 (fold_build_call_list_initializer): Delete, and replace with...
17516 (fold_build_call_array_initializer): This.
17517 * tree.h: Update declarations to reflect above changes.
17518
17519 * c-typeck.c (build_function_call): Store converted arguments
17520 in a stack-allocated array instead of building a list.
17521 (convert_arguments): Store arguments in the array passed in as an
17522 argument, and return the actual number of arguments.
17523 * c-format.c: (check_function_format): Pass arguments in an
17524 array instead of a list.
17525 * c-common.c (check_function_nonnull): Likewise.
17526 (check_function_sentinel): Likewise.
17527 (check_function_arguments): Likewise.
17528 * c-common.h: Update declarations to reflect above changes.
17529
17530 2007-02-28 Jan Hubicka <jh@suse.cz>
17531
17532 * predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN,
17533 PRED_NEGATIVE_RETURN): Update outcomes.
17534
17535 2007-02-28 Bernd Schmidt <bernd.schmidt@analog.com>
17536
17537 * calls.c (emit_library_call_value_1): Handle partial registers
17538 correctly when building up CALL_INSN_FUNCTION_USAGE.
17539
17540 2007-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17541
17542 * pa/predicates.md (move_src_operand): Allow zero for mode.
17543 * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
17544 move pattern.
17545
17546 2007-02-27 Uros Bizjak <ubizjak@gmail.com>
17547
17548 PR target/30970
17549 * config/i386/sse.md (*mov<mode>_internal, *movv4sf_internal,
17550 *movv2df_internal): Enable pattern only for valid operand
17551 combinations.
17552 * config/i386/i386.c (ix86_modes_tieable_p): For SSE registers,
17553 tie only 128bit modes. For MMX registers, tie only 64bit modes.
17554
17555 2007-02-27 Mike Stump <mrs@apple.com>
17556
17557 * config/darwin-crt3.c: Avoid compilation when compiling for a
17558 kext multilib.
17559
17560 2007-02-27 Joseph Myers <joseph@codesourcery.com>
17561
17562 * Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define
17563 FIXED_INCLUDE_DIR.
17564 (stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed
17565 for fixed headers and limits.h.
17566 (install-include-dir, install-headers-tar, install-headers-cpio,
17567 install-headers-cp, real-install-headers-tar,
17568 real-install-headers-cpio, real-install-headers-cp): Handle
17569 include-fixed as well as include.
17570 (install-mkheaders): Don't install files that go only in include
17571 not include-fixed.
17572 * cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR
17573 from GCC_INCLUDE_DIR.
17574 * gcc.c (process_command): Remove special -BstageN/ handling.
17575 (do_spec_1): Add include-fixed directories.
17576
17577 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
17578
17579 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and
17580 _smulsi3_highpart.
17581 * config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart):
17582 New functions.
17583 * config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New
17584 patterns.
17585
17586 2007-02-27 Mark Mitchell <mark@codesourcery.com>
17587
17588 * c-common.c (get_priority): Add check for
17589 SUPPORTS_INIT_PRIORITY.
17590
17591 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
17592
17593 * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.
17594
17595 * config/bfin/bfin.c: Include "cfglayout.h".
17596 (MAX_LSETUP_DISTANCE): New macro.
17597 (struct loop_info): New members incoming, incoming_src and
17598 incoming_dest. Delete member predecessor.
17599 (length_for_loop): New function.
17600 (bfin_optimize_loop): Handle more different loop structures.
17601 (bfin_discover_loop): Rework detection of predecessor blocks by
17602 examining incoming edges.
17603 (bfin_discover_loops, bfin_free_loops): New functions, broken out of
17604 bfin_reorg_loops.
17605 (bfin_reorder_loops): New function.
17606 (bfin_reorg_loops): Use these three new functions.
17607
17608 * config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES,
17609 REG_CLASS_CONTENTS): Add D0REGS through D7REGS.
17610 (CONSTRAINT_LEN): Add entry for 'q'.
17611 (REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER.
17612 Add 'q' constraints.
17613 (REGNO_REG_CLASS): For R0 through R7, return corresponding regclass.
17614 (CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2.
17615
17616 * config/bfin/bfin.md (add_with_carry): New pattern.
17617 (s_or_u, su_optab, su_modifier): New code macros/attrs.
17618 (<su_optab>hisi_ll, <su_optab>hisi_lh, <su_optab>hisi_hl,
17619 <su_optab>hisi_hh): Renamed from mulhisi_xx patterns; macroized to
17620 support unsigned multiplies too. Removed incorrect commutativity from
17621 operand 1 constraint where appropriate.
17622 (usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New
17623 patterns.
17624 (<su_optab>hisi_ll_lh, <su_optab>hisi_ll_hl, <su_optab>hisi_ll_hh,
17625 <su_optab>hisi_lh_hl, <su_optab>hisi_lh_hh, <su_optab>hisi_hl_hh):
17626 New patterns.
17627 (usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul,
17628 usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul,
17629 usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul,
17630 usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul,
17631 usmulhisi_hh_huh): New patterns.
17632
17633 * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
17634 lshifthi3): Fix output template to use half reg for operand 2.
17635
17636 * config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg
17637 instead of R2.
17638
17639 * config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.
17640
17641 2007-02-27 Andreas Schwab <schwab@suse.de>
17642
17643 * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
17644
17645 2007-02-27 Jan Hubicka <jh@suse.cz>
17646
17647 * predict.c (last_basic_block_p): Remove.
17648 (tree_estimate_probability): Update return heuristic for commonized
17649 return blocks.
17650
17651 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
17652
17653 * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
17654
17655 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
17656
17657 * doc/include/gcc-common.texi (versionsubtitle): New macro.
17658 * doc/cpp.texi: Standardize title page.
17659 * doc/cppinternals.texi: Likewise.
17660 * doc/gcc.texi: Standardize title page, remove version number
17661 from copyright page.
17662 * doc/gccint.texi: Likewise.
17663 * doc/install.texi: Standardize title page, add table of
17664 contents.
17665
17666 2007-02-26 Jan Hubicka <jh@suse.cz>
17667
17668 * predict.def: Set outcomes according to more recent results.
17669 (PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER):
17670 Remove dead predictors.
17671 * predict.c (return_prediction): Fix pasto.
17672
17673 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
17674
17675 * loop-iv.c (simplify_using_initial_values): Fix oversight in previous
17676 change; avoid a memory leak when returning early.
17677
17678 2007-02-26 Mark Mitchell <mark@codesourcery.com>
17679
17680 * c-decl.c (static_ctors): Move to c-common.c.
17681 (static_dtors): Likewise.
17682 (finish_function): Use c_record_cdtor_fn.
17683 (build_cdtor): Move to c-common.c.
17684 (c_write_global_declarations): Use c_build_cdtor_fns.
17685 * c-common.h (static_ctors): Declare.
17686 (static_dtors): Likewise.
17687 (c_record_cdtor_fn): Likewise.
17688 (c_build_cdtor_fns): Likewise.
17689 * c-common.c (static_ctors): New variable.
17690 (static_dtors): Likewise.
17691 (c_record_cdtor_fn): New function.
17692 (build_cdtor): Move from c-decl.c
17693 (c_build_cdtor_fns): New function.
17694
17695 * output.h (assemble_addr_to_section): Declare.
17696 (get_cdtor_priority_section): Likewise.
17697 * varasm.c (assemble_addr_to_section): New function.
17698 (get_cdtor_priority_section): Likewise.
17699 (default_named_section_asm_out_destructor): Use them.
17700 (destor_dtor_section_asm_out_destructor): Likewise.
17701 (default_named_section_asm_out_constructor): Likewise.
17702 (default_ctor_section_asm_out_constructor): Likewise.
17703 * config.gcc (*-*-vxworks*): Include vxworks.o.
17704 * config/t-vxworks (vxworks.o): New target.
17705 * config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove.
17706 (TARGET_ASM_CONSTRUCTOR): Define.
17707 (TARGET_ASM_DESTRUCTOR): Likewise.
17708 (vxworks_asm_out_constructor): Declare.
17709 (vxworks_asm_out_destructor): Likewise.
17710
17711 * c-common.c (get_priority): Check that we have not just an
17712 INTEGER_CST, but an integer constant with integeral type.
17713
17714 2007-02-25 Uros Bizjak <ubizjak@gmail.com>
17715
17716 PR tree-optimization/30938
17717 * tree-vect-transform.c (vectorizable_call): Fix off-by-one error:
17718 use &dt[nargs-1] instead of &dt[nargs] in the call to
17719 vect_is_simple_use().
17720
17721 2007-02-25 Ulrich Weigand <uweigand@de.ibm.com>
17722
17723 * reload.c (find_reloads_address_1): Handle PLUS expressions resulting
17724 from register elimination as PRE_MODIFY / POST_MODIFY increments.
17725 Do not attempt to handle MEM inside auto-inc expressions.
17726 * reload1.c (eliminate_regs_1): Do not attempt to handle elimination
17727 of a register modified by an auto-inc expression. However, do handle
17728 elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
17729 (elimination_effects): Prohibit elimination of a register modified
17730 by an auto-inc expression. Disable register elimination rules whose
17731 target register is modified by an auto-inc expression with variable
17732 increment.
17733
17734 2007-02-25 Zdenek Dvorak <dvorakz@suse.cz>
17735
17736 * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
17737 off-by-one error.
17738 (array_at_struct_end_p): New function.
17739 (idx_infer_loop_bounds): Use it.
17740 (estimate_numbers_of_iterations_loop): Export.
17741 * predict.c (predict_loops): Use estimated_loop_iterations_int.
17742 Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
17743 (tree_estimate_probability): Call record_loop_exits.
17744 * tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
17745 (estimated_loop_iterations, estimated_loop_iterations_int,
17746 estimated_loop_iterations_tree): New functions.
17747 (analyze_siv_subscript_cst_affine,
17748 compute_overlap_steps_for_affine_1_2,
17749 analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
17750 (analyze_miv_subscript): Use estimated_loop_iterations_tree.
17751 * predict.def (PRED_LOOP_ITERATIONS): Update comment.
17752 (PRED_LOOP_ITERATIONS_GUESSED): New.
17753 * cfgloop.c (record_loop_exits): Do nothing if there are no loops.
17754 * cfgloop.h (estimate_numbers_of_iterations_loop,
17755 estimated_loop_iterations_int): Declare.
17756
17757 2007-02-25 Mark Mitchell <mark@codesourcery.com>
17758
17759 * doc/extend.texi: Document optional priority argument to
17760 constructors and destructors.
17761 * tree.c (init_priority_for_decl): Adjust GTY markers.
17762 (init_ttree): Use priority-info hash functions for
17763 init_priority_for_decl.
17764 (tree_map_eq): Rename to ...
17765 (tree_map_base_eq): ... this.
17766 (tree_map_marked_p): Rename to ...
17767 (tree_map_base_marked_p): ... this.
17768 (tree_map_base_hash): New function.
17769 (decl_init_priority_lookup): Rework.
17770 (decl_fini_priority_lookup): New function.
17771 (decl_priority_info): New function.
17772 (decl_init_priority_insert): Use it.
17773 (decl_fini_priority_insert): Likewise.
17774 (decl_restrict_base_lookup): Adjust for refactoring of tree_map
17775 hierarchy.
17776 (decl_restrict_base_insert): Likewise.
17777 (decl_debug_expr_insert): Likewise.
17778 (decl_value_expr_lookup): Likewise.
17779 (decl_value_expr_insert): Likewise.
17780 * tree.h (priority_type): New type.
17781 (decl_init_priority_lookup): Use priority_type.
17782 (decl_fini_priority_lookup): New function.
17783 (decl_init_priority_insert): Use priority_type.
17784 (decl_fini_priority_insert): New function.
17785 (DECL_HAS_INIT_PRIORITY): Tweak comments.
17786 (DECL_INIT_PRIORITY): Likewise.
17787 (SET_DECL_INIT_PRIORITY): Add comment.
17788 (DECL_FINI_PRIORITY): New macro.
17789 (SET_DECL_FINI_PRIORITY): Likewise.
17790 (DEFAULT_INIT_PRIORITY): Document.
17791 (MAX_INIT_PRIORITY): Likewise.
17792 (MAX_RESERVED_INIT_PRIORITY): Likewise.
17793 (tree_map_base): New type.
17794 (tree_map_base_eq): New function.
17795 (tree_map_base_hash): Likewise.
17796 (tree_map_base_marked_p): Likewise.
17797 (tree_map): Inherit from tree_map_base.
17798 (tree_map_eq): Make it a macro.
17799 (tree_map_marked_p): Likewise.
17800 (tree_int_map): Inherit from tree_map_base.
17801 (tree_int_map_eq): Make it a macro.
17802 (tree_int_map_hash): Likewise.
17803 (tree_int_map_marked_p): Likewise.
17804 (tree_priority_map): New type.
17805 (tree_priority_map_eq): New macro.
17806 (tree_priority_map_hash): Likewise.
17807 (tree_priority_map_marked_p): Likewise.
17808 * varasm.c (emults_decl): Adjust for refactoring of tree_map
17809 hierarchy.
17810 (emutls_common_1): Likewise.
17811 * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
17812 * tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring
17813 of tree_map hierarchy.
17814 * tree-cfg.c (move_stmt_r): Likewise.
17815 (new_label_mapper): Likewise.
17816 * c-tree.h (c_expand_body): Move to ...
17817 * c-common.h (c_expand_body): ... here.
17818 * c-decl.c (c_expand_body): Move to ...
17819 * c-common.c (c_expand_body): ... here.
17820 (c_common_attribute_table): Allow 1 argument for the constructor
17821 and destructor attributes.
17822 (get_priority): New function.
17823 (handle_constructor_attribute): Set DECL_INIT_PRIORITY.
17824 (handle_destructor_attribute): Set DECL_FINI_PRIORITY.
17825
17826 2007-02-24 Jan Hubicka <jh@suse.cz>
17827
17828 PR middle-end/30509
17829 * tree-inline.c (copy_bb): Produce exact copy of EH info when
17830 copying for inlining.
17831
17832 2007-02-24 Uros Bizjak <ubizjak@gmail.com>
17833 Jan Hubicka <jh@suse.cz>
17834
17835 PR target/30778
17836 * i386.c (counter_mode): New function.
17837 (expand_set_or_movmem_via_loop): Use it.
17838 (expand_movmem_epilogue): Likewise; fix pasto.
17839 (ix86_expand_movmem): Do emit guard even for constant counts.
17840 (ix86_expand_setmem): Likewise.
17841
17842 2007-02-25 Nick Clifton <nickc@redhat.com>
17843
17844 * config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete.
17845 (JUMP_TABLES_IN_TEXT_SECTION): Define.
17846
17847 2007-02-24 Uros Bizjak <ubizjak@gmail.com>
17848
17849 PR target/30770
17850 * config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
17851 count argument with 0x10, not with 0x16.
17852 (expand_setmem_epilogue): Ditto.
17853
17854 2007-02-24 Mike Stump <mrs@apple.com>
17855
17856 * config/i386/i386.c (output_pic_addr_const): Stubify optimized
17857 symbols.
17858
17859 2007-02-24 Richard Guenther <rguenther@suse.de>
17860
17861 PR middle-end/30951
17862 * fold-const.c (fold_binary): Fold x +- CST op x for
17863 EQ_EXPR and NE_EXPR.
17864
17865 2007-02-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17866
17867 * pa.md (muldi3): Force subregs to registers in 64-bit expander.
17868
17869 2007-02-24 Jan Hubicka <jh@suse.cz>
17870
17871 * cgraphunit.c (decide_is_function_needed): Honor
17872 -fkeep-inline-functions.
17873
17874 2007-02-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17875
17876 * builtins.c (fold_builtin_modf): New.
17877 (fold_builtin_2): Use it.
17878
17879 2007-02-24 Bernd Schmidt <bernd.schmidt@analog.com>
17880
17881 * loop-iv.c (implies_p): Detect additional cases where A implies B.
17882 (determine_max_iter): Take additional LOOP arg; all callers changed.
17883 Lose broken logic dealing with PLUS. Try to limit the upper bound by
17884 one using simplifications.
17885 (simplify_using_initial_values): Return if the expression becomes
17886 invalid due to altered regs.
17887
17888 2007-02-23 DJ Delorie <dj@redhat.com>
17889
17890 * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro.
17891
17892 2007-02-23 Mike Stump <mrs@apple.com>
17893
17894 * tlink.c (scan_linker_output): Parse linker messages from
17895 darwin9's linker better.
17896
17897 2007-02-23 Steve Ellcey <sje@cup.hp.com>
17898
17899 PR debug/29614
17900 * varpool.c (varpool_assemble_pending_decls): Set
17901 varpool_last_needed_node to null.
17902
17903 2007-02-23 DJ Delorie <dj@redhat.com>
17904
17905 * config/i386/i386.c (ix86_data_alignment): Don't specify an
17906 alignment bigger than the object file can handle.
17907
17908 2007-02-23 Uros Bizjak <ubizjak@gmail.com>
17909
17910 PR target/30825
17911 * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
17912 zero_extendsidi2_rex64): Penalize MMX register<->memory moves.
17913 (*movsf_1): Penalize MMX moves.
17914
17915 2007-02-23 Bernd Schmidt <bernd.schmidt@analog.com>
17916
17917 * config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
17918 2^32-1 or more times unless flag_unsafe_loop_optimizations.
17919
17920 * loop-iv.c (determine_max_iter): Moved in front of its sole user.
17921
17922 2007-02-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17923
17924 * builtins.c (fold_builtin_logb, fold_builtin_significand): New.
17925 (fold_builtin_1): Use them.
17926 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
17927 BUILT_IN_SIGNIFICAND.
17928
17929 2007-02-23 H.J. Lu <hongjiu.lu@intel.com>
17930
17931 * config/i386/i386.c (bdesc_1arg): Initialize
17932 IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with
17933 "__builtin_ia32_movshdup" and "__builtin_ia32_movsldup".
17934 (ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP
17935 and IX86_BUILTIN_MOVSLDUP.
17936
17937 2007-02-22 Paolo Bonzini <bonzini@gnu.org>
17938
17939 PR rtl-optimization/30841
17940 * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address.
17941
17942 2007-02-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17943
17944 * builtins.c (fold_builtin_frexp): New.
17945 (fold_builtin_2): Use it.
17946
17947 2007-02-22 Mark Mitchell <mark@codesourcery.com>
17948
17949 * doc/invoke.texi (Spec Files): Document getenv spec function.
17950
17951 * gcc.c (getenv_spec_function): New function.
17952 (static_spec_functions): Add it.
17953 * config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
17954 (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
17955 header files.
17956
17957 2007-02-22 Michael Matz <matz@suse.de
17958
17959 PR c++/29433
17960 * dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
17961 (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME.
17962
17963 2007-02-22 Ian Lance Taylor <iant@google.com>
17964
17965 PR debug/30898
17966 * dwarf2out.c (concatn_mem_loc_descriptor): New static function.
17967 (mem_loc_descriptor): Call it.
17968
17969 2007-02-22 Zdenek Dvorak <dvorakz@suse.cz>
17970 Ira Rosen <irar@il.ibm.com>
17971
17972 * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account.
17973
17974 2007-02-22 Ira Rosen <irar@il.ibm.com>
17975
17976 PR tree-optimization/30843
17977 * tree-vect-transform.c (vect_transform_loop): Remove strided scalar
17978 stores only after all the group is vectorized.
17979
17980 2007-02-22 Dorit Nuzman <dorit@il.ibm.com>
17981
17982 PR tree-optimization/30858
17983 * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
17984 in the reduction cycle have a single use in the loop.
17985 * tree-vectorizer.h (relevant): Add documentation.
17986
17987 2007-02-20 Mike Stump <mrs@apple.com>
17988
17989 * configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
17990 * configure: Regenerate.
17991
17992 2007-02-21 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
17993
17994 Change the defaults of some parameters and options.
17995 * config/spu/spu-protos.h (spu_optimization_options): Declare.
17996 * config/spu/spu.c (spu_optimization_options): Add.
17997 (spu_override_options): Change params in spu_optimization_options.
17998 * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.
17999
18000 Register 127 is only 16 byte aligned when used as a frame pointer.
18001 * config/spu/spu-protos.h (spu_init_expanders): Declare.
18002 * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
18003 HARD_FRAME_POINTER_REGNUM.
18004 (spu_legitimate_address): Use regno_aligned_for_reload.
18005 (regno_aligned_for_load): HARD_FRAME_POINTER_REGNUM is only 16 byte
18006 aligned when frame_pointer_needed is true.
18007 (spu_init_expanders): New. Set alignment of HARD_FRAME_POINTER_REGNUM
18008 to 8 bits.
18009 * config/spu/spu.h (INIT_EXPANDERS): Define.
18010
18011 Make sure shift and rotate instructions have valid immediate operands.
18012 * config/spu/predicates.md (spu_shift_operand): Remove.
18013 * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
18014 * config/spu/constraints.md (W, O): Extend range.
18015 * config/spu/spu.md (umask, nmask): Define.
18016 (ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
18017 lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
18018 rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
18019 rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
18020 spu_nonmem_operand instead of spu_shift_operands. Use new modifiers.
18021 (lshr<mode>3_reg): Fix rtl description.
18022
18023 Make sure mulhisi immediate operands are valid.
18024 * config/spu/predicates.md (imm_K_operand): Add.
18025 * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.
18026
18027 Generate constants using fsmbi and andi.
18028 * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
18029 (print_operand, spu_split_immediate, classify_immediate,
18030 fsmbi_const_p): Handle IC_FSMBI2.
18031
18032 Correctly handle a CONST_VECTOR containing symbols.
18033 * config/spu/spu.c (print_operand): Handle HIGH correctly.
18034 (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
18035 (immediate_load_p): Allow symbols that use 2 instructions to create.
18036 (classify_immediate, spu_builtin_splats): Don't accept a CONST_VECTOR
18037 with symbols when flag_pic is set.
18038 (const_vector_immediate_p): New.
18039 (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
18040 accept a CONST_VECTOR with symbols.
18041 (spu_legitimate_constant_p): Use const_vector_immediate_p. Don't
18042 accept a CONST_VECTOR with symbols when flag_pic is set. Handle HIGH
18043 correctly.
18044 * config/spu/spu.md (high, low): Delete.
18045 (low_<mode>): Define.
18046
18047 Remove INTRmode and INTR_REGNUM, which didn't work.
18048 * config/spu/spu.c (spu_conditional_register_usage): Remove reference
18049 of INTR_REGNUM.
18050 * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr,
18051 set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed
18052 peephole2 pattern): Don't use INTR or 131.
18053 (movintrcc): Delete.
18054 * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS,
18055 CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM.
18056 * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove.
18057 (UNSPEC_SET_INTR): Add.
18058 * config/spu/spu-modes.def (INTR): Remove.
18059
18060 More accurate warnings about run-time relocations.
18061 * config/spu/spu.c (reloc_diagnostic): Test in_section.
18062
18063 Correctly warn about immediate arguments to specific intrinsics.
18064 * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
18065 (spu_expand_builtin_1): Call spu_check_builtin_parm before checking
18066 the instruction predicate.
18067
18068 Fix tree check errors with latest update.
18069 * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
18070 CALL_EXPR_ARG.
18071 (spu_expand_builtin): Use CALL_EXPR_FN.
18072
18073 Add missing specific intrinsics.
18074 * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
18075 si_bislede.
18076 * config/spu/spu_internals.h: Ditto.
18077
18078 Fix incorrect operand modifiers.
18079 * config/spu/spu-builtins.md (spu_mpy, spu_mpyu): Remove use of %H.
18080 * config/spu/spu.md (xor<mode>3): Change %S to %J.
18081
18082 Optimize one case of zero_extend of a vec_select.
18083 * config/spu/spu.md (_vec_extractv8hi_ze): Add.
18084
18085 Accept any immediate for hbr.
18086 * config/spu/spu.md (hbr): Change s constraints to i.
18087
18088 2007-02-21 Paul Brook <paul@codesourcery.com>
18089
18090 * config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt
18091 condexec_count when skipping USE and CLOBBER.
18092
18093 2007-02-21 Nick Clifton <nickc@redhat.com>
18094
18095 * common.opt (Warray-bounds): Add Warning attribute.
18096 (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch):
18097 Likewise.
18098 (fsized-zeroes): Add Optimization attribute.
18099 (fsplit-wide-types, ftree-scev-cprop): Likewise.
18100 * c.opt (Wc++0x-compat): Add Warning attribute.
18101
18102 2007-02-21 Ulrich Weigand <uweigand@de.ibm.com>
18103
18104 PR middle-end/30761
18105 * reload1.c (eliminate_regs_in_insn): In the single_set special
18106 case, attempt to re-recognize the insn before falling back to
18107 having reload fix it up.
18108
18109 2007-02-20 Eric Christopher <echristo@gmail.com>
18110
18111 * config/frv/frv.c (frv_read_argument): Take a tree and int argument.
18112 Rewrite accordingly.
18113 (frv_read_iacc_argument): Ditto.
18114 (frv_expand_set_builtin): Take a call instead of arglist, update for
18115 above changes.
18116 (frv_expand_unop_builtin): Ditto.
18117 (frv_expand_binop_builtin): Ditto.
18118 (frv_expand_cut_builtin): Ditto.
18119 (frv_expand_binopimm_builtin): Ditto.
18120 (frv_expand_voidbinop_builtin): Ditto.
18121 (frv_expand_int_void2arg): Ditto.
18122 (frv_expand_prefetches): Ditto.
18123 (frv_expand_voidtriop_builtin): Ditto.
18124 (frv_expand_voidaccop_builtin): Ditto.
18125 (frv_expand_load_builtin): Ditto.
18126 (frv_expand_store_builtin): Ditto.
18127 (frv_expand_mdpackh_builtin): Ditto.
18128 (frv_expand_mclracc_builtin): Ditto.
18129 (frv_expand_mrdacc_builtin): Ditto.
18130 (frv_expand_mwtacc_builtin): Ditto.
18131 (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update
18132 calls for above.
18133
18134 2007-02-20 Janis Johnson <janis187@us.ibm.com>
18135
18136 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
18137 * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the
18138 cmpb instruction.
18139 (HAVE_GAS_DFP): Check for assembler support of decimal floating
18140 point instructions.
18141 * configure: Regenerate.
18142 * config.in: Regenerate.
18143 * config/rs6000/rs6000.opt (mcmpb, mdfp): New.
18144 * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP
18145 masks to power6 and power6x and to POWERPC_MASKS.
18146 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
18147 _ARCH_PWR6.
18148 * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP.
18149 * config/rs6000/sysv4.opt (mprototype): Use variable, not mask.
18150 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
18151 Access PROTOTYPE as variable, not mask.
18152
18153 2007-02-20 Steven Bosscher <steven@gcc.gnu.org>
18154
18155 * rtl.h (remove_reg_equal_equiv_notes): New prototype.
18156 * rtlanal.c (remove_reg_equal_equiv_notes): New function.
18157 * combine.c (adjust_for_new_dest): Use it.
18158 * postreload.c (reload_combine): Likewise.
18159
18160 2007-02-20 Steven Bosscher <steven@gcc.gnu.org>
18161
18162 * rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ*
18163 notes on an insn with multiple sets, even if single_set returns
18164 non-NULL for that insn.
18165
18166 2007-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18167
18168 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
18169 scalbn and scalbln.
18170
18171 2007-02-20 Geoffrey Keating <geoffk@apple.com>
18172
18173 * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
18174 if user didn't pass it.
18175 * config/i386/darwin.h (CC1_SPEC): Likewise.
18176 * config/rs6000/darwin.h (CC1_SPEC): Likewise.
18177 (DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
18178 -mmacosx-version-min.
18179
18180 2007-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18181 Uros Bizjak <ubizjak@gmail.com>
18182
18183 * optabs.h (enum optab_index): Add new OTI_scalb.
18184 (scalb_optab): Define corresponding macro.
18185 * optabs.c (init_optabs): Initialize scalb_optab.
18186 * genopinit.c (optabs): Implement scalb_optab using scalb?f3
18187 patterns.
18188 * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle
18189 BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}.
18190 (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L}
18191 and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if
18192 flag_unsafe_math_optimizations is set.
18193
18194 * config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders
18195 to implement scalbf, scalb and scalbl built-ins as inline x87
18196 intrinsics.
18197
18198 2007-02-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18199 DJ Delorie <dj@redhat.com>
18200
18201 PR other/30824
18202 * diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to...
18203 (diagnostic_report_diagnostic): ... here, and turn them into real
18204 errors. If warnings are inhibited, no need to do anything.
18205
18206 2007-02-20 Uros Bizjak <ubizjak@gmail.com>
18207
18208 * config/i386/i386.md (expm1xf2): Reorder insn sequence for
18209 better code generation.
18210
18211 2007-02-20 Ben Elliston <bje@au.ibm.com>
18212
18213 * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;.
18214
18215 2007-02-20 Kazu Hirata <kazu@codesourcery.com>
18216
18217 * config/alpha/alpha.c, config/alpha/alpha.md,
18218 config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c,
18219 config/alpha/vms-psxcrt0-64.c, config/arc/arc.c,
18220 config/arc/arc.h, config/arm/arm.c, config/arm/arm.md,
18221 config/arm/lib1funcs.asm: Follow spelling conventions.
18222
18223 * config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c,
18224 config/fr30/fr30.md, config/i386/i386.h,
18225 config/iq2000/iq2000.h, config/iq2000/predicates.md,
18226 config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h,
18227 config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
18228 config/pdp11/pdp11.c, config/pdp11/pdp11.h,
18229 config/rs6000/altivec.md, config/rs6000/rs6000.c,
18230 config/s390/s390-modes.def, config/sparc/netbsd-elf.h,
18231 config/sparc/sparc.c, config/sparc/sparc.h,
18232 config/sparc/sparc.md, config/spu/constraints.md,
18233 config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling
18234 conventions.
18235
18236 2007-02-20 Alan Modra <amodra@bigpond.net.au>
18237
18238 PR target/29943
18239 * varasm.c (use_blocks_for_decl_p): Return false for decls with
18240 alias attribute.
18241
18242 2007-02-19 Kazu Hirata <kazu@codesourcery.com>
18243
18244 * doc/invoke.texi (-ftree-lrs): Remove.
18245
18246 2007-02-19 Diego Novillo <dnovillo@redhat.com>
18247
18248 * tree-ssa-pre.c (create_value_expr_from): Initialize POOL to
18249 NULL.
18250
18251 2007-02-19 Lee Millward <lee.millward@codesourcery.com>
18252
18253 * config/ia64/ia64.c (ia64_expand_builtin): Use the
18254 new CALL_EXPR_FN macro for retrieving the function
18255 declaration of the input expression.
18256
18257 2007-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18258
18259 * c.opt (Waddress): New.
18260 * common.opt (Walways-true): Delete.
18261 (Wstring-literal-comparison): Delete.
18262 * doc/invoke.texi (Warning Options): Delete -Walways-true and
18263 -Wstring-literal-comparison. Add -Waddress.
18264 (Waddress): New.
18265 (Walways-true): Delete.
18266 (Wstring-literal-comparison): Delete.
18267 * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
18268 consistently instead of -Walways-true in example.
18269 * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
18270 * c-typeck.c (parser_build_binary_op): Replace
18271 -Wstring-literal-comparison and -Walways-true with -Waddress.
18272 * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true
18273 with -Waddress.
18274
18275 2007-02-19 Eric Botcazou <ebotcazou@adacore.com>
18276
18277 * tree-cfg.c (dump_function_to_file): Be prepared for functions
18278 without DECL_STRUCT_FUNCTION initialized.
18279
18280 2007-02-19 Eric Botcazou <ebotcazou@adacore.com>
18281
18282 * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
18283 due to calls to functions taking pointers as parameters.
18284
18285 2007-02-19 Richard Henderson <rth@redhat.com>
18286
18287 PR debug/29558
18288 * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
18289 in memory.
18290
18291 2007-02-19 Andreas Krebbel <krebbel1@de.ibm.com>
18292
18293 * config/s390/s390.c (s390_call_saved_register_used,
18294 s390_function_ok_for_sibcall): Adjust the way CALL_EXPR arguments are
18295 accessed to the new scheme.
18296
18297 2007-02-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
18298
18299 * config/cris/cris.c (cris_movem_load_rest_p, cris_store_multiple_op_p)
18300 (cris_print_index, cris_print_operand, cris_print_operand_address)
18301 (cris_reload_address_legitimized, cris_rtx_costs, cris_address_cost)
18302 (cris_side_effect_mode_ok, cris_valid_pic_const, cris_split_movdx)
18303 (cris_expand_pic_call_address): Use xxx_P predicate macros instead of
18304 GET_CODE () == xxx.
18305 * config/cris/cris.h (SECONDARY_RELOAD_CLASS, EXTRA_CONSTRAINT_Q,
18306 EXTRA_CONSTRAINT_T, BDAP_INDEX_P, BIAP_INDEX_P, SIMPLE_ADDRESS_P,
18307 GO_IF_LEGITIMATE_ADDRESS): Ditto.
18308 * config/cris/cris.md (define_insns: *btst, movdi, *mov_side<mode>)
18309 (*mov_sidesisf, *mov_side<mode>_mem, *mov_sidesisf_mem)
18310 (*clear_side<mode>, movsi, *movsi_internal, *ext_sideqihi)
18311 (*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>, addsi3)
18312 (*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side)
18313 (*extop<mode>si_swap_side, addi_mul, *addi,andsi3, andhi3, ashl<mode>3)
18314 (uminsi3, call, call_value): Ditto.
18315 (define_split: indir_to_reg_split, unnamed): Ditto.
18316
18317 2007-02-19 Dorit Nuzman <dorit@il.ibm.com>
18318
18319 PR tree-optimization/30975
18320 * tree-vect-trasnform.c (vect_get_vec_def_for_stmt_copy): Remove
18321 wrong assert.
18322
18323 2007-02-18 Eric Christopher <echristo@gmail.com>
18324
18325 * mips.c (mips_prepare_builtin_arg): Add argnum parameter.
18326 Remove use of arglist.
18327 (mips_expand_builtin): Remove use of arglist, pass in expr.
18328 (mips_expand_builtin_direct): Rewrite handling for arglist removal.
18329 (mips_expand_builtin_movtf): Ditto.
18330 (mips_expand_builtin_compare): Ditto.
18331
18332 2007-02-19 Alexandre Oliva <aoliva@redhat.com>
18333
18334 * tree-sra.c (sra_build_assignment): Replace assertion
18335 checking with a comment explaining why it can't be done.
18336
18337 2007-02-18 Sandra Loosemore <sandra@codesourcery.com>
18338
18339 PR middle-end/30833
18340 * tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed
18341 during CALL_EXPR representation conversion.
18342 * tree-ssa-propagate.c (set_rhs): Likewise.
18343
18344 2007-02-19 Alexandre Oliva <aoliva@redhat.com>
18345
18346 * tree-sra.c (sra_build_assignment): Disable assertion checking
18347 for now.
18348
18349 2007-02-18 Roger Sayle <roger@eyesopen.com>
18350
18351 * function.c (gimplify_parameters): Call build_gimple_modify_stmt
18352 instead of calling build2 with a GIMPLE_MODIFY_STMT.
18353 * gimple-low.c (lower_function_body, lower_builtin_setjmp):
18354 Likewise.
18355 * gimplify.c (build_stack_save_restore, gimplify_return_expr,
18356 gimplify_decl_expr, gimplify_self_mod_expr, gimplify_cond_expr,
18357 gimplify_init_ctor_eval_range, gimple_push_cleanup,
18358 gimplify_omp_for, gimplify_omp_atomic_pipeline,
18359 gimplify_omp_atomic_mutex, gimplify_expr, gimplify_one_sizepos,
18360 force_gimple_operand): Likewise.
18361 * ipa-cp.c (constant_val_insert): Likewise.
18362 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
18363 lambda_loopnest_to_gcc_loopnest, replace_uses_equiv_to_x_with_y,
18364 perfect_nestify): Likewise.
18365 * langhooks.c (lhd_omp_assignment): Likewise.
18366 * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses,
18367 lower_copyprivate_clauses, lower_send_clauses,
18368 lower_send_shared_vars, expand_parallel_call,
18369 expand_omp_for_generic, expand_omp_for_static_nochunk,
18370 expand_omp_for_static_chunk, expand_omp_sections,
18371 lower_omp_single_copy, lower_omp_for_lastprivate,
18372 lower_omp_parallel, init_tmp_var, save_tmp_var): Likewise.
18373 * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
18374 tree_mod_subtract, tree_ic, tree_stringop_fixed_value):
18375 Likewise.
18376
18377 2007-02-19 Kazu Hirata <kazu@codesourcery.com>
18378
18379 * config/sh/divtab.c, config/sh/sh.c, config/sh/sh.h,
18380 config/sh/sh.md: Follow spelling conventions.
18381
18382 * config/frv/frv.c, config/frv/frv.h, config/frv/frv.md,
18383 config/frv/predicates.md: Follow spelling conventions.
18384
18385 * config/m68k/linux-unwind.h: Fix a comment typo.
18386 * target.h: Follow spelling conventions.
18387
18388 2007-02-18 Roger Sayle <roger@eyesopen.com>
18389
18390 PR rtl-optimization/28173
18391 * simplify-rtx.c (simplify_binary_operation_1) <IOR>: Optimize
18392 (X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects.
18393 Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0.
18394 Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2.
18395 <AND>: Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2).
18396
18397 2007-02-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18398
18399 * builtins.c (fold_builtin_load_exponent): New.
18400 (fold_builtin_2): Use it.
18401
18402 2007-02-18 Steven Bosscher <steven@gcc.gnu.org>
18403
18404 PR rtl-optimization/30773
18405 * local-alloc.c (update_equiv_regs): Do not set reg_equiv_init
18406 if we fail to attach a REG_EQUIV note.
18407
18408 2007-02-18 David Edelsohn <edelsohn@gnu.org>
18409 Roger Sayle <roger@eyesopen.com>
18410
18411 * config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter.
18412
18413 2007-02-18 Sandra Loosemore <sandra@codesourcery.com>
18414
18415 * calls.c (initialize_argument_information): Pass original EXP
18416 and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments. Move
18417 code to split complex arguments here, as part of initializing the
18418 ARGS array.
18419 (expand_call): Remove code that builds a list of arguments and
18420 inserts implicit arguments into it. Instead, just count how many
18421 implicit arguments there will be so we can determine the size of
18422 the ARGS array, and let initialize_argument_information do the work.
18423 (split_complex_values): Delete unused function.
18424
18425 2007-02-18 Eric Botcazou <ebotcazou@adacore.com>
18426
18427 * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
18428
18429 2007-02-18 Eric Botcazou <ebotcazou@adacore.com>
18430
18431 * calls.c (mem_overlaps_already_clobbered_arg_p): Return true
18432 for arg pointer based indexed addressing.
18433
18434 2007-02-18 Kazu Hirata <kazu@codesourcery.com>
18435
18436 * config/ia64/ia64.h, config/ia64/ia64.md,
18437 config/ia64/predicates.md, config/ia64/sysv4.h: Follow
18438 spelling conventions.
18439
18440 2007-02-18 Roman Zippel <zippel@linux-m68k.org>
18441
18442 * config/m68k/m68k.c (split_di): New.
18443 * config/m68k/m68k-protos.h: Declare split_di.
18444 * config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*):
18445 Improve predicate handling and split constant shifts.
18446
18447 2007-02-18 Roman Zippel <zippel@linux-m68k.org>
18448
18449 * config/m68k/m68k.md (extv,extzv,insv): disable dynamic
18450 parameter for register bitfield operations, general predicates
18451 cleanup
18452
18453 2007-02-18 Roman Zippel <zippel@linux-m68k.org>
18454
18455 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Define.
18456 * config/m68k/linux-unwind.h: New file.
18457
18458 2007-02-18 Kazu Hirata <kazu@codesourcery.com>
18459
18460 * cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c,
18461 config/i386/athlon.md, config/ia64/ia64.md,
18462 config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md,
18463 df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c,
18464 ipa-prop.h, see.c, struct-equiv.c, tree-inline.c,
18465 tree-ssa-loop-niter.c, tree-vect-analyze.c,
18466 tree-vect-transform.c: Fix comment typos.
18467
18468 2007-02-17 Kazu Hirata <kazu@codesourcery.com>
18469
18470 * sched-deps.c (find_insn_list): Remove.
18471 * sched-int.h: Remove the prototype for find_insn_list.
18472
18473 2007-02-16 Geoffrey Keating <geoffk@apple.com>
18474
18475 * config/darwin.h (LINK_SPEC): Always pass -macosx_version_min
18476 to linker.
18477 (DARWIN_EXTRA_SPECS): Add %(darwin_minversion).
18478 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call
18479 darwin_rs6000_override_options.
18480 (C_COMMON_OVERRIDE_OPTIONS): Expect
18481 darwin_macosx_version_min to be non-NULL always.
18482 (TARGET_C99_FUNCTIONS): Likewise.
18483 (CC1_SPEC): Always pass -mmacosx-version-min to cc1*.
18484 (DARWIN_MINVERSION_SPEC): New.
18485 * config/rs6000/rs6000.c (darwin_rs6000_override_options): New.
18486 * config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min
18487 to cc1*.
18488 (DARWIN_MINVERSION_SPEC): New.
18489 * config/darwin.opt (mmacosx-version-min): Initialize to non-NULL
18490 value.
18491 * config/darwin-c.c (darwin_cpp_builtins): Expect
18492 darwin_macosx_version_min to be non-NULL always.
18493
18494 * config/rs6000/rs6000.c: Clean up trailing whitespace.
18495
18496 2007-02-16 Uros Bizjak <ubizjak@gmail.com>
18497
18498 * config/i386/i386.h (x86_use_xchgb): New.
18499 (TARGET_USE_XCHGB): New macro.
18500 * config/i386/i386.c (x86_use_xchgb): Set for PENT4.
18501 * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter):
18502 Split after reload into bswaphi for shifts of 8.
18503 (bswaphi_lowpart): Generate rolw insn for HImode byte swaps.
18504 (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB
18505 or when optimizing for size.
18506
18507 2007-02-16 Richard Guenther <rguenther@suse.de>
18508 Christian Bruel <christian.bruel@st.com>
18509
18510 * fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like
18511 DECLs but prefer SSA_NAMEs over DECLs.
18512
18513 2007-02-16 Richard Guenther <rguenther@suse.de>
18514
18515 * tree-flow-inline.h (single_imm_use_p): Remove.
18516 (zero_imm_uses_p): Likewise.
18517 * tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use
18518 instead of single_imm_use_p.
18519 * tree-cfg.c (replace_uses_by): Use has_zero_use instead of
18520 zero_imm_uses_p.
18521
18522 2007-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18523
18524 PR other/27843
18525 * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
18526 nested double- and backquotes.
18527
18528 2007-02-15 Roger Sayle <roger@eyesopen.com>
18529
18530 PR middle-end/30391
18531 * tree.c (expr_align): Handle MODIFY_EXPR. GIMPLE_MODIFY_STMT
18532 should be unreachable.
18533 (build2_stat): Allow construction of MODIFY_EXPR at any time.
18534 For the time being redirect GIMPLE_MODIFY_STMT to the new
18535 (renamed) build_gimple_modify_stmt_stat.
18536 (build2_gimple_stat): Rename to...
18537 (build_gimple_modify_stmt_stat): Now longer take a CODE argument.
18538 Always build a GIMPLE_MODIFY_STMT node.
18539 * tree.h (build2_gimple, build2_gimple_stat): Delete.
18540 (build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New
18541 declarations.
18542
18543 * tree-cfg.c (factor_computed_gotos, tree_merge_blocks,
18544 gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple.
18545 * tree-complex.c (set_component_ssa_name, expand_complex_move,
18546 expand_complex_div_wide): Likewise.
18547 * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
18548 * tree-ssa-loop-im.c (schedule_sm): Likewise.
18549 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise.
18550 * tree-ssa-loop-manip.c (create_iv): Likewise.
18551 * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
18552 abs_replacement): Likewise.
18553 * tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt,
18554 realify_fake_stores): Likewise.
18555
18556 * builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR
18557 node rather than a GIMPLE_MODIFY_STMT node.
18558 (std_gimpify_va_arg_expr, expand_builtin_va_copy,
18559 fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos):
18560 Likewise.
18561 (integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT.
18562 * expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and
18563 GIMPLE_MODIFY_STMT.
18564
18565 2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
18566
18567 PR middle-end/30433
18568 * fold-const.c (fold_comparison): Add back the
18569 folding of constant complex comparisions.
18570
18571 2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
18572
18573 PR middle-end/30729
18574 * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
18575 effects unknown to this function, return early.
18576
18577 2007-02-15 Ian Lance Taylor <iant@google.com>
18578
18579 * lower-subreg.c (move_eh_region_note): New static function.
18580 (resolve_simple_move): Call it.
18581 (decompose_multiword_subregs): Track blocks for which we resolve a
18582 simple move which is also a control flow insn. Pass them to
18583 find_many_sub_basic_blocks.
18584 (pass_lower_subreg): Add TODO_verify_flow.
18585 (pass_lower_subreg2): Likewise.
18586
18587 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
18588 Brooks Moses <brooks.moses@codesourcery.com>
18589 Lee Millward <lee.millward@codesourcery.com>
18590
18591 * tree.h (enum tree_code_class): Add tcc_vl_exp.
18592 (VL_EXP_CLASS_P): New.
18593 (TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of
18594 TREE_CODE_LENGTH.
18595 (TREE_OPERAND_CHECK_CODE): Likewise.
18596 (GIMPLE_STMT_OPERAND_CHECK): Likewise.
18597 (TREE_RTL_OPERAND_CHECK): Likewise.
18598 (tree_operand_check_failed): Make second parameter the whole tree
18599 instead of its code. Fixed callers.
18600 (VL_EXP_CHECK): New.
18601 (TREE_OPERAND_LENGTH): New.
18602 (VL_EXP_OPERAND_LENGTH): New.
18603 (CALL_EXPR_FN): New.
18604 (CALL_EXPR_STATIC_CHAIN): New.
18605 (CALL_EXPR_ARGS): New.
18606 (CALL_EXPR_ARG): New.
18607 (call_expr_nargs): New.
18608 (CALL_EXPR_ARGP): New.
18609 (build_nt_call_list): Declare.
18610 (build_vl_exp_stat): Declare.
18611 (build_vl_exp): New.
18612 (build_call_list): Declare.
18613 (build_call_nary): Declare.
18614 (build_call_valist): Declare.
18615 (build_call_array): Declare.
18616 (call_expr_arg): Declare.
18617 (call_expr_argp): Declare.
18618 (call_expr_arglist): Declare.
18619 (fold_build_call_list): Declare.
18620 (fold_build_call_list_initializer): Declare.
18621 (fold_call_expr): Declare to replace fold_builtin.
18622 (fold_builtin_fputs): Update to agree with modified definition.
18623 (fold_builtin_strcpy): Likewise.
18624 (fold_builtin_strncpy): Likewise.
18625 (fold_builtin_memory_chk): Likewise.
18626 (fold_builtin_stxcpy_chk): Likewise.
18627 (fold_builtin_strncpy_chk): Likewise.
18628 (fold_builtin_next_arg): Likewise.
18629 (fold_build_call_expr): Declare.
18630 (fold_builtin_call_list): Declare.
18631 (fold_builtin_call_valist): Declare.
18632 (build_call_expr): Declare.
18633 (validate_arglist): Update to agree with modified definition.
18634 (tree_operand_length): New.
18635 (call_expr_arg_iterator): New.
18636 (init_call_expr_arg_iterator): New.
18637 (next_call_expr_arg): New.
18638 (first_call_expr_arg): New.
18639 (more_call_expr_args_p): New.
18640 (FOR_EACH_CALL_EXPR_ARG): New.
18641
18642 * tree.c (tree_code_class_string): Add entries for tcc_vl_exp
18643 and tcc_gimple_stmt.
18644 (tree_code_size): Update documentation. Use sizeof (tree) rather
18645 than sizeof (char *).
18646 (tree_size): Likewise. Add case for tcc_vl_exp.
18647 (tree_node_structure): Add case for tcc_vl_exp.
18648 (contains_placeholder_p): Likewise.
18649 (substitute_in_expr): Likewise.
18650 (substitute_placeholder_in_expr): Likewise.
18651 (stabilize_reference_1): Likewise.
18652 (build3_stat): Remove logic for CALL_EXPRs. Replace with assertion
18653 to diagnose breakage of this interface for constructing CALL_EXPRs.
18654 (build_nt): Add similar assertion here.
18655 (build_nt_call_list): New.
18656 (simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors.
18657 (iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of
18658 TREE_CODE_LENGTH.
18659 (get_callee_fndecl): Use new CALL_EXPR accessors.
18660 (tree_operand_check_failed): Change parameters to pass entire node
18661 instead of its code, so that we can call TREE_OPERAND_LENGTH on it.
18662 (process_call_operands): New.
18663 (build_vl_exp_stat): New.
18664 (build_call_list): New.
18665 (build_call_nary): New.
18666 (build_call_valist): New.
18667 (build_call_array): New.
18668 (walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
18669 (call_expr_arglist): New.
18670
18671 * tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use
18672 tcc_vl_exp instead of a fixed-size tcc_expression.
18673
18674 * doc/c-tree.texi (CALL_EXPR): Document new representation and
18675 accessors for CALL_EXPRs.
18676 (AGGR_INIT_EXPR): Likewise.
18677
18678 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
18679 Brooks Moses <brooks.moses@codesourcery.com>
18680 Lee Millward <lee.millward@codesourcery.com>
18681
18682 * builtins.c (c_strlen): Return NULL_TREE instead of 0.
18683 (expand_builtin_nonlocal_goto): Change parameter to be entire
18684 CALL_EXPR instead of an arglist. Use new CALL_EXPR accessors.
18685 (expand_builtin_prefetch): Likewise.
18686 (expand_builtin_classify_type): Likewise.
18687 (mathfn_built_in): Return NULL_TREE instead of 0.
18688 (expand_errno_check): Use new CALL_EXPR accessors.
18689 (expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors.
18690 Return NULL_RTX instead of 0.
18691 (expand_builtin_mathfn_2): Likewise.
18692 (expand_builtin_mathfn_3): Likewise.
18693 (expand_builtin_interclass_mathfn): Likewise.
18694 (expand_builtin_sincos): Likewise.
18695 (expand_builtin_cexpi): Likewise.
18696 (expand_builtin_int_roundingfn): Likewise.
18697 (expand_builtin_int_roundingfn_2): Likewise.
18698 (expand_builtin_pow): Likewise.
18699 (expand_builtin_powi): Likewise.
18700 (expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead
18701 of arglist, fixing callers appropriately. Use new CALL_EXPR
18702 accessors and constructors. Return NULL_RTX instead of 0.
18703 (expand_builtin_strstr): Likewise.
18704 (expand_builtin_strchr): Likewise.
18705 (expand_builtin_strrchr): Likewise.
18706 (expand_builtin_strpbrk): Likewise.
18707 (expand_builtin_memcpy): Likewise.
18708 (expand_builtin_mempcpy): Likewise.
18709 (expand_builtin_mempcpy_args): New.
18710 (expand_builtin_memmove): Similarly to expand_builtin_mempcpy.
18711 (expand_builtin_memmove_args): New.
18712 (expand_builtin_bcopy): Similarly to expand_builtin_mempcpy.
18713 (expand_movstr): Likewise.
18714 (expand_builtin_strcpy): Likewise.
18715 (expand_builtin_strcpy_args): New.
18716 (expand_builtin_stpcpy): Similarly to expand_builtin_strcpy.
18717 (expand_builtin_strncpy): Likewise.
18718 (expand_builtin_memset): Likewise.
18719 (expand_builtin_memset_args): New.
18720 (expand_builtin_bzero): Similarly to expand_builtin_memset.
18721 (expand_builtin_memcmp): Likewise.
18722 (expand_builtin_strcmp): Likewise.
18723 (expand_builtin_strncmp): Likewise.
18724 (expand_builtin_strcat): Likewise.
18725 (expand_builtin_strncat): Likewise.
18726 (expand_builtin_strspn): Likewise.
18727 (expand_builtin_strcspn): Likewise.
18728 (expand_builtin_args_info): Likewise.
18729 (expand_builtin_va_start): Likewise.
18730 (gimplify_va_arg_expr): Likewise.
18731 (expand_builtin_va_end): Likewise.
18732 (expand_builtin_va_copy): Likewise.
18733 (expand_builtin_frame_address): Likewise.
18734 (expand_builtin_alloca): Likewise.
18735 (expand_builtin_bswap): Likewise.
18736 (expand_builtin_unop): Likewise.
18737 (expand_builtin_fputs): Likewise.
18738 (expand_builtin_expect): Likewise.
18739 (expand_builtin_fabs): Likewise.
18740 (expand_builtin_copysign): Likewise.
18741 (expand_builtin_printf): Likewise.
18742 (expand_builtin_fprintf): Likewise.
18743 (expand_builtin_sprintf): Likewise.
18744 (expand_builtin_init_trampoline): Likewise.
18745 (expand_builtin_signbit): Likewise.
18746 (expand_builtin_fork_or_exec): Likewise.
18747 (expand_builtin_sync_operation): Likewise.
18748 (expand_builtin_compare_and_swap): Likewise.
18749 (expand_builtin_lock_test_and_set): Likewise.
18750 (expand_builtin_lock_release): Likewise.
18751 (expand_builtin): Likewise.
18752 (builtin_mathfn_code): Likewise.
18753
18754 (fold_builtin_constant_p): Pass call arguments individually instead
18755 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
18756 accessors and constructors. Return NULL_TREE instead of 0.
18757 (fold_builtin_expect): Likewise.
18758 (fold_builtin_classify_type): Likewise.
18759 (fold_builtin_strlen): Likewise.
18760 (fold_builtin_nan): Likewise.
18761 (integer_valued_real_p): Likewise.
18762 (fold_trunc_transparent_mathfn): Likewise.
18763 (fold_fixed_mathfn): Likewise.
18764 (fold_builtin_cabs): Likewise.
18765 (fold_builtin_sqrt): Likewise.
18766 (fold_builtin_cbrt): Likewise.
18767 (fold_builtin_cos): Likewise.
18768 (fold_builtin_cosh): Likewise.
18769 (fold_builtin_tan): Likewise.
18770 (fold_builtin_sincos): Likewise.
18771 (fold_builtin_cexp): Likewise.
18772 (fold_builtin_trunc): Likewise.
18773 (fold_builtin_floor): Likewise.
18774 (fold_builtin_ceil): Likewise.
18775 (fold_builtin_round): Likewise.
18776 (fold_builtin_int_roundingfn): Likewise.
18777 (fold_builtin_bitop): Likewise.
18778 (fold_builtin_bswap): Likewise.
18779 (fold_builtin_logarithm): Likewise.
18780 (fold_builtin_hypot): Likewise.
18781 (fold_builtin_pow): Likewise.
18782 (fold_builtin_powi): Likewise.
18783 (fold_builtin_exponent): Likewise.
18784 (fold_builtin_memset): Likewise.
18785 (fold_builtin_bzero): Likewise.
18786 (fold_builtin_memory_op): Likewise.
18787 (fold_builtin_bcopy): Deleted; call site changed to invoke
18788 fold_builtin_memory_op directly.
18789 (fold_builtin_strcpy): Similarly as for fold_builtin_memory_op.
18790 (fold_builtin_strncpy): Likewise.
18791 (fold_builtin_memcmp): Likewise.
18792 (fold_builtin_strcmp): Likewise.
18793 (fold_builtin_strncmp): Likewise.
18794 (fold_builtin_signbit): Likewise.
18795 (fold_builtin_copysign): Likewise.
18796 (fold_builtin_isascii): Likewise.
18797 (fold_builtin_toascii): Likewise.
18798 (fold_builtin_isdigit): Likewise.
18799 (fold_builtin_fabs): Likewise.
18800 (fold_builtin_abs): Likewise.
18801 (fold_builtin_fmin_fmax): Likewise.
18802 (fold_builtin_carg): Likewise.
18803 (fold_builtin_classify): Likewise.
18804 (fold_builtin_unordered_cmp): Likewise.
18805
18806 (fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4):
18807 New functions split out from fold_builtin_1.
18808 (fold_builtin_n): New.
18809 (fold_builtin_varargs): New.
18810 (fold_builtin): Deleted. Most callers changed to use fold_call_expr
18811 instead.
18812 (fold_call_expr): New.
18813 (build_function_call_expr): Rewrite to use new helper function.
18814 (fold_builtin_call_list): New.
18815 (build_call_expr): New.
18816 (fold_builtin_call_valist): New.
18817 (rewrite_call_expr): New.
18818 (validate_arg): New.
18819 (validate_arglist): Change parameter to be entire CALL_EXPR instead
18820 of an arglist. Change return type to bool. Use new CALL_EXPR
18821 accessors.
18822
18823 (fold_builtin_strstr): Pass call arguments individually instead
18824 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
18825 accessors and constructors. Return NULL_TREE instead of 0.
18826 (fold_builtin_strchr): Likewise.
18827 (fold_builtin_strrchr): Likewise.
18828 (fold_builtin_strpbrk): Likewise.
18829 (fold_builtin_strcat): Likewise.
18830 (fold_builtin_strncat): Likewise.
18831 (fold_builtin_strspn): Likewise.
18832 (fold_builtin_strcspn): Likewise.
18833 (fold_builtin_fputs): Likewise.
18834 (fold_builtin_next_arg): Likewise.
18835 (fold_builtin_sprintf): Likewise.
18836
18837 (expand_builtin_object_size): Use new CALL_EXPR accessors. Use
18838 NULL_RTX instead of 0.
18839 (expand_builtin_memory_chk): Likewise.
18840 (maybe_emit_chk_warning): Likewise.
18841 (maybe_emit_sprintf_chk_warning): Likewise.
18842
18843 (fold_builtin_object_size): Pass call arguments individually instead
18844 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
18845 accessors and constructors. Return NULL_TREE instead of 0.
18846 (fold_builtin_memory_chk): Likewise.
18847 (fold_builtin_stxcpy_chk): Likewise.
18848 (fold_builtin_strncpy_chk): Likewise.
18849 (fold_builtin_strcat_chk): Likewise.
18850 (fold_builtin_strcat_chk): Likewise.
18851 (fold_builtin_strncat_chk): Likewise.
18852 (fold_builtin_sprintf_chk): Likewise.
18853 (fold_builtin_snprintf_chk): Likewise.
18854 (fold_builtin_printf): Likewise.
18855 (fold_builtin_vprintf): Likewise.
18856
18857 * fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and
18858 constructors.
18859 (operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case.
18860 (make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
18861 (extract_muldiv_1): Add VL_EXP_CLASS_P case.
18862 (fold_mathfn_compare): Use new CALL_EXPR accessors and constructors.
18863 (fold_unary): Likewise.
18864 (fold_binary): Likewise.
18865 (fold_ternary): Remove CALL_EXPR case, since they are no longer
18866 ternary expressions.
18867 (fold): Add logic for tcc_vl_exp.
18868 (fold_checksum_tree): Make it know about tcc_vl_exp. Use
18869 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
18870 (fold_build3_stat): Add assertion to flag broken interface for
18871 constructing CALL_EXPRs.
18872 (fold_build_call_list): New.
18873 (fold_build_call_list_initializer): New.
18874 (tree_expr_nonnegative_p): Use new CALL_EXPR accessors and
18875 constructors.
18876 (fold_strip_sign_ops): Likewise.
18877
18878 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
18879 Brooks Moses <brooks.moses@codesourcery.com>
18880 Lee Millward <lee.millward@codesourcery.com>
18881
18882 * tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR
18883 accessors and dump arguments explicitly.
18884
18885 * tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of
18886 TREE_CODE_LENGTH.
18887 (dump_generic_node): Use new CALL_EXPR accessors and walk arguments
18888 explicitly.
18889 (print_call_name): Use new CALL_EXPR accessors.
18890
18891 * print-tree.c (print_node): Add case tcc_vl_exp. Print
18892 CALL_EXPR arguments explicitly instead of as a list. Use
18893 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
18894
18895 * tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
18896 (vrp_visit_stmt): Likewise.
18897
18898 * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Make it
18899 know about tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of
18900 TREE_CODE_LENGTH.
18901 (force_move_till_expr): Likewise.
18902
18903 * targhooks.c (default_external_stack_protect_fail): Use
18904 build_call_expr instead of build_function_call_expr.
18905 (default_hidden_stack_protect_fail): Likewise.
18906
18907 * tree-complex.c (expand_complex_libcall): Use build_call_expr to
18908 build the call.
18909
18910 * cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors
18911 and walk arguments explicitly.
18912
18913 * tree-ssa-loop-niter.c (simplify_replace_tree): Use
18914 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
18915 (expand_simple_operations): Likewise.
18916 (infer_loop_bounds_from_array): Use new CALL_EXPR accessors.
18917
18918 * gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead
18919 of TREE_CODE_LENGTH.
18920 (walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs.
18921
18922 * optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH
18923 instead of TREE_CODE_LENGTH.
18924
18925 * value_prof.c (tree_ic): Use new CALL_EXPR accessors.
18926 (tree_ic_transform): Likewise.
18927 (interesting_stringop_to_profile_p): Pass entire CALL_EXPR as
18928 parameter instead of arglist. Fix callers.
18929 (tree_stringop_fixed_value): Use new CALL_EXPR accessors.
18930 (tree_stringops_transform): Likewise.
18931 (tree_indirect_call_to_profile): Likewise.
18932 (tree_stringops_values_to_profile): Likewise.
18933
18934 * tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator.
18935 (eliminate_tail_call): Likewise.
18936
18937 * ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors.
18938
18939 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
18940 Use TREE_OPERAND_LENGTH and generalize to handle any number of
18941 operands.
18942 (instantiate_parameters_1): Can't handle tcc_vl_exp here.
18943
18944 * omp-low.c (build_omp_barrier): Use build_call_expr.
18945 (lower_rec_input_clauses): Likewise.
18946 (lower_reduction_clauses): Likewise.
18947 (expand_parallel_call): Likewise.
18948 (maybe_catch_exception): Likewise.
18949 (expand_omp_for_generic): Likewise.
18950 (expand_omp_for_static_nochunk): Likewise.
18951 (expand_omp_sections): Likewise.
18952 (lower_omp_single_simple): Likewise.
18953 (lower_omp_single_copy): Likewise.
18954 (lower_omp_master): Likewise.
18955 (lower_omp_ordered): Likewise.
18956 (lower_omp_critical): Likewise.
18957
18958 * ipa-reference.c (check-call): Use new CALL_EXPR iterator.
18959 (scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR.
18960
18961 * tree-gimple.c (is_gimple_call_addr): Fix doc.
18962 (recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of
18963 TREE_CODE_LENGTH. Add tcc_vl_exp case.
18964
18965 * tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH
18966 and generalize to handle any number of operands.
18967 (chrec_contains_undetermined): Likewise.
18968 (tree_contains_chrecs): Likewise.
18969 (evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH.
18970
18971 * cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors.
18972
18973 * tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors. Use
18974 fold_call_expr instead of fold_builtin.
18975 (ccp_fold_builtin): Likewise. Update calls into builtins.c to
18976 match declarations there.
18977 (fold_stmt): Use new CALL_EXPR constructor and accessors. Doc
18978 updates.
18979
18980 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use
18981 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
18982
18983 * ipa-pure-const.c (check_call): Use new CALL_EXPR accessors.
18984 (scan_function): Add case tcc_vl_exp for CALL_EXPR.
18985
18986 * tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR
18987 accessors.
18988
18989 * tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr.
18990 (execute_cse_sincos): Use new CALL_EXPR accessors.
18991
18992 * tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator.
18993
18994 * gimple-low.c (lower_function_body): Use build_call_expr.
18995 (lower_builtin_setjmp): Likewise.
18996
18997 * expr.c (emit_block_move_via_libcall): Use build_call_expr.
18998 (set_storage_via_libcall): Likewise.
18999 (safe_from_p): Add tcc_vl_exp case. Use TREE_OPERAND_LENGTH
19000 instead of TREE_CODE_LENGTH.
19001 (expand_expr_real_1): Use new CALL_EXPR accessors.
19002
19003 * tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and
19004 generalize to handle any number of operands.
19005 (TB_parent_eq): Likewise.
19006
19007 * predict.c (expr_expected_value): Use new CALL_EXPR accessors.
19008 (strip_builtin_expect): Likewise.
19009
19010 * function.c (gimplify_parameters): Use build_call_expr.
19011
19012 * tree-vectorizer.c (vect_is_simple_reduction): Use
19013 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
19014
19015 * ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
19016 (scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.
19017
19018 * tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR
19019 iterators.
19020
19021 * gimplify.c (build_stack_save_restore): Use build_call_expr.
19022 (gimplify_decl_expr): Likewise.
19023 (gimplify_call_expr): Use fold_call_expr instead of fold_builtin.
19024 Use new CALL_EXPR iterators.
19025 (gimplify_modify_expr_to_memcpy): Use build_call_expr.
19026 (gimplify_modify_expr_to_memset): Likewise.
19027 (gimplify_variable_sized_compare): Likewise.
19028 (gimplify_omp_atomic_fetch_op): Likewise.
19029 (gimplify_omp_atomic_pipeline): Likewise.
19030 (gimplify_omp_atomic_mutex): Likewise.
19031 (gimplify_function_tree): Likewise.
19032
19033 * calls.c (alloca_call_p): Use new CALL_EXPR accessors.
19034 (call_expr_flags): Likewise.
19035 (expand_call): Likewise.
19036
19037 * except.c (expand_builtin_eh_return_data_regno): Pass entire
19038 CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR
19039 accessors.
19040
19041 * coverage.c (create_coverage): Use build_call_expr.
19042
19043 * tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete.
19044 (temp_call_expr_obstack): New.
19045 (pool_copy_list): Delete.
19046 (temp_copy_call_expr): New.
19047 (phi_translate): Add case tcc_vl_exp for CALL_EXPR. Use new
19048 CALL_EXPR accessors. Get rid of special goo for copying argument
19049 lists and use temp_copy_call_expr instead.
19050 (valid_in_sets): Add case tcc_vl_exp for CALL_EXPR. Use new
19051 CALL_EXPR accessors.
19052 (create_expression_by_pieces): Likewise. Use build_call_array
19053 to construct the result instead of fold_build3.
19054 (create_value_expr_from): Add tcc_vl_exp. Delete special goo for
19055 dealing with argument lists.
19056 (init_pre): Remove references to expression_node_pool and
19057 list_node_pool. Init temp_call_expr_obstack instead.
19058 (fini_pre): Remove references to expression_node_pool and
19059 list_node_pool.
19060
19061 * tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors
19062 and walk arguments explicitly instead of as a list.
19063
19064 * tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr.
19065 (mx_register_decls): Likewise.
19066 (mudflap_register_call): Likewise.
19067 (mudflap_finish_file): Likewise.
19068
19069 * ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors.
19070 (ipa_callsite_compute_param): Likewise.
19071
19072 * tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR
19073 accessors and constructor.
19074
19075 * tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
19076 accessors and constructor.
19077 (convert_tramp_reference): Likewise.
19078 (convert_call_expr): Likewise.
19079 (finalize_nesting_tree_1): Likewise.
19080
19081 * tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR
19082 accessors.
19083
19084 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr.
19085
19086 * tree-inline.c (initialize_inlined_parameters): Pass entire
19087 CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR
19088 accessors.
19089 (estimate_num_insns_1): Use new CALL_EXPR accessors.
19090 (expand_call_inline): Tidy up call to initialize_inlined_parameters.
19091
19092 * tree-vect-transform.c (vect_create_epilog_for_reduction): Use
19093 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
19094 (vectorizable_reduction): Likewise.
19095 (vectorizable_call): Use new CALL_EXPR iterators.
19096 (vectorizable_conversion): Use build_call_expr.
19097 (vectorizable_operation): Use TREE_OPERAND_LENGTH.
19098 (vect_gen_widened_results_half): Use build_call_expr.
19099 (vect_setup_realignment): Likewise.
19100 (vectorizable_live_operation): Use TREE_OPERAND_LENGTH.
19101
19102 * tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors.
19103 (pass_through_call): Likewise.
19104 (compute_object_sizes): Likewise. Use fold_call_expr instead of
19105 fold_builtin.
19106
19107 * tree-profile.c (tree_gen_interval_profiler): Use build_call_expr.
19108 (tree_gen_pow2_profiler): Likewise.
19109 (tree_gen_one_value_profiler): Likewise.
19110 (tree_gen_ic_func_profiler): Likewise.
19111 (tree_gen_average_profiler): Likewise.
19112 (tree_gen_ior_profiler): Likewise.
19113
19114 * tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp.
19115 (find_func_aliases): Use new CALL_EXPR accessors. Add case
19116 tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
19117
19118 * tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead
19119 of TREE_CODE_LENGTH.
19120
19121 * stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead
19122 of TREE_CODE_LENGTH.
19123
19124 * convert.c (convert_to_real): Use new CALL_EXPR accessors and
19125 constructor.
19126 (convert_to_integer): Likewise.
19127
19128 * tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR
19129 accessors.
19130
19131 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
19132 Brooks Moses <brooks.moses@codesourcery.com>
19133 Lee Millward <lee.millward@codesourcery.com>
19134
19135 * config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR
19136 accessors.
19137 * config/frv/frv.c (frv_expand_builtin): Likewise.
19138 * config/s390/s390.c (s390_expand_builtin): Likewise.
19139
19140 * config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr.
19141 (sparc_expand_builtin): Use new CALL_EXPR accessors.
19142
19143 * config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise.
19144 (ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter
19145 instead of arglist. Use new CALL_EXPR accessors on it. Fix callers.
19146 (ix86_expand_store_builtin): Likewise.
19147 (ix86_expand_unop_builtin): Likewise.
19148 (ix86_expand_unop1_builtin): Likewise.
19149 (ix86_expand_sse_compare): Likewise.
19150 (ix86_expand_sse_comi): Likewise.
19151 (ix86_expand_vec_init_builtin): Likewise.
19152 (ix86_expand_vec_ext_builtin): Likewise.
19153 (ix86_expand_vec_set_builtin): Likewise.
19154 (ix86_expand_builtin): Use new CALL_EXPR accessors.
19155
19156 * config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors.
19157 * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
19158
19159 * config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR
19160 instead of arglist. Use new CALL_EXPR accessors. Fix callers.
19161 (iq2000_expand_builtin): Use new CALL_EXPR accessors.
19162
19163 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use
19164 build_call_expr.
19165 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
19166 (rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of
19167 arglist. Use new CALL_EXPR accessors. Fix callers.
19168 (altivec_expand_abs_builtin): Likewise.
19169 (rs6000_expand_binop_builtin): Likewise.
19170 (altivec_expand_predicate_builtin): Likewise.
19171 (altivec_expand_lv_builtin): Likewise.
19172 (spe_expand_stv_builtin): Likewise.
19173 (altivec_expand_stv_builtin): Likewise.
19174 (rs6000_expand_ternop_builtin): Likewise.
19175 (altivec_expand_ld_builtin): Use new CALL_EXPR accessors.
19176 (altivec_expand_st_builtin): Likewise.
19177 (altivec_expand_dst_builtin): Likewise.
19178 (altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of
19179 arglist. Use new CALL_EXPR accessors. Fix callers.
19180 (altivec_expand_vec_set_builtin): Likewise.
19181 (altivec_expand_vec_ext_builtin): Likewise.
19182 (altivec_expand_builtin): Use new CALL_EXPR accessors.
19183 (spe_expand_builtin): Likewise.
19184 (spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of
19185 arglist. Use new CALL_EXPR accessors. Fix callers.
19186 (spe_expand_evsel_builtin): Likewise.
19187 (rs6000_expand_builtin): Use new CALL_EXPR accessors. VCFUX and
19188 FCFSX cases must construct whole new CALL_EXPR, not just arglist.
19189
19190 * config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR
19191 instead of arglist. Use new CALL_EXPR accessors. Fix callers.
19192 (arm_expand_unop_builtin): Likewise.
19193 (arm_expand_builtin): Use new CALL_EXPR accessors.
19194
19195 * config/mips/mips.c (mips_expand_builtin): Use new CALL_EXPR
19196 accessors.
19197
19198 * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire
19199 CALL_EXPR instead of arglist. Use new CALL_EXPR accessors.
19200 Fix callers.
19201 (bfin_expand_unop_builtin): Likewise.
19202 (bfin_expand_builtin): Use new CALL_EXPR accessors.
19203
19204 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
19205 Brooks Moses <brooks.moses@codesourcery.com>
19206 Lee Millward <lee.millward@codesourcery.com>
19207
19208 * c-semantics.c (build_stmt): Add internal diagnostic check.
19209
19210 * c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR
19211 accessors. Print arguments explicitly instead of as a list.
19212
19213 * c-typeck.c (build_function_call): Use new CALL_EXPR constructors.
19214
19215 * c-omp.c (c_finish_omp_barrier): Use build_call_expr.
19216 (c_finish_omp_flish): Likewise.
19217
19218 * c-common.c (verify_tree): Use new CALL_EXPR accessors. Traverse
19219 arguments explicitly instead of as a list. Use TREE_OPERAND_LENGTH
19220 instead of TREE_CODE_LENGTH.
19221 (check_function_arguments_recurse): Use new CALL_EXPR accessors.
19222 (c_warn_unused_result): Likewise.
19223
19224 2007-02-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19225
19226 PR c/26494
19227 * doc/invoke.texi (Warning Options): Remove
19228 -Werror-implicit-function-declaration.
19229 (Wimplicit-function-declaration): Update description.
19230 * opts.c (common_handle_option): Move handling of -Werror=* to...
19231 (enable_warning_as_error): ...here.
19232 * opts.h (enable_warning_as_error): Declare.
19233 * c-decl.c (implicit_decl_warning): Unless
19234 -Wno-implicit-function-declaration is given, emit a pedwarn if
19235 -std=c99 or emit a warning if -Wimplicit-function-declaration.
19236 * c.opt (Wimplicit-function-declaration): Replace
19237 mesg_implicit_function_declaration with
19238 warn_implicit_function_declaration.
19239 * c-opts.c (c_common_handle_option):
19240 -Werror-implicit-function-declaration is exactly equal as
19241 -Werror=implicit-function-declaration.
19242 (set_Wimplicit): Replace mesg_implicit_function_declaration with
19243 warn_implicit_function_declaration.
19244 (c_common_post_options): -Wimplict-function-declaration is enabled
19245 by default by -std=c99, otherwise is disabled by default.
19246 * c-objc-common.c (c_objc_common_init): Remove flawed logic.
19247
19248 2007-02-15 Eric Botcazou <ebotcazou@adacore.com>
19249
19250 * gimplify.c (gimplify_modify_expr): During gimplification, attach a
19251 DECL on the rhs to a DECL on the lhs for debug info purposes if the
19252 former is ignored but not the latter.
19253
19254 2007-02-15 Eric Botcazou <ebotcazou@adacore.com>
19255
19256 * expr.c (expand_expr_real_1) <normal_inner_ref>: If a temporary
19257 is made and the reference doesn't use the alias set of its type,
19258 do not create the temporary using that type.
19259
19260 2007-02-15 Aldy Hernandez <aldyh@redhat.com>
19261
19262 * jump.c: Remove prototypes for delete_computation and
19263 delete_prior_computation.
19264
19265 2007-02-15 Paolo Bonzini <bonzini@gnu.org>
19266
19267 * jump.c (get_label_after): Delete.
19268 (get_label_before, delete_computation, delete_jump,
19269 delete_prior_computation, follow_jumps): Move...
19270 * reorg.c (delete_computation, delete_prior_computation): ... here...
19271 (get_label_before, delete_jump): ... making these static ...
19272 (follow_jumps): ... and simplifying this since it only runs after
19273 reload.
19274 * rtl.h (get_label_after, get_label_before, delete_jump,
19275 follow_jumps): Delete prototypes.
19276
19277 2007-02-15 Paolo Bonzini <bonzini@gnu.org>
19278
19279 * caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
19280
19281 2007-02-15 Nick Clifton <nickc@redhat.com>
19282
19283 * varasm.c (default_asm_output_anchor): Prepend * to . symbol in
19284 order to prevent it from being munged by the target.
19285
19286 2007-02-15 Uros Bizjak <ubizjak@gmail.com>
19287
19288 * config/i386/i386.md: Remove misleading comment.
19289
19290 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
19291
19292 * config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns,
19293 reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove
19294 invalid patterns.
19295
19296 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
19297
19298 * tree-sra.c (instantiate_missing_elements): Canonicalize
19299 bit-field types.
19300 (sra_build_assignment): New.
19301 (generate_copy_inout, generate_element_copy,
19302 generate_element_zero, generate_one_element_init): Use it.
19303
19304 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
19305
19306 * tree-sra.c (instantiate_missing_elements): Canonicalize
19307 bit-field types.
19308 (sra_build_assignment): New.
19309 (generate_copy_inout, generate_element_copy,
19310 generate_element_zero, generate_one_element_init): Use it.
19311
19312 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
19313
19314 * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
19315 limbo die nodes.
19316
19317 2007-02-14 Joseph Myers <joseph@codesourcery.com>
19318
19319 * emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex
19320 types as aggregates not scalars.
19321 * function.c (assign_stack_temp_for_type): Likewise.
19322
19323 2007-02-14 Roger Sayle <roger@eyesopen.com>
19324 Zdenek Dvorak <dvorakz@suse.cz>
19325
19326 * tree-dump.c (dump_switch_p_1): Require exact match of the option
19327 name.
19328
19329 2007-02-14 Zdenek Dvorak <dvorakz@suse.cz>
19330
19331 * passes.c (next_pass_1): Clear the next field of the copied
19332 pass structure.
19333
19334 2007-02-14 Richard Henderson <rth@redhat.com>
19335
19336 * tree-sra.c (early_sra): New.
19337 (decl_can_be_decomposed_p): Deny va_list if early_sra.
19338 (tree_sra_early, pass_sra_early): New.
19339 * tree-pass.h (pass_sra_early): Declare.
19340 * passes.c (init_optimization_passes): Use it.
19341
19342 2007-02-14 Richard Guenther <rguenther@suse.de>
19343
19344 * flags.h (issue_strict_overflow_warning): Convert to a macro.
19345
19346 2007-02-14 Dorit Nuzman <dorit@il.ibm.com>
19347
19348 PR tree-optimization/30771
19349 * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
19350 also phi nodes.
19351 (vect_analyze_operations): Induction phis can now be marked as
19352 used_in_loop.
19353 (vect_mark_stmts_to_be_vectorized): No special treatment for phis.
19354 Update documentation accordingly.
19355
19356 2007-02-14 Nick Clifton <nickc@redhat.com>
19357
19358 * builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at
19359 most 3 arguments are supported.
19360 (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.
19361
19362 2007-02-13 Seongbae Park <seongbae.park@gmail.com>
19363
19364 * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
19365 Ensure dst->current is valid.
19366
19367 2007-02-13 Paul Brook <paul@codesourcery.com>
19368
19369 * config.gcc: Add arm*-*-uclinux-*eabi.
19370 * config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
19371 (SUBTARGET_EXTRA_LINK_SPEC): Define.
19372 (STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
19373 (LINK_GCC_C_SEQUENCE_SPEC): Undef.
19374 (LINK_SPEC): Define.
19375 (LIB_SPEC): Define.
19376 * config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
19377 register.
19378 * config/arm/uclinux-eabi.h: New file.
19379 * config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
19380 * config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
19381 based targets.
19382
19383 2007-02-13 Ian Lance Taylor <iant@google.com>
19384
19385 * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
19386 * flags.h (warn_strict_overflow): Declare.
19387 (enum warn_strict_overflow_code): Define.
19388 (issue_strict_overflow_warning): New static inline function.
19389 * opts.c (warn_strict_overflow): New variable.
19390 (common_handle_option): Handle OPT_Wstrict_overflow and
19391 OPT_Wstrict_overflow_.
19392 * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
19393 OPT_Wall.
19394 * fold-const.c: Include intl.h.
19395 (fold_deferring_overflow_warnings): New static variable.
19396 (fold_deferred_overflow_warning): New static variable.
19397 (fold_deferred_overflow_code): New static variable.
19398 (fold_defer_overflow_warnings): New function.
19399 (fold_undefer_overflow_warnings): New function.
19400 (fold_undefer_and_ignore_overflow_warnings): New function.
19401 (fold_deferring_overflow_warnings_p): New function.
19402 (fold_overflow_warning): New static function.
19403 (make_range): Add strict_overflow_p parameter. Change all
19404 callers.
19405 (extract_muldiv, extract_muldiv_1): Likewise.
19406 (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
19407 tree_expr_nonnegative_p.
19408 (fold_negate_expr): Call fold_overflow_warning.
19409 (fold_range_test): Likewise.
19410 (fold_comparison): Likewise.
19411 (fold_binary): Likewise. Call tree_expr_nonnegative_warnv_p
19412 instead of tree_expr_nonnegative_p.
19413 (tree_expr_nonnegative_warnv_p): Rename from
19414 tree_expr_nonnegative_p, add strict_overflow_p parameter.
19415 (tree_expr_nonnegative_p): New function.
19416 (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
19417 strict_overflow_p parameter.
19418 (tree_expr_nonzero_p): New function.
19419 * passes.c (verify_interpass_invariants): New static function.
19420 (execute_one_pass): Call it.
19421 * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
19422 warnings.
19423 (number_of_iterations_exit, loop_niter_by_eval): Likewise.
19424 (estimate_numbers_of_iterations): Likewise.
19425 (scev_probably_wraps_p): Likewise.
19426 * tree-ssa-ccp.c: Include "toplev.h".
19427 (evaluate_stmt): Defer fold overflow warnings until we know we are
19428 going to optimize.
19429 (struct fold_stmt_r_data): Add stmt field.
19430 (fold_stmt_r): Defer fold overflow warnings until we know we
19431 optimized.
19432 (fold_stmt): Initialize stmt field of fold_stmt_r_data.
19433 (fold_stmt_inplace): Likewise.
19434 * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
19435 (cleanup_control_expr_graph): Defer fold overflow warnings until
19436 we know we are going to optimize.
19437 * tree-cfg.c (fold_cond_expr_cond): Likewise.
19438 * tree-ssa-threadedge.c (simplify_control_stmt_condition):
19439 Likewise.
19440 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
19441 tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
19442 * tree-ssa-loop-manip.c (create_iv): Likewise.
19443 * c-typeck.c (build_conditional_expr): Likewise.
19444 (build_binary_op): Likewise.
19445 * tree-vrp.c (vrp_expr_computes_nonzero): Call
19446 tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
19447 (extract_range_from_unary_expr): Likewise.
19448 * simplify-rtx.c (simplify_const_relational_operation): Warn when
19449 assuming that signed overflow does not occur.
19450 * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
19451 * tree.h (tree_expr_nonnegative_warnv_p): Declare.
19452 (fold_defer_overflow_warnings): Declare.
19453 (fold_undefer_overflow_warnings): Declare.
19454 (fold_undefer_and_ignore_overflow_warnings): Declare.
19455 (fold_deferring_overflow_warnings_p): Declare.
19456 (tree_expr_nonzero_warnv_p): Declare.
19457 * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
19458 of warning options.
19459 (Warning Options): Document -Wstrict-overflow.
19460 * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
19461 (tree-ssa-ccp.o): Likewise.
19462 (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
19463 (fold-const.o): Depend on intl.h.
19464
19465 2007-02-13 Ian Lance Taylor <iant@google.com>
19466
19467 PR middle-end/30751
19468 * lower-subreg.c (resolve_simple_move): Decompose subregs in
19469 addresses.
19470
19471 2007-02-13 Stuart Hastings <stuart@apple.com>
19472
19473 * config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.
19474
19475 2007-02-13 Richard Henderson <rth@redhat.com>
19476
19477 * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
19478 handled_component_p before looking for the indirect_ref.
19479
19480 2007-02-13 Richard Henderson <rth@redhat.com>
19481
19482 * config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
19483 remove flags clobber.
19484 (bswapsi2): New expander, emit code for !TARGET_BSWAP.
19485 (bswaphi_lowpart): New.
19486 (bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
19487 remove TARGET_BSWAP test. Delete expander of the same name.
19488
19489 * optabs.c (widen_bswap, expand_doubleword_bswap): New.
19490 (expand_unop): Use them.
19491
19492 2007-02-13 Uros Bizjak <ubizjak@gmail.com>
19493
19494 * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
19495 *cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
19496 *movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
19497 *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
19498 *ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
19499 *ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
19500 *ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
19501 assembler dialect choice from asm templates.
19502
19503 2007-02-12 Richard Henderson <rth@redhat.com>
19504
19505 * config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
19506 (fixuns_trunc<SSEMODEF>si2): Use it.
19507 * config/i386/sse.md (vec_setv4sf_0): Export.
19508 * config/i386/i386.c (ix86_build_const_vector): Export.
19509 (ix86_split_convert_uns_si_sse): Rename from
19510 ix86_expand_convert_uns_si_sse and rewrite as a splitter.
19511 * config/i386/i386-protos.h: Update.
19512
19513 2007-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19514
19515 PR c/29521
19516 * c-typeck.c (c_finish_return): Improve warning message.
19517
19518 2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19519
19520 * alias.c (find_symbolic_term): Delete unused function.
19521
19522 2007-02-12 Uros Bizjak <ubizjak@gmail.com>
19523
19524 * config/i386/i386.md (paritydi2, paritysi2): New expanders.
19525 (paritydi2_cmp, paritydi2_cmp): New insn and split patterns.
19526 (*parityhi2_cmp, *parityqi2_cmp): New insn patterns.
19527
19528 2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
19529
19530 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
19531 * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
19532 the function, temporarily point the debug interface to the null one.
19533
19534 2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
19535
19536 * dwarf2out.c (round_up_to_align): New static function.
19537 (field_byte_offset): Use it to round the offset.
19538
19539 2007-02-12 Richard Henderson <rth@redhat.com>
19540
19541 * config/alpha/alpha.md (bswapsi2, bswapdi2): New.
19542 (inswl_const): Export.
19543
19544 2007-02-12 Richard Henderson <rth@redhat.com>
19545
19546 * calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the
19547 result mode of the libcall, convert back to outmode.
19548
19549 2007-02-12 Roger Sayle <roger@eyesopen.com>
19550
19551 * config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2.
19552 (bswapdi2): New define_expand to implement 32-bit implementation.
19553
19554 2007-02-12 Nick Clifton <nickc@redhat.com>
19555
19556 * doc/invoke.texi (Overall Options): Document --help=.
19557 * gcc.c (target_help_flag): Rename to print_subprocess_flag.
19558 (cc1_options): Pass --help= on to cc1.
19559 (display_help): Add description of --help=.
19560 (process_command): Add code to handle --help=. Allow translated
19561 --help and --target-help switches to be passed on to compiler
19562 sub-process.
19563 (main): Remove unused if statement.
19564 * opts.c (columns): Remove.
19565 (LEFT_COLUMN): Define.
19566 (wrap_help): Add columns argument.
19567 (print_filtered_help): Change parameters to be an include bitmask,
19568 an exclude bitmask, an any bitmask and the column width. Move the
19569 code to display the params list here. Add code to display the
19570 status of options rather than their descriptions if the quiet flag
19571 is not active.
19572 (print_specific_help): Change parameters to be an include bitmask,
19573 an exclude bitmask and an any bitmask. Move code to look up the
19574 column width here. Decide upon the title for an options listing.
19575 (common_handle_options): Add code to handle --help=. Adapt code
19576 for --help and --target-help to use the revised form of the
19577 print_specific_help function.
19578 (print_help): Delete.
19579 (print_param_help): Delete.
19580 (print_switch): Delete.
19581 * opts.h (cl_lang_count): Add prototype.
19582 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS,
19583 CL_MAX_OPTION_CLASS): New defines.
19584 * optc-gen.awk: Add construction of cl_lang_count.
19585 * c.opt: Add Warning attribute to warning options and Optimization
19586 attribute to optimization options.
19587 * common.opt: Likewise.
19588 Add --help=.
19589 Add -fhelp and -ftarget-help as aliases for the transformed --help
19590 and --target-help options.
19591 * opt-functions.awk: Add code to handle Warning and Optimization
19592 attributes.
19593
19594 2007-02-12 Richard Henderson <rth@redhat.com>
19595
19596 * config/alpha/constraints.md: New file.
19597 * config/alpha/alpha.c: Include tm-constrs.h.
19598 (alpha_const_ok_for_letter_p, alpha_const_double_ok_for_letter_p,
19599 alpha_extra_constraint): Remove.
19600 (alpha_emit_conditional_branch): Use satisfies_constraint_*.
19601 * config/alpha/alpha-protos.h: Update.
19602 * config/alpha/alpha.h (REG_CLASS_FROM_LETTER): Remove.
19603 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Remove.
19604 (EXTRA_CONSTRAINT): Remove.
19605 * config/alpha/alpha.md: Include constraints.md.
19606 (adddi splitter): Use satisfies_constraint_*.
19607 * config/alpha/predicates.md (add_operand): Likewise.
19608 (sext_add_operand, addition_operation): Likewise.
19609
19610 2007-02-12 Dorit Nuzman <dorit@il.ibm.com>
19611
19612 PR tree-optimization/29145
19613 * tree-data-ref.c (base_addr_differ_p): Make us more conservative
19614 in our handling of restrict qualified pointers.
19615
19616 2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19617
19618 PR middle-end/7651
19619 * doc/invoke.texi (Wunused-value): Update description.
19620 (Wextra): Delete item.
19621 * opts.c (set_Wextra): Don't use the value of Wextra to set the
19622 value of Wunused-value.
19623 * c-typeck.c (c_process_expr_stmt): Don't check extra_warnings.
19624 (c_finish_stmt_expr): Don't check extra_warnings.
19625 (emit_side_effect_warnings): The caller is responsible to check
19626 warn_unused_value.
19627
19628 2007-02-11 Roger Sayle <roger@eyesopen.com>
19629 Matt Thomas <matt@3am-software.com>
19630
19631 * simplify-rtx.c (simplify_relational_operation_1): Correct typo.
19632
19633 2007-02-11 Roger Sayle <roger@eyesopen.com>
19634
19635 * simplify-rtx.c (simplify_relational_operation_1): Optimize
19636 comparisons of POPCOUNT against zero.
19637 (simplify_const_relational_operation): Likewise.
19638
19639 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19640
19641 * doc/invoke.texi (Wextra): Delete outdated paragraph.
19642
19643 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19644
19645 * dwarf2out.c (root_type): Delete unused function.
19646
19647 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19648
19649 * genattrtab.c (contained_in_p): Delete unused function.
19650 (write_expr_attr_cache): Likewise.
19651
19652 2007-02-11 Jan Hubicka <jh@suse.cz>
19653
19654 * ipa-inline.c (cgraph_edge_badness): Add "else" missing in the
19655 previous patch.
19656
19657 2007-02-11 Steven Bosscher <steven@gcc.gnu.org>
19658
19659 * fwprop.c (try_fwprop_subst): Use set_unique_reg_note
19660 to add the REG_EQ* note.
19661 * see.c (see_merge_one_use_extension): Likewise.
19662 * local-alloc.c (update_equiv_regs): Likewise. Also don't
19663 turn REG_EQUAL notes into REG_EQUIV notes if the target
19664 register may have more than one set.
19665 * function.c (assign_parm_setup_reg): Use set_unique_reg_note.
19666 * gcse.c (try_replace_reg): Likewise.
19667 * alias.c (init_alias_analysis): Use find_reg_equal_equiv_note.
19668 * calls.c (fixup_tail_calls): Likewise. Abort if there is
19669 more than one REG_EQUIV note.
19670 * reload1.c (gen_reload): Use set_unique_reg_note.
19671
19672 2007-02-11 Uros Bizjak <ubizjak@gmail.com>
19673
19674 * config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define.
19675 (ix86_builtin_conversion): New function.
19676
19677 2007-02-06 Mark Mitchell <mark@codesourcery.com>
19678
19679 PR target/29487
19680 * tree.h (DECL_REPLACEABLE_P): New macro.
19681 * except.c (set_nothrow_function_flags): Likewise.
19682
19683 2007-02-11 Tehila Meyzels <tehila@il.ibm.com>
19684 Ira Rosen <irar@il.ibm.com>
19685 Dorit Nuzman <dorit@il.ibm.com>
19686
19687 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook.
19688 * targhooks.c (default_builtin_vectorized_conversion): New.
19689 * targhooks.h (default_builtin_vectorized_function): New declaration.
19690 * target.h (struct vectorize): Add builtin_conversion field.
19691 * tree-vectorizer.h (type_conversion_vec_info_type): New enum
19692 stmt_vec_info_type value.
19693 (vectorizable_conversion): New declaration.
19694 * tree-vect-analyze.c (vect_analyze_operations): Add
19695 vectorizable_conversion call.
19696 * target-def.h (TARGET_VECTORIZE_BUILTIN_CONVERSION): New.
19697 * tree-vect-transform.c (vectorizable_conversion): New function.
19698 (vect_transform_stmt): Add case for type_conversion_vec_info_type.
19699 * tree-vect-generic.c (expand_vector_operations_1): Consider correct
19700 mode.
19701 * config/rs6000/rs6000.c (rs6000_builtin_conversion): New.
19702 (TARGET_VECTORIZE_BUILTIN_CONVERSION): Defined.
19703 (rs6000_expand_builtin): Add handling a case of ALTIVEC_BUILTIN_VCFUX
19704 or ALTIVEC_BUILTIN_VCFSX.
19705
19706 2007-02-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19707
19708 PR target/30634
19709 * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
19710 CONST_DOUBLE and operand 0 is a hard register.
19711 (movdi): For 64-bit target, remove code to force CONST_DOUBLE to
19712 memory. Fail if operand 1 is a non-zero CONST_INT and operand 0
19713 is a hard floating-point register.
19714
19715 2007-02-10 Richard Henderson <rth@redhat.com>
19716 Jakub Jelinek <jakub@redhat.com>
19717 Alexandre Oliva <aoliva@redhat.com>
19718
19719 * Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c.
19720 * builtin-types.def (BT_WORD): Make unsigned.
19721 (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
19722 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
19723 (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
19724 * c-decl.c (grokdeclarator): Don't error if !have_tls.
19725 * c-parser.c (c_parser_omp_threadprivate): Likewise.
19726 * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
19727 emulated tls.
19728 * expr.c (emutls_var_address): New.
19729 (expand_expr_real_1): Expand emulated tls.
19730 (expand_expr_addr_expr_1): Likewise.
19731 * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
19732 * output.h (emutls_finish): Declare.
19733 * toplev.c (compile_file): Call it.
19734 * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
19735 address before wrapping in CONST.
19736 * varasm.c (emutls_htab, emutls_object_type): New.
19737 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
19738 (get_emutls_object_name, get_emutls_object_type): New.
19739 (get_emutls_init_templ_addr, emutls_decl): New.
19740 (emutls_common_1, emutls_finish): New.
19741 (assemble_variable): When emulating tls, swap decls; generate
19742 constructor for the emutls objects.
19743 (do_assemble_alias): When emulating tls, swap decl and target name.
19744 (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
19745 for emulated tls.
19746 * varpool.c (decide_is_variable_needed): Look at force_output.
19747 Recurse for emulated tls.
19748 (cgraph_varpool_remove_unreferenced_decls): Remove checks redundant
19749 with decide_is_variable_needed.
19750 * emutls.c: New file.
19751 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
19752 tls_object for real tls.
19753
19754 2007-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
19755
19756 PR rtl-optimization/29599
19757 * reload1.c (eliminate_regs_in_insn): Take the destination
19758 mode into account when computing the offset.
19759
19760 2007-02-09 Stuart Hastings <stuart@apple.com>
19761 Richard Henderson <rth@redhat.com>
19762
19763 * config/i386/i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
19764 * config/i386/darwin.h: (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
19765 * config/i386/i386.md (fixuns_trunc<mode>si2, fixuns_truncsfhi2,
19766 fixuns_truncdfhi2): New.
19767 (fix_truncsfdi_sse): Call ix86_expand_convert_sign_didf_sse.
19768 (floatunsdidf2): Call ix86_expand_convert_uns_didf_sse.
19769 (floatunssisf2): Add call to ix86_expand_convert_uns_sisf_sse.
19770 (floatunssidf2): Allow nonimmediate source.
19771 * config/i386/sse.md (movdi_to_sse): New.
19772 (vec_concatv2di): Drop '*'.
19773 * config/i386/i386-protos.h (ix86_expand_convert_uns_si_sse,
19774 ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
19775 ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse):
19776 New.
19777 * config/i386/i386.c (ix86_expand_convert_uns_si_sse,
19778 ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
19779 ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse,
19780 ix86_build_const_vector, ix86_expand_vector_init_one_nonzero): New.
19781 (ix86_build_signbit_mask): Fix decl of v, refactor to call
19782 ix86_build_const_vector.
19783 (x86_emit_floatuns): Rewrite.
19784
19785 2007-02-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19786
19787 * genautomata.c (longest_path_length): Delete unused function.
19788 (struct state): Delete unused longest_path_length.
19789 (UNDEFINED_LONGEST_PATH_LENGTH): Delete unused macro.
19790 (get_free_state): Delete unused.
19791
19792 2007-02-09 Jan Hubicka <jh@suse.cz>
19793
19794 * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30.
19795 * doc/invoke.texi (inline-unit-growth): Update default value.
19796
19797 * Makefile.in (passes.o, ipa-inline.o): Add dependencies.
19798 * cgraphbuild.c (build_cgraph_edges): Compute frequencies.
19799 (rebuild_cgraph_edges): Likewise.
19800 * cgraph.c (cgraph_set_call_stmt): Add new argument frequency.
19801 (dump_cgraph_node): Dump frequencies.
19802 (cgraph_clone_edge): Add frequency scales.
19803 (cgraph_clone_node): Add freuqnecy.
19804 * cgraph.h (cgraph_edge): Add freuqnecy argument.
19805 (CGRAPH_FREQ_BASE, CGRAPH_FREQ_MAX): New constants.
19806 (cgraph_create_edge, cgraph_clone_edge, cgraph_clone_node): Update.
19807 * tree-pass.h (TODO_rebuild_frequencies): New constant.
19808 * cgraphunit.c (verify_cgraph_node): Verify frequencies.
19809 (cgraph_copy_node_for_versioning): Update call of cgraph_clone_edge.
19810 (save_inline_function_body): Likewise.
19811 * ipa-inline.c: inluce rtl.h
19812 (cgraph_clone_inlined_nods): Update call of cgraph_clone_node.
19813 (cgraph_edge_badness): Use frequencies.
19814 (cgraph_decide_recursive_inlining): Update clonning.
19815 (cgraph_decide_inlining_of_small_function): Dump frequency.
19816 * predict.c (estimate_bb_frequencies): Export.
19817 * predict.h (estimate_bb_frequencies): Declare.
19818 * tree-inline.c (copy_bb): Watch overflows.
19819 (expand_call_inline): Update call of cgraph_create_edge.
19820 (optimize_inline_calls): Use TODO flags to update frequnecies.
19821 * passes.h: Include predict.h
19822 (init_optimization_passes): Move profile ahead.
19823 (execute_function_todo): Handle TODO_rebuild_frequencies.
19824
19825 2007-02-09 Roger Sayle <roger@eyesopen.com>
19826
19827 * config/alpha/alpha.c (emit_insxl): Force the first operand of
19828 the insbl or inswl pattern into a register.
19829
19830 2007-02-09 Roger Sayle <roger@eyesopen.com>
19831
19832 * config/ia64/ia64.md (bswapdi2): New define_insn.
19833
19834 2007-02-09 Richard Henderson <rth@redhat.com>
19835
19836 * config/i386/constraints.md (Ym): New constraint.
19837 * config/i386/i386.md (movsi_1): Change Y2 to Yi constraints.
19838 (movdi_1_rex64): Split sse and xmm general register moves from
19839 memory move alternatives. Use conditional register constraints.
19840 (movsf_1, movdf_integer): Likewise.
19841 (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
19842 (movdf_integer_rex64): New.
19843 (pushsf_rex64): Fix output constraints.
19844 * config/i386/sse.md (sse2_loadld): Split rm alternative, use Yi.
19845 (sse2_stored): Likewise.
19846 (sse2_storeq_rex64): New.
19847 * config/i386/i386.c (x86_inter_unit_moves): Enable for not
19848 amd and not generic.
19849 (ix86_secondary_memory_needed): Don't bypass TARGET_INTER_UNIT_MOVES
19850 for optimize_size. Remove SF/DFmode hack.
19851
19852 2007-02-09 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
19853
19854 * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
19855 (bit_SSE4a): New.
19856
19857 2007-02-09 Nathan Sidwell <nathan@codesourcery.com>
19858 Richard Sandiford <richard@codesourcery.com>
19859
19860 * config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*)
19861 (m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu.
19862 (m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add
19863 m68k/t-mlib to tmake_file.
19864 (m68020-*-elf*, m68k-*-elf*): Likewise. Add t-m68kbare as well.
19865 (m68k*-*-*): Use --with-arch to pick a default for --with-cpu.
19866 (m680[012]0-*-*, m68k*-*-*): Add support for --with-arch.
19867 Allow it to be cf or m68k. Set m68k_arch_family. If that
19868 variable is not empty, add t-$m68k_arch_family to tmake_file.
19869 Add t-mlibs to tmake_file.
19870 * doc/install.texi: Document --with-arch=m68k and --with-arch=cf.
19871 * config/m68k/t-cf: New file.
19872 * config/m68k/t-m68k: Likewise.
19873 * config/m68k/t-mlibs: Likewise.
19874 * config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
19875 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
19876 (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
19877 * config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
19878 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC):
19879 Delete.
19880 * config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete.
19881 (INSTALL_LIBGCC): Delete.
19882 (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
19883 * config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
19884 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
19885 (M68K_MLIB_CPU): Define.
19886 * config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
19887 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
19888 (M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define.
19889
19890 2007-02-09 Zdenek Dvorak <dvorakz@suse.cz>
19891 Richard Guenther <rguenther@suse.de>
19892
19893 PR middle-end/23361
19894 * fold-const.c (fold_comparison): Handle obfuscated comparisons
19895 against INT_MIN/INT_MAX.
19896 * tree-ssa-loop-ivcanon.c (remove_empty_loop): Print to dump
19897 file if a loop is removed.
19898
19899 2007-02-09 Joseph Myers <joseph@codesourcery.com>
19900
19901 * calls.c (store_one_arg): Pass correct alignment to
19902 emit_push_insn for non-BLKmode values.
19903 * expr.c (emit_push_insn): If STRICT_ALIGNMENT, copy to an
19904 unaligned stack slot via a suitably aligned slot.
19905
19906 2007-02-08 DJ Delorie <dj@redhat.com>
19907
19908 * config/m32c/m32c.c (m32c_unpend_compare): Add default to silence
19909 warnings.
19910 (legal_subregs): Use unsigned char, make const.
19911 (m32c_illegal_subreg_p): Use ARRAY_SIZE. Delete unused variables.
19912
19913 2007-02-08 Paul Brook <paul@codesourcery.com>
19914
19915 * config/arm/lib1funcs.asm (RETLDM): Pop directly into PC when no
19916 special interworking needed.
19917
19918 2007-02-08 Harsha Jagasia <harsha.jagasia@amd.com>
19919
19920 * config/i386/xmmintrin.h: Make inclusion of emmintrin.h
19921 conditional to __SSE2__.
19922 (Entries below should have been added to first ChangeLog
19923 entry for amdfam10 dated 2007-02-05)
19924 * config/i386/emmintrin.h: Generate #error if __SSE2__ is not
19925 defined.
19926 * config/i386/pmmintrin.h: Generate #error if __SSE3__ is not
19927 defined.
19928 * config/i386/tmmintrin.h: Generate #error if __SSSE3__ is not
19929 defined.
19930
19931 2007-02-08 DJ Delorie <dj@redhat.com>
19932
19933 * config/m32c/m32c-protos.h (m32c_illegal_subreg_p): New.
19934 * config/m32c/m32c.c (legal_subregs): New.
19935 (m32c_illegal_subreg_p): New.
19936 * config/m32c/predicates.md (m32c_any_operand): Use it to reject
19937 unsupported subregs of hard regs.
19938
19939 2007-02-08 Jan Hubicka <jh@suse.cz>
19940
19941 * tree-cfg.c (bsi_replace): Shortcut when replacing the statement with
19942 the same one; always update histograms.
19943
19944 2007-02-08 Diego Novillo <dnovillo@redhat.com>
19945
19946 * passes.c (init_optimization_passes): Tidy comment.
19947
19948 2007-02-08 Roger Sayle <roger@eyesopen.com>
19949
19950 * simplify-rtx.c (simplify_unary_operation_1) <POPCOUNT>: We can
19951 strip zero_extend, bswap and rotates from POCOUNT's argument.
19952 <PARITY>: Likewise, we can strip not, bswap, sign_extend,
19953 zero_extend and rotates from PARITY's argument.
19954 <BSWAP>: A byte-swap followed by a byte-swap is an identity.
19955 (simplify_const_unary_operation) <BSWAP>: Evaluate the byte-swap
19956 of an integer constant at compile-time.
19957
19958 2007-02-08 Diego Novillo <dnovillo@redhat.com>
19959
19960 PR 30562
19961 * tree-flow.h (struct var_ann_d): Remove field 'is_used'.
19962 Update all users.
19963 * tree-ssa-alias.c (compute_is_aliased): Remove. Update all
19964 users.
19965 (init_alias_info):
19966 * tree-ssa-live.c (remove_unused_locals): Do not remove
19967 TREE_ADDRESSABLE variables.
19968 * tree-ssa-structalias.c (compute_points_to_sets): Tidy.
19969 * tree-ssa-operands.c (add_virtual_operand): Remove argument
19970 FOR_CLOBBER. Update all users.
19971 If VAR has an associated alias set, add a virtual operand for
19972 it if no alias is found to conflict with the memory reference.
19973
19974 2007-02-07 Jan Hubicka <jh@suse.cz>
19975 Robert Kidd <rkidd@crhc.uiuc.edu>
19976
19977 * value-prof.c (visit_hist, free_hist): Return 1 instead of 0.
19978
19979 2007-02-07 Ian Lance Taylor <iant@google.com>
19980
19981 * lower-subreg.c (simple_move): Reject PARTIAL_INT modes.
19982
19983 2007-02-07 Roger Sayle <roger@eyesopen.com>
19984
19985 * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
19986 parity<mode>2, smulsi3_highpart, abstf2_internal, allocate_stack,
19987 tablejumpdi, movsi_to_cr_one): Remove constraints from
19988 define_expand's match_operands.
19989
19990 2007-02-07 Roger Sayle <roger@eyesopen.com>
19991
19992 * global.c (compute_regsets): Move declatation of "i" inside of
19993 #ifdef ELIMINABLE_REGS to avoid unused variable bootstrap failure.
19994
19995 2007-02-07 Jakub Jelinek <jakub@redhat.com>
19996
19997 PR c++/30703
19998 * gimplify.c (gimplify_scan_omp_clauses): Remove special casing
19999 of INDIRECT_REF <RESULT_DECL>.
20000
20001 * config/i386/i386.c (override_options): Set PTA_SSSE3 for core2.
20002
20003 2007-02-06 J"orn Rennecke <joern.rennecke@arc.com>
20004 Kaz Kojima <kkojima@gcc.gnu.org>
20005
20006 PR target/29746
20007 * config/sh/sh.c (expand_cbranchdi4): Use scratch register
20008 properly.
20009 (sh_initialize_trampoline): Add parentheses to avoid a warning.
20010
20011 2007-02-06 Zdenek Dvorak <dvorakz@suse.cz>
20012
20013 * doc/loop.texi: Document possibility not to perform disambiguation
20014 of loops with multiple latches.
20015 * cfgloopmanip.c (alp_enum_p): Removed.
20016 (add_loop): Handle subloops. Use get_loop_body_with_size.
20017 (create_preheader): Do not allow ENTRY_BLOCK_PTR to be preheader.
20018 * cfghooks.c (redirect_edge_and_branch_force): Set dominator for
20019 the new forwarder block.
20020 (make_forwarder_block): Only call new_bb_cbk if it is not NULL.
20021 Handle the case latch is NULL.
20022 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg
20023 modifications when marking loop exits.
20024 * ifcvt.c (if_convert): Ditto. Mark loop exits even if cfg cannot
20025 be modified.
20026 * loop-init.c (loop_optimizer_init): Do not modify cfg. Call
20027 disambiguate_loops_with_multiple_latches.
20028 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Calculate dominators
20029 before fix_loop_structure.
20030 * cfgloop.c: Include pointer-set.h and output.h.
20031 (canonicalize_loop_headers, HEADER_BLOCK, LATCH_EDGE,
20032 update_latch_info, mfb_keep_just, mfb_keep_nonlatch): Removed.
20033 (get_loop_latch_edges, find_subloop_latch_edge_by_profile,
20034 find_subloop_latch_edge_by_ivs, find_subloop_latch_edge,
20035 mfb_redirect_edges_in_set, form_subloop, merge_latch_edges,
20036 disambiguate_multiple_latches, get_loop_body_with_size,
20037 disambiguate_loops_with_multiple_latches): New functions.
20038 (flow_loop_dump): Dump multiple latch edges.
20039 (flow_loop_nodes_find): Handle loops with multiple latches.
20040 (flow_loops_find): Ditto. Do not call canonicalize_loop_headers.
20041 (glb_enum_p): Modified.
20042 (get_loop_body): Use get_loop_body_with_size.
20043 * cfgloop.h (LOOPS_HAVE_RECORDED_EXITS): New flag.
20044 (AVOID_CFG_MODIFICATIONS): New constant.
20045 (disambiguate_loops_with_multiple_latches, add_loop,
20046 get_loop_body_with_size): Declare.
20047 * Makefile.in (cfgloop.o): Add pointer-set.h and output.h.
20048
20049 2007-02-06 Seongbae Park <seongbae.park@gmail.com>
20050
20051 PR inline-asm/28686
20052 * global.c (compute_regsets): New function.
20053 (global_alloc): Refactored ELIMINABLE_REGSET
20054 and NO_GLOBAL_ALLOC_REGS computation out.
20055 (rest_of_handle_global_alloc): Call compute_regsets()
20056 for non-optimizing case.
20057
20058 2007-02-06 Richard Henderson <rth@redhat.com>
20059
20060 * config/i386/constraints.md (Y2): Rename from Y.
20061 (Yi): New constraint.
20062 * config/i386/i386.md (movsi_1, movdi_2, pushdf_nointeger,
20063 pushdf_integer, movdf_nointeger, movdf_integer, zero_extendsidi2_32,
20064 zero_extendsidi2_rex64, truncxfdf2_mixed): Change Y constraints to Y2.
20065 (extendsfdf2_mixed, extendsfdf2_sse, truncdfsf_fast_mixed,
20066 truncdfsf_fast_sse, truncdfsf_mixed, fix_truncdfdi_sse,
20067 fix_truncdfsi_sse, floatsidf2_mixed, floatsidf2_sse,
20068 floatdidf2_mixed, floatdidf2_sse, absnegdf2_mixed,
20069 absnegdf2_sse, sse_setccdf, fop_df_comm_mixed, fop_df_comm_sse,
20070 fop_df_1_mixed, fop_df_1_sse): Change Y constraints to x.
20071 * config/i386/mmx.md (mov<MMXMODEI>_internal_rex64,
20072 mov<MMXMODEI>_internal, movv2sf_internal_rex64, movv2sf_internal,
20073 vec_extractv2si_1): Change Y constraints to Y2.
20074 * config/i386/sse.md (vec_setv4sf_0, vec_concatv2df, vec_dupv4si,
20075 vec_dupv2di, sse2_concatv2si, vec_concatv4si_1, vec_concatv2di):
20076 Change Y constraints to Y2.
20077 (sse2_loadld): Change Y constraints to x.
20078
20079 2007-02-06 Roger Sayle <roger@eyesopen.com>
20080
20081 * config/rs6000/rs6000.md (popcount<mode>2): Rewrite.
20082 (parity<mode>2): New define_expand using rs6000_emit_parity.
20083 * config/rs6000/rs6000.c (rs6000_emit_popcount,
20084 rs6000_emit_parity): New functions.
20085 * config/rs6000/rs6000-protos.h (rs6000_emit_popcount,
20086 rs6000_emit_parity): Prototype here.
20087
20088 2007-02-06 Ian Lance Taylor <iant@google.com>
20089
20090 * lower-subreg.c (simple_move_operand): Reject CONST.
20091 (resolve_clobber): Call validate_change rather than directly
20092 assigning to XEXP (pat, 0).
20093
20094 2006-02-06 Paolo Bonzini <bonzini@gnu.org>
20095
20096 * Makefile.in (tree-ssa-loop-ivopts.o): Add pointer-set.h dependency.
20097 (tree-ssa-reassoc.o): Add pointer-set.h dependency.
20098 (tree-cfg.o): Remove hashtab.h dependency.
20099
20100 * tree-ssa-loop-ivopts.c: Include pointer-set.h.
20101 (struct ivopts_data): Change niters to pointer_map_t.
20102 (struct nfe_cache_elt, nfe_hash, nfe_eq): Delete.
20103 (niter_for_exit): Create pointer_map on demand. Change for
20104 pointer_map API.
20105 (tree_ssa_iv_optimize_init): Initialize data->niters to NULL.
20106 (free_loop_data): Destroy data->niters if created and reset field.
20107 (tree_ssa_iv_optimize_finalize): Don't delete data->niters here.
20108 (tree_ssa_iv_optimize_loop): Check for presence of stale data.
20109
20110 * tree-ssa-reassoc.c: Include pointer-set.h.
20111 (bb_rank): Change to long *.
20112 (operand_rank): Change to pointer_map_t.
20113 (find_operand_rank): Return long, -1 if not found. Declare as inline.
20114 (insert_operand_rank): Accept long.
20115 (operand_entry_hash, operand_entry_eq): Remove.
20116 (get_rank): Return long. Adjust for changes above.
20117 (init_reassoc): Change rank type to long. Adjust creation of bb_rank
20118 and operand_rank.
20119 (fini_reassoc): Delete operand_rank with pointer_map_destroy.
20120
20121 * tree-ssa-structalias.c (vi_for_tree): Change to pointer_map.
20122 (struct tree_vi, tree_vi_t, tree_vi_hash, tree_vi_eq): Delete.
20123 (insert_vi_for_tree): Rewrite for pointer_map API. Assert argument
20124 is not NULL.
20125 (lookup_vi_for_tree): Rewrite for pointer_map API. Return varinfo_t
20126 directly since it cannot be NULL.
20127 (get_vi_for_tree): Rewrite for pointer_map API.
20128 (find_what_p_points_to): Adjust for change to lookup_vi_for_tree.
20129 (init_alias_vars): Create vi_for_tree as pointer_map.
20130 (delete_points_to_sets): Delete vi_for_tree using pointer_map_destroy.
20131
20132 * tree-cfg.c: Don't include hashtab.h.
20133 (edge_to_cases): Declare as pointer_map.
20134 (struct edge_to_cases_elt, edge_to_cases_hash, edge_to_cases_eq):
20135 Delete.
20136 (edge_to_cases_cleanup): Rewrite as pointer_map_traverse callback.
20137 (start_recording_case_labels): Create edge_to_cases as pointer_map.
20138 (end_recoding_case_labels): Cleanup edge_to_cases manually before
20139 destroying it.
20140 (record_switch_edge): Delete.
20141 (get_cases_for_edge): Adjust for pointer_map API, inline
20142 record_switch_edge (rewritten for new API), remove goto.
20143
20144 2006-02-06 Paolo Bonzini <bonzini@gnu.org>
20145
20146 * Makefile.in (tree-nested.o): Add pointer-set.h dependency.
20147 * tree-nested.c: Include pointer-set.h.
20148 (var_map_elt, var_map_eq, var_map_hash): Delete.
20149 (struct nesting_info): Remove GTY marker. Change the two htab_t's
20150 to pointer_map_t's.
20151 (nesting_info_bitmap_obstack): New.
20152 (lookup_field_for_decl): Adjust for pointer_map API.
20153 (lookup_tramp_for_decl): Adjust for pointer_map API.
20154 (get_nonlocal_debug_decl): Adjust for pointer_map API.
20155 (get_local_debug_decl): Adjust for pointer_map API.
20156 (convert_nl_goto_reference): Adjust for pointer_map API.
20157 (convert_nl_goto_receiver): Adjust for pointer_map API.
20158 (create_nesting_tree): Create outside GGC space. Create bitmap on
20159 the new obstack. Create field_map and var_map as pointer_maps.
20160 (free_nesting_tree): Adjust for changes to create_nesting_tree.
20161 (root): Delete.
20162 (lower_nested_functions): Move root here, no need to NULL it.
20163 Initialize and release the obstack.
20164
20165 2007-02-06 Paolo Bonzini <bonzini@gnu.org>
20166
20167 * tree.c (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p):
20168 Remove prototypes and make them non-static.
20169 (struct tree_int_map): Remove.
20170 * tree.h (struct tree_int_map): Move here, turning TO into an
20171 unsigned int.
20172 (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): Declare.
20173
20174 * tree.h (TREE_COMPLEXITY): Remove.
20175 (struct tree_exp): Remove complexity field.
20176 * tree.c (build1_stat): Don't set it.
20177
20178 2007-02-06 Dorit Nuzman <dorit@il.ibm.com>
20179 Victor Kaplansky <victork@il.ibm.com>
20180
20181 * tree-vectorizer.c (vect_is_simple_use): Support induction.
20182 (vect_is_simple_reduction): Support reduction with induction as
20183 one of the operands.
20184 (vect_is_simple_iv_evolution): Fix formatting.
20185 * tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix
20186 formatting. Don't mark induction phis for vectorization.
20187 (vect_analyze_scalar_cycles): Analyze all inductions, then reductions.
20188 * tree-vect-transform.c (get_initial_def_for_induction): New function.
20189 (vect_get_vec_def_for_operand): Support induction.
20190 (vect_get_vec_def_for_stmt_copy): Fix formatting and add check for
20191 induction case.
20192 (vectorizable_reduction): Support reduction with induction as one of
20193 the operands.
20194 (vectorizable_type_demotion): Use def-type of stmt argument rather
20195 than dummy def-type.
20196
20197 * tree-ssa-loop.c (gate_scev_const_prop): Return the value of
20198 flag_tree_scev_cprop.
20199 * common.opt (tree-scev-cprop): New flag.
20200
20201 * tree-vect-transform.c (vect_create_destination_var): Use 'kind' in
20202 call to vect_get_new_vect_var.
20203
20204 2007-02-06 Ira Rosen <irar@il.ibm.com>
20205
20206 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that
20207 vectype is not NULL.
20208 (vect_pattern_recog_1): Likewise.
20209
20210 2007-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20211
20212 * fold-const.c (negate_expr_p): Handle CONJ_EXPR.
20213 (fold_negate_expr): Likewise.
20214
20215 2007-02-05 Alexandre Oliva <aoliva@redhat.com>
20216
20217 PR debug/30189
20218 * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
20219 even if cv-qualification is the same.
20220
20221 2007-02-05 Geoffrey Keating <geoffk@apple.com>
20222
20223 * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
20224 __enable_execute_stack on completion.
20225
20226 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
20227
20228 * config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8,
20229 athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov,
20230 athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul,
20231 athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn,
20232 athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8,
20233 athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load,
20234 athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8,
20235 athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10.
20236
20237 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
20238
20239 * config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse,
20240 cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387,
20241 swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse,
20242 fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse,
20243 x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed,
20244 floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse,
20245 floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1,
20246 mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn,
20247 umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn,
20248 umuldi3_highpart_rex64, umulsi3_highpart_insn,
20249 umulsi3_highpart_zext, smuldi3_highpart_rex64,
20250 smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld,
20251 x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse,
20252 sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387,
20253 sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387,
20254 sqrtextenddfxf2_i387): Added amdfam10_decode.
20255
20256 * config/i386/athlon.md (athlon_idirect_amdfam10,
20257 athlon_ivector_amdfam10, athlon_idirect_load_amdfam10,
20258 athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10,
20259 athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10,
20260 athlon_ivector_store_amdfam10): New define_insn_reservation.
20261 (athlon_idirect_loadmov, athlon_idirect_movstore): Added
20262 amdfam10.
20263
20264 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
20265
20266 * config/i386/athlon.md (athlon_call_amdfam10,
20267 athlon_pop_amdfam10, athlon_lea_amdfam10): New
20268 define_insn_reservation.
20269 (athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8,
20270 athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI,
20271 athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10.
20272
20273 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
20274
20275 * config/i386/athlon.md (athlon_sseld_amdfam10,
20276 athlon_mmxld_amdfam10, athlon_ssest_amdfam10,
20277 athlon_mmxssest_short_amdfam10): New define_insn_reservation.
20278
20279 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
20280
20281 * config/i386/athlon.md (athlon_sseins_amdfam10): New
20282 define_insn_reservation.
20283 * config/i386/i386.md (sseins): Added sseins to define_attr type
20284 and define_attr unit.
20285 * config/i386/sse.md: Set type attribute to sseins for insertq
20286 and insertqi.
20287
20288 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
20289
20290 * config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10,
20291 ssecmpvector_load_amdfam10, ssecmpvector_amdfam10,
20292 ssecomi_load_amdfam10, ssecomi_amdfam10,
20293 sseaddvector_load_amdfam10, sseaddvector_amdfam10): New
20294 define_insn_reservation.
20295 (ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10.
20296
20297 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
20298
20299 * config/i386/athlon.md (cvtss2sd_load_amdfam10,
20300 cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10,
20301 cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10,
20302 cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10,
20303 cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10,
20304 cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New
20305 define_insn_reservation.
20306
20307 * config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si,
20308 cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq,
20309 cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq,
20310 cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd,
20311 cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute.
20312
20313 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
20314
20315 * config/i386/athlon.md (athlon_ssedivvector_amdfam10,
20316 athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10,
20317 athlon_ssemulvector_load_amdfam10): New define_insn_reservation.
20318 (athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul,
20319 athlon_ssemul_load_k8): Added amdfam10.
20320
20321 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
20322
20323 * config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro.
20324 (x86_sse_unaligned_move_optimal): New variable.
20325
20326 * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for
20327 m_AMDFAM10.
20328 (ix86_expand_vector_move_misalign): Add code to generate movupd/movups
20329 for unaligned vector SSE double/single precision loads for AMDFAM10.
20330
20331 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
20332
20333 * config/i386/i386.h (TARGET_AMDFAM10): New macro.
20334 (TARGET_CPU_CPP_BUILTINS): Add code for amdfam10.
20335 Define TARGET_CPU_DEFAULT_amdfam10.
20336 (TARGET_CPU_DEFAULT_NAMES): Add amdfam10.
20337 (processor_type): Add PROCESSOR_AMDFAM10.
20338
20339 * config/i386/i386.md: Add amdfam10 as a new cpu attribute to match
20340 processor_type in config/i386/i386.h.
20341 Enable imul peepholes for TARGET_AMDFAM10.
20342
20343 * config.gcc: Add support for --with-cpu option for amdfam10.
20344
20345 * config/i386/i386.c (amdfam10_cost): New variable.
20346 (m_AMDFAM10): New macro.
20347 (m_ATHLON_K8_AMDFAM10): New macro.
20348 (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
20349 x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop,
20350 x86_promote_QImode, x86_integer_DFmode_moves,
20351 x86_partial_reg_dependency, x86_memory_mismatch_stall,
20352 x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
20353 x86_sse_partial_reg_dependency, x86_sse_typeless_stores,
20354 x86_use_ffreep, x86_use_incdec, x86_four_jump_limit,
20355 x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns):
20356 Enable/disable for amdfam10.
20357 (override_options): Add amdfam10_cost to processor_target_table.
20358 Set up PROCESSOR_AMDFAM10 for amdfam10 entry in
20359 processor_alias_table.
20360 (ix86_issue_rate): Add PROCESSOR_AMDFAM10.
20361 (ix86_adjust_cost): Add code for amdfam10.
20362
20363 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
20364
20365 * config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm)
20366 instruction set feature flag. Add new (-mpopcnt) flag for popcnt
20367 instruction. Add new SSE4A (-msse4a) instruction set feature flag.
20368 * config/i386/i386.h: Add builtin definition for SSE4A.
20369 * config/i386/i386.md: Add support for ABM instructions
20370 (popcnt and lzcnt).
20371 * config/i386/sse.md: Add support for SSE4A instructions
20372 (movntss, movntsd, extrq, insertq).
20373 * config/i386/i386.c: Add support for ABM and SSE4A builtins.
20374 Add -march=amdfam10 flag.
20375 * config/i386/ammintrin.h: Add support for SSE4A intrinsics.
20376 * doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt
20377 and amdfam10.
20378 * doc/extend.texi: Add documentation for SSE4A builtins.
20379
20380 2007-02-05 Bob Wilson <bob.wilson@acm.org>
20381
20382 * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
20383
20384 2007-02-05 Richard Guenther <rguenther@suse.de>
20385
20386 * tree-vectorizer.h (vectorizable_function): Add argument type
20387 argument, change return type.
20388 * tree-vect-patterns.c (vect_recog_pow_pattern): Adjust caller.
20389 * tree-vect-transform.c (vectorizable_function): Handle extra
20390 argument, return vectorized function decl.
20391 (build_vectorized_function_call): Remove.
20392 (vectorizable_call): Handle calls with result and argument types
20393 differing. Handle loop vectorization factor correctly.
20394 * targhooks.c (default_builtin_vectorized_function): Adjust for
20395 extra argument.
20396 * targhooks.h (default_builtin_vectorized_function): Likewise.
20397 * target.h (builtin_vectorized_function): Add argument type
20398 argument.
20399 * config/i386/i386.c (ix86_builtin_vectorized_function): Handle
20400 extra argument, allow vectorizing of lrintf.
20401 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Adjust
20402 documentation of target hook.
20403
20404 2007-02-05 Hans-Peter Nilsson <hp@axis.com>
20405
20406 PR target/30665
20407 * config/cris/cris.md ("*andsi_movu", "*andsi_clear", "*andhi_movu")
20408 ("*andhi_clear", andu (casesi+45)): For size-changed operand where
20409 memory is allowed, require !side_effects_p, not just !MEM_VOLATILE_P.
20410
20411 2007-02-05 Roger Sayle <roger@eyesopen.com>
20412
20413 * fold-const.c (fold_unary) <REAL_PART>: Test for availability of
20414 BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS.
20415 <IMAG_PART>: Likewise, check for availability of BUILT_IN_SIN.
20416 * builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS
20417 before canonicalizing sincos to cexpi.
20418 (fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi.
20419
20420 2007-02-05 Roger Sayle <roger@eyesopen.com>
20421
20422 * config/alpha/alpha.c (alpha_add_builtins): New Helper function.
20423 Set TREE_READONLY and TREE_NOTHROW directly, not via attributes.
20424 (alpha_init_builtins): Use alpha_add_builtins to process tables.
20425
20426 2007-02-05 Roger Sayle <roger@eyesopen.com>
20427
20428 * mips-tfile.c (initialize_init_file): Correct endianness test.
20429
20430 2007-02-05 Kazu Hirata <kazu@codesourcery.com>
20431
20432 * config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use
20433 the 'y' constraint.
20434
20435 2007-02-05 Richard Sandiford <richard@codesourcery.com>
20436
20437 * dwarf2out.c (dwarf2out_frame_debug_expr): Record the register
20438 saves in a PARALLEL before the register assignments.
20439
20440 2007-02-05 Richard Sandiford <richard@codesourcery.com>
20441
20442 * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require
20443 DWARF_FRAME_RETURN_COLUMN to be a general register.
20444 * dwarf2out.c (init_return_column_size): New function, split from...
20445 (expand_builtin_init_dwarf_reg_sizes): ...here. Allow both
20446 DWARF_FRAME_RETURN_COLUMN and DWARF_ALT_FRAME_RETURN_COLUMN
20447 to be nongeneral registers.
20448 * config/m68k/m68k.h (DWARF_FRAME_REGNUM): Only map FP and
20449 integer registers.
20450 (DWARF_FRAME_REGISTERS, DWARF_FRAME_RETURN_COLUMN): Define.
20451 (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
20452
20453 2007-02-04 Zdenek Dvorak <dvorakz@suse.cz>
20454
20455 * cfgcleanup.c (try_optimize_cfg): Avoid removing ENTRY_BLOCK_PTR.
20456
20457 2007-02-04 Zdenek Dvorak <dvorakz@suse.cz>
20458
20459 * cfgloopmanip.c (loop_delete_branch_edge): Removed.
20460 (remove_path): Use can_remove_branch_p and remove_branch instead
20461 of loop_delete_branch_edge.
20462 * tree-ssa-loop-manip.c (scale_dominated_blocks_in_loop): New function.
20463 (tree_transform_and_unroll_loop): Remove dead branches immediately.
20464 Update profile using scale_dominated_blocks_in_loop.
20465 * cfghooks.c (can_remove_branch_p, remove_branch): New functions.
20466 * cfghooks.h (struct cfg_hooks): Add can_remove_branch_p.
20467 (can_remove_branch_p, remove_branch): Declare.
20468 * tree-cfg.c (tree_can_remove_branch_p): New function.
20469 (tree_cfg_hooks): Add tree_can_remove_branch_p.
20470 * cfgrtl.c (rtl_can_remove_branch_p): New function.
20471 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add rtl_can_remove_branch_p.
20472
20473 2007-02-05 Jan Hubicka <jh@suse.cz>
20474
20475 PR middle-end/30696
20476 * ipa-inline.c (cgraph_clone_inlined_nodes): When there are unanalyzed
20477 nodes in cgraph, don't remove offline copy of the function.
20478
20479 2007-02-04 Jan Hubicka <jh@suse.cz>
20480
20481 * tree-sra.c (sra_walk_expr): Add linebreaks. BITFIELD_REFs into
20482 vectors might cause maybe_lookup_element_for_expr to be called
20483 on non-sra-candidate.
20484
20485 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
20486
20487 * config/bfin/bfin-modes.def, config/bfin/bfin.c,
20488 config/bfin/bfin.md, config/bfin/predicates.md: Follow
20489 spelling conventions.
20490
20491 2007-02-04 Richard Guenther <rguenther@suse.de>
20492
20493 PR middle-end/30636
20494 * fold-const.c (try_move_mult_to_index): Make sure to not
20495 overflow one dimension of a multi-dimensional array access.
20496
20497 2007-02-04 Jan Hubicka <jh@suse.cz>
20498
20499 * passes.c (init_optimization_passes): Reindent.
20500
20501 2007-02-04 Jan Hubicka <jh@suse.cz>
20502 Eric Botcazou <ebotcazou@adacore.com>
20503
20504 * tree-optimize.c (has_abnormal_outgoing_edge_p): Move to...
20505 (execute_fixup_cfg): Break out the abnormal goto code.
20506 * tree-inline.c (has_abnormal_outgoing_edge_p): ...here.
20507 (make_nonlocal_label_edges): Move here from execute_fixup_cfg.
20508 (optimize_inline_calls): Call make_nonlocal_label_edges.
20509
20510 2007-02-04 Jan Hubicka <jh@suse.cz>
20511
20512 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Return
20513 true when something was changed.
20514 (rename_ssa_copies): When something was changed, do
20515 TODO_remove_unused_locals.
20516 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
20517 add TODO_remove_unused_locals when instruction was removed.
20518
20519 2007-02-04 Jan Hubicka <jh@suse.cz>
20520
20521 * ipa-inline.c (try_inline): Improve debug output; work on already
20522 inline edges too.
20523 (cgraph_decide_inlining_incrementally): Indent; improve debug output;
20524 call try_inline for already inlined edges too when flattening;
20525 inline also functions that make callee growth but overall unit size
20526 reduce.
20527
20528 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
20529
20530 * config/m32c/bitops.md, config/m32c/jump.md,
20531 config/m32c/m32c.c, config/m32c/m32c.h, config/m32r/m32r.c,
20532 config/m32r/m32r.h, config/m32r/m32r.md,
20533 config/m32r/predicates.md, config/m68hc11/larith.asm,
20534 config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
20535 config/m68k/m68k.h, config/mcore/mcore.md, config/mips/4k.md,
20536 config/mips/mips-protos.h, config/mips/mips.c,
20537 config/mips/mips.h, config/mips/mips.md, config/mips/mips16.S,
20538 config/mn10300/mn10300.h, config/mn10300/predicates.md,
20539 config/mt/mt.c, config/mt/mt.h, config/mt/mt.md: Follow
20540 spelling conventions.
20541
20542 * config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
20543 Follow spelling conventions.
20544
20545 2007-02-03 Douglas Gregor <doug.gregor@gmail.com>
20546
20547 * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't
20548 warn about C++0x compatibility.
20549
20550 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
20551
20552 * config/h8300/h8300.c, config/h8300/h8300.h,
20553 config/h8300/h8300.md: Follow spelling conventions.
20554
20555 2007-02-03 Uros Bizjak <ubizjak@gmail.com>
20556
20557 PR middle-end/30667
20558 * combine.c (try_combine): Do not substitute source operand
20559 with constants wider than 2 * HOST_BITS_PER_WIDE_INT.
20560
20561 2007-02-03 Jan Hubicka <jh@suse.cz>
20562
20563 PR gcov-profile/30650
20564 * value-prof.c (stringop_block_profile): Fix handling of size counter;
20565 do not divide by zero for never executed counters.
20566 (tree_find_values_to_profile): Fix counters.
20567 * gcov-ui.h (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): Fix comments.
20568
20569 2007-02-03 Ian Lance Taylor <iant@google.com>
20570
20571 * lower-subreg.c (simple_move_operand): New static function,
20572 broken out of simple_move. Reject LABEL_REF, SYMBOL_REF, and HIGH
20573 operands.
20574 (simple_move): Call simple_move_operand.
20575 (find_decomposable_subregs): Add special handling of MEMs.
20576 (can_decompose_p): Rename from cannot_decompose_p. Reverse
20577 meaning of return value. If we see a hard register, test whether
20578 it can store a word_mode value. Change all callers.
20579
20580 2007-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20581
20582 * pa.md (addvdi3, addvsi3, subvdi3, subvsi3, negvdi2, negvsi2): New
20583 ftrapv insns and expanders.
20584 (subdi3): Change define_expand operand 1 to arith11_operand, and
20585 operand 2 to reg_or_0_operand. Change constraints of 64-bit insn
20586 pattern to handle reg_or_0 operands. Revise 32-bit insn pattern to
20587 handle 11-bit constants and reg_or_0 operands in operands 1 and 2,
20588 respectively.
20589
20590 PR middle-end/30174
20591 * varasm.c (notice_global_symbol): Treat global objects as weak when
20592 flag_shlib is true.
20593
20594 2007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20595
20596 * emit-rtl.c (dconstpi): Delete.
20597 (dconstsqrt2): New.
20598 (init_emit_once): Delete dconstpi and init dconstsqrt2.
20599 * real.h (dconstpi): Delete.
20600 (dconstsqrt2): New.
20601 * builtins.c (fold_builtin_cabs): Use dconstsqrt2.
20602 (fold_builtin_hypot): Likewise.
20603
20604 2007-02-03 Tom Tromey <tromey@redhat.com>
20605
20606 PR driver/30246
20607 * gcc.c (cpp_unique_options): Any of -ggdb3, -gstabs3,
20608 -gcoff3, -gxcoff3, -gvms3 implies -dD.
20609
20610 2007-02-03 Kazu Hirata <kazu@codesourcery.com>
20611
20612 * c-decl.c, config/avr/avr.c, config/avr/avr.h,
20613 config/m68k/m68k.c, config/m68k/netbsd-elf.h,
20614 config/mn10300/mn10300.c, config/pdp11/pdp11.h,
20615 config/rs6000/cell.md, config/rs6000/darwin.h,
20616 config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c,
20617 config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h,
20618 jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c,
20619 tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment
20620 typos. Follow spelling conventions.
20621 * doc/invoke.texi: Follow spelling conventions.
20622
20623 2007-02-03 Roger Sayle <roger@eyesopen.com>
20624
20625 * simplify-rtx.c (simplify_relational_operation_1): Implement some
20626 canonicalization transformations that attempt to simplify integer
20627 constant comparisons to become comparisons against zero.
20628
20629 2007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20630
20631 * builtins.c (fold_builtin_cabs): Fold cabs(x+xi) into
20632 fabs(x)*sqrt(2).
20633 * fold-const.c (fold_binary): Fix comment typos. Fold complex
20634 (x,0)-(0,y) into (x,-y). Likewise (0,y)-(x,0) into (-x,y).
20635
20636 2007-02-02 Mike Stump <mrs@apple.com>
20637
20638 * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Add.
20639 * config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add.
20640 (output_call): Use DARWIN_GENERATE_ISLANDS to decide when to
20641 generate a branch island.
20642
20643 2007-02-02 Bob Wilson <bob.wilson@acm.org>
20644
20645 * config/xtensa/xtensa.c (smalloffset_mem_p): Use BASE_REG_P.
20646 (xtensa_legitimate_address_p): New.
20647 (xtensa_legitimize_address): New.
20648 (xtensa_output_addr_const_extra): New.
20649 * config/xtensa/xtensa.h (REG_OK_STRICT_FLAG): Define.
20650 (BASE_REG_P): New.
20651 (REG_OK_FOR_BASE_P): Use BASE_REG_P.
20652 (GO_IF_LEGITIMATE_ADDRESS): Move code to xtensa_legitimate_address_p.
20653 (LEGITIMIZE_ADDRESS): Move code to xtensa_legitimize_address.
20654 (OUTPUT_ADDR_CONST_EXTRA): Move code to xtensa_output_addr_const_extra.
20655 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): New.
20656 (xtensa_legitimize_address): New.
20657 (xtensa_output_addr_const_extra): New.
20658
20659 2007-02-02 Steve Ellcey <sje@cup.hp.com>
20660
20661 * config/ia64/ia64.c (ia64_print_operand): Fix compare strings.
20662
20663 2007-02-02 Ian Lance Taylor <iant@google.com>
20664
20665 * expmed.c (expand_divmod): Add comment.
20666
20667 2007-02-02 Kazu Hirata <kazu@codesourcery.com>
20668
20669 * emit-rtl.c (renumber_insns): Remove.
20670 * flags.h: Remove the extern for flag_renumber_insns.
20671 * rtl.h: Remove the prototype for renumber_insns.
20672 * toplev.c (flag_renumber_insns): Remove.
20673
20674 2007-02-02 Hui-May Chang <hm.chang@apple.com>
20675
20676 Revert for x86 darwin:
20677 2005-06-19 Uros Bizjak <uros@kss-loka.si>
20678
20679 * config/i386/i386.c (ix86_function_arg_regno_p): Put back the
20680 code before the following patch under TARGET_MACHO.
20681 (ix86_function_value_regno_p): Likewise.
20682
20683 2007-02-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20684
20685 * fold-const.c (negate_expr_p, fold_negate_expr): Handle
20686 COMPLEX_EXPR.
20687
20688 2007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
20689
20690 PR target/29682
20691 * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory
20692 loads to general or fp registers. Add comments.
20693 * config/ia64/ia64.md (reg_pred_prefix): Add comment.
20694
20695 2007-02-02 Paolo Bonzini <bonzini@gnu.org>
20696
20697 * pointer-set.c (insert_aux): Only return insertion slot.
20698 (pointer_set_insert): Adjust.
20699 (pointer_set_traverse, struct pointer_map_t, pointer_map_create,
20700 pointer_map_destroy, pointer_map_insert, pointer_map_contains,
20701 pointer_map_traverse): New.
20702 * pointer-set.h (pointer_set_traverse, struct pointer_map_t,
20703 pointer_map_create, pointer_map_destroy, pointer_map_insert,
20704 pointer_map_contains, pointer_map_traverse): Declare.
20705
20706 2007-02-02 Jakub Jelinek <jakub@redhat.com>
20707
20708 PR middle-end/30473
20709 * builtins.c (fold_builtin_sprintf): Do not attempt to optimize
20710 sprintf (str, "%s"). Do not optimize sprintf (str, "nopercent", p++).
20711
20712 2007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
20713
20714 * sched-int.h (ds_to_dk, dk_to_ds): Declare functions.
20715
20716 (struct _dep): New type.
20717 (dep_t): New typedef.
20718 (DEP_PRO, DEP_CON, DEP_KIND): New access macros.
20719 (DEP_STATUS): New access macro. The macro with the same name was
20720 renamed to DEP_LINK_STATUS.
20721 (dep_init): Declare function
20722
20723 (struct _dep_link): New type.
20724 (dep_link_t): New typedef.
20725 (DEP_LINK_NODE, DEP_LINK_NEXT, DEP_LINK_PREV_NEXTP): New access macros.
20726 (DEP_LINK_DEP, DEP_LINK_PRO, DEP_LINK_CON, DEP_LINK_KIND): New macros.
20727 (DEP_LINK_STATUS): New macro.
20728 (debug_dep_links): New debug function.
20729
20730 (struct _deps_list): New type.
20731 (deps_list_t): New typedef.
20732 (DEPS_LIST_FIRST): New access macro.
20733 (FOR_EACH_DEP_LINK): New cycle macro.
20734 (create_deps_list, free_deps_list, delete_deps_list): Declare
20735 functions.
20736 (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
20737 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
20738 (copy_deps_list_change_con): Ditto.
20739
20740 (move_dep_link): Declare function.
20741
20742 (struct _dep_node): New type.
20743 (dep_node_t): New typedef.
20744 (DEP_NODE_BACK, DEP_NODE_DEP, DEP_NODE_FORW): New access macros.
20745
20746 (struct haifa_insn_data.back_deps): New field to hold backward
20747 dependencies of the insn.
20748 (struct haifa_insn_data.depend): Rename to forw_deps. Change its type
20749 to deps_list_t.
20750 (struct haifa_insn_data.resolved_deps): Rename to resolved_back_deps.
20751 Change its type to deps_list_t.
20752 (INSN_BACK_DEPS): New access macro to use instead of LOG_LINKS.
20753 (INSN_DEPEND): Rename to INSN_FORW_DEPS.
20754 (RESOLVED_DEPS): Rename to INSN_RESOLVED_BACK_DEPS.
20755
20756 (INSN_COST): Move to haifa-sched.c. Use insn_cost () instead.
20757
20758 (DEP_STATUS): Rename to DEP_LINK_STATUS. Fix typo in the comment.
20759
20760 (add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration
20761 and all callers.
20762 (dep_cost): Declare.
20763
20764 * sched-deps.c (CHECK): New macro to (en/dis)able sanity checks.
20765 (ds_to_dk, dk_to_ds): New functions.
20766
20767 (init_dep_1): New static function.
20768 (init_dep): New function.
20769 (copy_dep): New static function.
20770
20771 (dep_link_consistent_p, attach_dep_link, add_to_deps_list): New static
20772 functions.
20773 (detach_dep_link): New static function.
20774 (move_dep_link): New function.
20775
20776 (dep_links_consistent_p, dump_dep_links): New static functions.
20777 (debug_dep_links): New debugging function.
20778
20779 (deps_obstack, dl_obstack, dn_obstack): New static variables.
20780
20781 (alloc_deps_list, init_deps_list): New static functions.
20782 (create_deps_list): New function.
20783 (clear_deps_list): New static function.
20784 (free_deps_list, delete_deps_list, deps_list_empty_p): New functions.
20785 (deps_list_consistent_p, dump_deps_list): New static functions.
20786 (debug_deps_list): New function.
20787 (add_back_dep_to_deps_list, find_link_by_pro_in_deps_list): New
20788 functions.
20789 (find_link_by_con_in_deps_list, copy_deps_list_change_con): Ditto.
20790
20791 (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Update to
20792 use new scheduler dependencies lists.
20793 (add_back_dep, delete_all_dependences, fixup_sched_groups): Ditto.
20794 (sched_analyze): Ditto. Initialize dependencies lists.
20795 (add_forw_dep, compute_forward_dependences): Update to use new
20796 scheduler dependencies lists.
20797
20798 (init_dependency_caches): Init deps_obstack.
20799 (free_dependency_caches): Free deps_obstack.
20800
20801 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Update to use
20802 new scheduler dependencies lists.
20803 (delete_forw_dep, add_or_update_back_forw_dep): Ditto.
20804 (add_back_forw_dep, delete_back_forw_dep): Ditto.
20805
20806 * sched-rgn.c (set_spec_fed, find_conditional_protection, is_pfree):
20807 Update to use new scheduler dependencies lists.
20808 (is_conditionally_protected, is_prisky, add_branch_dependences): Ditto.
20809 (debug_dependencies): Ditto.
20810 (schedule_region): Update comments.
20811
20812 * sched-ebb.c (earliest_block_with_similiar_load): Update to use new
20813 scheduler dependencies lists.
20814 (schedule_ebb): Update comments.
20815
20816 * rtl.def (DEPS_LIST): Remove.
20817
20818 * lists.c (unused_deps_list): Remove.
20819 (free_list): Update assertions.
20820
20821 (alloc_DEPS_LIST, free_DEPS_LIST_list, free_DEPS_LIST_node): Remove.
20822 (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
20823
20824 * rtl.h (free_DEPS_LIST_list, alloc_DEPS_LIST): Remove declarations.
20825 (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
20826
20827 * haifa-sched.c (comments): Update.
20828 (insn_cost1): Remove. Inline the code into insn_cost ().
20829 (insn_cost): Update to use new scheduler dependencies lists. Move
20830 processing of the dependency cost to dep_cost ().
20831 (dep_cost): New function. Use it instead of insn_cost () when
20832 evaluating cost of the dependency. Use compatible interface to
20833 interact with the target.
20834 (priority): Update to use new scheduler dependencies lists.
20835 (rank_for_schedule): Ditto. Optimize heuristic that prefers the insn
20836 with greater number of insns that depend on the insn.
20837 (schedule_insn): Update to use new scheduler dependencies lists. Add
20838 code to free backward dependencies lists. Inline and optimize code
20839 from resolve_dep () - see PR28071.
20840 (ok_for_early_queue_removal): Update to use new scheduler dependencies
20841 lists. Update call to targetm.sched.is_costly_dependence hook.
20842
20843 (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
20844 scheduler dependencies lists.
20845
20846 (resolve_dep): Remove. Move the logic to schedule_insn ().
20847 (init_h_i_d): Initialize dependencies lists.
20848
20849 (process_insn_depend_be_in_spec): Rename to
20850 process_insn_forw_deps_be_in_spec. Update to use new scheduler
20851 dependencies lists.
20852 (add_to_speculative_block, create_check_block_twin, fix_recovery_deps):
20853 Update to use new scheduler dependencies lists.
20854 (clear_priorities, calc_priorities, add_jump_dependencies): Ditto.
20855
20856 * ddg.c (create_ddg_dependence, create_ddg_dep_no_link): Update to use
20857 new scheduler dependencies lists.
20858 (build_intra_loop_deps): Ditto.
20859
20860 * target.h (struct _dep): Declare to use in
20861 gcc_target.sched.is_costly_dependence.
20862 (struct gcc_target.sched.adjust_cost): Fix typo.
20863 (struct gcc_target.sched.is_costly_dependence): Change signature to
20864 use single dep_t parameter instead of an equivalent triad.
20865 (struct gcc_target.sched.adjust_cost_2): Remove.
20866
20867 * target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove.
20868
20869 * reg-notes.def (DEP_TRUE, DEP_OUTPUT, DEP_ANTI): Update comments.
20870
20871 * doc/tm.texi (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Update
20872 documentation.
20873 (TARGET_SCHED_ADJUST_COST_2): Remove documentation.
20874
20875 * doc/rtl.texi (LOG_LINKS): Remove part about instruction scheduler.
20876 (REG_DEP_TRUE): Document.
20877
20878 * config/ia64/ia64.c (ia64_adjust_cost_2): Rename to ia64_adjust_cost.
20879 Change signature to correspond to the targetm.sched.adjust_cost hook.
20880 Update use in TARGET_SCHED_ADJUST_COST_2.
20881 (TARGET_SCHED_ADJUST_COST_2): Rename to TARGET_SCHED_ADJUST_COST.
20882 (ia64_dependencies_evaluation_hook, ia64_dfa_new_cycle): Update to use
20883 new scheduler dependencies lists.
20884 (ia64_gen_check): Ditto.
20885
20886 * config/mips/mips.c (vr4130_swap_insns_p): Update to use new
20887 scheduler dependencies lists.
20888
20889 * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change
20890 signature to correspond to the targetm.sched.is_costly_dependence hook.
20891 (is_costly_group): Update to use new scheduler dependencies lists.
20892
20893 * config/spu/spu.c (spu_sched_adjust_cost): Use insn_cost () function
20894 instead of INSN_COST () macro.
20895
20896 2007-02-01 Ian Lance Taylor <iant@google.com>
20897
20898 * lower-subreg.c (resolve_clobber): Handle a subreg of a concatn.
20899
20900 2007-02-01 Guy Martin <gmsoft@gentoo.org>
20901
20902 * pa.md (tp_load): Correct mfctl instruction syntax.
20903
20904 2007-02-01 Geoffrey Keating <geoffk@apple.com>
20905
20906 * config/rs6000/rs6000.c (rs6000_stack_info): Correct
20907 altivec_padding_size calculation on AIX. Improve comment, add
20908 assert to verify that it's right.
20909
20910 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for
20911 64-bit.
20912
20913 2007-2-01 Seongbae Park <seongbae.park@gmail.com>
20914
20915 PR inline-asm/28686
20916 * global.c (global_alloc): Add mising initialization of
20917 ELIMINABLE_REGSET.
20918
20919 2007-02-01 Roger Sayle <roger@eyesopen.com>
20920
20921 * alias.c (init_alias_analysis): Correct whitespace.
20922 * bb-reorder.c (fix_edges_for_rarely_executed_code,
20923 partition_hot_cold_basic_blocks): Likewise.
20924 * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
20925 expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf,
20926 maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
20927 fold_builtin_snprintf_chk, fold_builtin_printf,
20928 fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2,
20929 do_mpfr_arg3, do_mpfr_sincos): Likewise.
20930 * cfgcleanup.c (cleanup_cfg): Likewise.
20931 * cfgexpand.c (tree_expand_cfg): Likewise.
20932 * fold-const.c (fold_binary) <RDIV_EXPR>: Likewise.
20933 * function.c (get_next_funcdef_no): Likewise.
20934 * gengtype.c (main): Likewise.
20935 * genmodes.c (main): Likewise.
20936 * gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise.
20937 * haifa-sched.c (schedule_block, extend_h_i_d): Likewise.
20938 * ifcvt.c (noce_emit_move_insn): Likewise.
20939 * modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order):
20940 Likewise.
20941 * stor-layout.c (get_best_mode): Likewise.
20942 * tree-ssa-loop-niter.c (get_val_for): Likewise.
20943 * tree-ssa-structalias.c (get_varinfo, get_varinfo_fc,
20944 scc_visit, do_ds_constraint, do_complex_constraint, label_visit,
20945 perform_var_substitution, solve_graph): Likewise.
20946 * tree-vrp.c (vrp_finalize): Likewise.
20947
20948 2007-02-01 Ian Lance Taylor <iant@google.com>
20949
20950 * lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the
20951 high part of a paradoxical subreg, return a constant zero.
20952
20953 2007-02-01 Zdenek Dvorak <dvorakz@suse.cz>
20954
20955 * toplev.c (lang_dependent_init): Call init_set_costs.
20956 * loop-init.c (loop_optimizer_init): Do not call init_set_costs.
20957
20958 2007-02-01 Richard Guenther <rguenther@suse.de>
20959
20960 PR middle-end/30656
20961 * fold-const.c (fold_negate_expr): Allow negating a
20962 constant if overflow does not change.
20963
20964 2007-02-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20965
20966 * doc/c-tree.texi (Expression trees): Improve markup.
20967 * doc/tm.texi (Register Classes, Addressing Modes)
20968 (Floating Point): Fix spacing after abbreviations. Fix some
20969 typos.
20970
20971 2007-02-01 Ben Elliston <bje@au.ibm.com>
20972
20973 * doc/invoke.texi: Replace "bugfix" with "bug fix" throughout.
20974 * doc/contrib.texi: Likewise.
20975 * doc/install.texi: Likewise.
20976
20977 2007-01-31 Richard Henderson <rth@redhat.com>
20978 Ian Lance Taylor <iant@google.com>
20979
20980 * lower-subreg.c: New file.
20981 * rtl.def (CONCATN): Define.
20982 * passes.c (init_optimization_passes): Add pass_lower_subreg and
20983 pass_lower_subreg2.
20984 * emit-rtl.c (update_reg_offset): New static function, broken out
20985 of gen_rtx_REG_offset.
20986 (gen_rtx_REG_offset): Call update_reg_offset.
20987 (gen_reg_rtx_offset): New function.
20988 * regclass.c: Revert patch of 2006-03-05, restoring
20989 reg_scan_update.
20990 (clear_reg_info_regno): New function.
20991 * dwarf2out.c (concatn_loc_descriptor): New static function.
20992 (loc_descriptor): Handle CONCATN.
20993 * common.opt (fsplit_wide_types): New option.
20994 * opts.c (decode_options): Set flag_split_wide_types when
20995 optimizing.
20996 * timevar.def (TV_LOWER_SUBREG): Define.
20997 * rtl.h (gen_reg_rtx_offset): Declare.
20998 (reg_scan_update): Declare.
20999 * regs.h (clear_reg_info_regno): Declare.
21000 * tree-pass.h (pass_lower_subreg): Declare.
21001 (pass_lower_subreg2): Declare.
21002 * doc/invoke.texi (Option Summary): List -fno-split-wide-types.
21003 (Optimize Options): Add -fsplit-wide-types to -O1 list. Document
21004 -fsplit-wide-types.
21005 * doc/rtl.texi (Regs and Memory): Document concat and concatn.
21006 * Makefile.in (OBJS-common): Add lower-subreg.o.
21007 (lower-subreg.o): New target.
21008
21009 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
21010
21011 * config/sh/sh.h (HAVE_SECONDARY_RELOADS): Remove.
21012
21013 2007-01-31 Anatoly Sokolov <aesok@post.ru>
21014
21015 PR target/19087
21016 * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
21017
21018 2007-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21019
21020 PR middle-end/29335
21021 * builtins.c (fold_builtin_sqrt): Use MPFR for constant args.
21022
21023 2007-01-31 Zdenek Dvorak <dvorakz@suse.cz>
21024
21025 * cfgloop.h: Include vec-prim.h.
21026 (enum li_flags): Remove LI_ONLY_OLD.
21027 (loop_iterator): Changed.
21028 (fel_next, fel_init): Iterate over loop tree.
21029 (FOR_EACH_LOOP_BREAK): New macro.
21030 * loop-unswitch.c (unswitch_loops): Do not pass LI_ONLY_OLD to
21031 FOR_EACH_LOOP.
21032 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Ditto.
21033 * modulo-sched.c (sms_schedule): Ditto.
21034 * tree-vectorizer.c (vectorize_loops): Ditto.
21035 * doc/loop.texi: Update information on loop numbering and behavior of
21036 FOR_EACH_LOOP wrto new loops.
21037 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
21038 add_to_evolution_1): Test nestedness of loops instead of comparing
21039 their numbers.
21040 * tree-chrec.c (chrec_fold_plus_poly_poly,
21041 chrec_fold_multiply_poly_poly, chrec_evaluate,
21042 hide_evolution_in_other_loops_than_loop, chrec_component_in_loop_num,
21043 reset_evolution_in_loop): Ditto.
21044 * Makefile.in (CFGLOOP_H): Add vecprim.h dependency.
21045
21046 2007-01-31 Dirk Mueller <dmueller@suse.de>
21047
21048 * c-common.c (warn_about_parentheses): Separate warning about
21049 un-parenthized sequence of comparison operators from the one
21050 which is supposed to warn about x <= y <= z.
21051
21052 2007-01-31 Uros Bizjak <ubizjak@gmail.com>
21053
21054 * optabs.h (enum optab_index): Add new OTI_isinf.
21055 (isinf_optab): Define corresponding macro.
21056 * optabs.c (init_optabs): Initialize isinf_optab.
21057 * genopinit.c (optabs): Implement isinf_optab using isinf?f2
21058 patterns.
21059 * builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}.
21060 (expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L}
21061 using isinf_optab.
21062 (expand_builtin): Expand BUILT_IN_ISINF{,F,L} using
21063 expand_builtin_interclass_mathfn.
21064 * reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM.
21065 * config/i386/i386.md (UNSPEC_FXAM): New constant.
21066 (fxam<mode>2_i387): New insn pattern.
21067 (isinf<mode>2) New expander to implement isinf, isinff and isinfl
21068 built-in functions as x87 inline asm.
21069
21070 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
21071
21072 * config/arm/unwind-arm.h (_sleb128_t, _uleb128_t): New.
21073
21074 2007-01-30 Eric Christopher <echristo@apple.com>
21075
21076 * config.gcc: Add geode.
21077
21078 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
21079
21080 * cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c,
21081 ipa-inline.c, tree-profile.c, tree-ssa-live.c,
21082 tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c,
21083 value-prof.c: Fix comment typos.
21084
21085 2007-01-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
21086
21087 PR c++/24745
21088 * doc/invoke.texi (Wpointer-arith): Document warning.
21089
21090 2007-01-30 Janis Johnson <janis187@us.ibm.com>
21091
21092 * doc/extend.texi (Decimal Floating Types): Remove decfloat.h from
21093 the list of discrepancies from the draft TR.
21094
21095 2007-01-30 Dirk Mueller <dmueller@suse.de>
21096
21097 PR c++/30601
21098 * doc/invoke.texi (-Wreturn-type): Update description to
21099 match new behavior.
21100
21101 2007-01-30 Richard Sandiford <richard@codesourcery.com>
21102
21103 * cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.
21104
21105 2007-01-30 Uros Bizjak <ubizjak@gmail.com>
21106
21107 * builtins.c (expand_builtin_int_interclass_roundingfn): New function
21108 to handle optabs that operate on floating point input argument and
21109 output to integer output.
21110 (expand_builtin_mathfn) [BUILT_IN_ILOGB]: Move from here ...
21111 (expand_builtin_interclass_mathfn) [BUILT_IN_ILOGB]: ... to here.
21112 (expand_builtin): Expand BUILT_IN_ILOGB{,F,L} using
21113 expand_builtin_interclass_mathfn ().
21114 * config/i386/i386.md (fxtractxf3_i387): Rename from *fxtractxf3_i387.
21115 (ilogbsi2): Remove.
21116 (ilogbxf2, ilogb<mode>2): New expanders to implement ilogb, ilogbf and
21117 ilogbl built-in functions as x87 intrinsics.
21118
21119 2007-01-30 Richard Guenther <rguenther@suse.de>
21120
21121 PR middle-end/27657
21122 * dwarf2out.c (reference_to_unused): Query varpool if the
21123 variable was output.
21124
21125 2007-01-30 Richard Guenther <rguenther@suse.de>
21126
21127 PR middle-end/30313
21128 * passes.c (execute_one_pass): Reset in_gimple_form to not
21129 confuse non-unit-at-a-time mode.
21130
21131 2007-01-29 Roger Sayle <roger@eyesopen.com>
21132 Richard Guenther <rguenther@suse.de>
21133
21134 * fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to
21135 avoid undefined behaviour on overflow. Use force_fit_type_double
21136 to construct the constant with the specified TREE_OVERFLOW.
21137
21138 2007-01-29 Janis Johnson <janis187@us.ibm.com>
21139
21140 * config/dfp-bit.c: Add parameterized support for fp exceptions.
21141 * config/dfp-bit.h: Ditto.
21142
21143 2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
21144
21145 * c-decl.c (pop_scope): Replace warnings with call to
21146 warn_for_unused_label.
21147 * c-common.h (warn_for_unused_label): Declare.
21148 * c-common.c (warn_for_unused_label): Define.
21149
21150 2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
21151
21152 * tree-optimize.c (update_inlined_to_pointers): Delete unused
21153 function.
21154
21155 2007-01-29 Janis Johnson <janis187@us.ibm.com>
21156
21157 * Makefile.in (USER_H): Remove decfloat.h.
21158 * ginclude/decfloat.h: Delete, moving contents to ...
21159 * ginclude/float.h: Add support for decimal floating point,
21160 guarded by __STDC_WANT_DEC_FP__.
21161
21162 2007-01-29 Mike Stump <mrs@apple.com>
21163
21164 * doc/gccint.texi (Top): Rename Loop Representation to Loop
21165 Analysis and Representation to resolve case insensitive conflict.
21166 * doc/loop.texi (Loop Analysis and Representation): Likewise.
21167
21168 2007-01-28 Daniel Berlin <dberlin@dberlin.org>
21169
21170 * tree.h (struct tree_memory_tag): Add aliases member.
21171 (MTAG_ALIASES): New macro.
21172 * tree-ssa-alias.c (alias_bitmap_obstack): New variable.
21173 (add_may_alias): Remove pointer-set. Update for may_aliases being
21174 a bitmap.
21175 (mark_aliases_call_clobbered): Update for may_aliases being a
21176 bitmap.
21177 (compute_tag_properties): Ditto.
21178 (create_partition_for): Ditto.
21179 (compute_memory_partitions): Ditto.
21180 (dump_may_aliases_for): Ditto.
21181 (is_aliased_with): Ditto.
21182 (add_may_alias_for_new_tag): Ditto.
21183 (rewrite_alias_set_for): Rewrite for may_aliases being a bitmap.
21184 (compute_is_aliased): New function.
21185 (compute_may_aliases): Call compute_is_aliased).
21186 (init_alias_info): Initialize alias_bitmap_obstack.
21187 (union_alias_set_into): New function.
21188 (compute_flow_sensitive_aliasing): Use union_aliases_into.
21189 (have_common_aliases_p): Rewrite to take two bitmaps and use
21190 intersection.
21191 (compute_flow_insensitive_aliasing): Stop using pointer-sets.
21192 Update for bitmaps.
21193 (finalize_ref_all_pointers): Update for add_may_alias changes.
21194 (new_type_alias): Ditto.
21195 * tree-flow-inline.h (may_aliases): Return a bitmap.
21196 * tree-dfa.c (dump_variable): Check for MTAG_P'ness.
21197 * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
21198 may_aliases being a bitmap.
21199 * tree-flow.h (struct var_ann_d): Remove may_aliases member.
21200 may_aliases now returns a bitmap.
21201 * tree-ssa-structalias.c (merge_smts_into): Update for may_aliases
21202 being a bitmap.
21203 * tree-ssa-operands.c (add_virtual_operand): Update for
21204 may_aliases being a bitmap.
21205
21206 2007-01-29 Daniel Berlin <dberlin@dberlin.org>
21207
21208 PR tree-optimization/30630
21209 * tree-ssa-structalias.c (do_complex_constraint): Mark correct
21210 variable as changed.
21211
21212 2007-01-29 Simon Martin <simartin@users.sourceforge.net>
21213
21214 PR c++/28266
21215 * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
21216 expanded only once even if an error occurs.
21217
21218 2007-01-29 Ben Elliston <bje@au.ibm.com>
21219
21220 * gcov-io.h (__gcov_indirect_call_profiler): Declare.
21221 (__gcov_average_profiler): Likewise.
21222 (__gcov_ior_profiler): Likewise.
21223 (__gcov_merge_ior): Likewise.
21224
21225 2007-01-28 Jan Hubicka <jh@suse.cz>
21226
21227 * builtins.c (expand_builtin_memset): Fix typo in my last patch.
21228 * value-prof.c (stringop_block_profile): Likewise.
21229
21230 2007-01-28 Jan Hubicka <jh@suse.cz>
21231
21232 * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall):
21233 Add variant handling histograms; add wrapper.
21234 (clear_storage_via_libcall): Export.
21235 (emit_block_move_hints): Break out from ...; add histograms.
21236 (emit_block_move): ... this one.
21237 (clear_storage_hints): Break out from ...; add histograms.
21238 (clear_storage): ... this one.
21239 (set_storage_via_memset): Handle histogram.
21240 * expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
21241 (clear_storage_hints, clear_storage_via_libcall): Declare.
21242 (set_storage_via_setmem): Update prototype.
21243 * doc/md.texi (movmem, setmem): Document new arguments.
21244
21245 * value-prof.c (dump_histogram_value, tree_find_values_to_profile):
21246 Add new histograms.
21247 (stringop_block_profile): New global function.
21248 (tree_stringops_values_to_profile): Profile block size and alignment.
21249 * value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
21250 HIST_TYPE_IOR.
21251 (struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
21252 (stringop_block_profile): Declare.
21253 * builtins.c: Include value-prof.h.
21254 (expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
21255 * gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
21256 (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
21257 (GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
21258 * profile.c (instrument_values): Add new counters.
21259 * cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
21260 calls.
21261 * tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
21262 (tree_init_edge_profiler): Build new profilers.
21263 (tree_gen_average_profiler, tree_gen_ior_profiler): New.
21264 (pass_tree_profile): Add dump.
21265 (tree_profile_hooks): Update.
21266 * Makefile.in (LIBGCOV): Add new constants.
21267 * libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
21268 __gcov_ior_profiler): New.
21269 * i386.md (movmem/setmem expanders): Add new optional arguments.
21270
21271 2007-01-28 David Edelsohn <edelsohn@gnu.org>
21272
21273 * doc/md.texi (Standard Pattern Names): Document blockage pattern.
21274
21275 2007-01-28 Zdenek Dvorak <dvorakz@suse.cz>
21276
21277 * tree-ssa-loop-unswitch.c: Include tree-inline.h.
21278 (tree_unswitch_single_loop): Pass eni_size_weights to
21279 tree_num_loop_insns.
21280 * tree-ssa-loop-manip.c: Include tree-inline.h.
21281 (can_unroll_loop_p): Pass eni_size_weights to
21282 tree_num_loop_insns.
21283 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p):
21284 Pass eni_size_weights to estimate_num_insns.
21285 * tree.h (init_inline_once): Export.
21286 * toplev.c (backend_init): Call init_inline_once.
21287 * cgraphunit.c (cgraph_process_new_functions,
21288 cgraph_analyze_function): Pass eni_inlining_weights to
21289 estimate_num_insns.
21290 * ipa-inline.c (compute_inline_parameters): Ditto.
21291 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights
21292 to estimate_num_insns.
21293 (try_unroll_loop_completely): Pass eni_size_weights to
21294 tree_num_loop_insns.
21295 * tree-eh.c (decide_copy_try_finally): Pass eni_size_weights
21296 ot estimate_num_insns.
21297 * tree-ssa-loop-prefetch.c: Include tree-inline.h.
21298 (loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns.
21299 * tree-inline.c (eni_inlining_weights, eni_size_weights,
21300 eni_time_weights): New variables.
21301 (init_inline_once): Initialize them.
21302 (struct eni_data): Mew.
21303 (estimate_num_insns_1, estimate_num_insns): Use weights.
21304 * tree-inline.h (struct eni_weights_d): New.
21305 (eni_inlining_weights, eni_size_weights, eni_time_weights): Declare.
21306 (estimate_num_insns): Declaration changed.
21307 * cfgloop.h (tree_num_loop_insns): Declaration changed.
21308 * Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o,
21309 tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency.
21310
21311 2007-01-28 Zdenek Dvorak <dvorakz@suse.cz>
21312
21313 * tree-data-ref.c (conflict_fn): Assert that the number of affine
21314 relations in the conflict function is valid.
21315
21316 2007-01-27 Ian Lance Taylor <iant@google.com>
21317
21318 * common.opt: Add fstrict-overflow.
21319 * opts.c (decode_options): Set flag_strict_overflow if -O2.
21320 * flags.h (TYPE_OVERFLOW_WRAPS): Define.
21321 (TYPE_OVERFLOW_UNDEFINED): Define.
21322 (TYPE_OVERFLOW_TRAPS): Define. This replaces TYPE_TRAP_SIGNED.
21323 Replace all uses.
21324 * tree.h (TYPE_TRAP_SIGNED): Don't define.
21325 * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
21326 (fold_negate_expr): Likewise.
21327 (make_range): Likewise.
21328 (extract_muldiv_1): Likewise.
21329 (maybe_canonicalize_comparison): Likewise.
21330 (fold_comparison): Likewise.
21331 (fold_binary): Likewise.
21332 (tree_expr_nonnegative_p): Likewise.
21333 (tree_expr_nonzero_p): Likewise.
21334 * tree-vrp.c (compare_values): Likewise.
21335 (extract_range_from_binary_expr): Likewise.
21336 (extract_range_from_unary_expr): Likewise.
21337 * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
21338 Likewise.
21339 (nowrap_type_p): Likewise.
21340 * tree-scalar-evolution.c (simple_iv): Likewise.
21341 * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
21342 (build_range_check): Likewise.
21343 (extract_muldiv_1): Likewise.
21344 (fold_comparison): Likewise.
21345 * tree-vrp.c (vrp_int_const_binop): Likewise.
21346 (extract_range_from_unary_expr): Likewise.
21347 * convert.c (convert_to_integer): Likewise.
21348 * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
21349 (fold_comparison): Likewise.
21350 (fold_binary): Likewise.
21351 * optabs.c (optab_for_tree_code): Likewise.
21352 * tree-vectorizer.c (vect_is_simple_reduction): Likewise.
21353 * simplify-rtx.c (simplify_const_relational_operation): Check
21354 flag_strict_overflow and flag_trapv.
21355 (simplify_const_relational_operation): Likewise.
21356 * doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
21357 (Optimize Options): Add -fstrict-overflow to -O2 list. Document
21358 -fstrict-overflow.
21359
21360 2007-01-27 Roger Sayle <roger@eyesopen.com>
21361
21362 * tree.c (tree_fold_gcd): Delete.
21363 * tree.h (tree_fold_gcd): Remove prototype.
21364 * tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
21365 test whether one constant integer is a multiple of another. Instead
21366 call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
21367 * fold-const.c (multiple_of_p): We've determined both TOP and
21368 BOTTOM are integer constants so we can call int_const_binop directly
21369 instead of the more generic const_binop.
21370
21371 2007-01-27 Roger Sayle <roger@eyesopen.com>
21372
21373 * fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and
21374 1*X check that the constant hasn't overflowed, to preserve the
21375 TREE_OVERFLOW bit.
21376 (round_up): Provide an efficient implementation when rouding-up an
21377 INTEGER_CST to a power-of-two.
21378
21379 2007-01-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21380
21381 * doc/sourcebuild.texi: Add comma for clarity.
21382 * doc/extend.texi: Fix some typos.
21383 * doc/passes.texi: Likewise.
21384 * doc/cppinternals.texi: Likewise.
21385 * doc/c-tree.texi: Likewise.
21386 * doc/tree-ssa.texi: Likewise.
21387 * doc/install.texi: Likewise.
21388
21389 2007-01-27 Jan Hubicka <jh@suse.cz>
21390
21391 * tree-sra.c (sra_walk_function): Don't rely on aliases being build.
21392 (pass_sra): Do not require alias information.
21393 * passes.c (init_optimization_passes): Add SRA
21394
21395 2007-01-27 Steven Bosscher <steven@gcc.gnu.org>
21396
21397 * tracer.c (rest_of_handle_tracer): We already cleaned
21398 up the CFG in tracer() so don't do it here again.
21399 * cfgcleanup.c (rest_of_handle_jump2): Don't repeat
21400 cleanup_cfg here, either. And don't call renumber_insns.
21401
21402 * cfgrtl.c (rtl_verify_flow_info_1): Don't verify that BB_END
21403 and BB_HEAD are in the insn stream here. Instead make sure
21404 that BB_INSN is valid on all insns. Also, do check here that
21405 there are no pending branch predictions...
21406 (rtl_verify_flow_info): ...instead of doing it here. Checks
21407 for BB_END and BB_HEAD moved from rtl_verify_flow_info_1 to
21408 here.
21409
21410 2007-01-26 Roger Sayle <roger@eyesopen.com>
21411
21412 * config/i386/i386.c (ix86_swap_binary_operands_p): New helper
21413 function to simplify/factorize operand order canonicalization.
21414 (ix86_fixup_binary_operands): Reorganize using the above function.
21415 (ix86_binary_operator_ok): Likewise.
21416
21417 2007-01-27 Jakub Jelinek <jakub@redhat.com>
21418
21419 * genattrtab.c (struct attr_value_list, insn_code_values): Move to
21420 file scope from optimize_attrs.
21421 (simplify_test_exp): If insn_code_values is not NULL, use it to speed
21422 up search.
21423 (optimize_attrs): Clear insn_code_values after freeing it.
21424
21425 2007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
21426
21427 * tree-ssa-address.c (create_mem_ref): Remove ", bsi" from
21428 a parts.base assignment.
21429
21430 2007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
21431
21432 * tree-data-ref.c (dump_subscript): Use dump_conflict_function.
21433 (compute_subscript_distance, initialize_data_dependence_relation,
21434 finalize_ddr_dependent, analyze_ziv_subscript,
21435 analyze_siv_subscript_cst_affine,
21436 compute_overlap_steps_for_affine_univar,
21437 compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
21438 analyze_siv_subscript, analyze_miv_subscript,
21439 analyze_overlapping_iterations, subscript_dependence_tester_1,
21440 compute_self_dependence, free_dependence_relation): Work
21441 with affine_fn instead of chrecs.
21442 (dump_affine_function, dump_conflict_function, affine_function_equal_p,
21443 common_affine_function, affine_function_base,
21444 affine_function_constant_p, affine_fn_op, affine_fn_plus,
21445 affine_fn_minus, affine_fn_free, conflict_fn_not_known,
21446 conflict_fn_no_dependence, free_conflict_function, free_subscripts,
21447 conflict_fn, affine_fn_cst, affine_fn_univar): New functions.
21448 (all_chrecs_equal_p): Removed.
21449 * tree-data-ref.h (affine_fn, conflict_function): New types.
21450 (struct subscript): Change type of conflicting_iterations_in_a
21451 and conflicting_iterations_in_b.
21452
21453 2007-01-26 Steve Ellcey <sje@cup.hp.com>
21454
21455 PR other/30182
21456 * config/pa/pa.h (TARGET_HPUX_11): New.
21457 * config/pa/pa-hpux11.h (TARGET_HPUX_11): New.
21458 * config/pa/pa.c (pa_init_builtins): Use TARGET_HPUX_11.
21459
21460 2007-01-26 Daniel Berlin <dberlin@dberlin.org>
21461 Richard Guenther <rguenther@suse.de>
21462
21463 * tree-ssa-structalias.c (solve_graph): Handle case
21464 we merged the variable to another.
21465
21466 2007-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21467
21468 * builtins.c (fold_builtin_1): Treat ccos and ccosh as 'even'
21469 functions.
21470
21471 * fold-const.c (negate_mathfn_p): Treat casin, casinh, catan,
21472 catanh, cproj, csin, csinh, ctan and ctanh as 'odd' functions.
21473
21474 2007-01-25 DJ Delorie <dj@redhat.com>
21475
21476 * config/m32c/m32c.c (m32c_cannot_change_mode_class): We don't
21477 allow changes to modes which don't fit in those registers.
21478
21479 * reload1.c (choose_reload_regs): Check for invalid subregs before
21480 computing their locations, not after.
21481
21482 2007-01-25 Geoffrey Keating <geoffk@apple.com>
21483
21484 PR 25127
21485 * config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin,
21486 save Altivec registers in an eh_return function.
21487 (compute_vrsave_mask): Likewise.
21488 (rs6000_stack_info): Correct AIX/Darwin stack alignment computation
21489 for saving Altivec registers.
21490 (rs6000_emit_prologue): Don't allocate stack twice in
21491 eh_return function. Correct expected value of altivec_save_offset
21492 when using save_world. Describe save of R0 to stack when using
21493 save_world. Describe stack pointer adjustment when using
21494 save_world. Remove duplicated eh_return parameter register saving.
21495 Update sp_offset variable after save_world.
21496 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove
21497 darwin-world.asm.
21498 (LIB2FUNCS_EXTRA): Add darwin-world.asm.
21499 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
21500 implies Altivec.
21501
21502 2007-01-25 Steve Ellcey <sje@cup.hp.com>
21503
21504 * config.gcc (ia64*-*-hpux*): Make posix threads the default.
21505
21506 2007-01-25 Steve Ellcey <sje@cup.hp.com>
21507
21508 PR other/30182
21509 * config/pa/pa.c (pa_init_builtins): Set asm names for finite routines.
21510 * config/ia64/ia64.c (ia64_init_builtins): Ditto.
21511
21512 2007-01-25 Richard Guenther <rguenther@suse.de>
21513
21514 * doc/invoke.texi (-Wcoverage-mismatch): Document.
21515 * common.opt (-Wcoverage-mismatch): New warning option.
21516 * coverage.c (get_coverage_counts): Ignore coverage mismatch
21517 if -Wcoverage-mismatch is given.
21518
21519 2007-01-25 Razya Ladelsky <razya@il.ibm.com>
21520
21521 * ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA.
21522 (ipcp_driver): Change to static definition.
21523 Add dumping of the ifunctions.
21524 (constant_val_insert): Remove unused parameter. Support for SSA.
21525 (ipcp_propagate_const): Support for SSA.
21526 (ipcp_profile_bb_print): Print only analyzed nodes.
21527 (ipcp_replace_map_create): Remove support for Fortran constant
21528 for now.
21529 * ipa-prop.c (ipa_method_modify_stmt,
21530 ipa_callsite_compute_param): Support for SSA.
21531 * ipa-prop.h (ipcp_driver): Remove declaration.
21532 (IS_VALID_TREE_MAP_INDEX): Add define.
21533
21534 2007-01-24 Geoffrey Keating <geoffk@apple.com>
21535
21536 * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.
21537
21538 2007-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21539
21540 PR middle-end/30447
21541 * builtins.c (fold_builtin_cabs): Use MPFR to evaluate a
21542 constant argument to cabs and do it without checking for
21543 -funsafe-math-optimizations.
21544
21545 2007-01-24 Douglas Gregor <dgregor@osl.iu.edu>
21546
21547 * c-common.h (RID_FIRST_CXX0X): New.
21548 (RID_LAST_CXX0X): New.
21549 * c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered
21550 by -Wall.
21551 * c.opt (Wc++0x-compat): New.
21552 * doc/invoke.texi (-Wc++0x-compat): Document.
21553
21554 2007-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21555
21556 * builtins.c (fold_builtin_carg): New.
21557 (fold_builtin_1): Use it.
21558
21559 2007-01-24 Jan Hubicka <jh@suse.cz>
21560
21561 * ipa-inline.c (cgraph_decide_inlining): Initialize initial_insns.
21562
21563 * ipa-inline.c (initial_insns, max_insns): Delete.
21564 (compute_max_insns): New function.
21565 (cgraph_decide_inlining_of_small_function): Use it; take minimal
21566 amount of insns as base for code growth.
21567 (cgraph_decide_inlining): Make initial_insns local; do not compute
21568 max_insns.
21569 * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60.
21570 * doc/invoke.texi (inline-unit-growth): Update docs.
21571
21572 2007-01-24 Jakub Jelinek <jakub@redhat.com>
21573
21574 * config/i386/i386.h (x86_cmpxchg16b): Remove const.
21575 (TARGET_CMPXCHG16B): Define to x86_cmpxchg16b.
21576 * config/i386/i386.c (x86_cmpxchg16b): Remove const.
21577 (override_options): Add PTA_CX16 flag. Set x86_cmpxchg16b
21578 for CPUs that have PTA_CX16 set.
21579
21580 PR middle-end/27416
21581 * gimplify.c (omp_check_private): New function.
21582 (gimplify_scan_omp_clauses): Use it for
21583 firstprivate/lastprivate/reduction.
21584
21585 PR middle-end/30494
21586 * gimplify.c (omp_add_variable): Don't call omp_notice_variable
21587 on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
21588
21589 PR middle-end/30421
21590 * omp-low.c (lower_omp_for_lastprivate): Add dlist argument.
21591 If lower_lastprivate_clauses emits some statements, append them
21592 to dlist rather than body_p and to body_p append an initializer.
21593 (lower_omp_for): Adjust caller.
21594
21595 2007-01-24 Steve Ellcey <sje@cup.hp.com>
21596
21597 * target.h (globalize_decl_name): New.
21598 * target-def.h (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
21599 * output.h (default_globalize_decl_name): New.
21600 * varasm.c (asm_output_bss): Use globalize_decl_name instead of
21601 globalize_label.
21602 (globalize_decl): Ditto.
21603 (default_globalize_decl_name): New.
21604 * config/ia64/ia64.c (ia64_globalize_decl_name): New.
21605 (ia64_handle_version_id_attribute): New.
21606 (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
21607 (ia64_asm_output_external): Use globalize_decl_name instead
21608 of globalize_label.
21609 * doc/extend.texi (version_id): New pragma.
21610 * doc/tm.texi (ARGET_ASM_GLOBALIZE_DECL_NAME): New target hook.
21611
21612 2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
21613
21614 * unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with
21615 _uleb128_t and _Unwind_SWord with _sleb128_t.
21616 * unwind-dw2.c (extract_cie_info, execute_stack_op,
21617 execute_cfa_program, uw_frame_state_for, uw_update_context_1):
21618 Likewise.
21619 * unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise.
21620 * unwind-pe.h (read_uleb128, read_sleb128,
21621 read_encoded_value_with_base): Likewise.
21622 * unwind-generic.h: Define _sleb128_t and _uleb128_t types.
21623
21624 2007-01-24 Richard Guenther <rguenther@suse.de>
21625
21626 * builtins.c (expand_builtin_cexpi): Get the fndecl
21627 for cexp in the correct way.
21628
21629 2007-01-24 Jan Hubicka <jh@suse.cz>
21630
21631 * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS
21632 of calls.
21633
21634 2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
21635
21636 * c-cppbuiltin.c (builtin_define_type_sizeof): New function.
21637 (c_cpp_builtins): New builtin macros: __SIZEOF_INT__, __SIZEOF_LONG__,
21638 __SIZEOF_LONG_LONG__, __SIZEOF_SHORT__, __SIZEOF_POINTER__,
21639 __SIZEOF_FLOAT__, __SIZEOF_DOUBLE__, __SIZEOF_LONG_DOUBLE__,
21640 __SIZEOF_SIZE_T__, __SIZEOF_WCHAR_T__, __SIZEOF_WINT_T__ and
21641 __SIZEOF_PTRDIFF_T__.
21642 * doc/cpp.texi: Documentation for the new builtin macros added.
21643
21644 2007-01-24 Uros Bizjak <ubizjak@gmail.com>
21645
21646 * config/i386/i386.md (tanxf2, tan<mode>2, atan<mode>2, log<mode>2,
21647 log10<mode>2, log2<mode>2, expxf2, exp10xf2, exp2xf2): Use op2
21648 instead of operands[2] to avoid access past the end of array.
21649
21650 2007-01-24 Richard Sandiford <richard@codesourcery.com>
21651
21652 * reload1.c (emit_reload_insns): Pass the reload register
21653 for a non-spill output reload through forget_old_reloads_1.
21654
21655 2007-01-23 Joseph Myers <joseph@codesourcery.com>
21656
21657 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
21658 _SOFT_DOUBLE if doubles use software floating-point.
21659 * config/rs6000/libgcc-ppc-glibc.ver: Export additional long
21660 double functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
21661 * config/rs6000/darwin-ldouble.c: Also compile functions for
21662 hard-float without FPRs. Use fmsub function for all __NO_FPRS__
21663 cases. Compile extra functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
21664 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove
21665 commented-out long double override.
21666 (CPP_LONGDOUBLE_DEFAULT_SPEC): Likewise.
21667 * config/rs6000/eabispe.h: Likewise.
21668 * config/rs6000/rs6000.c (rs6000_override_options): Don't override
21669 long double for non-SPE.
21670 (rs6000_handle_option): Likewise.
21671 (invalid_e500_subreg): Disallow more subregs involding DImode,
21672 DFmode, TImode or TFmode.
21673 (rs6000_legitimate_offset_address_p): Check TFmode offsets for
21674 E500 double.
21675 (legitimate_lo_sum_address_p): Also check for TFmode for E500
21676 double.
21677 (rs6000_legitimize_address): Also handle TFmode for E500 double.
21678 (rs6000_legitimize_reload_address): Also handle TFmode for E500
21679 double.
21680 (rs6000_legitimate_address): Also check for TFmode for E500
21681 double.
21682 (rs6000_emit_move): Use DFmode subregs of TFmode for E500 double.
21683 (spe_build_register_parallel): Handle TFmode and TCmode.
21684 (rs6000_spe_function_arg): Handle TFmode and TCmode for E500
21685 double.
21686 (function_arg): Handle TFmode and TCmode for E500 double.
21687 (rs6000_init_libfuncs): Initialize extra libfuncs for soft double
21688 in general.
21689 (print_operand): Handle TFmode and TImode for %y.
21690 (rs6000_generate_compare): Handle TFmode comparisons for E500
21691 double.
21692 (spe_func_has_64bit_regs_p): Check for TFmode for E500 double.
21693 (rs6000_function_value): Handle TFmode and TCmode for E500 double.
21694 (rs6000_libcall_value): Handle TFmode and TCmode for E500 double.
21695 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Check for
21696 TFmode for E500 double.
21697 * config/rs6000/rs6000.md (FP): Allow TF for E500 double.
21698 (floatsidf2): Enable for E500 double.
21699 (movtf_softfloat): Use rs6000_nonimmediate_operand.
21700 (extenddftf2): Change to extenddftf2_fprs.
21701 (extenddftf2): Call gen_spe_extenddftf2 or gen_extenddftf2_fprs
21702 depending on TARGET_E500_DOUBLE.
21703 (extendsftf2): Enable for E500 double.
21704 (trunctfdf2): Enable for E500 double.
21705 (trunctfsf2): Change to trunctfsf2_fprs.
21706 (trunctfsf2): Call gen_spe_trunctfsf2 or gen_trunctfsf2_fprs
21707 depending on TARGET_E500_DOUBLE.
21708 (floatsitf2): Enable for E500 double.
21709 (fix_trunctfsi2): Change to fix_trunctfsi2_fprs.
21710 (fix_trunctfsi2): Call gen_spe_fix_trunctfsi2 or
21711 gen_fix_trunctfsi2_fprs depending on TARGET_E500_DOUBLE.
21712 (negtf2): Change to negtf2_internal.
21713 (negtf2): New expander.
21714 (abstf2): Enable for E500 double. Call gen_spe_abstf2_tst,
21715 gen_spe_abstf2_cmp or gen_abstf2_internal depending on
21716 TARGET_E500_DOUBLE and flag_unsafe_math_optimizations.
21717 (movdi_internal32): Use rs6000_nonimmediate_operand.
21718 (unnamed splitter): Likewise.
21719 * config/rs6000/spe.md (CMPTFEQ_GPR, TSTTFEQ_GPR, CMPTFGT_GPR,
21720 TSTTFGT_GPR, CMPTFLT_GPR, TSTTFLT_GPR): New unspecs.
21721 (SPE64TF, DITI): New mode macros.
21722 (frob_df_di): Change to frob_<SPE64:mode>_<DITI:mode>; allow more
21723 modes.
21724 (frob_tf_ti): New.
21725 (frob_<mode>_di_2): New.
21726 (frob_tf_di_8_2): New.
21727 (frob_di_df): Change to frob_di_<mode>; allow more modes.
21728 (frob_ti_tf): New.
21729 (frob_di_df_2): Change to frob_<DITI:mode>_<SPE64:mode>_2; allow
21730 more modes.
21731 (frob_ti_<mode>_8_2): New.
21732 (frob_ti_tf_2): New.
21733 (mov_si<mode>_e500_subreg0, mov_si<mode>_e500_subreg0_2,
21734 mov_si<mode>_e500_subreg4, mov_si<mode>_e500_subreg4_2): Allow
21735 TFmode.
21736 (mov_sitf_e500_subreg8, mov_sitf_e500_subreg8_2,
21737 mov_sitf_e500_subreg12, mov_sitf_e500_subreg12_2): New.
21738 (spe_trunctfdf2_internal1, spe_trunctfsf2, spe_extenddftf2,
21739 spe_fix_trunctfsi2, spe_fix_trunctfsi2_internal,
21740 spe_negtf2_internal, spe_abstf2_cmp, spe_abstf2_tst): New.
21741 (cmptfeq_gpr, tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr,
21742 tsttflt_gp): New.
21743
21744 2007-01-23 Ian Lance Taylor <iant@google.com>
21745
21746 * Makefile.in (OBJS-common): Reformat, alphabetize, but put
21747 insn-*.o first.
21748 (OBJS-archive): Reformat, alphabetize.
21749 (OBJS): Change out_object_file to OBJS-md.
21750
21751 2007-01-23 Uros Bizjak <ubizjak@gmail.com>
21752
21753 * config/i386/i386.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
21754 JUMP_P and CALL_P predicates where applicable.
21755 * config/i386/i386.c: Ditto.
21756 * config/i386/i386.md: Ditto.
21757 * config/i386/mmx.md: Ditto.
21758 * config/i386/predicates.md: Ditto.
21759
21760 2007-01-22 Andreas Schwab <schwab@suse.de>
21761
21762 * config/m68k/m68k.h: Fix comment.
21763
21764 2007-01-22 Jan Hubicka <jh@suse.cz>
21765
21766 * passes.c (init_optimization_passes): Do not rerun
21767 pass_early_warn_uninitialized.
21768
21769 2007-01-22 Richard Guenther <rguenther@suse.de>
21770
21771 PR tree-optimization/30038
21772 * tree-ssa-math-opts.c (maybe_record_sincos): New static helper
21773 function.
21774 (execute_cse_sincos_1): Likewise.
21775 (execute_cse_sincos): Likewise.
21776 (gate_cse_sincos): Likewise.
21777 (pass_cse_sincos): New pass CSEing sin() and cos() calls using
21778 the cexpi() canonicalization of sincos().
21779 * tree-pass.h (pass_cse_sincos): Declare.
21780 * passes.c (init_optimization_passes): New pass pas_cse_sincos.
21781
21782 2007-01-21 Eric Botcazou <ebotcazou@libertysurf.fr>
21783
21784 PR rtl-optimization/29329
21785 * combine.c (replaced_rhs_insn): Rename to i2mod.
21786 (replaced_rhs_value): Rename to i2mod_new_rhs.
21787 (i2mod_old_rhs): New global variable.
21788 (combine_instructions): Adjust for above change. Save a copy of
21789 the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
21790 note are substituted in the second instruction.
21791 (distribute_notes) <REG_DEAD>: Adjust for above change. Do not
21792 ditch the note if it pertains to the second eliminated register
21793 and this register is mentioned in i2mod_old_rhs.
21794
21795 Revert:
21796 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
21797
21798 * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
21799 the insn to which the note was originally attached.
21800
21801 2007-01-21 Jan Hubicka <jh@suse.cz>
21802
21803 * ipa-inline.c (inlining_mode): Comment, move up.
21804 (cgraph_decide_inlining_incrementally): Do not perform inlining
21805 itself; fix handling of flattening of self recursive functions.
21806 (cgraph_find_cycles): Remove.
21807 (cgraph_flatten_node): Remove.
21808 (cgraph_decide_inlining): Use incremental inliner to handle flattening.
21809 (try_inline): New function.
21810 (cgraph_early_inlining): Update call of
21811 cgraph_decide_inlining_incrementally. Apply inlining here.
21812 (apply_inline): Update call of cgraph_decide_inlining_incrementally.
21813
21814 2007-01-21 Dirk Mueller <dmueller@suse.de>
21815
21816 PR bootstrap/30511
21817 * tree-vrp.c (check_array_bounds): do not warn
21818 about ADDR_EXPR's of ARRAY_REF's which are immediately
21819 used in binary expressions.
21820
21821 2007-01-21 Ira Rosen <irar@il.ibm.com>
21822
21823 * tree-vectorizer.h (struct _stmt_vec_info): Add new field
21824 read_write_dep and macros for its access.
21825 * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
21826 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove
21827 argument, call vect_check_interleaving for every independent pair of
21828 data-refs. Mark loads that access the same memory location as a store
21829 in the loop.
21830 (vect_check_dependences): Remove.
21831 (vect_analyze_data_ref_dependences): Remove vect_check_dependences
21832 call, fix the call to vect_analyze_data_ref_dependence.
21833 (vect_analyze_data_ref_access): For statements that access the same
21834 data-ref, check that they are not stores; for loads, check that there
21835 is no store that access the same location.
21836
21837 2007-01-20 Roger Sayle <roger@eyesopen.com>
21838 Joseph Myers <joseph@codesourcery.com>
21839
21840 * doc/invoke.texi (-fdump-rtl-combine): Fix under/overfull hbox.
21841 (-fdump-rtl-stack): Likewise.
21842 (-fno-signed-zeros): Use @minus{} for a minus sign. Correct typo.
21843 (-mcheck-zero-division, -mcpu): Fix under/overfull hbox.
21844 (-mpt-fixed): Use @minus{} for minus sign.
21845 (Using Precompiled Headers): Fix under/overfull hbox.
21846
21847 2007-01-20 Jan Hubicka <jh@suse.cz>
21848
21849 * tree-flow.h (struct stmt_ann_d): Move references_memory to proper
21850 place within annotation.
21851
21852 2007-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21853
21854 * pa.c (output_move_double): Change array size of xoperands to 4.
21855
21856 2007-01-20 Jan Hubicka <jh@suse.cz>
21857
21858 * tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL
21859 as temporary.
21860
21861 2007-01-19 Ian Lance Taylor <iant@google.com>
21862
21863 * expmed.c (expand_divmod) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: Cast
21864 constant to unsigned HOST_WIDE_INT before negating.
21865
21866 2007-01-19 Ian Lance Taylor <iant@google.com>
21867
21868 * tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field
21869 to unsigned.
21870 (VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Use unsigned comparison.
21871 (VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
21872 (SET_VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Likewise.
21873 (SET_VUSE_ELEMENT_VAR) [ENABLE_CHECKING]: Likewise.
21874 (SET_VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
21875 (realloc_vdef, realloc_vuse): Change second parameter to
21876 unsigned.
21877 (ssa_operand_iterator_d): Change vuse_index and mayuse_index
21878 fields to unsigned.
21879 * tree-ssa-operands.c (realloc_vop): Change num_elem parameter to
21880 unsigned. Change x and lim locals to unsigned.
21881 (realloc_vdef, realloc_vuse): Change num_elem parameter to
21882 unsigned.
21883 (finalize_ssa_vuse_ops): Change old_i local to unsigned.
21884 (copy_virtual_operands): Change i and n locals to unsigned.
21885
21886 2007-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21887
21888 PR middle-end/29335
21889 * builtins.c (fold_builtin_1): Handle builtin fdim.
21890
21891 2007-01-20 Jan Hubicka <jh@suse.cz>
21892
21893 * tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
21894 * tree-ssa-structalias.c (compute_points_to_sets): Do call
21895 init_alias_heapvars.
21896 (init_alias_heapvars): Initialize only when not already initialized.
21897 (delete_alias_heapvars): Set heapvar_for_stmt to NULL.
21898
21899 2007-01-19 Roger Sayle <roger@eyesopen.com>
21900
21901 * common.opt (fsigned-zeros): New command line option.
21902 * flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead
21903 of flag_unsafe_math_optimizations.
21904 * opts.c (set_fast_math_flags): The -ffast-math command line option
21905 implies -fno-signed-zeros.
21906 (fast_math_flags_set_p): Likewise.
21907
21908 * doc/invoke.texi: Document new -fno-signed-zeros option, and update
21909 the documentation of -ffast-math appropriately. Wrap long lines.
21910
21911 2007-01-19 Steve Ellcey <sje@cup.hp.com>
21912
21913 * system.h (ASM_MAKE_LABEL_LINKONCE): Poison.
21914 * varasm.c (globalize_decl): Remove ASM_MAKE_LABEL_LINKONCE ifdef.
21915
21916 2007-01-19 Tomas Bily <tbily@suse.cz>
21917
21918 * cgraphunit.c (cgraph_finalize_function): Updating of pid
21919 * tree-profile.c:
21920 (tree_init_ic_make_global_vars): New function
21921 (tree_init_edge_profiler): call of tree_init_ic_make_global_vars
21922 (tree_gen_ic_profiler): New function
21923 (tree_gen_ic_func_profiler): New function
21924 (tree_profiling): Added calling of tree_gen_ic_func_profiler
21925 (tree_profile_hooks): Added hook for indirec/virtual calls
21926 * value-prof.c (tree_find_values_to_profile): New case for
21927 indirect calls
21928 (tree_values_to_profile): Call for determining indirect/virtual
21929 counters
21930 (tree_indirect_call_to_profile): New function
21931 (tree_ic_transform): New function
21932 (tree_ic): New function
21933 (find_func_by_pid): New function
21934 (init_pid_map): New function
21935 (tree_value_profile_transformations): Added check for
21936 indirect/virtual call transformation
21937 * value-prof.h (enum hist_type): New counter type for
21938 indirect/virtual calls
21939 (profile_hooks): Added new hook for profiling indirect/virtual
21940 calls
21941 * profile.c (instrument_values): New case for indirect/virtual
21942 call added
21943 * gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6
21944 (GCOV_COUNTER_V_INDIR): New counter type
21945 (GCOV_COUNTER_NAMES): New name of counter "indirect" added
21946 (GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual
21947 call added
21948 * cgraph.c: Definition of cgraph_max_pid
21949 (cgraph_create_node): Default init of pid attribute
21950 * cgraph.h: Declaration of cgraph_max_pid
21951 (struct cgraph_node): Added pid attribute
21952 * libgcov.c (__gcov_indirect_call_profiler): New function
21953 (__gcov_one_value_profiler_body): New function
21954 (__gcov_one_value_profiler): Body was moved to
21955 __gcov_one_value_profiler_body and calls it
21956
21957 2007-01-19 Basile Starynkevitch <basile@starynkevitch.net>
21958
21959 * doc/gty.texi (Options): Document the mark_hook option to GTY.
21960 * gengtype.c (write_types_data, write_func_for_structure,
21961 write_types, ggc_wtd, pch_wtd): Add skip_hooks to
21962 write_types_data, ggc_wtd, pch_wtd for processing mark_hook.
21963 (walk_type, write_func_for_structure): Generate the mark_hook if
21964 needed.
21965
21966 2007-01-19 Jan Hubicka <jh@suse.cz>
21967
21968 * ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of
21969 'early' argument take inlining mode argument specifying whether to
21970 inline for size/speeed or all functions; add support for flattening;
21971 improve dumpting.
21972 (cgraph_early_inlining): Update call of decide_inlining_incrementally.
21973
21974 2007-01-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
21975
21976 PR c++/17947
21977 * toplev.c (warn_deprecated_use): Use %qD instead of %qs to print
21978 the name of the declared identifier.
21979
21980 2007-01-19 Dirk Mueller <dmueller@suse.de>
21981
21982 * config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
21983 result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid
21984 duplicate evaluation.
21985
21986 2007-01-19 Uros Bizjak <ubizjak@gmail.com>
21987
21988 * config/i386/i386.md (acos<mode>2): Rename from acossf2 and acosdf2.
21989 Macroize expander using X87MODEF12 mode macro. Extend operand 1
21990 to XFMode, use acosxf2 and truncate result to requested mode.
21991 Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
21992 (asin<mode>2): Similarly, with asin expanders.
21993 (*fscalexf4_i387): Rename from *fscalexf4.
21994 (expNcorexf3): New expander.
21995 (expxf2, exp10xf2, exp2xf2): Use expNcorexf3 expander.
21996 (exp<mode>2): Rename from expsf2 and expdf2. Macroize expander using
21997 X87MODEF12 mode macro. Extend operand 1 to XFMode, use expxf2 and
21998 truncate result to requested mode. Use SSE_FLOAT_MODE_P to disable
21999 patterns for SSE math.
22000 (exp10<mode>2): Similarly, with exp10 expanders.
22001 (exp2<mode>2): Similarly, with exp2 expanders.
22002 (expm1<mode>2): Similarly, with expm1 expanders.
22003 (ldexp<mode>3): Similarly, with ldexp expanders.
22004 (log<mode>2, log10<mode>2, log2<mode>2, log1p<mode>2, logb<mode>2):
22005 Use gen_truncxf<mode>2_i387_noop to truncate result.
22006
22007 2007-01-19 Richard Sandiford <richard@codesourcery.com>
22008
22009 * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32
22010 for ColdFire targets.
22011
22012 2007-01-19 Nathan Sidwell <nathan@codesourcery.com>
22013 Richard Sandiford <richard@codesourcery.com>
22014
22015 * config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro.
22016 (INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM.
22017 (__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME.
22018 * config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override.
22019 (M68K_STATIC_CHAIN_REG_NAME): Likewise.
22020 * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
22021
22022 2007-01-19 Richard Sandiford <richard@codesourcery.com>
22023
22024 * config/m68k/m68k.md (adddi_dilshr32): Rename to...
22025 (*adddi_dilshr32): ...this. Fix formatting. Remove commented-out
22026 non-canonical pattern. Restrict to !TARGET_COLDFIRE.
22027 (*adddi_dilshr32_cf): New pattern.
22028 (adddi3, subdi3): Remove first alternatives.
22029
22030 2007-01-19 Richard Sandiford <richard@codesourcery.com>
22031
22032 * config/m68k/m68k.c (notice_update_cc): If an SFmode move is
22033 implemented using move.l, do not use its cc result for floating-point
22034 comparisons.
22035
22036 2007-01-19 Richard Sandiford <richard@codesourcery.com>
22037
22038 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint
22039 from accepting 's' constraints if flag_pic.
22040
22041 2007-01-19 Richard Sandiford <richard@codesourcery.com>
22042
22043 * config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt)
22044 (bunle, bunlt, bltgt, bordered_rev, bunordered_rev, buneq_rev)
22045 (bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Change
22046 condition from TARGET_68881 to TARGET_HARD_FLOAT.
22047
22048 2007-01-19 Sandra Loosemore <sandra@codesourcery.com>
22049
22050 * longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add
22051 ColdFire alternatives.
22052 * config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro.
22053 * config/m68k/m68k.md (clzsi2): Define for ColdFire
22054 architectures that support ff1 instruction.
22055
22056 2007-01-19 Richard Sandiford <richard@codesourcery.com>
22057 Julian Brown <julian@codesourcery.com>
22058
22059 * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Add an 'R' case.
22060 * config/m68k/m68k.md (*movsi_cfv4): Fold into...
22061 (*movsi_cf): ...here. Remove unnecessary 'R' from 'Rg'.
22062 Add commentary.
22063
22064 2007-01-19 Richard Sandiford <richard@codesourcery.com>
22065
22066 * config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT
22067 and return a bool.
22068 (output_move_const_into_data_reg, output_move_simode_const): Delete.
22069 * config/m68k/m68k.c (const_method, const_int_cost): Take a
22070 HOST_WIDE_INT instead of an rtx.
22071 (m68k_rtx_costs): Update call accordingly.
22072 (output_move_const_into_data_reg): Likewise. Fix formatting.
22073 (valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx.
22074 Return a bool.
22075 (output_move_simode_const): Update calls after above changes.
22076 Rework to use automatic variables and predicates like MEM_P.
22077 * config/m68k/m68k.md (pushexthisi_const): Update call to
22078 valid_mov3q_const.
22079
22080 2007-01-19 Dirk Mueller <dmueller@suse.de>
22081
22082 * tree-ssa-alias.c (perform_var_substitution): Fix typo
22083 in dump_flags test.
22084
22085 2007-01-19 Richard Guenther <rguenther@suse.de>
22086
22087 * builtins.c (expand_builtin_cexpi): Fall back to expanding
22088 via cexp in case sincos is not available.
22089
22090 2007-01-19 Richard Guenther <rguenther@suse.de>
22091
22092 * doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
22093 * defaults.h (TARGET_HAS_SINCOS): Default to off.
22094 * config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
22095 * config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
22096 * config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
22097 * config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
22098 * config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
22099 * config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.
22100
22101 2007-01-19 Uros Bizjak <ubizjak@gmail.com>
22102
22103 * config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387):
22104 New insn patterns.
22105 (atan2sf3_1, atan2df3_1, atan2xf3_1): Remove insn patterns.
22106 (atan2xf3): Directly generate RTL pattern.
22107 (atan2<mode>3): Rename from atan2sf3 and atan2df3 and macroize insn
22108 patterns using X87MODEF12 mode macro. Use fpatan_extend<mode>xf3_i387
22109 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
22110 disable patterns for SSE math.
22111 (atan<mode>2): Rename from atansf2 and atandf2 and macroize insn
22112 patterns using X87MODEF12 mode macro. Use fpatan_extend<mode>xf3_i387
22113 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
22114 disable patterns for SSE math.
22115
22116 2007-01-19 Alexandre Oliva <aoliva@redhat.com>
22117
22118 * libgcc-std.ver: Fix typo in %inherit for GCC_4.3.0.
22119
22120 2007-01-18 Roger Sayle <roger@eyesopen.com>
22121
22122 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Optimize away a
22123 VIEW_CONVERT_EXPR to the same type as it's operand.
22124
22125 2007-01-18 David Edelsohn <edelsohn@gnu.org>
22126
22127 * config/rs6000/darwin-ldouble.c: Only build _SOFT_FLOAT if
22128 configured for long double 128.
22129
22130 2007-01-18 Mike Stump <mrs@apple.com>
22131
22132 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Fix build
22133 error.
22134
22135 2007-01-18 Michael Meissner <michael.meissner@amd.com>
22136
22137 * i386.c (ix86_compute_frame_layout): Make fprintf's in #if 0 code
22138 type correct.
22139
22140 2007-01-18 Jan Hubicka <jh@suse.cz>
22141
22142 * tree-ssa-operands.c (vop_free_bucket_size): Never return value
22143 greater than NUM_VOP_FREE_BUCKETS.
22144
22145 2007-01-18 Daniel Berlin <dberlin@dberlin.org>
22146
22147 * tree-ssa-structalias.c: Update comments.
22148 (ptabitmap_obstack): Removed.
22149 (pta_obstack): New.
22150 (oldpta_obstack): Ditto.
22151 (stats): Add a few members.
22152 (struct variable_info): Remove node, complex, address_taken, and
22153 indirect_target members. Add oldsolution member.
22154 (new_var_info): Do not initialize removed members.
22155 (constraint_expr_type): Remove INCLUDES.
22156 (constraint_graph): Add size, implicit_preds, rep,
22157 indirect_cycles, eq_rep, label, direct_nodes, and complex members.
22158 (FIRST_REF_NODE): New macro.
22159 (LAST_REF_NODE): Ditto.
22160 (FIRST_ADDR_NODE): Ditto.
22161 (find): New function.
22162 (unite): Ditto.
22163 (dump_constraint): Do not handle INCLUDES.
22164 (insert_into_complex): Do not insert duplicate constraints.
22165 (condense_varmap_nodes): Renamed and rewritten into ...
22166 (merge_node_constraints): This. Also fix bug in handling of
22167 offseted copy constraints.
22168 (clear_edges_for_node): No longer need to deal with preds at all,
22169 or removing associated preds/succs.
22170 (merge_graph_nodes): Deal with indirect_cycles.
22171 Don't deal with predecessors.
22172 (add_implicit_graph_edge): New function.
22173 (add_pred_graph_edge): Ditto.
22174 (add_graph_edge): Don't deal with predecessors.
22175 (build_constraint_graph): Removed.
22176 (build_pred_graph): New function.
22177 (build_succ_graph): Ditto.
22178 (struct scc_info): Removed in_component. Added roots, dfs, and
22179 node_mapping. Remove visited_index, unification_queue.
22180 (scc_visit): Deal with union-find we do now.
22181 Deal with cycles with REF nodes.
22182 (collapse_nodes): Renamed and rewritten to ...
22183 (unify_nodes): This.
22184 (process_unification_queue): Removed.
22185 (topo_visit): Cleanup
22186 (do_da_constraint): Use find.
22187 (do_sd_constraint): Ditto.
22188 (do_ds_constraint): Ditto.
22189 (do_complex_constraint): Ditto.
22190 (init_scc_info): Update for removed and added members.
22191 (find_and_collapse_graph_cycles): Renamed and rewritten into ...
22192 (find_indirect_cycles): This.
22193 (equivalence_class): New variable.
22194 (label_visit): New function.
22195 (perform_variable_substitution): Rewritten.
22196 (free_var_substitution_info): New function.
22197 (find_equivalent_node): Ditto.
22198 (move_complex_constraints): Ditto.
22199 (eliminate_indirect_cycles): Ditto.
22200 (solve_graph): Only propagate changed bits.
22201 Use indirect cycle elimination.
22202 Use find.
22203 (tree_id_t): Rename to tree_vi_t, delete id member, add vi member.
22204 (tree_id_eq): Renamed to ...
22205 (tree_vi_eq): This. Update for member change
22206 (insert_id_for_tree): Renamed and rewritten to ...
22207 (insert_vi_for_tree): This.
22208 (lookup_id_for_tree): Renamed and rewritten to ...
22209 (lookup_vi_for_tree): This.
22210 (get_id_for_tree): Renamed and rewritten to ...
22211 (get_vi_for_tree): Ditto.
22212 (get_constraint_exp_from_ssa_var): Update to use get_vi_for_tree.
22213 (process_constraint): Don't handle INCLUDES.
22214 Remove special ADDRESSOF case.
22215 (find_func_aliases): Rewrite to use vi functions instead of id
22216 ones.
22217 (create_function_info_for): Ditto.
22218 (create_variable_info_for): Ditto.
22219 (intra_create_variable_infos): Ditto.
22220 (merge_smts_into): Ditto.
22221 (find_what_p_points_to): Ditto.
22222 (init_base_vars): Ditto.
22223 (init_alias_vars): Ditto.
22224 (remove_preds_and_fake_succs): New function.
22225 (dump_sa_points_to_info): Dump new stats.
22226 (dump_solution_for_var): Use find.
22227 (set_used_smts): Fix formatting.
22228 (compute_points_to_sets): Updated for new functions.
22229 (ipa_pta_execute): Ditto.
22230
22231 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
22232 Richard Sandiford <richard@codesourcery.com>
22233
22234 * doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
22235 parallels.
22236 * calls.c (expand_call): If the return value is a PARALLEL,
22237 extract its first member.
22238 * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
22239 * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
22240 use FUNCTION_EXTRA_EPILOGUE.
22241 (m68k_function_value): Return a PARALLEL if the return value
22242 is of a pointer type.
22243 * config/m68k/netbsd-elf.h (current_function_returns_pointer)
22244 (FUNCTION_EXTRA_EPILOGUE): Remove.
22245 * config/m68k/m68k.md (D0_REG): New constant.
22246
22247 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
22248
22249 * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
22250 output a NOP for empty epilogues.
22251
22252 2007-01-18 Richard Sandiford <richard@codesourcery.com>
22253
22254 * config/m68k/m68k.c (m68k_use_return_insn): Update comments
22255 before function. Extend register save check to include all
22256 registers, not just integer ones.
22257
22258 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
22259
22260 * config/m68k/m68k-protos.h (use_return_insn): Rename to...
22261 (m68k_use_return_insn): ...this.
22262 * config/m68k/m68k.h (USE_RETURN_INSN): Delete.
22263 * config/m68k/m68k.c (use_return_insn): Rename to...
22264 (m68k_use_return_insn): ...this.
22265 * config/m68k/m68k.md (return): Use m68k_use_return_insn instead
22266 of USE_RETURN_INSN.
22267
22268 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
22269
22270 * config/m68k/fpgnulib.c (__truncdfsf2): Implement round to
22271 nearest even, fix denormal rounding overflow.
22272
22273 2007-01-18 Richard Sandiford <richard@codesourcery.com>
22274
22275 * config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
22276 f%$smove and f%$move.
22277 (movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
22278 (extendsfdf2_cf): Use fdmove instead of f%&move.
22279 (truncdfsf2_cf): Use fsmove instead of f%$smove.
22280 (add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.
22281
22282 2007-01-18 Richard Sandiford <richard@codesourcery.com>
22283
22284 * config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for
22285 GPR<-GPR moves.
22286
22287 2007-01-18 Richard Sandiford <richard@codesourcery.com>
22288
22289 * real.h (real_format): Add a canonical_nan_lsbs_set field.
22290 (coldfire_single_format): Declare.
22291 (coldfire_double_format): Likewise.
22292 * real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead
22293 of qnan_msb_set to determine the lower bits of a canonical
22294 NaN significand.
22295 (encode_ieee_double): Likewise.
22296 (encode_ieee_quad): Likewise.
22297 (ieee_single_format): Initialize canonical_nan_lsbs_set.
22298 (mips_single_format): Likewise.
22299 (ieee_double_format): Likewise.
22300 (mips_double_format): Likewise.
22301 (ieee_extended_motorola_format): Likewise.
22302 (ieee_extended_intel_96_format): Likewise.
22303 (ieee_extended_intel_128_format): Likewise.
22304 (ieee_extended_intel_96_round_53_format): Likewise.
22305 (ibm_extended_format): Likewise.
22306 (mips_extended_format): Likewise.
22307 (ieee_quad_format): Likewise.
22308 (mips_quad_format): Likewise.
22309 (vax_f_format): Likewise.
22310 (vax_d_format): Likewise.
22311 (vax_g_format): Likewise.
22312 (i370_single_format): Likewise.
22313 (i370_double_format): Likewise.
22314 (decimal_single_format): Likewise.
22315 (decimal_double_format): Likewise.
22316 (decimal_quad_format): Likewise.
22317 (c4x_single_format): Likewise.
22318 (c4x_extended_format): Likewise.
22319 (real_internal_format): Likewise.
22320 (coldfire_single_format): New real_format.
22321 (coldfire_double_format): Likewise.
22322 * config/pdp11/pdp11.c (pdp11_f_format): Initialize
22323 canonical_nan_lsbs_set.
22324 (pdp11_d_format): Likewise.
22325 * config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE
22326 if TARGET_COLDFIRE_CPU.
22327
22328 2007-01-18 Richard Sandiford <richard@codesourcery.com>
22329
22330 * config/m68k/m68k-protos.h (m68k_output_pic_call): Delete.
22331 (output_call, m68k_legitimize_call_address): Declare.
22332 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary
22333 parenthesees. Add support for a 'W' constraint.
22334 (LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling.
22335 (PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'.
22336 (m68k_symbolic_call, m68k_symbolic_jump): Declare.
22337 * config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New
22338 variables.
22339 (override_options): Initialize them. Do not set flag_no_function_cse
22340 for TARGET_ID_SHARED_LIBRARY.
22341 (m68k_output_pic_call): Delete.
22342 (m68k_legitimize_call_address): New function.
22343 (print_operand): Remove the %o prefix. Handle the %p prefix.
22344 (output_call): New function.
22345 (m68k_output_mi_thunk): Use m68k_symbolic_jump. Always load the
22346 target address from the GOT if symbolic jumps are not allowed.
22347 * config/m68k/m68k.md (call, general_operand): Do not set
22348 SYMBOL_REF_FLAG. Use m68k_legitimize_call_address instead.
22349 Merge separate flag_pic and !flag_pic define_insns into...
22350 (*call, *call_value): ...these new patterns. Match the address
22351 rather than the containing MEM and require it to be a call_operand.
22352 Use output_call to generate the asm template.
22353 * config/m68k/predicates.md (const_call_operand): New predicate.
22354 (call_operand): Likewise.
22355
22356 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
22357
22358 * config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition.
22359 (STACK_GROWS_DOWNWARD): Define to 1.
22360 (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate
22361 comments, emphasizing that these values are only defaults.
22362 * config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef.
22363 * config/m68k/m68k.c (const_method): Remove trailing whitespace.
22364
22365 2007-01-18 Richard Sandiford <richard@codesourcery.com>
22366
22367 * config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling.
22368
22369 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
22370 Richard Sandiford <richard@codesourcery.com>
22371
22372 * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P)
22373 (FP_REGNO_P): New macros.
22374 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P)
22375 (REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them.
22376 (EH_RETURN_STACKADJ_RTX): Use A0_REG.
22377 * config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros.
22378
22379 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
22380
22381 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
22382 (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib
22383 to $tmake_file.
22384 * config/m68k/t-floatlib: New file, extracting common code from...
22385 * config/m68k/t-m68kbare, config/m68k/t-m68kelf,
22386 * config/m68k/t-uclinux: Here.
22387 * config/m68k/fpgnulib.c: Do not compile extendeed precision
22388 routines on ColdFire targets.
22389
22390 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
22391
22392 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
22393 (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*)
22394 (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*)
22395 (m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and
22396 explicitly set MOTOROLA to 1.
22397 * config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly.
22398
22399 2007-01-18 Richard Sandiford <richard@codesourcery.com>
22400 Nathan Sidwell <nathan@codesourcery.com>
22401
22402 * config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete.
22403 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases.
22404 * config/m68k/coff.h (REGISTER_PREFIX_MD): Delete.
22405 * config/m68k/m68020-elf.h (LIB_SPEC): Delete.
22406 * config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete.
22407 * config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD)
22408 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
22409 (NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine.
22410 (BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete.
22411 * config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine.
22412 * config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE)
22413 (WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete.
22414 (TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here.
22415 (DBX_REGISTER_NUMBER): Delete.
22416 * config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete.
22417 (PCC_STATIC_STRUCT_RETURN): Don't undefine.
22418 * config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define.
22419
22420 2007-01-18 Richard Sandiford <richard@codesourcery.com>
22421
22422 * config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
22423 * config/flat.h: New file.
22424 * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if
22425 OBJECT_FORMAT_FLAT.
22426 * config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use
22427 indirect references for -msep-data or -mid-shared-library.
22428 Do not use PC-relative code addresses either.
22429 * config/m68k/m68k.c (override_options): Restrict -fPIC error
22430 to -mpcrel.
22431 * config/m68k/uclinux.h (STARTFILE_SPEC): Define. Use Scrt1.o
22432 for shared libraries and crt1.o for executables. Use crti.o and
22433 crtbegin.o.
22434 (ENDFILE_SPEC): Use crtend.o and crtn.o.
22435 (LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given.
22436 Do not add -elf2flt or -shared-lib-id options here.
22437 (LINK_SPEC): Define. Pass -elf2flt if no -elf2flt option is given.
22438 Pass -shared-lib-id if -mid-shared-library, taking the library
22439 identifier from -mshared-library-id if given, otherwise
22440 defaulting to 0.
22441 (EH_FRAME_IN_DATA_SECTION): Do not undefine.
22442 (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise.
22443 (TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0
22444 and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library.
22445 (DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data.
22446 * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o
22447 and crtend.o.
22448 * config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative
22449 jump sequence for ISA A and ISA A+.
22450 (PICJUMP): Likewise.
22451
22452 2007-01-18 Richard Sandiford <richard@codesourcery.com>
22453
22454 * config.gcc (m68k-*-uclinux*): Base the port on the common
22455 and m68k GNU/Linux files rather than on the generic ELF ones.
22456 * config/m68k/uclinux.h (TARGET_VERSION): Override.
22457 (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
22458
22459 2007-01-18 Julian Brown <julian@codesourcery.com>
22460 Richard Sandiford <richard@codesourcery.com>
22461
22462 * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
22463 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
22464 * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
22465 before redefining.
22466 * config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
22467 80 unconditionally.
22468 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
22469
22470 2007-01-18 Richard Sandiford <richard@codesourcery.com>
22471
22472 * doc/install.texi: Document m68k-uclinuxoldabi.
22473 * config.gcc (m68k-*-uclinuxoldabi): New configuration.
22474 * config/m68k/uclinux-oldabi.h: New file, copied from
22475 config/m68k/uclinux.h.
22476
22477 2007-01-18 Kaz Kojima <kkojima@rr.iij4u.or.jp>
22478
22479 * config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it.
22480 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem.
22481 (m32r_compute_frame_size): Use unsigned for regno.
22482 (m32r_reload_lr): Use gen_frame_mem.
22483 (pop): New.
22484 (m32r_output_function_epilogue): Don't output the function epilogue
22485 textually here.
22486 (m32r_expand_epilogue): New.
22487 (direct_return): Return false if the function has the interrupt
22488 attribute.
22489 (m32r_hard_regno_rename_ok): Remove code for the textual epilogue.
22490 * config/m32r/m32r.md (epilogue): New expander.
22491 (return_lr, return_rte): New insns.
22492 (return): Make it expander.
22493 (return_normal): New expander.
22494
22495 2007-01-18 Josh Conner <jconner@apple.com>
22496
22497 PR target/30485
22498 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
22499 support for UNLE, UNLT, UNGE, and UNGT.
22500
22501 2007-01-18 Jan Hubicka <jh@suse.cz>
22502
22503 * tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
22504 * tree-tailcall (add_virtual_phis): Likewise.
22505 (optimize_tail_call): Return TODOs.
22506 (execute_tail_calls): Return TODOs.
22507 * tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO.
22508 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something
22509 changed.
22510 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
22511 Cleanup cfg using TODO.
22512 * tree-flow.h (cleanup_tree_cfg_loop): Update prototype.
22513 * passes.c (execute_function_todo): When cleanup did something, remove
22514 unused locals.
22515 * tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO.
22516 (make_edges): Don't cleanup_cfg.
22517
22518 2007-01-18 Uros Bizjak <ubizjak@gmail.com>
22519
22520 * reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS,
22521 UNSPEC_XTRACT_FRACT]: Use generic code for instructions that
22522 operate on the top of stack.
22523 [UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite
22524 register handling of instructions that output to the second
22525 stack slot.
22526 [UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove.
22527 (move_for_stack_reg): Special-case check for dead destination
22528 stack slot for constant load of 1.0 inside UNSPEC_TAN.
22529
22530 * config/i386/i386.md (UNSPEC_TAN): New constant.
22531 (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove.
22532 (fptanxf4_i387, fptan_extend<mode>xf4_i387): New patterns
22533 to correctly model move of constant 1.0 to top stack slot.
22534 (*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns.
22535 (unnamed peephole2 pattern): Remove corresponding peephole2
22536 pattern that optimizes tan insn and loading of constant 1.0.
22537 (tanxf2): Use fptanxf4_i387.
22538 (tan<mode>2): Rename from tansf2 and tandf2 and macroize insn
22539 patterns using X87MODEF12 mode macro. Use fptan_extend<mode>xf4_i387
22540 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
22541 disable patterns for SSE math.
22542 (sincos<mode>3): Use truncxf<mode>2_i387_noop for truncation.
22543 (fyl2x_extend<mode>xf3_i387): Use X87MODEF12 for operand 1.
22544
22545 2007-01-18 Dirk Mueller <dmueller@suse.de>
22546 Richard Guenther <rguenther@suse.de>
22547
22548 PR diagnostic/8268
22549 * doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
22550 * common.opt (Warray-bounds): Add new warning option.
22551 * c-opts.c (c_common_handle_option): Define -Warray-bounds
22552 if -Wall is given.
22553 * Makefile.in: make tree-vrp.o depend on toplev.h
22554 * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
22555 is enabled.
22556 (check_array_refs, check_array_bounds, check_array_ref): New.
22557
22558 2007-01-18 Jan Hubicka <jh@suse.cz>
22559
22560 * tree-ssa-ccp.c (ccp_finalize): Return if something changed.
22561 (execute_ssa_ccp): Return flags conditionally.
22562 * tree-ssa-propagate.c (substitue_and_fold): Return if something was
22563 changed.
22564 * tree-ssa-propagate.h (substitute_and_fold): Update prototype.
22565
22566 2007-01-18 Steven Bosscher <steven@gcc.gnu.org>
22567
22568 * cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set
22569 the CLEANUP_CFGLAYOUT flag when in cfglayout mode.
22570
22571 * Makefile.c (GTFILES): Add cfglayout.h.
22572 * gengtype.c (open_base_files): Likewise.
22573 * cfglayout.c (cfg_layout_function_footer,
22574 cfg_layout_function_header) Reindent to make gengtype happy.
22575 * cfglayout.h (cfg_layout_function_footer,
22576 cfg_layout_function_header): Add GTY(()) marker.
22577
22578 * ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null.
22579
22580 2007-01-18 Ben Elliston <bje@au.ibm.com>
22581
22582 * genautomata.c (write_automata): Include xstrerror output in the
22583 error message if writing the DFA description file fails.
22584
22585 2007-01-17 H.J. Lu <hongjiu.lu@intel.com>
22586
22587 * config/mips/mips-protos.h (mips_output_external): Make it
22588 return void.
22589 * config/mips/iris.h (TARGET_ASM_EXTERNAL_LIBCALL): Removed.
22590 * config/mips/mips.c (irix_output_external_libcall): Likewise.
22591 (extern_list): Likewise.
22592 (extern_head): Likewise.
22593 (TARGET_ASM_FILE_END): Likewise.
22594 (mips_file_end): Likewise.
22595 (mips_output_external): Rewritten.
22596
22597 2007-01-18 Ben Elliston <bje@au.ibm.com>
22598
22599 * genpreds.c (write_insn_preds_c): Only write out the function
22600 body for regclass_for_constraint if we have register constraints.
22601
22602 2007-01-17 Tom Tromey <tromey@redhat.com>
22603
22604 * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
22605 * doc/install.texi (Testing): Use sourceware.org.
22606 (Binaries): Likewise.
22607 (Specific): Likewise.
22608 * doc/contrib.texi (Contributors): Use sourceware.org.
22609
22610 2007-01-17 Anatoly Sokolov <aesok@post.ru>
22611
22612 * config/avr/avr.h (AVR_HAVE_LPMX): New macro.
22613 (AVR_ENHANCED): Rename to ...
22614 (AVR_HAVE_MUL): ... new.
22615 (avr_enhanced_p): Rename to ...
22616 (avr_have_mul_p): ... new.
22617 (TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of
22618 'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".
22619 * config/avr/avr.c (avr_enhanced_p): Rename to ...
22620 (avr_have_mul_p): ... new.
22621 (base_arch_s): Rename 'enhanced' to 'have_mul'.
22622 (avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of
22623 'avr_enhanced_p' and 'enhanced'.
22624 (ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use
22625 AVR_HAVE_MUL instead of AVR_ENHANCED.
22626 * avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
22627 (mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3,
22628 *mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL
22629 instead of AVR_ENHANCED.
22630 (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
22631 * libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__.
22632 (__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__.
22633
22634 2007-01-17 Ian Lance Taylor <iant@google.com>
22635
22636 * vec.h (VEC_reserve_exact): Define.
22637 (vec_gc_p_reserve_exact): Declare.
22638 (vec_gc_o_reserve_exact): Declare.
22639 (vec_heap_p_reserve_exact): Declare.
22640 (vec_heap_o_reserve_exact): Declare.
22641 (VEC_OP (T,A,reserve_exact)): New static inline function, three
22642 versions.
22643 (VEC_OP (T,A,reserve)) [all versions]: Remove handling of
22644 negative parameter.
22645 (VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
22646 (VEC_OP (T,A,copy)) [all versions]: Likewise.
22647 (VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
22648 * vec.c (calculate_allocation): Add exact parameter. Change all
22649 callers.
22650 (vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
22651 (vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
22652 (vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
22653 (vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
22654 (vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
22655 (vec_heap_p_reserve_exact): New function.
22656 (vec_heap_o_reserve_exact): New function.
22657
22658 2007-01-17 Jan Hubicka <jh@suse.cz>
22659
22660 * ipa-type-escape.c (look_for_casts): Revamp using handled_component_p.
22661
22662 2007-01-17 Eric Christopher <echristo@apple.com>
22663
22664 * config.gcc: Support core2 processor.
22665
22666 2007-01-16 Jan Hubicka <jh@suse.cz>
22667
22668 * tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing
22669 the names, just unlink the chain so we don't crash on dangling
22670 pointers
22671 to dead SSA names.
22672
22673 2007-01-16 Jan Hubicka <jh@suse.cz>
22674
22675 * cgraph.h (cgraph_decide_inlining_incrementally): Kill.
22676 * tree-pass.h: Reorder to make IPA passes appear toegher.
22677 (pass_early_inline, pass_inline_parameters, pass_apply_inline):
22678 Declare.
22679 * cgraphunit.c (cgraph_finalize_function): Do not compute inling
22680 parameters, do not call early inliner.
22681 * ipa-inline.c: Update comments. Include tree-flow.h
22682 (cgraph_decide_inlining): Do not compute inlining parameters.
22683 (cgraph_decide_inlining_incrementally): Return TODOs; assume to
22684 be called with function context set up.
22685 (pass_ipa_inline): Remove unreachable functions before pass.
22686 (cgraph_early_inlining): Simplify assuming to be called from the
22687 PM as local pass.
22688 (pass_early_inline): New pass.
22689 (cgraph_gate_ipa_early_inlining): New gate.
22690 (pass_ipa_early_inline): Turn into simple wrapper.
22691 (compute_inline_parameters): New function.
22692 (gate_inline_passes): New gate.
22693 (pass_inline_parameters): New pass.
22694 (apply_inline): Move here from tree-optimize.c
22695 (pass_apply_inline): New pass.
22696 * ipa.c (cgraph_remove_unreachable_nodes): Verify cgraph after
22697 transforming.
22698 * tree-inline.c (optimize_inline_calls): Return TODOs rather than
22699 doing them by hand.
22700 (tree_function_versioning): Do not allocate dummy struct function.
22701 * tree-inline.h (optimize_inline_calls): Update prototype.
22702 * tree-optimize.c (execute_fixup_cfg): Export.
22703 (pass_fixup_cfg): Remove
22704 (tree_rest_of_compilation): Do not apply inlines.
22705 * tree-flow.h (execute_fixup_cfg): Declare.
22706 * Makefile.in (gt-passes.c): New.
22707 * passes.c: Include gt-passes.h
22708 (init_optimization_passes): New passes.
22709 (nnodes, order): New static vars.
22710 (do_per_function_toporder): New function.
22711 (execute_one_pass): Dump current pass here.
22712 (execute_ipa_pass_list): Don't dump current pass here.
22713
22714 2007-01-16 Janis Johnson <janis187@us.ibm.com>
22715
22716 * config/dfp-bit.c (dfp_compare_op): Return separate value for NaN.
22717 (DFP_NE, DFP_LE, DFP_GE): Return false for NaN.
22718
22719 2007-01-16 David Edelsohn <edelsohn@gnu.org>
22720
22721 * config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
22722 (strong_alias): Define.
22723 (__gcc_qmul): Provide non-FMA for soft-float.
22724 (__gcc_qdiv): Same.
22725 (__gcc_qneg): New.
22726 (__gcc_qeq): New.
22727 (__gcc_qle): New.
22728 (__gcc_qge): New.
22729 (__gcc_qunord): New.
22730 (__gcc_stoq): New.
22731 (__gcc_dtoq): New.
22732 (__gcc_qtos): New.
22733 (__gcc_qtod): New.
22734 (__gcc_qtoi): New.
22735 (__gcc_qtou): New.
22736 (__gcc_itoq): New.
22737 (__gcc_utoq): New.
22738 (fmsub): New.
22739 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
22740 soft-float functions.
22741 * config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
22742 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
22743 about long double soft float.
22744
22745 2007-01-16 Dorit Nuzman <dorit@il.ibm.com>
22746 Tehila Meyzels <tehila@il.ibm.com>
22747
22748 * tree-vectorizer.h (is_pattern_stmt_p): New.
22749 * tree-vect-analyze.c (vect_determine_vectorization_factor): Fix
22750 formatting (tabs instead of spaces). Cleanup and clarify setting
22751 of STMT_VINFO_VECTYPE. Call is_pattern_stmt_p.
22752 * tree-vect-transform.c (vect_get_vec_def_for_operand): Fix typo.
22753 (vectorizable_type_demotion): Check that types are integral.
22754 (vectorizable_type_promotion): Likewise.
22755 (vectorizable_store): Fix typo. Eliminate new-line at end of
22756 comments.
22757
22758 2007-01-16 Jan Hubicka <jh@suse.cz>
22759
22760 * tree-ssanames.c (release_dead_ssa_names): Remove invalidated
22761 cgraph edges too.
22762
22763 2007-01-15 Eric Christopher <echristo@apple.com>
22764
22765 * ifcvt.c: Include vec.h, vecprim.h.
22766 (check_cond_move_block): New argument regs.
22767 Reorganize. Add registers used to regs.
22768 (cond_move_process_if_block): Use regs set above as
22769 loop bounds.
22770
22771 2007-01-15 Eric Christopher <echristo@apple.com>
22772
22773 * config/darwin.h: Update copyright.
22774 (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella.
22775 (LINK_COMMAND_SPEC): Add -u.
22776 (LINK_SPEC): Fix umbrella for above.
22777
22778 2007-01-15 Joseph S. Myers <joseph@codesourcery.com>
22779
22780 * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
22781 glibc CVS.
22782
22783 2007-01-15 Tom Tromey <tromey@redhat.com>
22784
22785 * doc/sourcebuild.texi (libgcj Tests): Don't mention jacks.
22786 * doc/install.texi (Testing): Don't mention jacks.
22787 (Configuration): Document --enable-java-maintainer-mode. Move
22788 --with-java-home to libgcj-specific section. Document
22789 --with-ecj-jar.
22790 (Prerequisites): Mention --enable-java-maintainer-mode, ecj1.
22791
22792 2007-01-15 Jan Hubicka <jh@suse.cz>
22793
22794 * tree-ssa-dce.c (DCE_TODOs): New.
22795 (propagate_necessity): Return if something changed.
22796 (eliminate_unnecessary_stmts): Likewise.
22797 (perform_tree_ssa_dce): Return TODO flags when needed.
22798 (pass_dce, pass_dce_loop, pass_cd_dce): Remove TODO flags.
22799
22800 2007-01-15 Uros Bizjak <ubizjak@gmail.com>
22801
22802 * config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
22803 (fyl2x_extend<mode>xf3_i387): New insn pattern.
22804 (log<mode>2): Rename from logsf2 and logdf2 and macroize insn
22805 patterns using X87MODEF12 mode macro. Extend operand 1
22806 to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
22807 (log10<mode>2): Ditto.
22808 (log2<mode>2): Ditto.
22809 (log1p<mode>2): Ditto.
22810 (logb<mode>2): Ditto.
22811 (fyl2xp1xf3_i387): Rename from fyl2xp1_xf3.
22812 (fyl2xp1_extend<mode>xf3_i387): New insn pattern.
22813 (*fxtractxf3_i387): Rename from *fxtractxf3.
22814 (fxtract_extend<mode>xf3_i387): New insn pattern.
22815 (ilogbsi2): Use match_dup 3, not match_operand:XF 3.
22816 * config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387()
22817 and gen_fyl2xxf3_i387().
22818
22819 2007-01-14 Zdenek Dvorak <dvorakz@suse.cz>
22820
22821 * loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement.
22822 * cfgloopmanip.c (fix_loop_placement): Made static. Use
22823 get_loop_exit_edges. Changed return type to bool.
22824 * cfgloop.h (fix_loop_placement): Declaration removed.
22825
22826 2007-01-14 Dorit Nuzman <dorit@il.ibm.com>
22827
22828 * param.h (MIN_VECT_LOOP_BOUND): New.
22829 * params.def (MIN_VECT_LOOP_BOUND): New.
22830 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Takes another
22831 argument - minimum threshold for number of iterations.
22832 * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge): Add another
22833 argument to declaration.
22834 * tree-vect-analyze.c (vect_analyze_operations): Check value of
22835 MIN_VECT_LOOP_BOUND.
22836 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Call
22837 slpeel_tree_peel_loop_to_edge with additional argument.
22838 (vect_do_peeling_for_alignment): Likewise.
22839 * doc/invoke.texi (min-vect-loop-bound): Document new param option.
22840
22841 2007-01-14 Uros Bizjak <ubizjak@gmail.com>
22842
22843 PR target/30413
22844 * config/i386/i386.c (print_operand) ['z']: Output 'b' for
22845 operands of size 1.
22846
22847 2007-01-14 Jan Hubicka <jh@suse.cz>
22848
22849 * tree-dfa.c (remove_referenced_var): New function.
22850 * tree-ssa-live.c (remove_unused_locals): Walk referenced vars and
22851 prune referenced vars list too.
22852 * tree-flow.h (remove_referenced_var): Declare.
22853
22854 2007-01-14 Jan Hubicka <jh@suse.cz>
22855
22856 * tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs
22857 separately.
22858 (remove_stmt_from_eh_region_fn): Do not remove call_exprs.
22859 (verify_eh_throw_stmt_node, verify_eh_throw_table_statements): Kill.
22860 * except.h (verify_eh_throw_table_statements): Kill prototype.
22861 * cfgexpand.c (expand_gimple_basic_block): Propagate Eh regions
22862 into call exrepssions.
22863 * tree-optimize.c (execute_free_cfg_annotatiosn): Do not call
22864 eh trhow verifier.
22865 * tree-cfg.c: Include pointer-set.h.
22866 (verify_node_sharing): Work on pointer set.
22867 (verify_eh_throw_stmt_node): New.
22868 (verify_stmts): Use pointers sets, verify throw_stmt.
22869
22870 2007-01-13 Zdenek Dvorak <dvorakz@suse.cz>
22871
22872 * ipa-reference.c (analyze_function): Consider also addresses taken
22873 in phi nodes.
22874
22875 2007-01-12 Roger Sayle <roger@eyesopen.com>
22876
22877 * c-typeck.c (null_pointer_constant_p): Replace use of
22878 TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
22879 (build_c_cast): Likewise.
22880
22881 2007-01-12 Roger Sayle <roger@eyesopen.com>
22882
22883 * tree.h (force_fit_type_double): Remove unused final argument.
22884 * c-common.c (constant_expression_warning): Replace use of
22885 TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
22886 (convert_and_check): Likewise.
22887 (shorten_compare): Update call to force_fit_type_double.
22888 (c_common_truthvalue_conversion) <INTEGER_CST>: Use integer_zerop.
22889 * convert.c (convert_to_pointer): Update call to
22890 force_fit_type_double.
22891 * fold-const.c (force_fit_type_double): Remove overflowed_const
22892 argument.
22893 (int_const_binop, fold_convert_const_int_from_int,
22894 fold_convert_const_int_from_real, fold_div_compare,
22895 fold_sign_changed_comparison, fold_unary, fold_negate_const,
22896 fold_abs_const, fold_not_const): Remove the final argument from
22897 calls to force_fit_type_double.
22898
22899 2007-01-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
22900
22901 * configure.ac: Set insn to "nop" for spu-*-* also.
22902 * configure: Regenerate.
22903
22904 2007-01-12 Olga Golovanevsky <olga@il.ibm.com>
22905
22906 * builtins.def : Add BUILT_IN_FREE.
22907
22908 2007-01-12 Jan Hubicka <jh@suse.cz>
22909
22910 PR tree-optimization/30443
22911 * tree-inline.c (tree_function_versioning): Do not optimize when
22912 cloning for inlining.
22913
22914 2007-01-12 Zdenek Dvorak <dvorakz@suse.cz>
22915
22916 * doc/loop.texi: Document recording of loop exits.
22917 * cfgloopmanip.c (loopify, duplicate_loop): Use alloc_loop.
22918 (update_single_exits_after_duplication,
22919 update_single_exit_for_duplicated_loop,
22920 update_single_exit_for_duplicated_loops): Removed.
22921 (duplicate_loop_to_header_edge): Do not call
22922 update_single_exits_after_duplication and
22923 update_single_exit_for_duplicated_loops.
22924 (loop_version): Do not update single_exit information.
22925 (fix_loop_structure): Use record_loop_exits instead of
22926 mark_single_exit_loops.
22927 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update
22928 the lists of loop exits.
22929 * cfghooks.c (redirect_edge_and_branch, redirect_edge_and_branch_force,
22930 split_edge, merge_blocks): Update the lists of loop exits.
22931 * modulo-sched.c (sms_schedule): Pass LOOPS_HAVE_RECORDED_EXITS to
22932 loop_optimizer_init.
22933 * loop-init.c (loop_optimizer_init): Call record_loop_exits instead
22934 of mark_single_exit_loops.
22935 (loop_optimizer_finalize): Call release_recorded_exits.
22936 * tree-ssa-loop.c (tree_loop_optimizer_init): Pass
22937 LOOPS_HAVE_RECORDED_EXITS to loop_optimizer_init.
22938 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Do not
22939 update single exit information.
22940 * lambda-code.c (perfect_nestify): Ditto.
22941 * cfgloop.c (flow_loop_free): Destroy the list of exits of the loop.
22942 (mark_single_exit_loops): Removed.
22943 (alloc_loop, loop_exit_hash, loop_exit_eq, loop_exit_free,
22944 get_exit_descriptions, rescan_loop_exit, record_loop_exits,
22945 dump_recorded_exit, dump_recorded_exits, release_recorded_exits): New
22946 functions.
22947 (get_loop_exit_edges, single_exit): Use recorded exit lists.
22948 (add_bb_to_loop, remove_bb_from_loops): Update the lists of loop exits.
22949 (verify_loop_structure): Verify consistency of the exit lists.
22950 (flow_loops_find): Use alloc_loop. Initialize exits hash.
22951 (set_single_exit): Removed.
22952 * cfgloop.h (struct loop_exit): New function.
22953 (struct loop): single_exit_ field replaced by exits field.
22954 (LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by
22955 LOOPS_HAVE_RECORDED_EXITS.
22956 (struct loops): Added exits hash.
22957 (mark_single_exit_loops, set_single_exit): Declaration removed.
22958 (release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare.
22959
22960 2007-01-12 Richard Sandiford <richard@codesourcery.com>
22961
22962 * doc/invoke.texi: Avoid use of @headitem.
22963
22964 2007-01-12 Richard Sandiford <richard@codesourcery.com>
22965
22966 * cse.c (cse_insn): Move HAVE_CC0 code after declarations.
22967
22968 2007-01-12 Richard Sandiford <richard@codesourcery.com>
22969
22970 * doc/install.texi: Fix m68k-*-* anchor and add m68k-*-* to the
22971 list of targets.
22972
22973 2007-01-12 Nathan Sidwell <nathan@codesourcery.com>
22974 Richard Sandiford <richard@codesourcery.com>
22975
22976 * doc/invoke.texi: Document -mno-bitfield, -mno-rtd and -mno-short.
22977 * config/m68k/m68k.opt: Resort options.
22978 (mbitfield, mrtd, mshort): Remove RejectNegative properties.
22979
22980 2007-01-12 Nathan Sidwell <nathan@codesourcery.com>
22981 Richard Sandiford <richard@codesourcery.com>
22982
22983 * doc/invoke.texi: Document the macros that are defined by
22984 m68k's -mtune and -mhard-float options.
22985 * config/m68k/m68k-protos.h (m68k_cpp_cpu_ident) Declare.
22986 (m68k_cpp_cpu_family): Likewise.
22987 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add a full set
22988 of __ucfv*__ macros. Define __mcffpu__ if generating code for
22989 ColdFire FPUs. Define __mcf_cpu_* and __mcf_family_* macros.
22990 * config/m68k/m68k.c (m68k_cpp_cpu_ident): New function.
22991 (m68k_cpp_cpu_family): Likewise.
22992
22993 2007-01-12 Richard Sandiford <richard@codesourcery.com>
22994
22995 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Treat all mc68*
22996 macros besides mc68000 as tuning macros. Use a switch statement
22997 to set them and mcpu32.
22998
22999 2007-01-12 Julian Brown <julian@codesourcery.com>
23000
23001 * config/m68k/m68k.h: Use TARGET_68040 instead of TARGET_68040_ONLY.
23002 (TARGET_68040_ONLY): Rename to...
23003 (TARGET_68040): ...this.
23004 * config/m68k/m68k.c: Use TARGET_68040 instead of TARGET_68040_ONLY.
23005 * config/m68k/m68k.md: Likewise.
23006
23007 2007-01-12 Julian Brown <julian@codesourcery.com>
23008 Nathan Sidwell <nathan@codesourcery.com>
23009 Richard Sandiford <richard@codesourcery.com>
23010
23011 * config.gcc (m680[012]0-*-*, m68k*-*-*): Set m68k_cpu_ident to
23012 the -mcpu= argument associated with the --with-cpu setting.
23013 Define M68K_DEFAULT_TUNE to the default -mtune= option,
23014 if different from the one implied by the -mcpu setting.
23015 Accept --with-cpu=FOO if FOO is listed in m68k-devices.def,
23016 using mcpu=FOO as the default CPU option. Set target_cpu_default2.
23017 * doc/invoke.texi: Mention ColdFire in the introduction to the
23018 m68k options. Document the new -march, -mcpu, -mtune, -mdiv,
23019 -mno-div and -mhard-float options. Make -m68881 a synonym for
23020 -mhard-float. Document the previously-undocumented -m5206e,
23021 -m528x, -m5307 and -m5407 options. Tweak the existing option
23022 documentation for consistency.
23023 * doc/install.texi: Mention new --with-cpu arguments.
23024 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Only use the
23025 default CPU if neither -mcpu nor -march are specified.
23026 (ASM_CPU_SPEC): Pass down -mcpu and -march options.
23027 (TARGET_CPU_CPP_BUILTINS): Set __mcfisa*__ macros from
23028 TARGET_ISA*. Set the legacy __mcf*__ cpu macros in the same way,
23029 using m68k_tune to decide between families that implement the
23030 same ISA. Use m68k_tune to set __mcfv4e__.
23031 (FL_BITFIELD, FL_68881, FL_COLDFIRE, FL_CF_HWDIV, FL_CF_MAC)
23032 (FL_CF_EMAC, FL_CF_EMAC_B, FL_CF_USP, FL_CF_FPU, FL_ISA_68000)
23033 (FL_ISA_68010, FL_ISA_68020, FL_ISA_68040, FL_ISA_A, FL_ISA_B)
23034 (FL_ISA_C, FL_ISA_MMU): New macros.
23035 (MASK_COLDFIRE): Delete.
23036 (TARGET_68010, TARGET_68020, TARGET_68040_ONLY, TARGET_COLDFIRE)
23037 (TARGET_ISAB): Redefine in terms of m68k_cpu_flags.
23038 (TARGET_68881, TARGET_COLDFIRE_FPU): Redefine in terms of m68k_fpu.
23039 (TARGET_HARD_FLOAT): Do not define here.
23040 (TARGET_ISAAPLUS, TARGET_ISAC): New macros.
23041 (TUNE_68000): New macro.
23042 (TUNE_68000_10): Redefine in terms of TUNE_68000 and TUNE_68010.
23043 (TUNE_68010, TUNE_68030, TUNE_68040, TUNE_68060, TUNE_CPU32)
23044 (TUNE_CFV2): Redefine in terms of m68k_tune.
23045 (uarch_type, target_device, fpu_type): New enums.
23046 (m68k_cpu, m68k_tune, m68k_fpu, m68k_cpu_flags): Declare.
23047 * config/m68k/m68k.c (TARGET_DEFAULT): Remove MASK_68881.
23048 (FL_FOR_isa_00, FL_FOR_isa_10, FL_FOR_isa_20, FL_FOR_isa_40)
23049 (FL_FOR_isa_cpu32, FL_FOR_isa_a, FL_FOR_isa_aplus, FL_FOR_isa_b)
23050 (FL_FOR_isa_c): New macros.
23051 (m68k_isa): New enum.
23052 (m68k_target_selection): New structure.
23053 (all_devices, all_isas, all_microarchs): New tables.
23054 (m68k_cpu_entry, m68k_arch_entry, m68k_tune_entry, m68k_cpu)
23055 (m68k_tune, m68k_fpu, m68k_cpu_flags): New variables.
23056 (MASK_ALL_CPU_BITS): Delete.
23057 (m68k_find_selection): New function.
23058 (m68k_handle_option): Handle -mcpu=, -march= and -mtune=.
23059 Map the legacy target options to a combination of the new ones.
23060 (override_options): Set m68k_cpu, m68k_tune, m68k_fpu and
23061 m68k_cpu_flags. Handle M68K_DEFAULT_TUNE. Use m68k_cpu_flags
23062 to derive default MASK_BITFIELD, MASK_CF_HWDIV and MASK_HARD_FLOAT
23063 settings.
23064 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, mcfv4e)
23065 (m68010, m68020, m68020-40, m68020-60, m68030, m68040): Remove Mask
23066 properties.
23067 (m68881, msoft-float): Change mask from 68881 to HARD_FLOAT.
23068 (march=, mcpu=, mdiv, mhard-float, mtune=): New options.
23069 * config/m68k/m68k-devices.def: New file.
23070
23071 2007-01-12 Richard Sandiford <richard@codesourcery.com>
23072 Nathan Sidwell <nathan@codesourcery.com>
23073
23074 * config/m68k/m68k.h (ASM_CPU_SPEC, ASM_SPEC, EXTRA_SPECS)
23075 (SUBTARGET_EXTRA_SPECS): New macros.
23076 * config/m68k/linux.h (ASM_SPEC): Remove CPU flags;
23077 use %(asm_cpu_spec) instead.
23078 * config/m68k/m68k-none.h (ASM_SPEC): Likewise.
23079 * config/m68k/openbsd.h (ASM_SPEC): Likewise.
23080 * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
23081 (EXTRA_SPECS): Rename to...
23082 (SUBTARGET_EXTRA_SPECS): ...this.
23083
23084 2007-01-12 Nathan Sidwell <nathan@codesourcery.com>
23085 Richard Sandiford <richard@codesourcery.com>
23086 Julian Brown <julian@codesourcery.com>
23087
23088 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
23089 (m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu
23090 to the configuration's default CPU.
23091 (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise.
23092 Remove default masks.
23093 (m680[012]0-*-*): Set the default with_cpu to the first part of
23094 the target name.
23095 (m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu.
23096 (m68k*-*-linux): Extend the --with-cpu handling to...
23097 (m680[012]0-*-*, m68k*-*-*): ...these configurations. Allow m68000
23098 and m68010. Don't set target_cpu_default2.
23099 * doc/install.texi: Document --with-cpu for m68k.
23100 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define.
23101 * config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k)
23102 (M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030)
23103 (M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT)
23104 (ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete.
23105 (ASM_SPEC): Remove use of %(asm_cpu_default).
23106 (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete.
23107 * config/m68k/linux.h (TARGET_DEFAULT): Delete.
23108 (CPP_SPEC): Merge definitions. Do not handle __HAVE_68881__ here.
23109 * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
23110 __HAVE_FPU__ if TARGET_HARD_FLOAT.
23111 (TARGET_DEFAULT): Delete.
23112 (EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec,
23113 cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec.
23114 (CPP_CPU_SPEC): Delete.
23115 (TARGET_VERSION): Merge definitions, using TARGET_68010 to pick
23116 the appropriate string.
23117 (CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete.
23118 (CPP_SPEC): Define to NETBSD_CPP_SPEC.
23119 (ASM_SPEC): Don't use %(asm_default_spec).
23120 * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
23121 TARGET_DEFAULT and add MASK_68881.
23122 * config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments.
23123
23124 2007-01-12 Richard Sandiford <richard@codesourcery.com>
23125
23126 * config.gcc (m68010-*-netbsdelf*): Add MASK_68010.
23127 (m68k*-*-netbsdelf*, m68k*-*-openbsd*, m68k*-linux*): Add
23128 MASK_68010 alongside MASK_68020.
23129 * doc/invoke.texi: Document -m68010.
23130 * config/m68k/m68k.opt (m68010): New.
23131 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define mc68010
23132 if TUNE_68010.
23133 (TUNE_68010): New macro.
23134 * config/m68k/m68k-none.h (M68K_CPU_m68k, M68K_CPU_m68010)
23135 (M68K_CPU_m68020, M68K_CPU_m68030, M68K_CPU_m68040)
23136 (M68K_CPU_m68332): Add MASK_68010.
23137 * config/m68k/linux.h (TARGET_DEFAULT): Add MASK_68010 to
23138 fallback definition.
23139 * config/m68k/netbsd-elf.h (CPP_CPU_SPEC): Remove now-redundant
23140 defines.
23141 * config/m68k/m68k.c (MASK_ALL_CPU_BITS): Add MASK_68010.
23142 (m68k_handle_option): Handle OPT_m68010. Add MASK_68010
23143 to all entries that use MASK_68020.
23144 (output_move_simode_const, output_move_himode, output_move_qimode)
23145 (output_move_stricthi, output_move_strictqi): Use TARGET_68010
23146 instead of TARGET_68020 to select clr behavior. Remove comment
23147 about there being no TARGET_68010.
23148 * config/m68k/m68k.md: Likewise throughout.
23149
23150 2007-01-12 Julian Brown <julian@codesourcery.com>
23151
23152 * config/m68k/m68k.h (TARGET_ISAB): New macro.
23153 * config/m68k/m68k.c: Use TARGET_ISAB rather than TARGET_CFV4.
23154 * config/m68k/m68k.md: Likewise.
23155
23156 2007-01-12 Julian Brown <julian@codesourcery.com>
23157
23158 * config/m68k/m68k.h (LEGITIMATE_INDEX_P, LEGITIMIZE_ADDRESS): Use
23159 TARGET_COLDFIRE_FPU instead of TARGET_CFV4E.
23160
23161 2007-01-12 Julian Brown <julian@codesourcery.com>
23162
23163 * config/m68k/m68k.h (TUNE_68040_60): New macro.
23164 * config/m68k/m68k.c (standard_68881_constant_p): Use it.
23165 * config/m68k/m68k.md: Likewise.
23166
23167 2007-01-12 Julian Brown <julian@codesourcery.com>
23168 Richard Sandiford <richard@codesourcery.com>
23169
23170 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Use TUNE_68030
23171 instead of TARGET_68030, TUNE_68040 instead of TARGET_68040,
23172 TUNE_68060 instead of TARGET_68060 and TUNE_CPU32 instead of
23173 TARGET_CPU32.
23174 (TARGET_CPU32): Rename to...
23175 (TUNE_CPU32): ...this.
23176 (TUNE_68000_10, TUNE_68030, TUNE_68040, TUNE_68060)
23177 (TUNE_CFV2): New macros.
23178 * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Simplify;
23179 remove conditions that are implied by TARGET_68020.
23180 * config/m68k/m68k.c (m68k_output_function_prologue): Use TUNE_68040
23181 instead of TARGET_68040 and TUNE_CPU32 instead of TARGET_CPU32.
23182 (m68k_output_function_epilogue): Likewise.
23183 (m68k_rtx_costs): Likewise. Use TUNE_68060 instead of TARGET_68060
23184 and TUNE_CFV2 instead of TARGET_5200. Use TUNE_68000_10 instead of
23185 "!TARGET_68020 && !TARGET_COLDFIRE" to choose between 68000 and
23186 non-68000 timings. Refactor multiplication and division costs.
23187 (output_addsi3): Use TUNE_68040 instead of TARGET_68040 and
23188 TUNE_CPU32 instead of TARGET_CPU32.
23189 (standard_68881_constant_p): Use TUNE_68040 instead of TARGET_68040
23190 and TUNE_68060 instead of TARGET_68060.
23191 * config/m68k/m68k.md: Use TUNE_68040 instead of TARGET_68040,
23192 TUNE_68060 instead of TARGET_68060, and TUNE_CPU32 instead of
23193 TARGET_CPU32.
23194 (movsi_const0): Use TUNE_68000_10 rather than "!TARGET_68020
23195 && !TARGET_COLDFIRE" to choose between moveq and clr.
23196 Likewise in the unnamed movsf pattern.
23197 (ashlsi_17_24, lshrsi_17_24): Guard with TUNE_68000_10 rather than
23198 "!TARGET_68020 && !TARGET_COLDFIRE". Likewise the unnamed
23199 ashiftrt pattern.
23200
23201 2007-01-12 Richard Sandiford <richard@codesourcery.com>
23202
23203 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Increase amount
23204 of tabbing before backslashes.
23205
23206 2007-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23207
23208 * pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
23209 * pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
23210 (ASM_OUTPUT_INTERNAL_LABEL): Define.
23211
23212 2007-01-11 Zdenek Dvorak <dvorakz@suse.cz>
23213
23214 * tree-ssa-loop-ivopts.c (extract_cond_operands): Split from
23215 find_interesting_uses_cond.
23216 (find_interesting_uses_cond): Use extract_cond_operands.
23217 (rewrite_use_compare): Use extract_cond_operands and
23218 force_gimple_operand_bsi. Do not call update_stmt.
23219 (determine_use_iv_cost_condition): Use extract_cond_operands.
23220 Return cheaper of using original bound and changing the exit bound.
23221
23222 2007-01-11 Zdenek Dvorak <dvorakz@suse.cz>
23223
23224 PR tree-optimization/29516
23225 * tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
23226 most_expensive_mult_to_index, addr_to_parts,
23227 create_mem_ref, maybe_fold_tmr): Make the type of
23228 fields of TARGET_MEM_REF sizetype.
23229 (move_fixed_address_to_symbol, move_pointer_to_base):
23230 New functions.
23231 * tree.def (TARGET_MEM_REF): Add comment on types of
23232 the operands.
23233
23234 2007-01-11 Joseph Myers <joseph@codesourcery.com>
23235
23236 * c-common.c (vector_types_convertible_p): Treat opaque types as
23237 always convertible if they have the same size, but not otherwise.
23238
23239 2007-01-11 Steven Bosscher <steven@gcc.gnu.org>
23240
23241 * ifcvt.c (struct noce_if_info): Add comments to the fields.
23242 Remove the b_unconditional field.
23243 (noce_try_sign_mask): Do not look at b_unconditional.
23244 (noce_process_if_block): Do not use merge_if_blocks. Update
23245 the CFG here. Do not set b_unconditional.
23246 (cond_move_process_if_block): Likewise.
23247 (find_cond_trap): Likewise.
23248 (check_cond_move_block): Require simple jump insns at the end
23249 of the basic block.
23250
23251 2007-01-11 Jan Hubicka <jh@suse.cz>
23252
23253 PR tree-optimization/1046
23254 * tree-tailcall.c (suitable_for_tail_call_opt_p): Use TREE_ADDRESSABLE
23255 when alias info is not ready.
23256 (pass_tail_recursion): Do not require aliasing.
23257 * tree-ssa-copyrename.c (pass_rename_ssa_cop): Likewise.
23258 * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Likewise.
23259 * tree-ssa-copy.c (pass_copy_prop): Likewise.
23260 * tree-ssa-forwprop.c (pass_forwprop): Likewise.
23261 * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Likewise.
23262 * passes.c (init_optimization_passes): Execute rename_ssa_copies,
23263 ccp, forwprop, copy_prop, merge_phi, copy_prop, dce and tail recursion
23264 before inlining.
23265 * tree-ssa-operands.c (add_virtual_operand, get_indirect_ref_operand):
23266 When aliasing is not build, mark statement as volatile.
23267
23268 2007-01-11 Tom Tromey <tromey@redhat.com>
23269
23270 PR preprocessor/15185, PR preprocessor/20989:
23271 * doc/cppopts.texi <-MT>: Update description of algorithm for
23272 computing default target.
23273 <-M, -MD>: Reword "basename" text.
23274
23275 2007-01-11 Roger Sayle <roger@eyesopen.com>
23276
23277 * builtins.c (expand_builtin_pow, expand_builtin_powi,
23278 fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_trunc,
23279 fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
23280 fold_builtin_int_int_roundingfn, fold_builtin_bitop,
23281 fold_builtin_bswap, real_constp, fold_builtin_pow,
23282 fold_builtin_powi, fold_builtin_signbit, fold_builtin_copysign,
23283 do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Replace
23284 uses of the macro TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
23285 * convert.c (convert_to_pointer): Likewise.
23286 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
23287 * fold-const.c (force_fit_type, fold_negate_expr, int_const_binop,
23288 const_binop, fold_convert_const_int_from_int,
23289 fold_convert_const_int_from_real,
23290 fold_convert_const_real_from_real, sign_bit_p,
23291 optimize_minmax_comparison, extract_muldiv_1, fold_div_compare,
23292 fold_sign_changed_comparison, fold_unary, fold_comparison,
23293 fold_binary, multiple_of_p, tree_Expr_non_zero_p,
23294 fold_negate_const, fold_abs_const, fold_not_const): Likewise.
23295 * print-tree.c (print_node_brief, print_node): Likewise.
23296 * stor-layout.c (place_field, layout_type): Likewise.
23297 * tree-chrec.c (keep_cast): Likewise.
23298 * tree.c (build_vector, build_real, build_real_from_int_cst,
23299 build_complex): Likewise.
23300
23301 2007-01-11 Roger Sayle <roger@eyesopen.com>
23302
23303 * tree.h (TREE_CONSTANT_OVERFLOW): Obsolete. For the time being,
23304 treat TREE_CONSTANT_OVERFLOW as a synonym of TREE_OVERFLOW.
23305
23306 2007-01-11 Paolo Bonzini <bonzini@gnu.org>
23307
23308 * configure.ac (strict1_warn): Rename to strict_warn.
23309 (WERROR, --enable-werror, symlink hacks, stage1_cflags,
23310 cc_set_by_configure, quoted_cc_set_by_configure,
23311 stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure,
23312 all_boot_languages, all_stagestuff): Remove.
23313 (target_list): Remove bootstrap targets.
23314 * Makefile.in (quickstrap): Unconditionally make a synonym of all.
23315 (BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING,
23316 REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS,
23317 SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF,
23318 VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS,
23319 STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build,
23320 stage1_copy, stage2_build, stage2_copy, stageprofile_build,
23321 stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build,
23322 stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap,
23323 bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3,
23324 bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2,
23325 unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2,
23326 restage3, restage4, restageprofile, restagefeedback, bubbleestrap,
23327 cleanstrap, unstrap, restrap, *compare, *compare3, *compare4,
23328 *compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1,
23329 stage2-start, stage2, stage3-start, stage3, stage4-start, stage4,
23330 stageprofile-start, stageprofile, stagefeedback-start, stagefeedback,
23331 risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove.
23332 (ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS.
23333 (STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES.
23334 (mostlyclean): Adjust.
23335 (clean, distclean): Don't mention bootstrap stuff.
23336 * configure: Regenerate.
23337 * ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in,
23338 java/config-lang.in, objc/config-lang.in, objcp/config-lang.in,
23339 treelang/config-lang.in (stagestuff): Remove.
23340 * doc/sourcebuild.texi (stage1, stage2, stage3, stage4,
23341 stageprofile, stagefeedback, stagestuff): Remove mention.
23342
23343 2007-01-11 Nick Clifton <nickc@redhat.com>
23344
23345 * config/mcore/predicates.md (mcore_general_movesrc_operand):
23346 Accept CONSTs.
23347 (mcore_general_movdst_operand): Do not accept CONST_INTs.
23348 (mcore_arith_K_S_operand): Run the test for the S constraint not
23349 the test for the M constraint.
23350 (mcore_addsub_operand): Do not accept integer values that are
23351 larger than 32 bits.
23352 * config/mcore/mcore.md: Remove unused constraints from split.
23353 (andsi3): Use HOST_WIDE_INT instead of int to hold an INTVAL.
23354 (addsi3): Likewise.
23355 (allocate_stack): Likewise.
23356 * config/mcore/mcore.c (mcore_print_operand): Restrict output of P
23357 operands to 32 bits.
23358 (mcore_const_costs): Use HOST_WIDE_INT instead of int to hold an
23359 INTVAL.
23360 (mcore_and_cost, mcore_modify_comparison, const_ok_for_mcore,
23361 mcore_const_ok_for_inline, mcore_const_trick_uses_not,
23362 try_constant_tricks, mcore_num_ones, mcore_num_zeros,
23363 mcore_output_bclri, mcore_output_andn, output_inline_const,
23364 mcore_output_move, mcore_output_movedouble): Likewise.
23365 (mcore_output_cmov): Use CONST_OK_FOR_M and CONST_OK_FOR_N.
23366 (output_inline_const): Likewise.
23367 (output_inline_const): Fix format strings used in sprintf
23368 statements.
23369 * config/mcore/mcore-protos.h: Update prototypes for changed
23370 functions in mcore.c.
23371 * config/mcore/mcore.h (CONST_OK_FOR_I): Cast values to
23372 HOST_WIDE_INT and not int.
23373 (CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M,
23374 CONST_OK_FOR_N): Likewise.
23375 (LEGITIMATE_CONSTANT_P): Also check CONSTANT_P.
23376 (GO_IF_LEGITIMATE_INDEX): Use HOST_WIDE_INT instead of int to hold
23377 an INTVAL.
23378
23379 2007-01-10 Jan Hubicka <jh@suse.cz>
23380
23381 * tree-vrp.c (remove_range_assertions): Release defs.
23382 * tree-ssa-loop-ivopts.c (rmeove_statement): Likewise.
23383 * tree-ssa-dom.c (remove_stmt_or_phi): Likewise.
23384
23385 2007-01-10 Paul Brook <paul@codesourcery.com>
23386
23387 * config/arm/arm.c (arm_rtx_costs_1): Handle mutiply-subtract.
23388 * config/arm/arm.md (mulsi3subsi): New insn.
23389
23390 2007-01-10 Zdenek Dvorak <dvorakz@suse.cz>
23391
23392 * tree-ssa-loop-manip.c (tree_unroll_loop): Make it a wrapper over ...
23393 (tree_transform_and_unroll_loop): New.
23394 * tree-flow.h (transform_callback, tree_transform_and_unroll_loop):
23395 Declare.
23396
23397 2007-01-10 Robert Kennedy <jimbob@google.com>
23398
23399 * fold-const.c (fold_comparison): Fold comparisons like (x *
23400 1000 < 0) to (x < 0).
23401
23402 2007-01-10 Ian Lance Taylor <iant@google.com>
23403
23404 * tree-pretty-print.c (dump_generic_node): Print parentheses when
23405 operands have the same priority.
23406
23407 2007-01-10 Tom Tromey <tromey@redhat.com>
23408
23409 * fold-const.c (fold_truthop): Don't check can_use_bit_fields_p.
23410 (fold_binary): Likewise.
23411 * langhooks.c (lhd_can_use_bit_fields_p): Removed.
23412 * langhooks-def.h (lhd_can_use_bit_fields_p): Removed.
23413 (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
23414 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CAN_USE_BIT_FIELDS_P.
23415 * langhooks.h (struct lang_hooks): Removed field
23416 'can_use_bit_fields_p'.
23417
23418 2007-01-10 Ralf Corsépius <ralf.corsepius@rtems.org>
23419
23420 * config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.
23421
23422 2007-01-10 Razya Ladelsky <razya@il.ibm.com>
23423
23424 * function.c (get_last_funcdef_no): New function.
23425 * function.h (get_last_funcdef_no): Declare.
23426 * tree-inline.c (initialize_cfun): Add initialization.
23427 (tree_function_versioning): Cleanup.
23428
23429 2007-01-10 Jan Hubicka <jh@suse.cz>
23430
23431 * tree-inline.c (setup_one_parameter): Do not propagate into abnormal
23432 PHIs.
23433
23434 2007-01-10 Sa Liu <saliu@de.ibm.com>
23435 Ben Elliston <bje@au.ibm.com>
23436
23437 * spu.h (STACK_SAVE_AREA): Use VOIDmode for SAVE_FUNCTION, SImode
23438 for SAVE_NONLOCAL and Pmode for any other save level.
23439 * spu-protos.h (spu_restore_stack_block): Declare.
23440 * spu.md (save_stack_block): Remove.
23441 (restore_stack_block): Call spu_restore_stack_block.
23442 * spu.c (spu_restore_stack_block): New function.
23443 (spu_expand_epilogue): Remove old comment.
23444
23445 2007-01-09 Zdenek Dvorak <dvorakz@suse.cz>
23446
23447 PR tree-optimization/30322
23448 * tree-ssa-loop-ivopts.c (fold_affine_expr, iv_value): Removed.
23449 (cand_value_at): Return the value as aff_tree.
23450 (may_eliminate_iv): Convert the bound from aff_tree to tree.
23451 * tree-affine.c (aff_combination_add_cst, aff_combination_add_product,
23452 aff_combination_mult): New functions.
23453 (aff_combination_add): Use aff_combination_add_cst.
23454 (aff_combination_convert): Allow conversions to a wider type.
23455 (tree_to_aff_combination): Handle BIT_NOT_EXPR.
23456 * tree-affine.h (aff_combination_mult): Declare.
23457
23458 2007-01-09 Carlos O'Donell <carlos@codesourcery.com>
23459
23460 * doc/tm.texi: Update documentation to reflect reality of exec
23461 and start file search behaviours. Update copyright year.
23462 * doc/invoke.texi: Explain how GCC_EXEC_PREFIX is used to find
23463 header file directories.
23464
23465 2007-01-09 Uros Bizjak <ubizjak@gmail.com>
23466
23467 * config/i386/i386.md (*sinxf2): Rename to *sinxf2_i387.
23468 (*cosxf2): Rename to cosxf2_i387.
23469 (*sindf2, *sinsf2): Extend operand 1 to XFmode. Macroize patterns
23470 using X87MODEF12 mode macro. Rename patterns to
23471 *sin_extend<mode>xf2_i387. Use SSE_FLOAT_MODE_P to disable patterns
23472 for SSE math.
23473 (*cosdf2, *cossf2): Ditto.
23474 (sincosdf3, sincossf3): Ditto. Rewrite corresponding splitters
23475 to match extended input operands.
23476 (sincos<mode>3): New expander.
23477 (*sinextendsfdf2, *cosextendsfdf2, *sincosextendsfdf3): Remove
23478 insn patterns and corresponding splitters.
23479
23480 2007-01-09 Kaz Kojima <kkojima@gcc.gnu.org>
23481
23482 * config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete.
23483 (SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise.
23484
23485 2007-01-09 Nicolas Pitre <nico@cam.org>
23486
23487 PR target/30173
23488 * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
23489
23490 2007-01-08 Geoffrey Keating <geoffk@apple.com>
23491
23492 * target.h (struct gcc_target): New field library_rtti_comdat.
23493 * target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
23494 (TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT.
23495 * doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT.
23496 * config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.
23497
23498 2007-01-08 Geoffrey Keating <geoffk@apple.com>
23499
23500 * doc/invoke.texi (Optimize Options): Correct description of -O0.
23501
23502 2007-01-08 Richard Guenther <rguenther@suse.de>
23503
23504 * tree.h (force_fit_type_double): Export.
23505 (force_fit_type): Remove.
23506 * fold-const.c (force_fit_type_double): New function.
23507 (force_fit_type): Remove.
23508 (int_const_binop): Use it.
23509 (fold_convert_const_int_from_int): Likewise.
23510 (fold_convert_const_int_from_real): Likewise.
23511 (fold_div_compare): Likewise.
23512 (fold_sign_changed_comparison): Likewise.
23513 (fold_unary): Likewise.
23514 (fold_negate_const): Likewise.
23515 (fold_abs_const): Likewise.
23516 (fold_not_const): Likewise.
23517 * c-common.c (shorten_compare): Use force_fit_type_double.
23518 * convert.c (convert_to_pointer): Likewise.
23519
23520 2007-01-08 Richard Guenther <rguenther@suse.de>
23521
23522 * tree.h (build_int_cst_wide_type): Export.
23523 * tree.c (build_int_cst_wide_type): New function.
23524 (build_int_cst_wide): Fix comment.
23525 * builtins.c (fold_builtin_object_size): Use build_int_cst
23526 to build -1 or 0 of the correct type. Use fit_double_type
23527 to check for overflow.
23528 * fold-const.c (optimize_bit_field_compare): Use build_int_cst_type
23529 to build the mask.
23530 (decode_field_reference): Likewise.
23531 (all_ones_mask_p): Likewise.
23532 (native_interpret_int): Use build_int_cst_wide_type.
23533 (fold_binary): Use build_int_cst_type to build an all-ones
23534 value.
23535 * stor-layout.c (set_sizetype): Use build_int_cst_wide_type.
23536
23537 2007-01-08 Daniel Jacobowitz <dan@codesourcery.com>
23538
23539 * config/pa/t-pa64 (libgcc_stub.a): Use $(T).
23540
23541 2007-01-09 Ben Elliston <bje@au.ibm.com>
23542
23543 * genautomata.c (STATS_OPTION): New option.
23544 (stats_flag): New flag.
23545 (gen_automata_option): Handle it.
23546 (initiate_automaton_gen): Ditto.
23547 (write_automata): Output statistics only if stats_flag is
23548 set. Likewise, output time statistics only if time_flag is set.
23549 * doc/md.texi (Processor pipeline description): Document new flag.
23550
23551 2007-01-08 Richard Guenther <rguenther@suse.de>
23552
23553 * builtins.c (fold_builtin_int_roundingfn): Use fit_double_type.
23554 * tree.c (build_int_cst_type): Likewise.
23555 (size_in_bytes): Don't call force_fit_type on the result.
23556 (int_fits_type_p): Use fit_double_type.
23557 * fold-const.c (fit_double_type): New function.
23558 (force_fit_type): Use it.
23559 * tree.h (fit_double_type): Export.
23560
23561 2007-01-08 Jan Hubicka <jh@suse.cz>
23562
23563 * tree-vectorizer.c (gate_increase_alignment): Fix return type.
23564 * ipa.c (function_and_variable_visibility): Fix return type.
23565
23566 2007-01-08 Richard Guenther <rguenther@suse.de>
23567
23568 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type
23569 of offset to build the index.
23570 * tree-pretty-print.c (dump_generic_node): Don't build negated
23571 const just for printing.
23572 * c-pretty-print.c (pp_c_integer_constant): Likewise.
23573 * builtins.c (fold_builtin_int_roundingfn): Check if result
23574 fits the type by using force_fit_type and comparing the result.
23575 * predict.c (predict_loops): Use compare_tree_int for comparison.
23576 * tree.c (build_int_cst): Fall back to integer_type_node for
23577 NULL_TREE type.
23578 (build_int_cst_wide): Assert type is non-null.
23579
23580 2007-01-08 Roberto Costa <roberto.costa@st.com>
23581
23582 * tree-vrp.c (extract_range_from_cond_expr): New.
23583 (extract_range_from_expr): Handle COND_EXPR nodes used as expressions.
23584 * tree-ssa-ccp.c (get_maxval_strlen): Handle COND_EXPR nodes used
23585 as expressions.
23586 (fold_stmt): Bug fix, avoid infinite recursion when folding COND_EXPRs.
23587 * tree-ssa-forwprop.c (simplify_cond, forward_propagate_into_cond,
23588 tree_ssa_forward_propagate_single_use_vars): Handle COND_EXPR nodes
23589 used as expressions.
23590 * tree-object-size.c (cond_expr_object_size): New.
23591 (collect_object_sizes_for): Handle COND_EXPR nodes used as expressions.
23592
23593 2007-01-08 Jan Hubicka <jh@suse.cz>
23594
23595 * tree-ssa-forwprop.c (forward_propagate_into_cond,
23596 tree_ssa_forward_propagate_single_use_va): Release defs of propagated
23597 statement.
23598
23599 2007-01-08 Richard Guenther <rguenther@suse.de>
23600
23601 PR tree-optimization/23603
23602 * tree-vrp.c (set_value_range_to_truthvalue): New function.
23603 (extract_range_from_binary): Fall back to truthvalue instead of
23604 varying for TRUTH_*_EXPR.
23605 (extract_range_from_comparison): Fall back to truthvalue instead of
23606 varying.
23607 (vrp_visit_phi_node): Don't adjust new range bounds to +INF/-INF
23608 if all visited PHI values were constant.
23609
23610 2007-01-08 Jan Hubicka <jh@suse.cz>
23611
23612 * cgraphunit.c (cgraph_process_new_functions): Reset reachable flag.
23613 (cgraph_analyze_function): break out from ...
23614 (cgraph_finalize_compilation_unit): ... here.
23615 (cgraph_expand_function): Remove forgoten commented out line.
23616 (cgraph_optimize): Analyze functions.
23617
23618 2007-01-08 Jan Hubicka <jh@suse.cz>
23619
23620 * tree-pas.h (TODO_remove_function): New flag.
23621 (TODO_update*): Renumber.
23622 (pass_ipa_increase_alignment,
23623 pass_ipa_function_and_variable_visibility): New passes.
23624 * cgraphunit.c (cgraph_increase_alignment): Move to tree-vectorizer.c
23625 (cgraph_function_and_variable_visibility): Move to ipa.c
23626 (cgraph_optimize): Don't call cgraph_function_and_variable_visibility,
23627 cgraph_increase_alignment.
23628 * ipa-inline.c (cgraph_decide_inlining): Don't push timevar.
23629 (cgraph_decide_inlining_incrementally): Push TV_INTEGRATION before
23630 calling tree-inline.
23631 (cgraph_early_inlining): Do not call cgraph_remove_unreachable_nodes.
23632 (pass_ipa_inline, pass_early_ipa_inlining): Set TODO_remove_functions
23633 * tree-vectorizer.c (increase_alignment): Move here from cgraphunit.c
23634 (gate_increase_alignment): New function.
23635 (pass_ipa_increase_alignment): New pass.
23636 * ipa.c: Inline tree-pass.h and timevar.h
23637 (function_and_variable_visibility): Move here from cgraphunit.c
23638 * tree-optimize.c (pass_early_local_passes): Add TODO_remove_functions.
23639 * passes.c (init_optimization_passes): Add the two new passes.
23640 (execute_todo): Handle cgraph_remove_functions.
23641
23642 2007-01-08 Nick Clifton <nickc@redhat.com>
23643
23644 * config/frv/predicates.md (reg_or_0_operand): Accept
23645 CONST_DOUBLEs.
23646
23647 2007-01-08 Ralf Corsépius <ralf.corsepius@rtems.org>
23648
23649 * config/bfin/rtems.h, config/bfin/t-rtems: New.
23650 * config.gcc: Add bfin*-rtems*.
23651
23652 2007-01-08 Mark Shinwell <shinwell@codesourcery.com>
23653
23654 * c.opt: Add -flax-vector-conversions.
23655 * c-typeck.c (convert_for_assignment): Pass flag to
23656 vector_types_convertible_p to allow emission of note.
23657 (digest_init): Likewise.
23658 * c-opts.c: Handle -flax-vector-conversions.
23659 * c-common.c (flag_lax_vector_conversions): New.
23660 (vector_types_convertible_p): Unless -flax-vector conversions
23661 has been passed, disallow conversions between vectors with
23662 differing numbers of subparts and/or element types. If such
23663 a conversion is disallowed, possibly emit a note on the first
23664 occasion only to inform the user of -flax-vector-conversions.
23665 The new last argument specifies this.
23666 * c-common.h (flag_lax_vector_conversions): New.
23667 (vector_types_convertible_p): Add extra argument.
23668 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
23669 char_type_node for V*QI type vectors.
23670 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
23671 Update to satisfy new typechecking rules.
23672 * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both
23673 C and C++ variants.
23674 * doc/invoke.texi (C Dialect Options): Document
23675 -flax-vector-conversions.
23676
23677 2007-01-08 Mark Shinwell <shinwell@codesourcery.com>
23678
23679 PR tree-optimization/29877
23680 * tree-ssa-ter.c (is_replaceable_p): Deem assignments with
23681 a register variable on the RHS to not be replaceable.
23682
23683 2007-01-08 Chen Liqin <liqin@sunnorth.com.cn>
23684 * config/score/t-score-elf (MULTILIB_OPTIONS): Change.
23685 * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
23686 const_simm15, const_pow2, const_npow2): Added.
23687 * config/score/misc.md (insv, extv, extzv, movmemsi,
23688 move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
23689 * config/score/score.c (score_address_cost, score_select_cc_mode):
23690 Added.
23691 Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
23692 Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
23693 Update score_print_operand.
23694 * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
23695 Adjust register allocate order and update some macro define.
23696 * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
23697 mdx_block_move_straight, mdx_block_move_loop_head,
23698 mdx_block_move_loop_body, mdx_block_move_loop_foot,
23699 mdx_block_move_loop, mdx_block_move): Added.
23700 (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
23701 mdp_limm): Updated and fix some bug and typo.
23702 * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
23703 (movsf, movdf, doloop_end): Added.
23704
23705 2007-01-08 Kazu Hirata <kazu@codesourcery.com>
23706
23707 * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
23708 config/arm/thumb2.md: Fix comment typos.
23709 * doc/extend.texi: Fix a typo.
23710
23711 2007-01-07 Eric Christopher <echristo@apple.com>
23712
23713 * configure.ac: Check for __stack_chk_fail for darwin.
23714 * configure: Regenerate.
23715
23716 2007-01-07 Richard Guenther <rguenther@suse.de>
23717
23718 * tree-vrp.c (extract_range_from_assert): CSE calls to
23719 compare_values where possible.
23720 (extract_range_from_unary_expr): Likewise.
23721
23722 2007-01-07 Anatoly Sokolov <aesok@post.ru>
23723
23724 * config/avr/avr-protos.h (call_insn_operand): Delete prototype.
23725 * config/avr/avr.c (call_insn_operand): Delete function.
23726 * config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP
23727 instead of register number. Use predicates.
23728 * config/avr/predicates.md (const0_operand, reg_or_0_operand,
23729 call_insn_operand): Add.
23730
23731 2007-01-06 Jan Hubicka <jh@suse.cz>
23732
23733 * tree-pass.h (pass_build_cgraph_edges): Declare.
23734 * cgraphunit.c (record_refernece): Move to cgraphbuild.c
23735 (visited_nodes): Remove.
23736 (cgraph_create_edges): Move to cgraphbuild.c; rename to
23737 build_cgrpah_edges; make visited_nodes local.
23738 (cgraph_process_new_functions): DO not call initialize_inline_failed.
23739 (record_references_in_initializer): Move to cgraphbuild.c
23740 (initialize_inline_failed, rebuild_cgraph_edges,
23741 pass_rebuild_cgraph_edges): Move to cgraphbuild.c.
23742 (verify_cgraph_node): Make visited_nodes local.
23743 (cgraph_analyze_function): Do not call cgraph_create_edges and
23744 initialize_inline_failed.
23745 (cgraph_expand_function): Do not call cgraph_lower_function;
23746 assert that function is already lowered.
23747 * Makefile.in (cgraphbuild.o): New.
23748 * passes.c (init_optimization_passes): Add pass_build_cgraph_edges
23749 at the end of lowering passes.
23750
23751 2007-01-06 Steven Bosscher <steven@gcc.gnu.org>
23752
23753 * ifcvt.c (cond_move_convert_if_block): New function, code
23754 factored out from...
23755 (cond_move_process_if_block): ...here. Call the new function
23756 on the THEN and ELSE blocks.
23757 (merge_if_block): Do not copy global_live_at_end, merge_blocks
23758 already takes care of this.
23759
23760 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23761
23762 PR c/19978
23763 * tree.h (TREE_OVERFLOW_P): New.
23764 * c-typeck.c (parser_build_unary_op): Warn only if result
23765 overflowed and operands did not.
23766 (parser_build_binary_op): Likewise.
23767 (convert_for_assignment): Remove redundant overflow_warning.
23768 * c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW.
23769
23770 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23771
23772 * c-typeck.c (store_init_value): Split over two lines to follow
23773 the GNU coding style.
23774
23775 2007-01-05 Benjamin Kosnik <bkoz@redhat.com>
23776
23777 * c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to
23778 __GXX_EXPERIMENTAL_CXX0X__.
23779 * doc/cpp.texi: Same.
23780
23781 2007-01-05 Richard Guenther <rguenther@suse.de>
23782
23783 PR middle-end/27826
23784 * tree.c (get_narrower): Do not construct COMPONENT_REFs
23785 with mismatched types. Instead explicitly build a
23786 conversion NOP_EXPR.
23787
23788 2007-01-05 Ian Lance Taylor <iant@google.com>
23789
23790 * c-common.c (decl_with_nonnull_addr_p): New function.
23791 (c_common_truthvalue_conversion): Call it.
23792 * c-typeck.c (build_binary_op): Likewise.
23793 * c-common.h (decl_with_nonnull_addr_p): Declare.
23794
23795 2007-01-05 Jakub Jelinek <jakub@redhat.com>
23796
23797 PR c/30360
23798 * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
23799 denom against 0.0.
23800
23801 2007-01-05 Joel Brobecker <brobecker@adacore.com>
23802
23803 * doc/install.texi (Final install): Document the fact that
23804 the GNAT runtime should not be stripped.
23805
23806 2007-01-04 Jan Hubicka <jh@suse.cz>
23807
23808 * tree-inline.c (fold_marked_statements): Update operand caches
23809 and EH after folding
23810
23811 2007-01-04 Ian Lance Taylor <iant@google.com>
23812
23813 * c-common.c (check_function_nonnull): Whitespace fix.
23814
23815 2007-01-04 Jan Hubicka <jh@suse.cz>
23816
23817 * tree-optimize.c (execute_fixup_cfg): Correct previously mistakely
23818 comitted older version of patch.
23819 (pass_fixup_cfg): Add TODOs to verify flow and statements, dump
23820 function, celanup cfg and collect garbage.
23821
23822 2007-01-04 Mike Stump <mrs@apple.com>
23823
23824 * Makefile.in (mostlyclean): Don't remove libgcc anymore.
23825 (clean): Likewise.
23826
23827 2007-01-04 Eric Christopher <echristo@apple.com>
23828
23829 * libgcc2.c (__bswapsi2): Use SItype.
23830 (__bswapdi2): Use DItype.
23831 * libgcc2.h: Update for above.
23832
23833 2007-01-04 Paul Brook <paul@codesourcery.com>
23834
23835 * config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0,
23836 mulsi_compare0_scratch, mulsi3addsi, mulsi3addsi_compare0,
23837 mulsi3addsi_compare0_scratch, mulsidi3adddi, mulsidi3,
23838 umulsidi3, umulsidi3adddi, smulsi3_highpart,
23839 umulsi3_highpart): Make conditional on !arm_arch6.
23840 (arm_mulsi3_v6, thumb_mulsi3_v6, mulsi3_compare0_v6,
23841 mulsi_compare0_scratch_v6, mulsi3addsi_v6, mulsi3addsi_compare0_v6,
23842 mulsi3addsi_compare0_scratch_v6, mulsidi3adddi_v6, mulsidi3_v6,
23843 umulsidi3_v6, umulsidi3adddi_v6, smulsi3_highpart_v6,
23844 umulsi3_highpart_v6): New insns.
23845
23846 2007-01-04 Roger Sayle <roger@eyesopen.com>
23847
23848 * fold-const.c (fold_convert): When casting an expression to void,
23849 fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't
23850 have a type. Instead of attempting to build a NOP_EXPR, return
23851 these "special" trees directly.
23852
23853 2007-01-04 Joseph Myers <joseph@codesourcery.com>
23854
23855 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
23856 MULT inside MINUS as either argument. Use rs6000_cost->dmul -
23857 rs6000_cost->fp not 0 as adjustment for outer NEG.
23858
23859 2007-01-04 Jan Hubicka <jh@suse.cz>
23860
23861 * cgraph.c (cgraph_release_function_body): New function.
23862 (cgraph_remove_node): Use it.
23863 * cgraph.h (cgraph_release_function_body): Declare.
23864 * cgraphunit.c (cgraph_expand_function): Use it.
23865 * ipa.c (cgraph_remove_unreahchable_nodes): Use it.
23866 * tree-ssa.c (delete_tree_ssa): Allow to be called before aliasing
23867 is initialized and while compilation of other function is running.
23868 * tree-optimize.c (execute_free_cfg_annotations): Move code to clear
23869 statement CFG annotations from here to ...
23870 * tree-cfg.c (delete_tree_cfg_annotations): ... here.
23871
23872 2007-01-04 Zdenek Dvorak <dvorakz@suse.cz>
23873
23874 * cfgloop.h (enum li_flags): Make the constants powers of two.
23875
23876 2007-01-04 Jan Hubicka <jh@suse.cz>
23877
23878 * tree-inline.c (copy_bb): Insert new statements to statements_to_fold
23879 set.
23880 (fold_marked_statements): New function.
23881 (optimize_inline_calls, tree_function_versioning): Fold new statements.
23882 * tree-inline.h (copy_body_data): Add statements_to_fold.
23883
23884 2007-01-03 Daniel Jacobowitz <dan@codesourcery.com>
23885
23886 * config.gcc: Mention libgcc/config.host.
23887 * Makefile.in: Update comments mentioning libgcc.
23888 (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete.
23889 (all.cross, start.encap, rest.encap, rest.cross): Update
23890 dependencies for libgcc move.
23891 (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib)
23892 (clean-target, clean-target-libgcc): Delete.
23893 (srcdirify, GCC_EXTRA_PARTS): New macros.
23894 (libgcc-support, libgcc.mvars): New rules.
23895 (distclean): Remove mention of mklibgcc.
23896 (install): Don't reference INSTALL_LIBGCC.
23897 (install-common): Don't reference EXTRA_PARTS.
23898 (install-libgcc, install-multilib): Delete rules.
23899 * mklibgcc.in: Delete file.
23900 * doc/configfiles.texi: Don't mention mklibgcc.
23901
23902 * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc).
23903 * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise.
23904 * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise.
23905 * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES)
23906 (mklibgcc, ldblspecs): Likewise.
23907
23908 * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def)
23909 (posixpre.def): Use $(T).
23910 (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP)
23911 (SHLIB_SRC, SHLIB_INSTALL): Delete.
23912 (SHLIB_LINK): Make dummy.
23913 * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK.
23914
23915 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear.
23916
23917 * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS.
23918 * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30,
23919 config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos,
23920 config/rs6000/t-newas, config/sparc/t-elf: Likewise.
23921
23922 * configure.ac (all_outputs): Remove mklibgcc.
23923 * configure: Regenerated.
23924
23925 2007-01-03 Josh Conner <jconner@apple.com>
23926
23927 PR middle-end/29683
23928 * calls.c (compute_argument_addresses): Set stack and stack_slot
23929 for partial args, too.
23930 (store_one_arg): Use locate.size.constant for the size when
23931 generating a save_area.
23932
23933 2007-01-03 Robert Kennedy <jimbob@google.com>
23934
23935 * tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results
23936 whose definitions are deleted due to basic block merging.
23937
23938 2007-01-03 Paul Brook <paul@codesourcery.com>
23939
23940 PR target/16634
23941 * config/arm/arm.c (output_return_instruction): Pop PC in interrupt
23942 functions.
23943 (use_return_insn): Return 0 for Thumb interrupt functions.
23944 (print_multi_reg): Add rfe argument for IRQ returns.
23945 (arm_output_epilogue): Pop interrupt return address directly into PC.
23946 (arm_expand_prologue): Only adjust IRQ return address in Arm mode.
23947
23948 2007-01-03 Paul Brook <paul@codesourcery.com>
23949
23950 Merge from sourcerygxx-4_1.
23951 * config/arm/thumb2.md: New file.
23952 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for
23953 Thumb-2.
23954 * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto.
23955 * config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
23956 (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables.
23957 * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump
23958 tables.
23959 (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
23960 * config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm
23961 comptibility.
23962 * config/arm/ieee754-sf.S: Ditto.
23963 * config/arm/arm.c (thumb_base_register_rtx_p): Rename...
23964 (thumb1_base_register_rtx_p): ... to this.
23965 (thumb_index_register_rtx_p): Rename...
23966 (thumb1_index_register_rtx_p): ... to this.
23967 (thumb_output_function_prologue): Rename...
23968 (thumb1_output_function_prologue): ... to this.
23969 (thumb_legitimate_address_p): Rename...
23970 (thumb1_legitimate_address_p): ... to this.
23971 (thumb_rtx_costs): Rename...
23972 (thumb1_rtx_costs): ... to this.
23973 (thumb_compute_save_reg_mask): Rename...
23974 (thumb1_compute_save_reg_mask): ... to this.
23975 (thumb_final_prescan_insn): Rename...
23976 (thumb1_final_prescan_insn): ... to this.
23977 (thumb_expand_epilogue): Rename...
23978 (thumb1_expand_epilogue): ... to this.
23979 (arm_unwind_emit_stm): Rename...
23980 (arm_unwind_emit_sequence): ... to this.
23981 (thumb2_legitimate_index_p, thumb2_legitimate_address_p,
23982 thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec,
23983 thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem,
23984 arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition,
23985 thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift,
23986 thumb2_output_casesi): New functions.
23987 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define.
23988 (FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7,
23989 FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME,
23990 THUMB2_WORK_REGS): Define.
23991 (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count,
23992 arm_condexec_mask, arm_condexec_masklen)): New variables.
23993 (all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m.
23994 (arm_override_options): Check new CPU capabilities.
23995 Set new architecture flag variables.
23996 (arm_isr_value): Handle v7m interrupt functions.
23997 (user_return_insn): Return 0 for v7m interrupt functions. Handle
23998 Thumb-2.
23999 (const_ok_for_arm): Handle Thumb-2 constants.
24000 (arm_gen_constant): Ditto. Use movw when available.
24001 (arm_function_ok_for_sibcall): Return false for v7m interrupt
24002 functions.
24003 (legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2.
24004 (thumb_find_work_register, arm_load_pic_register,
24005 legitimize_tls_address, arm_address_cost, load_multiple_sequence,
24006 emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size,
24007 print_multi_reg, output_mov_long_double_fpa_from_arm,
24008 output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm,
24009 output_mov_double_fpa_from_arm, output_move_double,
24010 arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask,
24011 output_return_instruction, arm_output_function_prologue,
24012 arm_output_epilogue, arm_get_frame_offsets, arm_regno_class,
24013 arm_output_mi_thunk, thumb_set_return_address): Ditto.
24014 (arm_expand_prologue): Handle Thumb-2. Use arm_save_coproc_regs.
24015 (arm_coproc_mem_operand): Allow POST_INC/PRE_DEC.
24016 (arithmetic_instr, shift_op): Use arm_shift_nmem.
24017 (arm_print_operand): Use arm_print_condition. Handle '(', ')', '.',
24018 '!' and 'L'.
24019 (arm_final_prescan_insn): Use extract_constrain_insn_cached.
24020 (thumb_expand_prologue): Use thumb_set_frame_pointer.
24021 (arm_file_start): Output directive for unified syntax.
24022 (arm_unwind_emit_set): Handle stack alignment instruction.
24023 * config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__.
24024 Add v6t2, v7, v7a, v7r and v7m.
24025 (RETLDM): Add Thumb-2 code.
24026 (do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros.
24027 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__.
24028 (TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY,
24029 TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN,
24030 THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS,
24031 ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS,
24032 THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE,
24033 CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END,
24034 ADJUST_INSN_LENGTH): Define.
24035 (TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE,
24036 STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS,
24037 BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES,
24038 PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS,
24039 SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
24040 TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT,
24041 HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP,
24042 HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG,
24043 REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P,
24044 REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
24045 LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS,
24046 GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST,
24047 ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME,
24048 FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P,
24049 PRINT_OPERAND_ADDRESS): Adjust for Thumb-2.
24050 (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations.
24051 * config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and
24052 cortex-m3.
24053 * config/arm/arm-tune.md: Regenerate.
24054 * config/arm/arm-protos.h: Update prototypes.
24055 * config/arm/vfp.md: Enable patterns for Thumb-2.
24056 (arm_movsi_vfp): Add movw alternative. Use output_move_vfp.
24057 (arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp.
24058 (thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp,
24059 thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New.
24060 * config/arm/libunwind.S: Add Thumb-2 code.
24061 * config/arm/constraints.md: Update include Thumb-2.
24062 * config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support.
24063 * config/arm/ieee754-df.S: Ditto.
24064 * config/arm/bpabi.S: Ditto.
24065 * config/arm/t-arm (MD_INCLUDES): Add thumb2.md.
24066 * config/arm/predicates.md (low_register_operand,
24067 low_reg_or_int_operand, thumb_16bit_operator): New.
24068 (thumb_cmp_operand, thumb_cmpneg_operand): Rename...
24069 (thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this.
24070 * config/arm/t-arm-elf: Add armv7 multilib.
24071 * config/arm/arm.md: Update patterns for Thumb-2 and Unified asm.
24072 Include thumb2.md.
24073 (UNSPEC_STACK_ALIGN, ce_count): New.
24074 (arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3,
24075 arm_zero_extendsidi2, arm_zero_extendqidi2): New
24076 insns/expanders.
24077 * config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm.
24078 (thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa,
24079 thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns.
24080 * config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm.
24081 (cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn,
24082 thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New
24083 insns.
24084 * doc/extend.texi: Document ARMv7-M interrupt functions.
24085 * doc/invoke.texi: Document Thumb-2 new cores+architectures.
24086
24087 2007-01-03 Jakub Jelinek <jakub@redhat.com>
24088
24089 * unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
24090 (struct _Unwind_Context): Rename args_size to flags, remove
24091 signal_frame field, add a new args_size field and version field.
24092 (_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
24093 _Unwind_IsExtendedContext): New inline functions.
24094 (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
24095 Assume by_value array is only present if _Unwind_IsExtendedContext.
24096 (_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
24097 _Unwind_IsSignalFrame.
24098 (__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
24099 (uw_update_context_1): Use _Unwind_SetSignalFrame.
24100 (uw_init_context_1): Initialize context->flags to
24101 EXTENDED_CONTEXT_BIT.
24102 * config/rs6000/linux-unwind.h (frob_update_context): Use
24103 _Unwind_SetSignalFrame.
24104
24105 2007-01-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
24106
24107 PR middle-end/30353
24108 * gimplify.c (gimplify_modify_expr_complex_part): Move below
24109 tree_to_gimple_tuple. Call tree_to_gimple_tuple when we need
24110 the value.
24111
24112 2007-01-03 Kazu Hirata <kazu@codesourcery.com>
24113
24114 * config/i386/i386.h (NON_STACK_REG_P, REGNO_OK_FOR_SIREG_P,
24115 REGNO_OK_FOR_DIREG_P, REWRITE_ADDRESS, ASM_OPERAND_LETTER,
24116 RET, AT_SP): Remove.
24117 * config/i386/i386.md (*sse_prologue_save_insn): Use return
24118 instead of RET.
24119
24120 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
24121 * cfgbuild.c (find_basic_blocks): Likewise.
24122 * cfgrtl.c (rtl_create_basic_block): Likewise.
24123 * function.c (temp_slots_at_level): Likewise.
24124 * reg-stack.c (stack_regs_mentioned): Likewise.
24125 * regclass.c (allocate_reg_info): Likewise.
24126 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
24127 set_bb_for_stmt, move_block_to_fn): Likewise.
24128 * tree-complex.c (tree_lower_complex): Likewise.
24129 * vec.h (VEC_safe_grow_cleared): New.
24130
24131 * cgraphunit.c, tree-ssa-alias.c: Fix comment typos.
24132
24133 2007-01-03 Zdenek Dvorak <dvorakz@suse.cz>
24134
24135 * loop-unswitch.c (unswitch_loop): Pass probabilities to loopify.
24136 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass probabilities
24137 to loop_version.
24138 * cfgloopmanip.c (scale_loop_frequencies): Export.
24139 (loopify): Scale the frequencies by prescribed coefficients.
24140 (set_zero_probability): New function.
24141 (duplicate_loop_to_header_edge): Improve updating of frequencies.
24142 (lv_adjust_loop_entry_edge, loop_version): Set probabilities
24143 and frequencies according to arguments.
24144 * tree-ssa-loop-manip.c (tree_unroll_loop): Set probabilities
24145 correctly.
24146 * cfg.c (scale_bbs_frequencies_int): Allow scaling the frequencies up.
24147 * modulo-sched.c (sms_schedule): Set probabilities for entering
24148 versioned loop correctly.
24149 * tree-vect-transform.c (vect_transform_loop): Ditto.
24150 * cfgloop.h (loopify, loop_version): Declaration changed.
24151 (scale_loop_frequencies): Declared.
24152
24153 2007-01-02 Jan Hubicka <jh@suse.cz>
24154
24155 * cgraph.c: Include tree-flow.h
24156 (cgraph_add_new-function): Handle IPA_SSA mode; execute
24157 early_local_passes.
24158 * cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA.
24159 * tree-pass.h (pass_all_early_optimizations): Declare.
24160 * cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute
24161 early_local_passes.
24162 (cgraph_analyze_function): Do early_local_passes.
24163 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
24164 Do not add referenced vars.
24165 * tree-optimize.c (gate_all_optimizations): Do not execute when not in
24166 SSA form.
24167 (gate_all_early_local_passes): New gate.
24168 (pass_early_local_passes): Use new gate.
24169 (execute_early_local_optimizations): New functions.
24170 (gate_all_early_optimizations): New gate.
24171 (pass_all_early_optimizations): New pass.
24172 (execute_free_datastructures): Free SSA only when initialized.
24173 (gate_init_datastructures): Init only when optimizing.
24174 (tree_lowering_passes): Do early local passes when called late.
24175 * tree-profile.c (do_tree_profiling): Don't profile functions added
24176 late.
24177 (do_early_tree_profiling, pass_early_tree_profile): Kill.
24178 * tree-cfg.c (update_modified_stmts): Do not update when operands are
24179 not active.
24180 * passes.c (init_optimizations_passes): Reorder so we go into SSA
24181 during early_local_passes.
24182 * Makefile.in (cgraph.o): Add dependency on tree-flow.h.
24183
24184
24185 2007-01-02 Carlos O'Donell <carlos@codesourcery.com>
24186
24187 * Makefile.in: Update copyright year.
24188
24189 2007-01-02 Carlos O'Donell <carlos@codesourcery.com>
24190
24191 * Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST)
24192 in $(lang_checks) and check-consistency targets.
24193
24194 2007-01-02 Jan Hubicka <jh@suse.cz>
24195
24196 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
24197 Do not add referenced vars.
24198 * tree-cfg.c (update_modified_stmts): Do not update when SSA operands
24199 are not active.
24200 * passes.c (init_optimization_passes): Put mudflap_2 after
24201 free_datastructures.
24202
24203 2007-01-02 Jan Hubicka <jh@suse.cz>
24204
24205 * tree-optimize (execute_fixup_cfg): Set after_inlining flag.
24206 Set NOTHROW flag on call statements proved to be nothrow.
24207 Update statement of local calls so new pure/const functions are
24208 updated. Update_ssa when in ssa form. Mark PHI nodes of nonlocal
24209 goto receivers.
24210 (tree_rest_of_compilation): Register hooks and initialize bitmap
24211 early. Do not set after_inlining flag.
24212
24213 2007-01-02 Steve Ellcey <sje@cup.hp.com>
24214
24215 * sbitmap.c (HOST_BITS_PER_LONG_LONG): Change to
24216 HOST_BITS_PER_LONGLONG
24217
24218 2007-01-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24219
24220 PR c/19977
24221 * c-typeck.c (store_init_value): Don't emit pedantic overflow
24222 warning for non-static initializers.
24223
24224 2007-01-02 Steven Bosscher <steven@gcc.gnu.org>
24225
24226 * config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md,
24227 m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c,
24228 rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c:
24229 Always use set_unique_reg_note to add REG_EQUAL notes.
24230
24231 2007-01-02 Kazu Hirata <kazu@codesourcery.com>
24232
24233 Revert:
24234 2007-01-02 Kazu Hirata <kazu@codesourcery.com>
24235
24236 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
24237 * cfgbuild.c (find_basic_blocks): Likewise.
24238 * cfgrtl.c (rtl_create_basic_block): Likewise.
24239 * function.c (temp_slots_at_level): Likewise.
24240 * reg-stack.c (stack_regs_mentioned): Likewise.
24241 * regclass.c (allocate_reg_info): Likewise.
24242 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
24243 set_bb_for_stmt, move_block_to_fn): Likewise.
24244 * tree-complex.c (tree_lower_complex): Likewise.
24245 * vec.h (VEC_safe_grow_cleared): New.
24246
24247 2007-01-02 Ian Lance Taylor <iant@google.com>
24248
24249 * c-common.c (c_common_truthvalue_conversion): When warning about
24250 using an assignment as a truth value, set TREE_NO_WARNING.
24251
24252 2007-01-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24253
24254 PR middle-end/7651
24255 * c.opt (Wold-style-declaration): New.
24256 * doc/invoke.texi (C-only Warning Options): New.
24257 (Wold-style-declaration): Document it.
24258 (Wextra): Enabled by -Wextra.
24259 * c-opts.c (c_common_post_options): Enabled by -Wextra.
24260 * c-decl.c (declspecs_add_scspec): Replace -Wextra with
24261 -Wold-style-declaration.
24262
24263 2007-01-02 Kazu Hirata <kazu@codesourcery.com>
24264
24265 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
24266 * cfgbuild.c (find_basic_blocks): Likewise.
24267 * cfgrtl.c (rtl_create_basic_block): Likewise.
24268 * function.c (temp_slots_at_level): Likewise.
24269 * reg-stack.c (stack_regs_mentioned): Likewise.
24270 * regclass.c (allocate_reg_info): Likewise.
24271 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
24272 set_bb_for_stmt, move_block_to_fn): Likewise.
24273 * tree-complex.c (tree_lower_complex): Likewise.
24274 * vec.h (VEC_safe_grow_cleared): New.
24275
24276 2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
24277
24278 * c-common.c (c_common_nodes_and_builtins): Since variants of
24279 void_type_node get built before it is given a name, we need to
24280 give those variants the name, too.
24281 (complete_array_type): We need to work with the canonical main
24282 type of the array, from which we will build the qualified version.
24283 * params.def (PARAM_VERIFY_CANONICAL_TYPES): New.
24284 * print-tree.c (print_node): Display canonical type information
24285 for each type.
24286 * stor-layout.c (layout_type): When we don't know the
24287 alignment of a type for which we're building an array, we end up
24288 guessing wrong, so make the type require structural equality.
24289 * tree.c (make_node_stat): When we build a new type, it is its
24290 own canonical type.
24291 (build_type_attribute_qual_variant): When building an attribute
24292 variant, its canonical type is the non-attribute variant. However,
24293 if the attributes are target-dependent and they differ, we need to
24294 use structural equality checks for this type.
24295 (build_qualified_type): A qualified type is not equivalent to its
24296 unqualified variant; set the canonical type appropriately.
24297 (build_distinct_type_copy): When building a distinct type from
24298 another type, the new type is its own canonical type.
24299 (build_variant_type_copy): When building a new type variant, we
24300 assume that it is equivalent to the original type.
24301 (build_pointer_type_for_mode): When building a pointer type, also
24302 build a canonical type pointer.
24303 (build_reference_type_for_mode): When building a reference type,
24304 also build a canonical type reference.
24305 (build_index_type): When we can't hash an index type (e.g.,
24306 because its maximum value is negative), the index type requires
24307 structural equality tests.
24308 (build_array_type): Build the canonical form of an array type.
24309 (build_function_type): Function types require structural equality,
24310 because they contain default arguments, attributes, etc.
24311 (build_method_type_directly): Ditto for method types.
24312 (build_offset_type): Build the canonical offset type.
24313 (build_complex_type): Build the canonical vector type.
24314 (make_vector_type): Build the canonical vector type.
24315 * tree.h (TYPE_CANONICAL): New.
24316 (TYPE_STRUCTURAL_EQUALITY_P): New.
24317 (SET_TYPE_STRUCTURAL_EQUALITY): New.
24318 (struct tree_type): Added "canonical" field.
24319 * params.h (VERIFY_CANONICAL_TYPES): New.
24320 * doc/c-tree.texi (TYPE_CANONICAL): Document.
24321 (TYPE_STRUCTURAL_EQUALITY_P): Document.
24322 (SET_TYPE_STRUCTURAL_EQUALITY): Document.
24323 * doc/invoke.texi (verify-canonical-types): Document --param
24324 parameter for verifying canonical types.
24325
24326 2007-01-02 Joseph Myers <joseph@codesourcery.com>
24327
24328 * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
24329 powerpc-*-eabisim*, powerpc-*-eabialtivec*, powerpc-*-eabi*,
24330 powerpc-*-rtems*, powerpc-wrs-vxworks, powerpc-wrs-vxworksae,
24331 powerpcle-*-eabisim*, powerpcle-*-eabi*): Add rs6000/e500.h to
24332 tm_file.
24333 * config/rs6000/e500.h: New.
24334 * config/rs6000/eabi.h (TARGET_SPE_ABI, TARGET_SPE, TARGET_E500,
24335 TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, TARGET_E500_DOUBLE):
24336 Remove.
24337 * config/rs6000/linuxspe.h (TARGET_SPE_ABI, TARGET_SPE,
24338 TARGET_E500, TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE,
24339 TARGET_E500_DOUBLE): Remove.
24340 * config/rs6000/vxworks.h (TARGET_SPE_ABI, TARGET_SPE,
24341 TARGET_E500, TARGET_ISEL, TARGET_FPRS): Remove.
24342 * config/rs6000/rs6000.h (CHECK_E500_OPTIONS): Define.
24343 * config/rs6000/rs6000.c (rs6000_override_options): Use
24344 CHECK_E500_OPTIONS.
24345
24346 2007-01-02 Joseph Myers <joseph@codesourcery.com>
24347
24348 * config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE ||
24349 TARGET_E500_DOUBLE), not TARGET_E500, for %y.
24350 (rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch,
24351 rs6000_emit_cmove): Don't check TARGET_E500.
24352 * config/rs6000/rs6000.md (bunordered, bordered, sunordered,
24353 sordered): Don't check TARGET_E500.
24354
24355 2007-01-01 Eric Christopher <echristo@apple.com>
24356
24357 * config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use
24358 HARD_REGISTER_NUM_P.
24359
24360 2007-01-01 Roger Sayle <roger@eyesopen.com>
24361
24362 * fold-const.c (fold_binary) <EQ_EXPR>: Fold "(X^C1) eq/ne C2" into
24363 "X eq/ne (C1^C2)". Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z
24364 has no side-effects. Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2))
24365 eq/ne Y".
24366
24367 2007-01-01 Mike Stump <mrs@apple.com>
24368
24369 * configure.ac: Remove support for building with Apple's gcc-3.1.
24370
24371 2007-01-02 Joseph Myers <joseph@codesourcery.com>
24372
24373 PR middle-end/30311
24374 * caller-save.c (add_stored_regs): Only handle SUBREGs if inner
24375 REG is a hard register. Do not modify REG before calling
24376 subreg_nregs.
24377 * rtlanal.c (subreg_get_info): Don't assert size of XMODE is a
24378 multiple of the size of YMODE for certain lowpart cases.
24379
24380 2007-01-01 Andrew Pinski <pinskia@gmail.com>
24381
24382 PR middle-end/30253
24383 * gimplify (voidify_wrapper_expr): Update for
24384 GIMPLE_MODIFY_STMT.
24385
24386 2007-01-01 Andreas Schwab <schwab@suse.de>
24387
24388 PR target/29166
24389 * config/ia64/ia64.c (ia64_compute_frame_size): Account space for
24390 save of BR0 in extra_spill_size instead of spill_size.
24391 (ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
24392 area.
24393 (ia64_expand_epilogue): Restore BR0 from its new location.
24394
24395 2007-01-01 Andrew Pinski <pinskia@gmail.com>
24396
24397 * gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>):
24398 Use a temporary variable if the left hand side is not a gimple
24399 register.
24400
24401 2007-01-01 Andrew Pinski <pinskia@gmail.com>
24402
24403 * gimplify.c (gimplify_return_expr): Make the temporary variable
24404 for the return expression, a gimple register variable.
24405
24406 2007-01-01 Jan Hubicka <jh@suse.cz>
24407
24408 * emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for
24409 INSN_LIST.
24410
24411 2007-01-01 Mike Stump <mrs@apple.com>
24412
24413 * configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for
24414 .literal16.
24415 * config/darwin.c (machopic_select_rtx_section): Use
24416 HAVE_GAS_LITERAL16.
24417 (darwin_mergeable_constant_section): Likewise.
24418 * configure: Regenerate.
24419 * config.in: Regenerate.
24420
24421 2007-01-01 Jan Hubicka <jh@suse.cz>
24422 Andrew Pinski <pinskia@gmail.com>
24423
24424 * cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions
24425 before starting IPA passes.