1 2007-09-07 Diego Novillo <dnovillo@google.com>
3 * tree-flow.h (const_block_stmt_iterator): Remove.
4 Update all users to use block_stmt_iterator.
5 * tree-iterator.h (const_tree_stmt_iterator): Remove.
6 Update all users to use tree_stmt_iterator.
8 2007-09-07 Sandra Loosemore <sandra@codesourcery.com>
10 * config/mips/mips.c (mips_set_current_function): Temporarily
11 make this a no-op to fix bootstrap errors, pending rewrite.
13 2007-09-07 Jan Hubicka <jh@suse.cz>
15 * reorg.c (dbr_schedule): Move code removing placeholder USEs later
18 2007-09-07 Dorit Nuzman <dorit@il.ibm.com>
20 PR tree-optimization/33299
21 * tree-vect-transform.c (vect_create_epilog_for_reduction): Update uses
22 for all relevant loop-exit phis, not just the first.
24 2007-09-07 Richard Guenther <rguenther@suse.de>
27 * tree-ssa-operands.c (access_can_touch_variable): An access
28 of the form (*p)[0] can touch a variable of same size.
30 2007-09-07 Jan Hubicka <jh@suse.cz>
32 * passes.c (init_optimization_passes): Add simple dce and addressable
34 * tree-ssa.c (execute_update_addresses_taken): New function.
35 (pass_update_address_taken): New.
36 * tree-ssa-dse.c (execute_simple_dse): New function.
37 (pass_simple_dse): New.
38 * tree-pass.h (pass_simple_dse, pass_update_address_taken): Declare.
40 2007-09-07 Tobias Burnus <burnus@net-b.de>
43 * doc/invoke.texi: Fix -Wstrict-overflow= table.
45 2007-09-07 Richard Guenther <rguenther@suse.de>
48 2007-09-06 Richard Guenther <rguenther@suse.de>
50 PR tree-optimization/32586
51 * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
52 folding if nothing changed.
53 (simplify_unary_expression): New function. Do tree combining
54 on conversion like codes.
55 (try_to_simplify): Call it.
57 2007-09-07 Richard Guenther <rguenther@suse.de>
58 Uros Bizjak <ubizjak@gmail.com>
60 PR tree-optimization/32821
61 * tree_if_conv.c (combine_blocks): Use alloc_stmt_list instead of
62 NULL in the call to set_bb_stmt_list.
64 2007-09-07 Richard Sandiford <richard@codesourcery.com>
66 * config/mips/mips.c (build_mips16_call_stub): Emit all direct
67 float calls here, rather than leaving some to the caller.
68 Use call_internal_direct and call_value_internal_direct.
69 * config/mips/mips.md (call_internal_direct): New pattern.
70 (call_value_internal_direct): Likewise.
72 2007-09-07 Richard Sandiford <richard@codesourcery.com>
74 * config/mips/mips.c (mips_base_move_loop_invariants): New variable.
75 (mips_set_mips16_mode): Restore flag_move_loop_invariants, then set
77 (override_options): Set mips_base_move_loop_invariants.
79 2007-09-07 Richard Sandiford <richard@codesourcery.com>
81 * config/mips/mips.opt (mcode-readable=): Move to keep list
84 2007-09-07 Richard Sandiford <richard@codesourcery.com>
86 * doc/invoke.texi: Document the MIPS -mlocal-sdata, -mextern-sdata
87 and -mgpopt options. Adjust the -G documentation to match.
88 * config/mips/mips.opt (mextern-data, mgpopt, mlocal-data): New.
89 * config/mips/mips.c (mips_rtx_constant_in_small_data_p): New
90 function, split out from mips_classify_symbol. Return false for
92 (mips_classify_symbol): Call mips_rtx_constant_in_small_data_p.
93 Only use GP-relative accesses for non-pool symbols if TARGET_GPOPT.
94 (override_options): Check whether the -mgpopt setting is consistent
96 (symbolic_expression_p): Delete.
97 (mips_select_rtx_section): Use mips_rtx_constant_in_small_data_p
98 and default_elf_select_rtx_section.
99 (mips_in_small_data_p): Honor section attributes for MIPS16 too.
100 Return false for local data unless TARGET_LOCAL_SDATA. Likewise
101 external data and TARGET_EXTERN_SDATA.
103 2007-09-07 Tobias Burnus <burnus@net-b.de>
106 * doc/cpp.texi (Common Predefined Macros): Add __GFORTRAN__.
108 2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
110 * regrename.c (copyprop_hardreg_forward_1): New variable next. Use
111 FOR_BB_INSNS_SAFE instead of for loop.
112 * cse.c (cse_extended_basic_block): Likewise.
113 * postreload.c (reload_cse_regs_1): New variable next. Make sure
114 that the for loop does not invoke NEXT_INSN on a deleted insn.
115 * function.c (instantiate_virtual_regs): Likewise.
116 * lower-subreg.c (remove_retval_note): Likewise.
117 (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
119 * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
121 * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
122 insn, if it's a jump.
123 (try_redirect_by_replacing_jump): New variable jump_p. Call
124 tablejump_p before delete_insn_chain.
125 * reload1.c (reload): New variable next. Make sure that the for
126 loop does not invoke NEXT_INSN on a deleted insn.
127 (fixup_eh_region_note): Make the loop terminate if i becomes NULL.
128 (delete_output_reload): New variable prev. Make sure the the for
129 loops do not invoke PREV_INSN on a deleted insn.
131 2007-09-06 Zdenek Dvorak <ook@ucw.cz>
133 * cgraphbuild.c (rebuild_cgraph_edges): Export.
134 * cgraph.h (rebuild_cgraph_edges): Declare.
135 * tree-pass.h (pass_expand_omp_ssa): New.
136 * omp-low.c (find_omp_clause): Export.
137 (copy_var_decl): Split from omp_copy_decl_2.
138 (build_omp_barrier): Return the call to emit instead of emitting
140 (lower_rec_input_clauses, expand_omp_single): Gimplify the result of
142 (extract_omp_for_data, expand_parallel_call, expand_omp_parallel,
143 expand_omp_for_generic, expand_omp_for_static_nochunk,
144 expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
145 Adapted to work on SSA form.
146 (execute_expand_omp): Do not invalidate dominance information.
147 (gate_expand_omp): Do not run with -fopenmp-ssa flag.
148 (gate_expand_omp_ssa, pass_expand_omp_ssa): New.
149 * gimplify.c (gimplify_omp_for): Ensure that the control variable is
151 (force_gimple_operand): Allow gimplifying code expressions without
153 * tree-predcom.c (mark_virtual_ops_for_renaming): Handle phi nodes.
154 * common.opt (fopenmp-ssa): New.
155 * tree-flow.h (find_omp_clause, copy_var_decl): Declare.
156 * Makefile.in (tree-cfg.o): Add TREE_INLINE_H dependency.
157 * tree-cfg.c: Include tree-inline.h.
158 (struct move_stmt_d): Replace vars_to_remove by vars_map field.
159 (replace_by_duplicate_decl, replace_ssa_name,
160 mark_virtual_ops_in_region): New functions.
161 (move_stmt_r, move_block_to_fn, move_sese_region_to_fn): Adapted
163 * passes.c (init_optimization_passes): Add pass_expand_omp_ssa pass.
164 * tree-ssa-operands.c (get_expr_operands): Handle operands of OMP
167 2007-09-06 Laurynas Biveinis <laurynas.biveinis@gmail.com>
169 * tree-loop-linear.c: Include obstack.h.
170 (linear_transform_loops): New obstack lambda_obstack.
171 Initialize it, pass it to gcc_loopnest_to_lambda_loopnest,
172 lambda_loopnest_transform, lambda_loopnest_to_gcc_loopnest calls
174 * lambda.h (struct obstack): New forward declaration.
175 (lambda_linear_expression_new): New parameter of type struct
177 (lambda_loopnest_new): Likewise.
178 (lambda_loopnest_transform): Likewise.
179 (lambda_body_vector_new): Likewise.
180 (lambda_body_vector_compute_new): Likewise.
181 (gcc_loopnest_to_lambda_loopnest): Likewise.
182 (lambda_loopnest_to_gcc_loopnest): Likewise.
183 * lambda-code.c: Include obstack.h.
184 (lambda_lattice_new): New parameter lambda_obstack. Use it for
186 (lambda_body_vector_new): Likewise.
187 (lambda_linear_expression_new): Likewise.
188 (lambda_lattice_new): Likewise.
189 (lambda_loopnest_new): Likewise. Additionally use obstack to
190 allocate LN_LOOPS(ret).
191 (lambda_lattice_compute_base): New parameter lambda_obstack. Pass
192 it to lambda_lattice_new.
193 (lambda_body_vector_compute_new): New parameter lambda_obstack.
194 Pass it to lambda_body_vector_new.
195 (lambda_lattice_compute_base): New paramater lambda_obstack. Pass
196 it to lambda_lattice_new.
197 (compute_nest_using_fourier_motzkin): New parameter lambda_obstack.
198 Pass it to lambda_loopnest_new, lambda_linear_expression_new.
199 (lambda_compute_target_space): Likewise.
200 (lambda_compute_auxillary_space): New parameter lambda_obstack.
201 Pass it to lambda_lattice_compute_base and
202 compute_nest_using_fourieer_motzkin.
203 (lambda_loopnest_transform): New parameter lambda_obstack. Pass
204 it to lambda_lattice_compute_base, lambda_lattice_auxillary_space
205 and lambda_lattice_compute_target_space.
206 (gcc_tree_to_linear_expression): Nex parameter lambda_obstack.
207 Pass it to lambda_linear_expression_new.
208 (gcc_loop_to_lambda_loop): New parameter lambda_obstack. Pass it
209 to gcc_tree_to_linear_expression.
210 (gcc_loopnest_to_lambda_loopnest): New parameter lambda_obstack.
211 Pass it to gcc_loop_to_lambda_loop and lambda_loopnest_new.
212 (lambda_loopnest_to_gcc_loopnest): New parameter lambda_obstack.
213 Pass it to lambda_body_vector_new and
214 lambda_body_vector_compute_new.
215 * Makefile.in (tree-loop-linear.o): Add $(OBSTACK_H) dependency.
216 (lambda-code.o): Likewise.
218 2007-09-06 Chao-ying Fu <fu@mips.com>
220 * ginclude/stdfix.h: New file.
221 * Makefile.in (USER_H): Add $(srcdir)/ginclude/stdfix.h.
222 (convert.o): Add dependence on fixed-value.h.
223 * c-convert.c (convert): Support FIXED_POINT_TYPE.
224 * c-cppbuiltin.c (builtin_define_fixed_point_constants): New function
225 to define fixed-point constants.
226 (c_cpp_builtins): Define fixed-point constants.
227 * convert.c (fixed-value.h): New include.
228 (convert_to_real): Update comment to include fixed-point.
229 Support FIXED_POINT_TYPE.
230 (convert_to_integer): Update comment to include fixed-point.
231 Support FIXED_POINT_TYPE.
232 (convert_to_complex): Support FIXED_POINT_TYPE.
233 (convert_to_fixed): New function.
234 * convert.h (convert_to_fixed): Declare.
235 * genopinit.c: Add comment about $Q for only fixed-point modes.
236 (optabs): Add fract_optab, fractuns_optab, satfract_optab,
237 satfractuns_optab, add_optab, ssadd_optab, usadd_optab, sub_optab,
238 sssub_optab, ussub_optab, smul_optab, ssmul_optab, usmul_optab,
239 ssmadd_widen_optab, usmadd_widen_optab, ssdiv_optab, udiv_optab,
240 usdiv_optab, ssashl_optab, usashl_optab, neg_optab, ssneg_optab,
241 usneg_optab for fixed-point modes.
242 (gen_insn): Add force_fixed to track the $Q format for all fixed-point
244 * optabs.c (optab_for_tree_code): For *DIV_EXPR, LSHIFT_EXPR,
245 PLUS_EXPR, MINUS_EXPR, MULT_EXPR, NEGATE_EXPR, return signed or
246 unsigned saturation optabs, when type is saturating.
247 (shift_optab_p): Return true for SS_ASHIFT or US_ASHIFT.
248 (expand_fixed_convert): New function.
249 (gen_fixed_libfunc, gen_signed_fixed_libfunc,
250 gen_unsigned_fixed_libfunc, gen_int_fp_fixed_libfunc,
251 gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc,
252 gen_int_signed_fixed_libfunc, gen_int_unsigned_fixed_libfunc,
253 gen_fract_conv_libfunc, gen_fractuns_conv_libfunc,
254 gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): New
256 (init_optabs): Initialize ssadd_optab, usadd_optab, sssub_optab,
257 ussub_optab, ssmul_optab, usmul_optab, ssmadd_widen_optab,
258 usmadd_widen_optab, ssmsub_widen_optab, usmsub_widen_optab,
259 ssdiv_optab, usdiv_optab, ssashl_optab, usashl_optab, ssneg_optab,
260 usneg_optab, fract_optab, fractuns_optab, satfract_optab,
262 Initialize fixed-point libraries, including add, ssadd, usadd, sub,
263 sssub, ussub, mul, ssmul, usmul, div, ssdiv, udiv, usdiv, ashl,
264 ssashl, usashl, ashr, lshr, neg, ssneg, usneg, cmp, fract, satfract,
265 fractuns, satfractuns.
266 * optabs.h (enum optab_index): Add OTI_ssadd, OTI_usadd, OTI_sssub,
267 OTI_ussub, OTI_ssmul, OTI_usmul, OTI_ssdiv, OTI_usdiv, OTI_ssneg,
268 OTI_usneg, OTI_ssashl, OTI_usashl, OTI_ssmadd_widen, OTI_usmadd_widen,
269 OTI_ssmsub_widen, OTI_usmsub_widen.
270 (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab,
271 usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab,
272 ssashl_optab, usashl_optab, ssmadd_widen_optab, usmadd_widen_optab,
273 umsub_widen_optab, usmsub_widen_optab): Define.
274 (enum convert_optab_index): Add COI_fract, COI_fractuns, COI_satfract,
276 (fract_optab, fractuns_optab, satfract_optab, satfractuns_optab):
278 (expand_fixed_convert): Declare.
279 * expr.c (convert_move): Support the move of fixed-point modes.
280 (emit_move_insn_1): Handle fixed-point mode to move via integer.
281 (categorize_ctor_elements_1): Handle FIXED_CST.
282 (count_type_elements): Handle FIXED_POINT_TYPE.
283 (expand_expr_real_1): For VECTOR_CST, check MODE_VECTOR_FRACT,
284 MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
286 For PLUS_EXPR and MINUS_EXPR, support saturating and non-saturating
287 multiply and add/subtract for fixed-point types.
288 For MULT_EXPR, *DIV_EXPR, *SHIFT_EXPR, if the mode if a fixed-point
289 mode, we jump to binop directly.
290 Support FIXED_CONVERT_EXPR.
291 (do_store_flag): Check FIXED_CST to put a constant second.
292 (vector_mode_valid_p): Handle MODE_VECTOR_FRACT,
293 MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
294 (const_vector_from_tree): Support FIXED_CST.
295 * doc/extend.texi (Fixed-Point): New node.
296 * doc/md.texi (ssadd, usadd, sssub, ussub, ssmul, usmul, ssdiv, usdiv,
297 ssmadd, usmadd, ssmsub, usmsub, ssashl, usashl, ssneg, usneg, fract,
298 satfract, fractuns, satfractuns): Document them.
300 2007-09-07 Bernd Schmidt <bernd.schmidt@analog.com>
302 * config/bfin/bfin.h (PREFERRED_RELOAD_CLASS): Don't reload autoinc
303 addresses into I registers.
305 2007-09-06 Jan Hubicka <jh@suse.cz>
306 Andreas Tobler <a.tobler@schweiz.org>
308 * config/darwin.c (machopic_indirect_data_reference): Avoid invalid
310 (machopic_legitimize_pic_address): Likewise.
312 2007-09-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
313 Jan Hubicka <jh@suse.cz>
315 * config/spu/spu.md (floatsidf2): Use convert_optab_libfunc
316 instead of ufloat_optab->handlers directly.
317 (floatdidf2): Likewise.
319 2007-09-06 Sandra Loosemore <sandra@codesourcery.com>
321 * config/mips/mips.c: Include diagnostic.h.
322 (mips_set_current_function): Check errorcount and sorrycount
323 before generating RTL.
325 2007-09-06 Richard Sandiford <richard@codesourcery.com>
328 * config/mips/mips.c (mips_classify_symbolic_expression): New function.
329 (mips_classify_address): Use it instead of mips_symbolic_constant_p.
330 (print_operand_reloc): Likewise.
332 2007-09-06 Janis Johnson <janis187@us.ibm.com>
336 2007-09-06 Jan Hubicka <jh@suse.cz>
338 * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
341 2007-09-06 Richard Sandiford <richard@codesourcery.com>
343 * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
344 (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
346 2007-09-05 Janis Johnson <janis187@us.ibm.com>
348 * optabs.c (expand_float): Convert unsigned integer as signed only
349 if it provides sufficient accuracy; add mode argument to real_2expN.
350 (expand_fix): Fix comment typos; extend binary float into mode
351 wider than destination for converion to unsigned integer; add mode
352 argument to real_2expN.
353 * real.c (real_2expN): Add mode argument to special-case decimal
355 * real.h (real_2expN): Ditto.
356 * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
358 (fixed_from_string): Ditto.
359 (fixed_to_decimal): Ditto.
360 (fixed_convert_from_real): Ditto.
361 (real_convert_from_fixed): Ditto.
362 * config/rs6000/rs6000.md (FP): Include DD and TD modes.
363 * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
364 muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
365 floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
367 2007-09-06 Tom Tromey <tromey@redhat.com>
369 * tree-cfg.c (remove_bb): Only warn if line is non-zero.
370 * c-pch.c (c_common_read_pch): Restore current location after
372 * tree.c (expand_location): Update.
373 (expr_filename): Changed return type. Unified the two cases.
374 (expr_lineno): Likewise.
375 (annotate_with_file_line): Don't use EXPR_LINENO and EXPR_FILENAME
377 * toplev.c (line_table): Changed type.
378 (general_init): Update.
379 (realloc_for_line_map): New function.
380 (general_init): Allocate line_table using GC.
381 * fix-header.c (line_table): Changed type.
382 (read_scan_file): Update.
383 (read_scan_file): Update.
384 * c-ppoutput.c (maybe_print_line): Update.
385 (print_line): Update.
386 (cb_line_change): Update.
388 (pp_file_change): Update.
389 * c-opts.c (c_common_init_options): Update.
390 (finish_options): Update.
391 (push_command_line_include): Update.
392 * c-lex.c (cb_line_change): Update.
393 (cb_def_pragma): Update.
396 (c_lex_with_flags): Use cpp_get_token_with_location.
397 * input.h (line_table): Changed type.
398 (location_from_locus): New macro.
399 * tree.h (EXPR_FILENAME): No longer an lvalue.
400 (EXPR_LINENO): Likewise.
401 (expr_locus, set_expr_locus): Declare separately for
403 (expr_filename, expr_lineno): Changed return type.
404 * gimplify.c (tree_to_gimple_tuple): Use SET_EXPR_LOCUS.
405 * cfgexpand.c (expand_gimple_cond_expr): Use location_from_locus.
406 (expand_gimple_basic_block): Likewise.
407 * final.c (final_scan_insn): Use expanded_location.
409 2007-09-06 Richard Guenther <rguenther@suse.de>
411 PR tree-optimization/32586
412 * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
413 folding if nothing changed.
414 (simplify_unary_expression): New function. Do tree combining
415 on conversion like codes.
416 (try_to_simplify): Call it.
417 * builtins.c (fold_builtin_cexp): Fold the built expressions.
418 * fold-const.c (fold_unary): Test result of get_callee_fndecl().
420 2007-09-06 Jan Hubicka <jh@suse.cz>
423 * cse.c (fold_rtx): Avoid invalid sharing.
425 2007-09-06 Richard Sandiford <richard@codesourcery.com>
427 * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
428 (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
430 2007-09-06 Revital Eres <eres@il.ibm.com>
432 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
433 Fix offsettable memory reference for 750CL.
435 2007-09-06 Pat Haugen <pthaugen@us.ibm.com>
437 * reload.c (find_reloads_address_1): Try to preserve original
438 base/index regclass of operands.
439 * regrename.c (scan_rtx_address): Likewise.
440 (replace_oldest_value_addr): Likewise.
442 2007-09-06 Richard Guenther <rguenther@suse.de>
444 PR tree-optimization/33302
445 * domwalk.c (walk_dominator_tree): The exit block is
446 interesting even if it is not reachable.
448 2007-09-06 Richard Sandiford <richard@codesourcery.com>
451 * optabs.c (avoid_expensive_constant): Do nothing if MODE is VOIDmode.
453 2007-09-06 Basile Starynkevitch <basile@starynkevitch.net>
455 * cfg.c (dump_bb_info, dump_edge_info): Added cfun test for
458 2007-09-05 Ian Lance Taylor <iant@google.com>
460 * tree-pretty-print.c (dump_decl_name): Cast LABEL_DECL_UID to int
462 (dump_generic_node): Likewise.
463 * print-rtl.c (print_decl_name): Likewise.
464 * print-tree.c (print_node_brief): Likewise.
465 (print_node): Likewise.
466 * Makefile.in (RTL_BASE_H): Add alias.h.
469 2007-09-06 Jesper Nilsson <jesper.nilsson@axis.com>
471 * longlong.h [__CRIS_arch_version >= 8] (count_trailing_zeros):
473 * config/cris/cris.md (ctzsi2, cris_swap_bits): Implemented.
474 * config/cris/cris.h (CTZ_DEFINED_VALUE_AT_ZERO): Defined.
476 2007-09-06 Jie Zhang <jie.zhang@analog.com>
478 * config.gcc (tm_file): Add linux.h for bfin*-uclinux*.
479 (tm_defines): Define UCLIBC_DEFAULT to 1.
480 (extra_options): Add linux.opt.
481 * config/bfin/linux.h (CPLUSPLUS_CPP_SPEC): Don't define.
482 (CRT_CALL_STATIC_FUNCTION): Likewise.
483 (NO_IMPLICIT_EXTERN_C): Likewise.
484 (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
485 * config/bfin/elf.h (OBJECT_FORMAT_ELF): Don't define.
486 * config/bfin/uclinux.h (CPLUSPLUS_CPP_SPEC): Don't define.
487 (ENDFILE_SPEC): Don't define.
488 (LIB_SPEC): Likewise.
489 (CRT_CALL_STATIC_FUNCTION): Likewise.
490 (NO_IMPLICIT_EXTERN_C): Likewise.
491 (LINUX_TARGET_OS_CPP_BUILTINS): Likewise.
492 (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
494 2007-09-06 Jan Hubicka <jh@suse.cz>
496 * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
499 2007-09-06 Jan Hubicka <jh@suse.cz>
501 * opts.c (common_handle_option): Enable inlining functions for
504 2007-09-06 Jakub Jelinek <jakub@redhat.com>
506 * builtin-attrs.def (ATTR_NONNULL_3): New.
507 (DEF_FORMAT_ATTRIBUTE): Use just ATTR_NONNULL_##FA instead of
508 ATTR_NOTHROW_NONNULL_##FA.
509 (DEF_FORMAT_ATTRIBUTE_NOTHROW, DEF_FORMAT_ATTRIBUTE_BOTH): New macros.
510 (ATTR_FORMAT_PRINTF_NOTHROW_2_0, ATTR_PRINTF_NOTHROW_2_3,
511 ATTR_FORMAT_PRINTF_NOTHROW_3_0, ATTR_FORMAT_PRINTF_NOTHROW_3_4,
512 ATTR_FORMAT_PRINTF_NOTHROW_4_0, ATTR_PRINTF_NOTHROW_4_5,
513 ATTR_FORMAT_PRINTF_NOTHROW_5_0, ATTR_FORMAT_PRINTF_NOTHROW_5_6,
514 ATTR_FORMAT_SCANF_NOTHROW_2_0, ATTR_FORMAT_SCANF_NOTHROW_2_3,
515 ATTR_FORMAT_STRFTIME_NOTHROW_3_0, ATTR_FORMAT_STRFMON_NOTHROW_3_4):
517 (ATTR_FORMAT_PRINTF_4_0, ATTR_PRINTF_4_5, ATTR_FORMAT_PRINTF_5_0,
518 ATTR_FORMAT_PRINTF_5_6, ATTR_FORMAT_STRFTIME_3_0,
519 ATTR_FORMAT_NOTHROW_3_4): Remove.
520 * builtins.def (snprintf, sprintf, sscanf, vsnprintf, vsprintf,
521 vsscanf, strfmon, strftime, __snprintf_chk, __sprintf_chk,
522 __vsnprintf_chk, __vsprintf_chk): Use ATTR_FORMAT_*_NOTHROW_*
523 instead of ATTR_FORMAT_*_*.
525 2007-09-06 Hans-Peter Nilsson <hp@axis.com>
527 * config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on
528 parts re-used for REG_FRAME_RELATED_EXPR.
530 2007-09-05 Janis Johnson <janis187@us.ibm.com>
532 * optabs.c (expand_float): Convert unsigned integer as signed only
533 if it provides sufficient accuracy; add mode argument to real_2expN.
534 (expand_fix): Fix comment typos; extend binary float into mode
535 wider than destination for converion to unsigned integer; add mode
536 argument to real_2expN.
537 * real.c (real_2expN): Add mode argument to special-case decimal
539 * real.h (real_2expN): Ditto.
540 * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
542 (fixed_from_string): Ditto.
543 (fixed_to_decimal): Ditto.
544 (fixed_convert_from_real): Ditto.
545 (real_convert_from_fixed): Ditto.
546 * config/rs6000/rs6000.md (FP): Include DD and TD modes.
547 * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
548 muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
549 floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
551 2007-09-05 Ian Lance Taylor <iant@google.com>
553 * init-regs.c (initialize_uninitialized_regs): Call
554 emit_insn_before rather than add_insn_before.
556 2007-09-05 Jakub Jelinek <jakub@redhat.com>
558 * builtins.def (BUILT_IN_VA_ARG_PACK): New built-in.
559 * tree.h (CALL_EXPR_VA_ARG_PACK): Define.
560 * tree-inline.h (copy_body_data): Add call_expr field.
561 * tree-inline.c (expand_call_inline): Initialize call_expr.
562 (copy_bb): Append anonymous inline fn arguments to arguments
563 when inlining a CALL_EXPR_VA_ARG_PACK call.
564 * builtins.c (expand_builtin): Issue an error if
565 BUILT_IN_VA_ARG_PACK is seen during expand.
566 (fold_call_expr, fold_builtin_call_array): Don't fold
567 CALL_EXPR_VA_ARG_PACK CALL_EXPRs or calls with
568 __builtin_va_arg_pack () call as last argument.
569 * gimplify.c (gimplify_call_expr): If last argument to a vararg
570 function is __builtin_va_arg_pack (), decrease number of call
571 arguments and instead set CALL_EXPR_VA_ARG_PACK on the CALL_EXPR.
572 * expr.c (expand_expr_real_1): Issue an error if
573 CALL_EXPR_VA_ARG_PACK CALL_EXPR is seen during expand.
574 * tree-pretty-print.c (dump_generic_node): Handle printing
575 CALL_EXPR_VA_ARG_PACK bit on CALL_EXPRs.
576 * doc/extend.texi (__builtin_va_arg_pack): Document.
578 2007-09-05 Adam Nemet <anemet@caviumnetworks.com>
580 PR tree-optimization/21513
581 * builtins.c (build_builtin_expect_predicate): New function.
582 (fold_builtin_expect): Add argument for expected value.
583 Distribute __builtin_expect over short-circuiting operations.
584 Fold nested builtin_expects.
585 (fold_builtin_2): Adjust call to fold_builtin_expect.
587 2007-09-05 Rask Ingemann Lambertsen <rask@sygehus.dk>
590 PR tree-optimization/13756
591 * doc/invoke.texi (Options That Control Optimization): Document
594 2007-09-05 Uros Bizjak <ubizjak@gmail.com>
596 * gcc/config/i386/cpuid.h: New file.
597 * gcc/config/i386/driver-i386.c: Include cpuid.h.
598 (describe_cache): Shrink size and line strings to 100 bytes.
599 (detect_caches_amd): Return "" for unsupported max_ext_level.
600 Use __cpuid function.
601 (detect_caches_intel): Return "" for unsupported max_level.
602 Use __cpuid function.
603 (host_detect_local_cpu): Change feature flag variables to
604 unsigned int. Initialize only extended feature flag variables.
605 Use __get_cpuid_max to determine max supported cpuid level.
606 Use __cpuid function to determine supported features. Fix
607 calculation of family id. Remove is_amd and check signature
608 directly. Check for Geode signature. Handle family 4 id.
609 [PROCESSOR_GENERIC32]: New default for unknown family id. Move
610 cpu discovery code to lower part of the function.
611 [PROCESSOR_PENTIUM, PROCESSOR_K6, PROCESSOR_ATHLON]: Do not tune
612 for sub-architecture.
613 [PROCESSOR_PENTIUMPRO]: Simplify cpu discovery code.
614 [PROCESSOR_K8]: Add k8-sse3 architecture.
615 [PROCESSOR_NOCONA]: Remove.
616 [PROCESSOR_GENERIC64]: Ditto.
617 * gcc/config/i386/x-i386 (driver-i386.o): Depend on cpuid.h.
618 * gcc/config/i386/crtfastmath.c: Include cpuid.h. Use __get_cpuid
619 to check for SSE and FXSAVE support.
620 * gcc/config/i386/t-crtfm (crtfastmath.o): Depend on cpuid.h.
621 Add -minline-all-stringops.
622 * gcc/config.gcc (i[34567]86-*-*): Add cpuid.h to extra_headers.
625 2007-09-05 Jie Zhang <jie.zhang@analog.com>
627 * config/bfin/linux-unwind.h: New file.
628 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Define.
629 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Define.
631 2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
633 * Makefile.in (stmt.o): Add alloc-pool.h dependency.
634 * stmt.c: Include alloc-pool.h.
635 (struct case_node): Remove GTY marker.
636 (add_case_node): New parameter case_node_pool. Use it for
638 (expand_case): New allocation pool case_node_pool. Initialize it,
639 pass to add_case_node and free it.
641 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
642 David Ung <davidu@mips.com>
643 Nigel Stephens <nigel@mips.com>
645 Add mips16/nomips16 function attributes and -mflip-mips16 option
646 for testing mixed-mode compilation.
648 * config/mips/mips.opt (mflip-mips16): New.
650 * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Define.
651 (SYMBOL_FLAG_MIPS16_FUNC_P): Define.
653 * config/mips/mips.c (mips_base_target_flags): New.
654 (mips_base_mips16): New.
655 (mips_base_schedule_insns): New.
656 (mips_base_reorder_blocks_and_partition): New.
657 (mips_base_align_loops): New.
658 (mips_base_align_jumps): New.
659 (mips_base_align_functions): New.
660 (mips16_flipper): New.
661 (mips_attribute_table): Add "mips16" and "nomips16" entries.
662 (TARGET_SET_CURRENT_FUNCTION): Define.
663 (mips_mips16_type_p, mips_nomips16_type_p): New.
664 (mips_comp_type_attributes): Check mips16/nomips16 attributes.
665 (mips_function_ok_for_sibcall): Make it deal with functions with
667 (mips_init_split_addresses): New, split out from override_options.
668 (mips_init_relocs): New, split out from override_options.
670 (mips_set_mips16_mode): New, split out from override_options.
671 (mips_set_current_function): New.
672 (override_options): Add sorry for unsupported mips16/pic
673 combination. Remove error for mips16/dsp combination. Save
674 base option settings.
675 (mips_file_start): Move mips16 mode setting output from here....
676 (mips_output_function_prologue): ....to here.
677 (mips_output_mi_thunk): Check for mips16 function.
678 (build_mips16_function_stub): Don't set .mips16 here.
679 (build_mips16_call_stub): Likewise.
680 (mips_expand_builtin): Error in mips16 mode.
681 (mips_use_mips16_mode_p): New.
682 (mips_encode_section_info): Check for mips16 function, and set
683 SYMBOL_REF_FLAGS accordingly.
685 * doc/extend.texi (Function Attributes): Document new
686 mips16/nomips16 attributes.
687 * doc/invoke.texi (Option Summary): Add -mflip-mips16.
688 (MIPS Options): Document -mflip-mips16.
690 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
692 * config/mips/mips.c (mips_legitimize_tls_address): Call sorry
693 if we encounter TLS address in MIPS16 mode.
694 (mips_legitimize_const_move): Check cannot_force_const_mem for
695 the (const (plus symbol offset)) case; this forces invalid TLS
696 address in MIPS16 mode to be caught by the above call to sorry.
697 (override_options): Don't reset targetm.have_tls in MIPS16 mode,
698 because that now enables emutls, which is not ABI compatible
699 with native TLS in non-MIPS16 mode.
701 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
703 Add target hook invoked when cfun changes.
705 * doc/tm.texi (TARGET_SET_CURRENT_FUNCTION): Document.
706 * target.h (struct gcc_target): Add set_current_function.
707 * target-def.h (TARGET_SET_CURRENT_FUNCTION): Define.
708 (TARGET_INITIALIZER): Add initializer for set_current_function.
709 * tree.h (push_struct_function): New.
710 * tree-inline.h (push_cfun, pop_cfun): Move declarations to...
713 * tree-inline.c (cfun_stack, push_cfun, pop_cfun): Moved to...
715 (push_function_context_to): Use allocate_struct_function
716 to create null context, not init_dummy_function_start. Use set_cfun.
717 (pop_function_context_from): Use set_cfun.
718 (in_dummy_function): New.
719 (invoke_set_current_function_hook): New.
721 (push_cfun, pop_cfun): Use set_cfun.
722 (push_struct_function): New.
723 (allocate_struct_function): Call invoke_set_current_function_hook
725 (prepare_function_start): Don't set cfun here. Remove unused
726 argument; fix all callers.
727 (init_dummy_function_start): Fiddle with in_dummy_function. Call
728 push_struct_function.
729 (init_function_start): Set cfun here.
730 (expand_dummy_function_end): Fiddle with in_dummy_function. Pop cfun.
731 * omp-low.c (create_omp_child_function): Use push_struct_function
732 and pop_cfun to save/restore state.
733 (expand_omp_parallel): Remove unused saved_cfun variable.
734 * cgraphunit.c (ipa_passes): Use set_cfun.
735 * gimple-low.c (record_vars_into): Use push_cfun/pop_cfun here.
736 * dwarf2out.c (dwarf2out_abstract_function): Likewise.
737 * matrix-reorg.c (transform_allocation_sites): Likewise.
738 (matrix_reorg): Use set_cfun.
739 * gimplify.c (gimplify_function_tree): Use push_cfun/pop_cfun here.
740 * tree-optimize.c (tree_rest_of_compilation): Remove one redundant
741 assignment to cfun; use set_cfun for the other.
742 * tree-cfg.c (move_sese_region_to_fn): Use set_cfun.
743 (dump_function_to_file): Use push_cfun/pop_cfun here.
744 * c-decl.c (finish_function): Use set_cfun.
746 2007-09-05 Kenneth Zadeck <zadeck@naturalbridge.com>
748 * regrename.c (rerename_optimize): Use deferred rescanning and
749 insert explicit calls to rescan insns when changed.
751 2007-09-05 Jan Hubicka <jh@suse.cz>
753 * optabs.c (libfunc_entry): Change optab to integer.
754 (hash_libfunc, convert_optab_libfunc, optab_libfunc,
755 set_optab_libfunc, set_conv_libfunc): Use optable indexes instead
756 of pointers for hashing.
758 2007-09-05 Jan Hubicka <jh@suse.cz>
760 * regrename.c (pass_regrename, pass_cprop_hardreg): Add RTL sharing
762 * fwprop.c (pass_rtl_fwprop, pass_rtl_fwprop_add): Likewise.
763 * see.c (pass_see): Likewise.
764 * tracer.c (pass_tracer): Likewise.
765 * postreload-gcse.c (pass_gcse2): Likewise.
766 * postreload.c (pass_postreload_cse): Likewise.
767 * mode-switching.c (pass_mode_switching): Likewise.
768 * modulo-sched.c (pass_sms): Likewise.
769 * cse.c (cse_insn): Likewise.
770 * web.c (pass_web): Likweise.
771 * combine-stack-adj.c (pass_stack_adjustments): Likewise.
772 * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Likewise.
773 * loop-init.c (pass_rtl_loop_init): Likewise.
774 (pass_rtl_loop_done, pass_rtl_move_loop_, pass_rtl_unswitch,
775 pass_rtl_unroll_and, pass_rtl_doloop): Likewise.
776 * global.c (pass_global_alloc): Likewise.
777 * ifcvt.c (pass_rtl_ifcvt, pass_if_after_combine,
778 pass_if_after_reload): Likewise.
779 * reload.c (pass_peephole2, pass_split_for_shoren_branches): Likewise.
780 * dse.c (pass_rtl_dse1, pass_rtl_dse2): Likewise.
781 * regmove.c (pass_regmove): Likewise.
782 * function.c (pass_thread_prologugues_epilogues): Likewise.
783 * gcse.c (pass_gcse): Likewise.
784 * rtl-factoring.c (pass_rtl_seqabstr): Likewise.
785 * lower-subreg.c (pass_lower_subreg2): Likewise.
786 * bt-load.c (pass_branch_target_load): Likewise.
787 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
788 * cfgcleanup.c (pass_jump, pass_jump2): Likewise.
789 * combine.c (pass_combine): Likewise.
790 * bb-reorder.c (pass_duplicate_comp, pass_reorder_blocks): Likewise.
791 (pass_partition_blocks): Likewise.
792 * var-tracking.c (pass_variable_track): Likewise.
793 * reg-stack.c (pass_stack_regs_run): Likewise.
794 * sched-rgn.c (pass_sched, pass_sched2): Likewise.
795 * passes.c (pass_postreload): Likewise.
796 (execute_function_todo): Add TODO_verify_rtl_sharing handling code.
797 * tree-pass.h (TODO_verify_rtl_sharing): New.
798 (TODO_update_ssa, TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
799 TODO_update_ssa_only_virtuals, TODO_remove_unused_locals,
800 TODO_set_props, TODO_df_finish, TODO_df_verify,
801 TODO_mark_first_instance, TODO_rebuild_alias): Renumber.
803 2007-09-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
805 * fold-const.c (all_ones_mask_p, sign_bit_p, simple_operand_p,
806 fold_real_zero_addition_p, reorder_operands_p,
807 div_if_zero_remainder, fold_undefer_overflow_warnings,
808 int_binop_types_match_p, fold_convert_const_int_from_int,
809 fold_convert_const_int_from_real,
810 fold_convert_const_int_from_fixed,
811 fold_convert_const_real_from_real,
812 fold_convert_const_real_from_fixed,
813 fold_convert_const_fixed_from_fixed,
814 fold_convert_const_fixed_from_int,
815 fold_convert_const_fixed_from_real, maybe_lvalue_p,
816 fold_checksum_tree, fold_check_failed, print_fold_checksum,
817 debug_fold_checksum, multiple_of_p): Constify.
818 * tree-flow-inline.h (get_lineno): Likewise.
819 * tree-flow.h (get_lineno): Likewise.
820 * tree-object-size.c (compute_object_offset, addr_object_size,
821 alloc_object_size, pass_through_call): Likewise.
822 * tree-pretty-print.c (op_symbol, print_call_name,
823 print_struct_decl, do_niy): Likewise.
824 * tree.h (fold_undefer_overflow_warnings, multiple_of_p,
825 debug_fold_checksum): Likewise.
827 2007-09-04 Steven Bosscher <steven@gcc.gnu.org>
830 * lower-subreg.c (resolve_clobber): If we remove a REG_LIBCALL
831 note, remove the associated REG_RETVAL note.
833 2007-09-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
835 * config.gcc (powerpc*-*-*): Install
836 spu2vmx.h, vec_types.h, and si2vmx.h headers.
837 * config/rs6000/spu2vmx.h: New header.
838 * config/rs6000/si2vmx.h: New header.
839 * config/rs6000/vec_types.h: New header.
841 2007-09-05 Ben Elliston <bje@au.ibm.com>
843 * varasm.c (initializer_constant_valid_p): Fix comment typo.
845 2007-09-05 Ben Elliston <bje@au.ibm.com>
847 * config/rs6000/ppu_intrinsics.h (__ldarx): Use `Z' constraint,
849 (__stdcx): Make asm volatile.
850 (__stwcx, __stdcx): Return only 0 or 1.
852 2007-09-05 Jan Hubicka <jh@suse.cz>
856 2007-09-04 Jan Hubicka <jh@suse.cz>
857 * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
859 2007-09-04 Richard Guenther <rguenther@suse.de>
860 * tree-ssa-operands.c (add_virtual_operand): Only mark
861 stores as has_volatile_ops if alias information is not available.
863 2007-09-05 Jakub Jelinek <jakub@redhat.com>
865 * config/rs6000/tramp.asm: Include config.h.
866 Check __PIC__ or __pic__ macro instead of SHARED.
868 PR rtl-optimization/32300
869 * see.c (see_copy_insn): New function.
870 (see_def_extension_not_merged, see_merge_one_use_extension,
871 see_merge_one_def_extension): Use it. Avoid changing
872 PREV_INSN/NEXT_INSN chains directly, insted emit insns
873 into sequences. Call df_insn_delete on temporary insns
874 that won't be emitted into the insn stream.
875 (rest_of_handle_see): Turn off DF_DEFER_INSN_RESCAN
876 and run df_process_deferred_rescans () before run_fast_dce.
878 PR tree-optimization/33017
879 * tree-data-ref.c (split_constant_offset) <case SSA_NAME>: Don't
880 recurse for pure or const function calls.
882 2007-09-04 Laurynas Biveinis <laurynas.biveinis@gmail.com>
884 * c-format.c: Include alloc-pool.h.
885 (check_format_info_main): New argument fwt_alloc. Use allocation
886 pool instead of GC. Remove GC deallocation code.
887 (check_format_arg): Create allocation pool, pass it to
888 check_format_info_main and free it afterwards.
889 * Makefile.in (c-format.o): Add alloc-pool.h dependency.
891 2007-09-05 Ben Elliston <bje@au.ibm.com>
893 * config/rs6000/ppu_intrinsics.h (__protected_stream_count):
894 Rename count macro arugment for clarity.
895 (__protected_unlimited_stream_set): Pass UG=1 to __dcbt_TH1000.
896 (__protected_stream_set): Likewise, pass 0.
898 2007-09-04 Jan Hubicka <jh@suse.cz>
900 * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
902 2007-09-04 Jan Hubicka <jh@suse.cz>
904 * invoke.texi (-finline-small-functions): Document.
905 * ipa-inline.c (cgraph_default_inline_p): Do not use DECL_INLINE
906 when deciding what is inlinable.
907 (cgraph_decide_recursive_inlining): Handle flag_inline_functions.
908 (cgraph_decide_inlining_of_small_function): Handle new flags.
909 (cgraph_decide_inlining_incrementally): Likewise.
910 * opts.c (decode_options): Enable flag_inline_small_functions at -O2
911 * common.opt (finline-small-functions): New.
912 * Makefile.in (build/gengtype.o-warn): Work around PR29478
914 2007-09-04 Richard Guenther <rguenther@suse.de>
916 * tree-ssa-operands.c (add_virtual_operand): Only mark
917 stores as has_volatile_ops if alias information is not available.
919 2007-09-04 Andrew Haley <aph@redhat.com>
921 * config/arm/libgcc-bpabi.ver: Add _Unwind_Backtrace as GCC_4.3.0.
923 2007-09-04 Andrew Haley <aph@redhat.com>
925 * config/arm/libunwind.S (UNWIND_WRAPPER _Unwind_Backtrace): New.
926 * config/arm/unwind-arm.h (__gnu_Unwind_Backtrace): New.
927 * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): New.
929 2007-09-04 Emmanuel Thome <Emmanuel.Thome@inria.fr>
932 * common.opt: Mention ABI version 2 in comment.
934 2007-09-04 Jan Hubicka <jh@suse.cz>
936 * optabs.c (debug_optab_libfunc): Update; make available to gdb.
937 (libfunc_entry): New structure.
938 (libfunc_hash): New hashtable.
939 (hash_libfunc): New function.
940 (eq_libfunc): New function.
941 (convert_optab_libfunc): New function.
942 (optab_libfunc): New function.
943 (expand_binop, sign_expand_binop, expand_twoval_binop_libfunc,
944 expand_unop, prepare_cmp_insn, prepare_float_insn, gen_add2_insn,
945 expand_float, expand_fix, new_optab, new_convert_optab):
946 Update for new libfunc API.
947 (init_libfunc, init_integral_libfuncs,
948 init_floating_libfuncs, init_interclass_conv_libfuncs
949 init_intraclass_conv_libfuncs): Remove; reorganize all logic to:
950 (gen_libfunc, gen_int_libfunc, gen_fp_libfunc, gen_int_fp_libfunc,
951 gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
952 gen_int_to_fp_conv_libfunc, gen_ufloat_conv_libfunc,
953 gen_int_to_fp_nondecimal_conv_libfunc, gen_fp_to_int_conv_libfunc,
954 gen_intraclass_conv_libfunc, gen_trunc_conv_libfunc,
955 gen_extend_conv_libfunc): New.
956 (init_one_libfunc): Revamp for hashtables.
957 (set_conv_libfunc): Likewise.
958 (init_optabs): Initialize hashtable; use lazy initialization where
960 * optabs.h (optab_handlers): Move out of GGC.
961 (optab, convert_optab): Move out of GGC; add lazy gen info.
962 (code_to_optab, convert_optab_table, optab_table): Move out of GGC.
963 (optab_libfunc, convert_optab_libfunc): New.
964 * builtins.c (expand_builtin_powi): Update for new API.
965 * expr.c (convert_move): Likewise.
966 * expmed.c (expand_divmod): Likewise.
968 2007-09-04 Daniel Jacobowitz <dan@codesourcery.com>
970 * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space for the
971 GOT pointer only if there is a constant pool. Use the allocated space
974 2007-09-04 Daniel Jacobowitz <dan@codesourcery.com>
976 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Correct
979 2007-09-04 Revital Eres <eres@il.ibm.com>
980 Richard Guenther <rguenther@suse.de>
981 R. Clint Whaley <whaley@cs.utsa.edu>
983 * doc/invoke.texi (-fassociative-math, -freciprocal-math):
985 * tree-tailcall.c (process_assignment): Use -fassociative-math
986 when reodering operands of floating-point type.
987 * fold-const.c (fold_comparison, fold_binary): Use
988 -fassociative-math and -freciprocal-math instead of
989 -funsafe-math-optimization flag.
990 * toplev.h (set_unsafe_math_optimizations_flags): Declare function.
991 * tree-ssa-math-opts.c (gate_cse_reciprocals): Use
992 -freciprocal-math instead of -funsafe-math-optimizations.
993 * opts.c (set_fast_math_flags): Set -freciprocal-math and
994 -fassociative-math when -ffast-math is set.
995 (set_unsafe_math_optimizations_flags): New Function
996 to set -freciprocal-math and -fassociative-math when
997 -funsafe-math-optimizations is set.
998 (common_handle_option): Call it.
999 * tree-vectorizer.c (vect_is_simple_reduction): Use
1000 -fassociative-math when doing reduction on floats.
1001 * loop-unroll.c (analyze_insn_to_expand_var): Use
1002 -fassociative-math when expanding an accumulator of type float.
1003 * simplify-rtx.c (simplify_binary_operation_1): Use
1004 -fassociative-math and -freciprocal-math when reordeing operands
1005 of floating-point type.
1006 * combine.c (combine_simplify_rtx): Likewise.
1007 * tree-ssa-reassoc.c (break_up_subtract_bb, reassociate_bb):
1009 * common.opt (-fassociative-math, -freciprocal-math): New flags.
1011 2007-09-04 Paolo Carlini <pcarlini@suse.de>
1014 * doc/install.texi (--enable-__cxa_atexit): Fix typo.
1016 2007-09-04 Jan Hubicka <jh@suse.cz>
1018 * regrename.c(copyprop_hardreg_forward_1): Unshare when doing copyprop.
1020 2007-09-04 Jan Hubicka <jh@suse.cz>
1022 * regrename.c (build_def_use): Don't share RTL between MATCH_OPERATOR
1023 and corresponding MATCH_DUP.
1025 2007-09-04 Uros Bizjak <ubizjak@gmail.com>
1028 * combine.c (subst): Do not try to simplify X if it represents load
1029 of FP constant from the constant pool via float extension.
1031 2007-09-04 Ben Elliston <bje@au.ibm.com>
1033 * c-opts.c: Include "tm_p.h".
1034 * Makefile.in (c-opts.o): Add $(TM_P_H) as a dependency.
1036 2007-09-04 Richard Guenther <rguenther@suse.de>
1038 PR tree-optimization/33291
1039 * tree-pretty-print.c (dump_generic_node): Dump all
1040 qualifiers for pointer types, not only first. Dump
1041 qualifiers for aggregate types as well.
1042 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Always
1043 use the canonical type for building ARRAY_REFs.
1044 * gimplify.c (canonicalize_addr_expr): Clean up. The
1045 correct validness check is compatibility of the pointer
1046 types. Always use the canonical type for building
1047 ARRAY_REFs and ADDR_EXPRs.
1048 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Revert
1049 change that disabled propagation of ADDR_EXPRs into statements
1052 2007-09-03 Zack Weinberg <zack@codesourcery.com>
1054 * config/arm/arm.md (mulsidi3, umulsidi3, mulsi3_highpart)
1055 (umulsi3_highpart): Make into expanders; existing insns are
1056 now named *[insn]_nov6. Add stars to existing [insn]_v6
1057 counterparts' names.
1059 2007-09-03 Daniel Jacobowitz <dan@codesourcery.com>
1061 * Makefile.in (DRIVER_DEFINES, gcc.o, gccspec.o, protoize.o)
1062 (unprotoize.o): Remove SHLIB_MULTILIB.
1064 2007-09-03 Eric Weddington <eweddington@cso.atmel.com>
1066 * doc/extend.texi: Document progmem attribute for AVR.
1068 2007-09-03 Anatoly Sokolov <aesok@post.ru>
1071 * config/avr/avr.h (TARGET_VTABLE_ENTRY_ALIGN): Define.
1073 2007-09-03 Zack Weinberg <zack@codesourcery.com>
1075 * optabs.c (expand_ffs): Initialize val and defined_at_zero
1078 * optabs.c: Remove unnecessary forward declarations.
1079 (expand_unop_direct): New, broken out of expand_unop.
1080 (expand_doubleword_clz): New.
1081 (expand_ctz): Move above expand_ffs. Use
1082 start_sequence, end_sequence, add_equal_note, and
1083 expand_unop_direct. Add more commentary.
1084 (expand_ffs): Try both ctz optab and expand_ctz.
1085 Generate a test and branch if the hardware doesn't give us
1086 a useful value for input zero. Style improvements similar to
1089 * config/arm/arm.md (ffssi2, ctzsi2): Delete.
1091 2007-09-03 Zack Weinberg <zack@codesourcery.com>
1093 * config.gcc: Delete stanza for arm-semi-aof and
1094 armel-semi-aof targets.
1095 * config/arm/arm-protos.h
1097 * config/arm/arm.h: Delete all #ifdef AOF_ASSEMBLER blocks;
1098 make all #ifndef AOF_ASSEMBLER blocks unconditional. Also
1099 delete aof_pic_label and remove mention of AOF in comments.
1100 * config/arm/arm.md: Delete patterns used only for AOF assembly.
1102 * config/arm/semiaof.h
1103 * config/arm/t-semi: Delete file.
1105 2007-09-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1107 * system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX,
1108 CONST_CAST_BB): New macros for type-specific casts.
1109 (CONST_CAST): Add a TYPE parameter and define it in terms of
1112 * c-decl.c (c_make_fname_decl): Supply a TYPE for CONST_CAST.
1113 * c-lex.c (cb_ident, lex_string): Likewise,
1114 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise,
1115 * config/i386/i386.c (ix86_function_regparm,
1116 ix86_function_sseregparm): Use CONST_CAST_TREE.
1117 * config/mmix/mmix.c (mmix_encode_section_info): Supply a TYPE for
1119 * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
1120 give_switch, set_multilib_dir): Likewise,
1121 * gengtype-parse.c (string_seq, typedef_name): Likewise,
1122 * gimple-low.c (block_may_fallthru): Use CONST_CAST_TREE.
1123 * jump.c (reversed_comparison_code_parts): Use CONST_CAST_RTX.
1124 * passes.c (execute_one_pass): Supply a TYPE for CONST_CAST.
1125 * prefix.c (update_path): Likewise,
1126 * pretty-print.c (pp_base_destroy_prefix): Likewise,
1127 * rtlanal.c (keep_with_call_p): Use CONST_CAST_RTX.
1128 * tree-cfg.c (tree_can_merge_blocks_p,
1129 tree_block_ends_with_condjump_p): Use CONST_CAST_BB.
1130 * tree-eh.c (lookup_stmt_eh_region_fn): USe CONST_CAST_TREE.
1131 * tree.c (build_string): Supply a TYPE for CONST_CAST.
1132 (attribute_list_contained): Use CONST_CAST_TREE.
1134 2007-09-03 Krister Walfridsson <cato@df.lth.se>
1136 * config/netbsd-elf.h (USE_LD_AS_NEEDED): Define.
1138 2007-09-03 Richard Sandiford <richard@codesourcery.com>
1141 * optabs.c (avoid_expensive_constant): Canonicalize CONST_INTs
1142 before forcing them into a register.
1144 2007-09-03 Richard Sandiford <richard@codesourcery.com>
1146 * config/mips/mips.md (fetchop_bit): Use define_code_iterator
1147 rather than define_code_macro.
1149 2007-09-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1151 * gcc.c (xputenv): New function.
1152 (putenv_from_prefixes): Use xputenv instead of putenv.
1153 (process_command): Use xputenv instead of putenv.
1154 (set_collect_gcc_options): Use xputenv instead of putenv.
1155 (main): Use xputenv instead of putenv.
1157 2007-09-03 Jesper Nilsson <jesper.nilsson@axis.com>
1159 * config/cris/cris.h (TARGET_HAS_SWAP): Defined to describe
1160 availability of swap instruction.
1161 * config/cris/cris.md (bswapsi2): Implement using swap instruction.
1163 2007-09-03 Revital Eres <eres@il.ibm.com>
1165 * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Update
1168 2007-09-03 Vladimir Yanovsky <yanov@il.ibm.com>
1169 Ayal Zaks <zaks@il.ibm.com>
1170 Revital Eres <eres@il.ibm.com>
1172 * modulo-sched.c (ps_insert_empty_row, verify_partial_schedule,
1173 compute_split_row): New functions.
1174 (ps_unschedule_node): Remove.
1175 (normalize_sched_times): Iterate over the already scheduled
1176 insns instead of the number of nodes.
1177 (MAX_SPLIT_NUM): New definition.
1178 (sms_schedule_by_order): Change the scheduling heuristic to
1179 avoid useless increases of initiation interval ii.
1180 (get_sched_window): Add dump printouts.
1182 2007-09-02 David Daney <ddaney@avtrex.com>
1184 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP, UNSPEC_SYNC_OLD_OP,
1185 UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE): New define_constants.
1186 (optab, insn): Add more attributes.
1187 (fetchop_bit): New code macro.
1188 (immediate_insn): New code macro attribute.
1189 (sync): Change condition to ISA_HAS_SYNC.
1190 (rdhwr): Change predicate for operand 0 to register_operand.
1191 (memory_barrier): New expand.
1192 (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
1193 sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
1194 sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
1195 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
1196 sync_new_nand<mode>, sync_lock_test_and_set<mode>): New insns.
1197 * config/mips/mips.h (ISA_HAS_SYNC, ISA_HAS_LL_SC): New ISA predicates.
1198 (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
1199 MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
1200 MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): New Macros.
1202 2007-09-03 Jesper Nilsson <jesper.nilsson@axis.com>
1203 Hans-Peter Nilsson <hp@axis.com>
1205 * config/cris/cris.h (TARGET_HAS_LZ, CLZ_DEFINED_VALUE_AT_ZERO):
1206 Defined to describe availability and behavior of CLZ.
1207 * config/cris/cris.md (clzsi2): Implement using lz instruction.
1208 * config/cris/cris.opt: Tweak comment for "-metrax4".
1209 * config/cris/arit.c (LZ): When defined, define as __builtin_clz.
1210 * longlong.h [__CRIS__ && __CRIS_arch_version >= 3]
1211 (count_leading_zeros): Define.
1213 2007-09-01 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1215 * ggc-page.c (ggc_pch_read): Call validate_free_objects.
1217 2007-09-02 Joseph Myers <joseph@codesourcery.com>
1220 * c-decl.c (grokdeclarator): Apply qualifiers to type of parameter
1223 2007-09-01 Kazu Hirata <kazu@codesourcery.com>
1225 * config/arm/arm.c, config/rs6000/ppu_intrinsics.h,
1226 config/spu/spu.c, df-scan.c, fixed-value.c, fold-const.c,
1227 ginclude/tgmath.h, haifa-sched.c, optabs.c, recog.c,
1228 sched-deps.c, sched-int.h, system.h, target.h,
1229 tree-ssa-live.c, tree-vect-transform.c, tree-vectorizer.c,
1230 tree.def: Fix comment typos.
1232 2007-09-01 Kazu Hirata <kazu@codesourcery.com>
1234 * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove.
1235 (override_options): Turn on -mstrict-align on non-ColdFire
1237 * config/m68k/m68k.h (BIGGEST_ALIGNMENT): Update a comment.
1239 2007-09-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1241 * c-common.c (const_strip_array_types): Delete.
1242 * c-common.h (const_strip_array_types): Likewise.
1243 * emit-rtl.c (const_next_insn, const_previous_insn,
1244 const_next_nonnote_insn, const_prev_nonnote_insn,
1245 const_next_real_insn, const_prev_real_insn,
1246 const_next_active_insn, const_prev_active_insn, const_next_label,
1247 const_prev_label): Delete.
1248 * gimple-low.c (block_may_fallthru): Use expr_last.
1249 * jump.c (reversed_comparison_code_parts): Use prev_nonnote_insn.
1250 * rtl.h (const_previous_insn, const_next_insn,
1251 const_prev_nonnote_insn, const_next_nonnote_insn,
1252 const_prev_real_insn, const_next_real_insn,
1253 const_prev_active_insn, const_next_active_insn, const_prev_label,
1254 const_next_label): Delete.
1255 * rtlanal.c (keep_with_call_p): Use next_nonnote_insn.
1256 * system.h (CONST_CAST): Update comment.
1257 * tree-cfg.c (tree_can_merge_blocks_p): Use last_stmt.
1258 (const_first_stmt, const_last_stmt): Delete.
1259 (tree_block_ends_with_condjump_p): Use last_stmt.
1260 * tree-flow.h (const_first_stmt, const_last_stmt): Delete.
1261 * tree-iterator.c (const_expr_first, const_expr_last,
1262 const_expr_only): Delete.
1263 * tree.c (const_lookup_attribute): Likewise.
1264 (attribute_list_contained): Use lookup_attribute.
1265 * tree.h (const_lookup_attribute, const_expr_first,
1266 const_expr_last, const_expr_only): Delete.
1268 2007-09-01 Richard Guenther <rguenther@suse.de>
1270 * tree-ssa-alias.c (create_name_tags): Use TYPE_VOLATILE
1271 instead of TREE_THIS_VOLATILE.
1272 * tree-ssa-operands.c (add_virtual_operand): Do not set
1273 has_volatile_ops. Do not check s_ann for NULL.
1274 (get_indirect_ref_operands): Likewise.
1275 (get_expr_operands): Likewise. For all reference trees
1276 set has_volatile_ops based on TREE_THIS_VOLATILE. Also
1277 check base of reference for TREE_THIS_VOLATILE.
1279 2007-09-01 Richard Guenther <rguenther@suse.de>
1281 * tree-cfg.c (verify_gimple_expr): Fix check for conversions
1282 between integral types. Also allow conversions between
1285 2007-08-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
1287 * optabs.c (prepare_float_lib_cmp): Use
1288 libgcc_cmp_return_mode instead of word_mode.
1289 * config/dfp-bit.h: Likewise.
1290 * config/fp-bit.h: Likewise.
1291 * config/spu/spu.c (spu_libgcc_cmp_return_mode):
1293 (spu_libgcc_shift_count_mode): New function.
1294 (TARGET_LIBGCC_CMP_RETURN_MODE): Define.
1295 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Define.
1297 2007-08-31 Joseph Myers <joseph@codesourcery.com>
1299 * tree-pretty-print.c: Include output.h.
1300 (dump_decl_name, dump_generic_node): Use %wd with pp_printf, not
1301 HOST_WIDE_INT_PRINT_DEC.
1302 * Makefile.in (tree-pretty-print.o): Add dependency on output.h.
1304 2007-08-31 Zdenek Dvorak <ook@ucw.cz>
1306 PR rtl-optimization/33224
1307 * loop-iv.c (latch_dominating_def): Check that the definition belongs
1308 to the analysed region.
1310 2007-08-31 Richard Guenther <rguenther@suse.de>
1312 * function.c (allocate_struct_function): Do not set
1313 current_function_returns_pointer.
1314 * function.h (struct var_refs_queue): Remove.
1315 (struct simple_obstack_stack): Likewise.
1316 (struct function): Remove fixup_var_refs_queue member.
1317 Remove returns_pointer flag.
1318 (current_function_returns_pointer): Remove define.
1320 2007-08-31 Nick Clifton <nickc@redhat.com>
1322 * tree-ssa-coalesce.c (compare_pairs): Use the elements as
1323 secondary keys in order to obtain a stable sort.
1325 2007-08-31 Nick Clifton <nickc@redhat.com>
1328 * config/m32r/constraints.md: Add W constraint for integer zero.
1329 * config/m32r/m32r.md (get_pc): Use W and i constraints.
1330 Fix length calculation by using alternatives.
1332 2007-08-31 Richard Sandiford <richard@codesourcery.com>
1334 * optabs.c (shift_optab_p, commutative_optab_p): New functions,
1335 split out from expand_binop.
1336 (avoid_expensive_constant): New function.
1337 (expand_binop_directly): Remove commutative_op argument and
1338 (expand_binop_directly): Remove commutative_op argument and
1339 call cummutative_optab_p instead. Do not change op0 or op1
1340 when swapping xop0 and xop1. Apply avoid_expensive_constant
1341 to each argument after potential swapping. Enforce the
1342 canonical order of commutative operands.
1343 (expand_binop): Use shift_optab_p and commutative_optab_p.
1344 Update the calls to expand_binop_directly. Only force constants
1345 into registers when widening an operation. Only swap operands
1346 once a direct expansion has been rejected.
1347 (expand_twoval_binop): Only force constants into registers when
1348 using a direct expansion.
1350 2007-08-31 Maxim Kuvyrkov <maxim@codesourcery.com>
1352 * sched-deps.c (update_dep): Mark arguments with ATTRIBUTE_UNUSED.
1353 (sched_analyze_insn): Don't postprocess speculative dependencies when
1354 target has no scheduling.
1355 * tree-vect-transform.c (vect_estimate_min_profitable_iters): Fix
1356 'uninitialized' warning.
1358 2007-08-31 Richard Guenther <rguenther@suse.de>
1360 * tree.c (build_complex_type): Always set TYPE_NAME for
1363 2007-08-31 Olivier Hainque <hainque@adacore.com>
1365 * config/rs6000/xcoff.h (XCOFF_CSECT_DEFAULT_ALIGNMENT_STR): New
1366 internal macro. Default alignment factor for csect directives, chosen
1367 to match what BIGGEST_ALIGNMENT allows.
1368 (DATA_SECTION_ASM_OP): Use it.
1369 * config/rs6000/rs6000.c
1370 (rs6000_xcoff_output_readonly_section_asm_op):
1371 Use XCOFF_CSECT_DEFAULT_ALIGNMENT_STR.
1372 (rs6000_xcoff_output_readwrite_section_asm_op): Likewise.
1374 2007-08-31 Olivier Hainque <hainque@adacore.com>
1376 * dbxout.c (dbxout_block): Move declaration within the first
1377 #if defined (DBX_DEBUGGING_INFO) block. Rearrange another such
1378 block to include the definition, together with the associated
1381 2007-08-31 David Edelsohn <edelsohn@gnu.org>
1382 Revital Eres <eres@il.ibm.com>
1384 * doc/invoke.texi (-mpaired): Document flag.
1385 * config.gcc: Include paired.h in powerpc extra_headers and
1386 750cl.h in powerpc-*-linux*paired*.
1387 * config/rs6000/rs6000.opt (-mpaired): New flag.
1388 * config/rs6000/rs6000.c (paired_init_builtins,
1389 paired_expand_builtin, paired_expand_lv_builtin,
1390 paired_expand_stv_builtin, paired_expand_predicate_builtin):
1391 New functions to support the paired single builtin functions.
1392 (rs6000_hard_regno_mode_ok): Handle PAIRED_VECTOR_MODE.
1393 (def_builtin, bdesc_3arg, bdesc_2arg, bdesc_1arg): Add paired
1395 (bdesc_paired_preds): New structure for paired predicate
1397 (rs6000_expand_builtin): Expand paired single builtins.
1398 (rs6000_init_builtins): Init paired single builtins.
1399 (rs6000_common_init_builtins): Add v2sf_ftype_v2sf_v2sf_v2sf.
1400 Rename v2sf_ftype_v2sf_v2sf to v2sf_ftype_v2sf_v2sf_spe
1401 and v2sf_ftype_v2sf_spe to v2sf_ftype_v2sf. Add new types
1402 v2sf_ftype_v2sf_v2sf and v2sf_ftype_v2sf.
1403 (rs6000_vector_mode_supported_p): Support paired vector mode.
1404 * config/rs6000/rs6000.h: (UNITS_PER_PAIRED_WORD,
1405 PAIRED_VECTOR_MODE, PAIRED_SIMD_REGNO_P, TARGET_PAIRED_FLOAT):
1407 (LOCAL_ALIGNMENT): Handle PAIRED_VECTOR_MODE.
1408 (DATA_ALIGNMENT): Likewise.
1409 (UNITS_PER_SIMD_WORD): Handle PAIRED_VECTOR_MODE.
1410 (rs6000_builtins): Add PAIRED builtins.
1411 * config/rs6000/rs6000.md: Include paired.md.
1412 * config/rs6000/paired.h: New.
1413 * config/rs6000/paired.md: New.
1414 * config/rs6000/750cl.h: New.
1415 * config/rs6000/spe.md: Recognize movv2sf instruction for 750cl.
1417 2007-08-30 Ollie Wild <aaw@google.com>
1419 * c-opts.c (c_common_handle_option): Support -fno-directives-only.
1420 * gcc.c (default_compilers): Add -fno-directives-only to
1421 @assembler-with-cpp.
1423 2007-08-30 Sandra Loosemore <sandra@codesourcery.com>
1427 * regclass.c (initial_fixed_regs): Revert previous change and make
1429 (initial_call_used_regs): Likewise.
1430 (initial_call_really_used_regs): Delete, reverting previous addition.
1431 (initial_reg_names): Likewise.
1432 (init_reg_sets): Revert previous change.
1433 (saved_fixed_regs): New.
1434 (saved_call_used_regs): New.
1435 (saved_call_really_used_regs): New.
1436 (saved_reg_names): New.
1437 (save_register_info): New.
1438 (restore_register_info): New.
1439 (init_reg_sets_1): Replace reset of register info with call to
1440 restore_register_info.
1441 * rtl.h (save_register_info): Declare.
1442 * toplev.c (backend_init): Call save_register_info.
1444 2007-08-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1446 * tree-ssa-propagate.c (set_rhs): Remove the copied annotation
1447 from the original statement.
1449 2007-08-30 Chao-ying Fu <fu@mips.com>
1451 * c-lex.c (interpret_fixed): Declare.
1452 (interpret_float): Process _Fract and _Accum.
1453 (interpret_fixed): New function.
1454 * final.c (output_addr_const): Process CONST_FIXED.
1455 * simplify-rtx.c (simplify_const_unary_operation): Handle US_NEG.
1456 (simplify_binary_operation_1): Handle US_ASHIFT, SS_MULT, US_MULT,
1458 (simplify_const_binary_operation): Handle SS_MULT, US_MULT, SS_DIV,
1460 (simplify_immed_subreg): Support CONST_FIXED.
1461 Process MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
1462 (simplify_subreg): Support CONST_FIXED.
1464 2007-08-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
1466 * config/rs6000/ppu_intrinsics.h: New file.
1467 * config.gcc (powerpc*-*-* <extra_headers>): Install
1470 2007-08-30 Kenneth Zadeck <zadeck@naturalbridge.com>
1472 * cfg.c (dump_flow_info): Change to also print entry and exit
1474 * print-rtl.c (print_rtl_single): Allow to print rtl with
1477 2007-08-30 Kenneth Zadeck <zadeck@naturalbridge.com>
1479 * df-core.h (df_dump_region): New function.
1480 * df.h (df_dump_region): New function.
1481 * loop-invariant.c (find_defs): Add call to df_dump_region.
1482 * loop-iv.c (iv_analysis_loop_init): Changed call from df_dump to
1485 2007-08-30 Jakub Jelinek <jakub@redhat.com>
1488 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Return
1489 true if any of the compare_section_name calls returned true,
1490 rather than if any returned false.
1492 2007-08-30 Richard Guenther <rguenther@suse.de>
1494 PR tree-optimization/33199
1495 * tree-ssa-structalias.c (handle_lhs_call): New function.
1496 (find_func_aliases): In non-IPA mode make sure that for
1497 calls that return a pointer we add a constraint for the
1498 result to point to anything.
1500 2007-08-30 Richard Guenther <rguenther@suse.de>
1502 * doc/invoke.texi (-mveclibabi): Document new target option.
1503 * config/i386/i386.opt (-mveclibabi): New target option.
1504 * config/i386/i386.c (ix86_veclib_handler): Handler for
1505 vectorization library support.
1506 (override_options): Handle the -mveclibabi option, initialize
1507 the vectorization library handler.
1508 (ix86_builtin_vectorized_function): As fallback call the
1509 vectorization library handler, if set.
1510 (ix86_veclibabi_acml): New static function for ACML ABI style
1511 vectorization support.
1513 2007-08-30 Jakub Jelinek <jakub@redhat.com>
1515 * config/rs6000/rs6000.c (rs6000_emit_sync): For QI or HI mode
1516 used_m, even if it is 32-bit aligned, adjust used_m MEM to have
1517 SImode and update m. Don't run gen_lowpart_common on arbitrary
1518 memory address, force it to register first.
1521 * dce.c (dce_process_block): Don't delete setters of
1522 artificially used registers.
1524 2007-08-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1526 * config/s390/s390.md ("*add<mode>3_alc_carry1_cc",
1527 "*add<mode>3_alc_carry1_cconly", "*add<mode>3_alc_carry2_cc",
1528 "*add<mode>3_alc_carry2_cconly"): New insn definitions.
1530 2007-08-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1532 * config/s390/s390.c (s390_expand_addcc): Emit canonical alc
1534 * config/s390/s390.md ("*add<mode>3_alc_cc", "*add<mode>3_alc",
1535 "addti3", "*adddi3_31z", "*scond<mode>"): Make alc pattern canonical.
1537 2007-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1539 * system.h: Activate -Wcast-qual as warning-only.
1541 2007-08-29 Paolo Bonzini <bonzini@gnu.org>
1544 * config/rs6000/rs6000.c (compare_section_name): New function.
1545 (rs6000_elf_in_small_data_p): Compare section prefixes instead
1548 2007-08-29 Olivier Hainque <hainque@adacore.com>
1550 * xcoffout.c: #include debug.h.
1551 * Makefile.in (xcoffout.o): Add debug.h dependency.
1553 2007-08-29 Uros Bizjak <ubizjak@gmail.com>
1555 * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
1556 Change CONST_VECTOR_ELT to XVECEXP in elem calculation.
1558 2007-08-29 Richard Guenther <rguenther@suse.de>
1560 * tree-pretty-print.c (dump_generic_node): Print
1561 label DECL_UID as D.%u.
1562 * tree-dfa.c (dump_variable): Print DECL_UID as D.%u.
1564 2007-08-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1566 * gcc/builtin-types.def (BT_FN_PTR_PTR_SIZE): New type.
1567 * gcc/builtins.def (BUILT_IN_REALLOC): New builtin.
1569 2007-08-29 Douglas Gregor <doug.gregor@gmail.com>
1572 * tree.c (build_type_attribute_qual_variant): Set canonical types
1573 on the final, unqualified attribute variant before building the
1576 2007-08-29 Jie Zhang <jie.zhang@analog.com>
1578 * config/bfin/bfin.c (bfin_expand_builtin): Fix the argument
1579 order of __builtin_bfin_cmplx_mac and __builtin_bfin_cmplx_msu.
1581 2007-08-29 Jie Zhang <jie.zhang@analog.com>
1584 2007-08-29 Jie Zhang <jie.zhang@analog.com>
1585 * config/bfin/bfin.md (composev2hi): Put operands into vector
1588 2007-08-29 Jie Zhang <jie.zhang@analog.com>
1590 * config/bfin/bfin.md (composev2hi): Put operands into vector
1593 2007-08-29 Jie Zhang <jie.zhang@analog.com>
1595 * config/bfin/bfin.c (bfin_expand_call): Inline PLT with l1_text
1596 attribute when appropriate.
1597 (bfin_handle_l1_text_attribute): New.
1598 (bfin_handle_l1_data_attribute): New.
1599 (bfin_attribute_table): Add attributes: l1_text, l1_data,
1600 l1_data_A and l1_data_B.
1601 * doc/extend.texi (node Function Attributes): Document l1_text
1603 (Variable Attributes): Add Blackfin subsection. Document l1_data,
1604 l1_data_A and l1_data_B variable attributes.
1606 2007-08-28 Jie Zhang <jie.zhang@analog.com>
1608 * config/bfin/bfin.opt (minline-plt): Add.
1609 * config/bfin/bfin.c (bfin_expand_call): Inline PLT when emit
1610 call to global functions.
1611 * doc/invoke.texi (Option Summary): Mention -minline-plt.
1612 (Blackfin Options): Document -minline-plt.
1614 2007-08-28 Nathan Sidwell <nathan@codesourcery.com>
1616 * config/m68k/m68k.c (m68k_get_function_kind): Assert we're never
1617 given a non-function.
1618 (m68k_ok_for_sibcall_p): Only sibcall functions of the same kind.
1620 2007-08-28 DJ Delorie <dj@redhat.com>
1622 * config/sh/sh.c (sh_gimplify_va_arg_expr): Fix sh2a support.
1624 2007-08-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1626 * system.h (CONST_CAST): Avoid union for gcc-4.0.x.
1628 2007-08-28 Richard Guenther <rguenther@suse.de>
1630 * tree.h (struct tree_function_decl): Increase size of
1631 function_code bitfield.
1633 2007-08-28 Nathan Sidwell <nathan@codesourcery.com>
1634 Kazu Hirata <kazu@codesourcery.com>
1636 * gcc/config/m68k/linux.h
1637 (M68K_HONOR_TARGET_STRICT_ALIGNMENT): Redefine as 0.
1638 * config/m68k/m68k.c (TARGET_RETURN_IN_MEMORY): New.
1639 (m68k_return_in_memory): New.
1640 * gcc/config/m68k/m68k.h (M68K_HONOR_TARGET_STRICT_ALIGNMENT):
1643 2007-08-28 Uros Bizjak <ubizjak@gmail.com>
1646 * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
1647 Simplify nested VEC_SELECT (with optional VEC_CONCAT operator as
1648 operand) when top VEC_SELECT extracts scalar element.
1649 * config/i386/sse.md (*vec_extract_v4si_mem): New pattern.
1650 (*vec_extract_v4sf_mem): Ditto.
1652 2007-08-28 Jakub Jelinek <jakub@redhat.com>
1655 * passes.c (init_optimization_passes): Move pass_df_finish
1656 after pass_postreload sublist.
1658 PR rtl-optimization/33148
1659 * simplify-rtx.c (simplify_unary_operation_1): Only optimize
1660 (neg (lt X 0)) if X has scalar int mode.
1663 * dwarf2out.c (rtl_for_decl_init): If vector decl has CONSTRUCTOR
1664 initializer, use build_vector_from_ctor if possible to create
1665 VECTOR_CST out of it. If vector initializer is not VECTOR_CST
1666 even after this, return NULL.
1668 2007-08-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
1670 * c-pretty-print.c (pp_c_constant): Handle COMPLEX_CST.
1672 2007-08-28 Richard Guenther <rguenther@suse.de>
1674 * tree.h (DECL_DISREGARD_INLINE_LIMITS): New.
1675 (struct tree_function_decl): Make function_code a bitfield.
1676 Add disregard_inline_limits flag.
1677 * cgraphunit.c (cgraph_process_new_functions): Check
1678 DECL_DISREGARD_INLINE_LIMITS instead of disregard_inline_limits_p.
1679 (cgraph_preserve_function_body_p): Likewise.
1680 * ipa-inline.c (compute_inline_parameters): Likewise.
1681 * c-decl.c (finish_function): Set DECL_DISREGARD_INLINE_LIMITS
1682 for GNU C extern inline functions.
1683 (merge_decls): Merge DECL_DISREGARD_INLINE_LIMITS.
1684 * tree-inline.c (disregard_inline_limits_p): Remove.
1685 * tree-inline.h (disregard_inline_limits_p): Likewise.
1686 * c-common.c (handle_always_inline_attribute): Set
1687 DECL_DISREGARD_INLINE_LIMITS.
1688 * langhooks.c (add_builtin_function): Verify the function code
1689 fits in the bitfield.
1691 2007-08-28 Mircea Namolaru <namolaru@il.ibm.com>
1692 Vladimir Yanovsky <yanov@il.ibm.com>
1693 Revital Eres <eres@il.ibm.com>
1694 Andrey Belevantsev <abel@ispras.ru>
1696 * config/spu/spu.md: Recognize doloop pattern when -fmodulo-sched
1698 * modulo-sched.c: Add documentation regarding do-loop.
1699 (doloop_register_get): Change number of arguments to support
1700 the new do-loop pattern and check whether COUNT_REG has no other
1701 occurences in the loop besides in the control part.
1702 (duplicate_insns_of_cycles): Do not duplicate the insn which
1703 changes count_reg as it is already adjusted.
1704 (generate_prolog_epilog): New argument to support the new
1705 do-loop pattern. Change the subtract instruction to use
1706 expand_simple_binop. Call duplicate_insns_of_cycles with new
1708 (sms_schedule): Call doloop_register_get and
1709 generate_prolog_epilog with new argument. Do not handle loops
1710 with single sets insns with subreg in their lhs.
1711 * loop-doloop.c (doloop_optimize): Support for another do-loop
1713 (doloop_condition_get): Gets an instruction instead of a pattern
1714 and change the return condition when the do-loop pattern is
1716 * ddg.c (create_ddg_dep_from_intra_loop_link): Handle only reg
1717 deps when considering to not create edges.
1719 2007-08-27 Alexandre Oliva <aoliva@redhat.com>
1721 * doc/extend.texi (gnu_inline funtion attribute): Document C++
1724 2007-08-27 Jason Merrill <jason@redhat.com>
1727 * gimplify.c (gimplify_modify_expr): Discard the assignment of
1728 zero-sized types after calling gimplify_modify_expr_rhs.
1730 2007-08-27 Sandra Loosemore <sandra@codesourcery.com>
1732 * regclass.c (init_reg_autoinc): Fix typo.
1734 2007-08-27 Daniel Berlin <dberlin@dberlin.org>
1736 Fix PR tree-optimization/33173
1737 * tree-ssa-alias.c (find_used_portions): Fix reversed test.
1739 2007-08-27 H.J. Lu <hongjiu.lu@intel.com>
1742 * config/i386/i386.h (VALID_DFP_MODE_P): New.
1743 * config/i386/i386.c (ix86_hard_regno_mode_ok): Allow DFP in
1746 2007-08-27 Sandra Loosemore <sandra@codesourcery.com>
1747 David Ung <davidu@mips.com>
1748 Nigel Stephens <nigel@mips.com>
1750 Separate target-specific initialization from general
1751 back-end initialization.
1753 * toplev.c (init_alignments): New, split out from...
1754 (process_options): ...here.
1755 (backend_init_target): New, split out from...
1756 (backend_init): ...here.
1757 (lang_dependent_init_target): New, split out from...
1758 (lang_dependent_init): ...here.
1759 (target_reinit): New.
1760 * toplev.h (target_reinit): Declare.
1761 * expr.c (init_expr_target): Renamed from init_expr_once, since it
1762 now can be called more than once. Update comments.
1763 * expr.h (init_expr_target): Likewise.
1764 * alias.c (init_alias_target): Renamed from init_alias_once, since it
1765 now can be called more than once. Explicitly zero
1766 static_reg_base_value.
1767 * emit-rtl.c (init_emit_regs): New, split out from...
1768 (init_emit_once): Here.
1769 * regclass.c (initial_fixed_regs, initial_call_used_regs): Make
1770 non-const, so that changes from command-line arguments can overwrite
1771 values provided by the static initializers.
1772 (initial_call_really_used_regs): New, used similarly to the above.
1773 (initial_reg_names): Likewise.
1774 (last_mode_for_init_move_cost): Promoted function-local static to
1775 file-scope static to make it accessible outside init_move_cost.
1776 (init_reg_sets): Do not initialize fixed_regs and call_used_regs yet.
1777 Do not initialize inv_reg_alloc_order yet, either. Do initialize
1778 reg_names since it is needed for parsing command-line options.
1779 (init_move_cost): Use last_mode_for_init_move_cost instead of
1780 function-local static.
1781 (init_reg_sets_1): Initialize fixed_regs, call_used_regs, and
1782 call_really_used_regs now. Reinitialize reg_names. Also
1783 initialize inv_reg_alloc_order. Zero reg_class_subunion and
1784 reg_class_superunion. Clear losing_caller_save_reg_set.
1785 Preserve global registers if called more than once. Reset
1786 move cost, may_move_in_cost, may_move_out_cost, and
1787 last_mode_for_init_move_cost.
1788 (init_reg_modes_target): Renamed from init_reg_modes_once, since it
1789 can now be invoked more than once. Update comments.
1790 (init_regs): Update comments.
1791 (fix_register): Update initial_fixed_regs, initial_call_used_regs,
1792 and initial_call_really_used_regs, instead of the non-initial
1793 variables. This allows us to save the command-line register settings
1794 after target reinitialization.
1795 (init_reg_autoinc): Zero forbidden_inc_dec_classes.
1796 * rtl.h (init_emit_regs): Declare.
1797 (init_reg_modes_target, init_alias_target): Renamed as described
1799 * reload1.c (init_reload): Update comments.
1800 * optabs.c (init_optabs): Likewise.
1801 * cfgloopanal.c (init_set_costs): Explicitly zero target_avail_regs.
1803 2007-08-26 Chao-ying Fu <fu@mips.com>
1805 * rtl.h (XCNMPFV): Preserve const-ness of parameters through use of
1808 2007-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1810 * alias.c (memory_modified_1, memory_modified_in_insn_p):
1812 * basic-block.h (tree_predicted_by_p, rtl_predicted_by_p):
1814 * bb-reorder.c (copy_bb_p): Likewise.
1815 * cfghooks.c (can_remove_branch_p, can_merge_blocks_p,
1816 predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
1817 block_ends_with_condjump_p): Likewise.
1818 * cfghooks.h (can_remove_branch_p, can_merge_blocks_p,
1819 predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
1820 block_ends_with_condjump_p): Likewise.
1821 * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
1822 * cfgrtl.c (can_delete_note_p, can_delete_label_p,
1823 rtl_can_merge_blocks, cfg_layout_can_merge_blocks_p,
1824 rtl_block_ends_with_call_p, rtl_block_ends_with_condjump_p,
1825 need_fake_edge_p, rtl_can_remove_branch_p): Likewise.
1826 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Use
1827 debug_true_const_tree instad of debug_true_tree.
1828 * debug.c (do_nothing_debug_hooks): Likewise.
1829 * debug.h (ignore_block, debug_true_const_tree): Constify.
1830 * dwarf2out.c (stack_adjust_offset, clobbers_queued_reg_save,
1831 dwarf2out_ignore_block, is_pseudo_reg, is_tagged_type,
1832 decl_ultimate_origin, block_ultimate_origin, lookup_decl_loc,
1833 same_dw_val_p, add_ranges, is_subrange_type, type_is_enum,
1834 dbx_reg_number, is_based_loc, field_type,
1835 simple_type_align_in_bits, simple_decl_align_in_bits,
1836 simple_type_size_in_bits, field_byte_offset, insert_float,
1837 type_tag, member_declared_type, is_redundant_typedef,
1838 secname_for_decl, is_inlined_entry_point): Likewise.
1839 * emit-rtl.c (const_next_insn, const_previous_insn,
1840 const_next_nonnote_insn, const_prev_nonnote_insn,
1841 const_next_real_insn, const_prev_real_insn,
1842 const_next_active_insn, const_prev_active_insn, const_next_label,
1843 const_prev_label): Likewise.
1844 * except.h (lookup_stmt_eh_region_fn, lookup_stmt_eh_region):
1846 * haifa-sched.c (may_trap_exp, haifa_classify_insn,
1847 find_set_reg_weight, no_real_insns_p, find_set_reg_weight,
1848 sched_insn_is_legitimate_for_speculation_p): Likewise.
1849 * jump.c (reversed_comparison_code_parts,
1850 reversed_comparison_code, reversed_comparison, condjump_label):
1852 * predict.c (rtl_predicted_by_p, tree_predicted_by_p): Likewise.
1853 * reg-stack.c (stack_regs_mentioned_p, stack_regs_mentioned):
1855 * rtl.h (const_previous_insn, const_next_insn,
1856 const_prev_nonnote_insn, const_next_nonnote_insn,
1857 const_prev_real_insn, const_next_real_insn,
1858 const_prev_active_insn, const_next_active_insn, const_prev_label,
1859 const_next_label, modified_between_p, modified_in_p,
1860 const_note_storeskeep_with_call_p, condjump_label,
1861 reversed_comparison, reversed_comparison_code,
1862 reversed_comparison_code_parts, memory_modified_in_insn_p,
1863 stack_regs_mentioned): Likewise.
1864 * rtlanal.c (modified_between_p, modified_in_p, const_note_stores,
1865 keep_with_call_p): Likewise.
1866 * sched-deps.c (deps_may_trap_p, sched_get_condition,
1867 conditions_mutex_p, sched_insns_conditions_mutex_psd_next_list,
1868 sd_lists_size, sd_lists_empty_p): Likewise.
1869 * sched-int.h (sched_insns_conditions_mutex_p,
1870 haifa_classify_insn, no_real_insns_p,
1871 sched_insn_is_legitimate_for_speculation_p, sd_next_list,
1872 sd_lists_size, sd_lists_empty_p): Likewise.
1873 * sdbout.c (sdb_debug_hooks): Likewise.
1874 * tree-cfg.c (tree_can_merge_blocks_p, is_ctrl_altering_stmt,
1875 stmt_ends_bb_p, tree_can_remove_branch_p, tree_can_duplicate_bb_p,
1876 -tree_block_ends_with_call_p, tree_block_ends_with_condjump_p):
1878 * tree-eh.c (lookup_stmt_eh_region_fn, lookup_stmt_eh_region,
1879 tree_can_throw_internal): Likewise.
1880 * tree-flow-inline.h (phi_nodes): Likewise.
1881 * tree-flow.h (phi_nodesstmt_ends_bb_p, is_ctrl_altering_stmt,
1882 tree_can_throw_internal, lookup_stmt_eh_region): Likewise.
1883 * tree-gimple.c (const_get_call_expr_in): Likewise.
1884 * tree-gimple.h (const_get_call_expr_in): Likewise.
1885 * tree.c (const_lookup_attribute, attribute_list_equal,
1886 attribute_list_contained): Likewise.
1887 * tree.h (attribute_list_equal, attribute_list_contained,
1888 const_lookup_attribute): Likewise.
1889 * vmsdbgout.c (vmsdbgout_ignore_block): Likewise.
1891 2007-08-26 Bernhard Fischer <aldot@gcc.gnu.org>
1893 * tree-ssa-sccvn.c, tree-ssa-sccvn.h, tree-vn.c,
1894 tree-ssa-pre.c: Remove unnecessary trailing whitespace.
1896 2007-08-26 H.J. Lu <hongjiu.lu@intel.com>
1899 * config/alpha/constraints.md: Delete "svn:mime-type" property
1900 with svn propdel "svn:mime-type".
1902 2007-08-26 H.J. Lu <hongjiu.lu@intel.com>
1905 * ifcvt.c (noce_get_alt_condition): Make sure that the previous
1906 non NOTE insn doesn't cross basic block.
1907 (noce_try_abs): Likewise.
1908 (noce_process_if_block): Likewise.
1910 2007-08-26 David Edelsohn <edelsohn@gnu.org>
1913 * config/rs6000/predicates.md (offsettable_mem_operand): Memory
1914 operand without auto-inc-dec.
1915 * config/rs6000/rs6000.md (floatsidf2_internal): Use
1916 offsettable_mem_operand.
1917 (floatunssidf2_internal): Same.
1918 (fix_truncdfsi2_internal): Same.
1919 (floatsidf_ppc64): Same.
1920 (floatunssidf_ppc64): Same.
1921 (fix_trunctfsi2_internal): Same.
1923 2007-08-26 Bernhard Fischer <aldot@gcc.gnu.org>
1926 * Makefile.in (libbackend.o): Add gcov-iov.h dependency and
1927 pass defines needed for version.c.
1929 2007-08-25 Joseph Myers <joseph@codesourcery.com>
1931 * configure.ac (--debug-prefix-map check): Change assembler
1932 version presumed to have feature to 2.18.
1933 * configure: Regenerate.
1935 2007-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1937 * c-common.c (vector_types_convertible_p,
1938 decl_with_nonnull_addr_p, c_promoting_integer_type_p,
1939 self_promoting_args_p): Constify.
1940 * c-common.h (has_c_linkage, decl_with_nonnull_addr_p,
1941 c_promoting_integer_type_p, self_promoting_args_p,
1942 anon_aggr_type_p, vector_types_convertible_p): Likewise.
1943 * c-decl.c (anon_aggr_type_p): Likewise.
1944 * * c-dump.c (dump_stmt): Likewise.
1945 * c-objc-common.c (has_c_linkage): Likewise.
1946 * c-tree.h (same_translation_unit_p): Likewise.
1947 * c-typeck.c (null_pointer_constant_p,
1948 tagged_types_tu_compatible_p, function_types_compatible_p,
1949 type_lists_compatible_p, lvalue_or_else, lvalue_p,
1950 comptypes_internal, struct tagged_tu_seen_cache,
1951 same_translation_unit_p, alloc_tagged_tu_seen_cache,
1952 c_size_in_bytes): Likewise.
1953 * ggc-common.c (compare_ptr_data, hash_descriptor, eq_descriptor,
1954 hash_ptr, eq_ptr): Likewise.
1955 * langhooks-def.h (lhd_decl_ok_for_sibcall,
1956 LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Likewise.
1957 * langhooks.c (lhd_decl_ok_for_sibcall): Likewise.
1958 * langhooks.h (ok_for_sibcall, omp_privatize_by_reference):
1960 * optabs.c (optab_for_tree_code): Likewise.
1961 * optabs.h (optab_for_tree_code): Likewise.
1962 * rtl.h (simplify_rtx): Likewise.
1963 * simplify-rtx.c (simplify_rtx): Likewise.
1964 * tree-dump.c (queue, queue_and_dump_index, queue_and_dump_type,
1965 dump_flag, dump_node): Likewise.
1966 * tree-dump.h (struct dump_info, dump_stmt, queue_and_dump_index,
1967 queue_and_dump_type, dump_flag): Likewise.
1968 * tree-flow.h (vect_can_force_dr_alignment_p): Likewise.
1969 * tree-pass.h (dump_node): Likewise.
1970 * tree-vectorizer.c (vect_can_force_dr_alignment_p,
1971 supportable_narrowing_operation): Likewise.
1972 * tree-vectorizer.h (vect_can_force_dr_alignment_p,
1973 supportable_narrowing_operation): Likewise.
1974 * tree-vrp.c (needs_overflow_infinity, supports_overflow_infinity,
1975 is_negative_overflow_infinity, is_positive_overflow_infinity,
1976 is_overflow_infinity, vrp_val_is_max, vrp_val_is_min,
1977 nonnull_arg_p, get_value_range, vrp_operand_equal_p,
1978 update_value_range, add_equivalence, ssa_name_nonnegative_p,
1979 ssa_name_nonzero_p, fp_predicate): Likewise.
1980 * tree.c (auto_var_in_fn_p, empty_body_p): Likewise.
1981 * tree.h (empty_body_p, auto_var_in_fn_p, ssa_name_nonzero_p,
1982 ssa_name_nonnegative_p): Likewise.
1984 2007-08-25 Hans Kester <hans.kester@ellips.nl>
1986 * config.gcc : Add x86_64-elf target.
1988 2007-08-25 Jakub Jelinek <jakub@redhat.com>
1990 * expr.c (store_expr): Fix order of store_by_pieces arguments.
1992 2007-08-24 Sandra Loosemore <sandra@codesourcery.com>
1993 Nigel Stephens <nigel@mips.com>
1997 * doc/tm.texi (SET_RATIO, SET_BY_PIECES_P): Document new macros.
1998 (STORE_BY_PIECES_P): No longer applies to __builtin_memset.
1999 * expr.c (SET_BY_PIECES_P): Define.
2000 (can_store_by_pieces, store_by_pieces): Add MEMSETP argument; use
2001 it to decide whether to use SET_BY_PIECES_P or STORE_BY_PIECES_P.
2002 (store_expr): Pass MEMSETP argument to can_store_by_pieces and
2004 * expr.h (SET_RATIO): Define.
2005 (can_store_by_pieces, store_by_pieces): Update prototypes.
2006 * builtins.c (expand_builtin_memcpy): Pass MEMSETP argument to
2007 can_store_by_pieces/store_by_pieces.
2008 (expand_builtin_memcpy_args): Likewise.
2009 (expand_builtin_strncpy): Likewise.
2010 (expand_builtin_memset_args): Likewise. Also remove special case
2011 for optimize_size so that can_store_by_pieces/SET_BY_PIECES_P can
2012 decide what to do instead.
2013 * value-prof.c (tree_stringops_transform): Pass MEMSETP argument
2014 to can_store_by_pieces.
2016 * config/sh/sh.h (SET_BY_PIECES_P): Clone from STORE_BY_PIECES_P.
2017 * config/s390/s390.h (SET_BY_PIECES_P): Likewise.
2019 * config/mips/mips.opt (mmemcpy): Change from Var to Mask.
2020 * config/mips/mips.c (override_options): Make -Os default to -mmemcpy.
2021 * config/mips/mips.h (MIPS_CALL_RATIO): Define.
2022 (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Define.
2023 (STORE_BY_PIECES_P): Define.
2025 2007-08-24 Tom Tromey <tromey@redhat.com>
2027 * varpool.c (varpool_last_needed_node): Fix comment typo.
2028 * c-decl.c (duplicate_decls): Fix comment typo.
2029 (clone_underlying_type): Update comment.
2031 2007-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2033 * config/alpha/alpha.c (alpha_mangle_type, decl_has_samegp,
2034 alpha_in_small_data_p, alpha_split_complex_arg,
2035 alpha_stdarg_optimize_hook, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
2037 * config/arm/arm-protos.h (arm_mangle_type): Likewise.
2038 * config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type):
2040 * config/bfin/bfin.c (funkind, bfin_comp_type_attributes,
2041 TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2042 * config/darwin-protos.h (darwin_binds_local_p): Likewise.
2043 * config/darwin.c (darwin_binds_local_p): Likewise.
2044 * config/frv/frv.c (frv_string_begins_with, frv_in_small_data_p):
2046 * config/i386/i386-protos.h (i386_pe_binds_local_p,
2047 i386_pe_valid_dllimport_attribute_p): Likewise.
2048 * config/i386/i386.c (ix86_function_regparm,
2049 ix86_comp_type_attributes, ix86_ms_bitfield_layout_p,
2050 x86_can_output_mi_thunk, ix86_mangle_type,
2051 TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
2052 * config/i386/winnt.c (i386_pe_valid_dllimport_attribute_p,
2053 i386_pe_binds_local_p): Likewise.
2054 * config/ia64/ia64.c
2055 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
2056 ia64_needs_block_p, ia64_in_small_data_p, ia64_mangle_type,
2057 ia64_invalid_conversion, ia64_invalid_unary_op,
2058 ia64_invalid_binary_op, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
2060 * config/m32c/m32c.c (m32c_comp_type_attributes): Likewise.
2061 * config/m32r/m32r.c (m32r_in_small_data_p): Likewise.
2062 * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2063 * config/mips/mips.c (mips_use_blocks_for_constant_p,
2064 mips_in_small_data_p, mips_use_anchors_for_symbol_p,
2065 mips_comp_type_attributes, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
2066 mips_near_type_p, mips_far_type_p, mips_global_symbol_p,
2067 mips_symbol_binds_local_p, mips_classify_symbol): Likewise.
2068 * config/pa/pa.c (pa_commutative_p): Likewise.
2069 * config/rs6000/rs6000-protos.h (rs6000_elf_in_small_data_p):
2071 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop,
2072 rs6000_ms_bitfield_layout_p, rs6000_mangle_type,
2073 rs6000_use_blocks_for_constant_p,
2074 rs6000_vector_alignment_reachable, rs6000_is_opaque_type,
2075 invalid_arg_for_unprototyped_fn, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
2076 TARGET_SPLIT_COMPLEX_ARG, rs6000_elf_in_small_data_p): Likewise.
2077 * config/s390/s390.c (s390_mangle_type,
2078 TARGET_ASM_CAN_OUTPUT_MI_THUNK, TARGET_INVALID_WITHIN_DOLOOP):
2080 * config/score/score.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
2081 th_in_small_data_p): Likewise.
2082 * config/sh/sh.c (sh_ms_bitfield_layout_p,
2083 sh_dwarf_calling_convention, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
2085 * config/sparc/sparc.c (sparc_can_output_mi_thunk,
2086 sparc_mangle_type): Likewise.
2087 * config/spu/spu.c (spu_vector_alignment_reachable): Likewise.
2088 * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): Likewise.
2089 * emit-rtl.c (const_fixed_htab_hash, const_fixed_htab_eq):
2091 * hooks.c (hook_bool_mode_const_rtx_false,
2092 hook_bool_mode_const_rtx_true,
2093 hook_bool_const_tree_hwi_hwi_const_tree_false,
2094 hook_bool_const_tree_hwi_hwi_const_tree_true,
2095 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
2096 hook_constcharptr_const_tree_null,
2097 hook_constcharptr_const_rtx_null,
2098 hook_constcharptr_const_tree_const_tree_null,
2099 hook_constcharptr_int_const_tree_null,
2100 hook_constcharptr_int_const_tree_const_tree_null): New.
2101 (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
2102 hook_bool_tree_hwi_hwi_tree_false,
2103 hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
2104 hook_int_tree_tree_1, hook_constcharptr_tree_null,
2105 hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
2106 hook_constcharptr_int_tree_null,
2107 hook_constcharptr_int_tree_tree_null): Delete.
2108 (default_can_output_mi_thunk_no_vcall): Constify.
2109 * hooks.h (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
2110 hook_bool_tree_hwi_hwi_tree_false,
2111 hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
2112 hook_int_tree_tree_1, hook_constcharptr_tree_null,
2113 hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
2114 hook_constcharptr_int_tree_null,
2115 hook_constcharptr_int_tree_tree_null): Delete.
2116 (hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
2117 hook_bool_const_tree_hwi_hwi_const_tree_false,
2118 hook_bool_const_tree_hwi_hwi_const_tree_true,
2119 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
2120 hook_constcharptr_const_tree_null,
2121 hook_constcharptr_const_rtx_null,
2122 hook_constcharptr_const_tree_const_tree_null,
2123 hook_constcharptr_int_const_tree_null,
2124 hook_constcharptr_int_const_tree_const_tree_null): New.
2125 (default_can_output_mi_thunk_no_vcall): Constify.
2126 * integrate.c (function_attribute_inlinable_p): Likewise.
2127 * integrate.h (function_attribute_inlinable_p): Likewise.
2128 * jump.c (rtx_renumbered_equal_p): Likewise.
2129 * output.h (decl_readonly_section, categorize_decl_for_section,
2130 default_use_anchors_for_symbol_p, default_binds_local_p,
2131 default_binds_local_p_1): Likewise.
2132 * rtl.h (rtx_renumbered_equal_p, decl_default_tls_model):
2134 * target-def.h (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
2135 TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, TARGET_VECTOR_OPAQUE_P,
2136 TARGET_COMMUTATIVE_P, TARGET_USE_BLOCKS_FOR_CONSTANT_P,
2137 TARGET_COMP_TYPE_ATTRIBUTES,
2138 TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P,
2139 TARGET_MS_BITFIELD_LAYOUT_P, TARGET_MANGLE_TYPE,
2140 TARGET_IN_SMALL_DATA_P, TARGET_INVALID_CONVERSION,
2141 TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
2142 TARGET_DWARF_CALLING_CONVENTION): Likewise.
2143 * target.h (can_output_mi_thunk, needs_block_p,
2144 first_cycle_multipass_dfa_lookahead_guard_spec,
2145 vector_alignment_reachable, comp_type_attributes,
2146 function_attribute_inlinable_p, ms_bitfield_layout_p, mangle_type,
2147 commutative_p, use_blocks_for_constant_p,
2148 use_anchors_for_symbol_p, in_small_data_p, binds_local_p,
2149 vector_opaque_p, dwarf_calling_convention, stdarg_optimize_hook,
2150 invalid_within_doloop, valid_dllimport_attribute_p,
2151 split_complex_arg, invalid_arg_for_unprototyped_fn,
2152 invalid_conversion, invalid_unary_op, invalid_binary_op):
2154 * targhooks.c (default_invalid_within_doloop,
2155 hook_invalid_arg_for_unprototyped_fn,
2156 default_builtin_vector_alignment_reachable): Likewise.
2157 (hook_bool_rtx_commutative_p): Delete.
2158 (hook_bool_const_rtx_commutative_p): New.
2159 * targhooks.h (default_invalid_within_doloop,
2160 default_builtin_vector_alignment_reachable,
2161 hook_invalid_arg_for_unprototyped_fn): Constify.
2162 (hook_bool_rtx_commutative_p): Delete.
2163 (hook_bool_const_rtx_commutative_p): New.
2164 * varasm.c (bss_initializer_p, decl_default_tls_model,
2165 categorize_decl_for_section, decl_readonly_section,
2166 default_use_anchors_for_symbol_p, default_binds_local_p,
2167 default_binds_local_p_1): Constify.
2169 2007-08-24 Jie Zhang <jie.zhang@analog.com>
2171 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2172 __NO_BUILTIN if -fno-builtin.
2174 2007-08-24 Jie Zhang <jie.zhang@analog.com>
2176 * config/bfin/bfin.c (print_operand): Report error instead of
2177 ICE for wrong operand.
2179 2007-08-24 Michael Matz <matz@suse.de>
2181 * Makefile.in (GTFILES_H): Use $(patsubst) instead of $(subst).
2183 2007-08-24 Richard Guenther <rguenther@suse.de>
2186 * tree-ssa.c (useless_type_conversion_p): Split into a
2187 recursive and a non-recursive part.
2188 (useless_type_conversion_p_1): New function.
2189 * tree-ssa-ccp.c (fold_stmt_r): Make sure that the result
2190 from maybe_fold_offset_to_reference is trivially convertible
2191 to the desired type before doing the simplification.
2193 2007-08-24 Jakub Jelinek <jakub@redhat.com>
2195 * expr.c (store_expr): Optimize initialization of an array
2197 * expr.h (builtin_strncpy_read_str): New prototype.
2198 * builtins.c (builtin_strncpy_read_str): Remove prototype.
2201 2007-08-24 Uros Bizjak <ubizjak@gmail.com>
2204 * ifcvt.c (noce_find_if_block): Do not clear if_info.cond_earliest
2205 field when initializing if_info structure.
2207 2007-08-24 Richard Guenther <rguenther@suse.de>
2209 * Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H)
2211 * c-objc-common.c (c_cannot_inline_tree_fn): Remove.
2212 * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Likewise.
2213 * tree-inline.c (inlinable_function_p): Fold in common parts of
2214 the cannot_inline_tree_fn langhook.
2215 * langhooks-def.h (lhd_tree_inlining_cannot_inline_tree_fn): Remove.
2216 (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): Likewise.
2217 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
2218 cannot_inline_tree_fn langhook.
2219 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
2220 cannot_inline_tree_fn member.
2222 2007-08-24 Richard Guenther <rguenther@suse.de>
2224 * expr.c (get_inner_reference): Do computation of bitoffset
2225 from offset in a way we can detect overflow reliably.
2227 2007-08-24 Jie Zhang <jie.zhang@analog.com>
2229 * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define for uClibc.
2231 2007-08-24 Jie Zhang <jie.zhang@analog.com>
2233 * config/bfin/bfin.opt (mfast-fp): Add.
2234 * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Let
2235 libbffastfp override libgcc if -mfast-fp.
2236 * config/bfin/bfin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
2237 * doc/invoke.texi (Option Summary): Mention -mfast-fp.
2238 (Blackfin Options): Document -mfast-fp.
2240 2007-08-24 Jakub Jelinek <jakub@redhat.com>
2242 PR tree-optimization/32573
2244 * tree-data-ref.c (initialize_data_dependence_relation): Clear
2245 DDR_SUBSCRIPTS, DDR_DIR_VECTS and DDR_DIST_VECTS at the beginning.
2246 (finalize_ddr_dependent): Clear DDR_SUBSCRIPTS after freeing it.
2247 (build_classic_dist_vector): Return false rather than true if
2248 DDR_ARE_DEPENDENT is non-NULL at the beginning. Return false
2249 if either subscript_dependence_tester_1 or build_classic_dist_vector_1
2250 returned false. Don't call save_dist_v before calling
2251 build_classic_dist_vector_1.
2252 (free_dependence_relation): Don't guard freeing DDR_SUBSCRIPTS
2253 with NULL DDR_ARE_DEPENDENT. Also free DDR_DIST_VECTS and/or
2254 DDR_DIR_VECTS vectors.
2256 2007-08-23 Brian Sidebotham <brian.sidebotham@gmail.com>
2258 * configure.ac (leb128): Modify sed statement to work with any
2259 binutils version string.
2260 * configure: Regenerate
2262 2007-08-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2264 * config/arc/arc-protos.h arc_select_cc_mode, gen_compare_reg):
2265 Wrap in RTX_CODE macro guard.
2266 * config/arm/pe.c (arm_dllexport_p, arm_dllimport_p,
2267 arm_dllexport_name_p, arm_dllimport_name_p, arm_mark_dllexport,
2268 arm_mark_dllimport, arm_pe_encode_section_info,
2269 arm_pe_unique_section): Use ISO-C function declarations.
2270 * config/c4x/c4x-c.c (c4x_parse_pragma, c4x_pr_CODE_SECTION,
2271 c4x_pr_DATA_SECTION, c4x_pr_FUNC_IS_PURE,
2272 c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, c4x_pr_ignored):
2274 * config/iq2000/iq2000.h (ASM_OUTPUT_SKIP): Fix format warning.
2275 * config/m68hc11/m68hc11.h (ASM_OUTPUT_EXTERNAL): Undef before
2277 * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Fix format
2279 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Likewise.
2280 * config/pdp11/pdp11.c (pdp11_output_function_epilogue): Likewise.
2281 (register_move_cost): Use ISO-C function declarations.
2282 * config/pdp11/pdp11.h (PRINT_OPERAND): Fix format warnings.
2283 * config/score/score-protos.h (score_declare_object): Add
2285 * config/score/score.h (ASM_DECLARE_OBJECT_NAME): Fix format
2287 * final.c (profile_function): Avoid empty if-bodies.
2290 * calls.c (must_pass_in_stack_var_size,
2291 must_pass_in_stack_var_size_or_pad): Constify.
2292 * config/alpha/alpha-protos.h (function_value): Likewise.
2293 * config/alpha/alpha.c (alpha_return_in_memory,
2294 alpha_pass_by_reference, function_value,
2295 unicosmk_must_pass_in_stack, TARGET_PROMOTE_FUNCTION_ARGS,
2296 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
2298 * config/arc/arc.c (arc_return_in_memory, arc_pass_by_reference,
2299 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2300 TARGET_PROMOTE_PROTOTYPES): Likewise.
2301 * config/arm/arm-protos.h (arm_return_in_memory,
2302 arm_pad_arg_upward, arm_function_value): Likewise.
2303 * config/arm/arm.c (arm_pass_by_reference,
2304 arm_promote_prototypes, arm_return_in_msb, arm_must_pass_in_stack,
2305 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2306 arm_function_value, arm_return_in_memory, arm_pad_arg_upward):
2308 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
2309 * config/avr/avr-protos.h (avr_function_value): Likewise.
2310 * config/avr/avr.c (avr_return_in_memory,
2311 gas_output_limited_string, gas_output_ascii, avr_function_value,
2312 avr_return_in_memory): Likewise.
2313 * config/bfin/bfin-protos.h (bfin_return_in_memory): Likewise.
2314 * config/bfin/bfin.c (bfin_pass_by_reference,
2315 bfin_return_in_memory, TARGET_PROMOTE_PROTOTYPES,
2316 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN):
2318 * config/cris/cris.c (cris_pass_by_reference,
2319 TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
2320 * config/crx/crx.c (crx_return_in_memory): Likewise.
2321 * config/darwin.c (function_base, machopic_function_base_name):
2323 * config/fr30/fr30.c (fr30_must_pass_in_stack,
2324 TARGET_PROMOTE_PROTOTYPES): Likewise.
2325 * config/frv/frv.c (frv_must_pass_in_stack): Likewise.
2326 * config/h8300/h8300.c (h8300_return_in_memory): Likewise.
2327 * config/i386/i386-protos.h (ix86_return_in_memory,
2328 ix86_sol10_return_in_memory): Likewise.
2329 * config/i386/i386.c (ix86_function_value,
2330 ix86_function_sseregparm, ix86_must_pass_in_stack,
2331 type_natural_mode, classify_argument, examine_argument,
2332 construct_container, ix86_pass_by_reference, function_value_32,
2333 function_value_64, ix86_function_value_1, return_in_memory_32,
2334 return_in_memory_64, return_in_memory_ms_64,
2335 ix86_return_in_memory, ix86_sol10_return_in_memory,
2336 TARGET_PROMOTE_PROTOTYPES): Likewise.
2337 * config/ia64/ia64-protos.h (ia64_function_value,
2338 ia64_hpux_function_arg_padding): Likewise.
2339 * config/ia64/ia64.c (hfa_element_mode, ia64_return_in_memory,
2340 ia64_function_value, bundle_state_hash, bundle_state_eq_p,
2341 ia64_hpux_function_arg_padding): Likewise.
2342 * config/iq2000/iq2000-protos.h (function_arg,
2343 iq2000_function_value): Likewise.
2344 * config/iq2000/iq2000.c (iq2000_return_in_memory,
2345 iq2000_pass_by_reference, TARGET_PROMOTE_FUNCTION_ARGS,
2346 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
2347 function_arg, iq2000_function_value): Likewise.
2348 * config/m32c/m32c-protos.h (m32c_function_value,
2349 m32c_promote_function_return): Likewise.
2350 * config/m32c/m32c.c (m32c_pass_by_reference,
2351 m32c_promote_prototypes, m32c_promote_function_return,
2352 m32c_function_value): Likewise.
2353 * config/m32r/m32r.c (m32r_return_in_memory,
2354 m32r_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
2355 m32r_in_small_data_p): Likewise.
2356 * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg_padding):
2358 * config/m68hc11/m68hc11.c (m68hc11_return_in_memory,
2359 m68hc11_function_arg_padding): Likewise.
2360 * config/m68k/m68k-protos.h (m68k_function_value): Likewise.
2361 * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES,
2362 m68k_function_value): Likewise.
2363 * config/mcore/mcore-protos.h (mcore_num_arg_regs,
2364 mcore_function_value): Likewise.
2365 * config/mcore/mcore.c (handle_structs_in_regs,
2366 mcore_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
2367 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
2368 mcore_num_arg_regs, mcore_function_value): Likewise.
2369 * config/mips/mips-protos.h (mips_pad_arg_upward,
2370 mips_function_value): Likewise.
2371 * config/mips/mips.c (mips_fpr_return_fields, mips_return_in_msb,
2372 mips_return_in_memory, mips_pass_by_reference, mips_callee_copies,
2373 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2374 TARGET_PROMOTE_PROTOTYPES, mips_pad_arg_upward,
2375 mips_function_value): Likewise.
2376 * config/mmix/mmix-protos.h (mmix_function_outgoing_value):
2378 * config/mmix/mmix.c (mmix_pass_by_reference,
2379 TARGET_PROMOTE_FUNCTION_ARGS, mmix_function_outgoing_value,
2380 mmix_encode_section_info): Likewise.
2381 * config/mn10300/mn10300-protos.h (mn10300_function_value):
2383 * config/mn10300/mn10300.c (mn10300_return_in_memory,
2384 mn10300_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
2385 mn10300_function_value): Likewise.
2386 * config/mt/mt-protos.h (mt_function_value): Likewise.
2387 * config/mt/mt.c (mt_pass_by_reference, mt_function_value,
2388 mt_pass_in_stack, TARGET_PROMOTE_PROTOTYPES): Likewise.
2389 * config/pa/pa-protos.h (function_arg_padding, function_value,
2390 pa_return_in_memory): Likewise.
2391 * config/pa/pa.c (pa_pass_by_reference,
2392 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
2393 function_arg_padding, function_value, pa_return_in_memory):
2395 * config/pdp11/pdp11.c (pdp11_return_in_memory): Likewise.
2396 * config/rs6000/rs6000-protos.h (rs6000_function_value,
2397 function_arg_padding): Likewise.
2398 * config/rs6000/rs6000.c (rs6000_return_in_memory,
2399 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
2400 rs6000_pass_by_reference, rs6000_must_pass_in_stack,
2401 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2402 function_arg_padding, altivec_expand_dst_builtin,
2403 altivec_expand_builtin, rs6000_expand_builtin, spe_init_builtins,
2404 altivec_init_builtins, rs6000_common_init_builtins,
2405 rs6000_function_value): Likewise.
2406 * s390/s390-protos.h (s390_function_value): Likewise.
2407 * config/s390/s390.c (s390_function_arg_size,
2408 s390_pass_by_reference, s390_return_in_memory,
2409 s390_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
2410 TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
2411 * config/score/score-protos.h (score_function_value): Likewise.
2412 * config/score/score.c (score_arg_partial_bytes,
2413 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2414 TARGET_PROMOTE_PROTOTYPES, score_return_in_memory,
2415 score_pass_by_reference, score_add_offset, score_function_value):
2417 * config/sh/sh-protos.h (sh_attr_renesas_p,
2418 sh_promote_prototypes): Likewise.
2419 * config/sh/sh.c (sh_return_in_memory, sh_pass_by_reference,
2420 sh_callee_copies, sh_promote_prototypes, shcompact_byref,
2421 sh_attr_renesas_p): Likewise.
2422 * config/sparc/sparc-protos.h (function_value,
2423 function_arg_padding): Likewise.
2424 * config/sparc/sparc.c (sparc_promote_prototypes,
2425 sparc_return_in_memory, sparc_pass_by_reference,
2426 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2427 function_arg_record_value_2, function_arg_record_value_1,
2428 function_arg_record_value, function_arg_record_value,
2429 function_arg_padding, function_value): Likewise.
2430 * config/spu/spu-protos.h (spu_function_value): Likewise.
2431 * config/spu/spu.c (spu_pass_by_reference, spu_return_in_memory,
2432 spu_function_value): Likewise.
2433 * config/stormy16/stormy16-protos.h (xstormy16_function_value):
2435 * config/stormy16/stormy16.c (xstormy16_return_in_memory,
2436 xstormy16_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
2437 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
2439 * config/v850/v850.c (v850_return_in_memory,
2440 v850_pass_by_reference, TARGET_PROMOTE_PROTOTYPES): Likewise.
2441 * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): Likewise.
2442 * config/xtensa/xtensa.c (xtensa_return_in_msb,
2443 xtensa_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
2444 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
2446 * explow.c (promote_mode, hard_function_value): Likewise.
2447 * expr.h (hard_function_value, promote_mode): Likewise.
2448 * function.c (aggregate_value_p): Likewise.
2449 * hooks.c (hook_bool_const_tree_true): New.
2450 * hooks.h (hook_bool_const_tree_true): New.
2451 * sdbout.c (SET_KNOWN_TYPE_TAG, plain_type_1): Constify.
2452 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
2453 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
2454 TARGET_RETURN_IN_MSB): Likewise.
2455 * target.h (promote_function_args, promote_function_return,
2456 promote_prototypes, return_in_memory, return_in_msb,
2457 pass_by_reference, must_pass_in_stack, callee_copies,
2458 function_value): Likewise.
2459 * targhooks.c (default_return_in_memory,
2460 hook_pass_by_reference_must_pass_in_stack,
2461 hook_callee_copies_named,
2462 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
2463 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
2464 default_function_value): Likewise.
2465 * targhooks.h (default_return_in_memory,
2466 hook_pass_by_reference_must_pass_in_stack,
2467 hook_callee_copies_named,
2468 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
2469 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
2470 default_function_value): Likewise.
2471 * tree-ssa-structalias.c (const_equiv_class_label_t): New.
2472 (equiv_class_label_hash, equiv_class_label_eq): Constify.
2473 * tree-vectorizer.c (bb_in_loop_p): Likewise.
2474 * tree.c (needs_to_live_in_memory): Likewise.
2475 * tree.h (struct tree_type, needs_to_live_in_memory,
2476 aggregate_value_p, must_pass_in_stack_var_size,
2477 must_pass_in_stack_var_size_or_pad): Likewise.
2478 * vmsdbgout.c (write_debug_addr, write_debug_delta4,
2479 write_debug_string, ASM_OUTPUT_DEBUG_STRING, write_rtnbeg,
2480 lookup_filename): Likewise.
2482 2007-08-23 Uros Bizjak <ubizjak@gmail.com>
2485 * config/i386/i386.c (ix86_expand_fp_compare): Expand fp comparison to
2486 fake fcomi i387 instruction for !TARGET_CMOVE.
2487 (ix86_expand_branch): Expand natural sequence with one jump for
2488 all targets, not only TARGET_CMOVE.
2489 * config/i386/i386.md (*cmpfp_0_cc): New define_insn_and_split
2490 pattern to implement fake fcomi sequence. Split instruction after
2491 reload to correct compare sequences.
2492 (*cmpfp_xf_cc): Ditto.
2493 (*cmpfp_<mode>_cc): Ditto.
2494 (*cmpfp_u_cc): Ditto.
2495 (*cmpfp_<mode>_cc): Ditto.
2497 2007-08-23 Richard Guenther <rguenther@suse.de>
2499 * tree-pretty-print.c (dump_generic_node): Annotate
2500 GIMPLE_MODIFY_STMTs with volatile ops with "{v}".
2502 2007-08-23 Richard Guenther <rguenther@suse.de>
2504 * builtins.c (expand_builtin_mathfn): Wrap argument in
2505 save_expr directly instead of re-building the call.
2506 (expand_builtin_mathfn_2): Likewise.
2507 (expand_builtin_mathfn_3): Likewise.
2508 (expand_builtin_interclass_mathfn): Likewise.
2509 (expand_builtin_int_roundingfn): Set arg.
2510 (expand_builtin_int_roundingfn_2): Likewise.
2512 2007-08-23 Paolo Bonzini <bonzini@gnu.org>
2514 * config/i386/sse.md (*sse_and<mode>3, *sse_ior<mode>3,
2515 *sse_nand<mode>3, *sse_xor<mode>3): New.
2517 2007-08-23 Uros Bizjak <ubizjak@gmail.com>
2519 * config/i386/i386.h (PRINT_OPERAND_PUNCT_VALID_P): Add ';' code.
2520 * config/i386/i386.c (print_operand): Handle ';' code. Output
2521 semicolon for TARGET_MACHO.
2522 * config/i386/sync.md (*sync_compare_and_swap<mode>): Use '%;' to
2523 emit semicolon after 'lock' prefix.
2524 (sync_double_compare_and_swap<mode>): Ditto.
2525 (*sync_double_compare_and_swapdi_pic): Ditto.
2526 (*sync_compare_and_swap_cc<mode>): Ditto.
2527 (sync_double_compare_and_swap_cc<mode>): Ditto.
2528 (*sync_double_compare_and_swap_ccdi_pic): Ditto.
2529 (sync_old_add<mode>): Ditto.
2530 (sync_add<mode>): Ditto.
2531 (sync_sub<mode>): Ditto.
2532 (sync_ior<mode>): Ditto.
2533 (sync_and<mode>): Ditto.
2534 (sync_xor<mode>): Ditto.
2536 2007-08-22 Chao-ying Fu <fu@mips.com>
2538 * rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes
2540 (copy_rtx): Handle CONST_FIXED.
2541 (rtx_equal_p): Likewise.
2542 * rtl.h (fixed_value.h): New include.
2543 (rtx_def): Add a new field of fixed_value to u.
2544 (XCNMPFV): Define for accessing fixed_value.
2545 (CONST_FIXED_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW):
2547 * rtl.def (CONST_FIXED): New constant.
2548 (SS_MULT, US_MULT, SS_DIV, US_DIV, FRACT_CONVERT,
2549 UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, US_NEG,
2550 US_ASHIFT): New codes.
2551 * doc/rtl.texi (Expressions): Document const_fixed, us_neg, ss_mult,
2552 us_mult, ss_div, us_div, us_ashift, fract_convert, sat_fract,
2553 unsigned_fract_convert, unsigned_sat_fract): Document them.
2554 * varasm.c (assemble_integer): Extend to support fixed-point constants
2555 by using different machine classes.
2556 (decode_addr_const): Handle FIXED_CST.
2557 (const_hash_1): Likewise.
2558 (compare_constant): Likewise.
2559 (copy_constant): Likewise.
2560 (const_rtx_hash_1): Handle CONST_FIXED.
2561 (output_constant_pool_2): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
2562 MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
2564 (initializer_constant_valid_p): Handle FIXED_CST.
2565 (output_constant): Support FIXED_POINT_TYPE.
2566 * gengenrtl.c (excluded_rtx): Check CONST_FIXED to exclude.
2567 * cse.c (hash_rtx): Support CONST_FIXED.
2568 (exp_equiv_p): Likewise.
2569 (cannon_reg): Likewise.
2570 (fold_rtx): Likewise.
2571 (equiv_constant): Likewise.
2572 (cse_process_notes_1): Likewise.
2573 (count_reg_usage): Likewise.
2574 * cselib.c (entry_and_rtx_equal_p): Check CONST_FIXED.
2575 (rtx_equal_for_cselib_p): Handle CONST_FIXED.
2576 (wrap_constant): Check CONST_FIXED.
2577 (cselib_hash_rtx): Support CONST_FIXED.
2578 (cselib_subst_to_values): Likewise.
2579 * df-scan.c (df_uses_record): Likewise.
2580 * gcse.c (want_to_gcse_p): Likewise.
2581 (oprs_unchanged_p): Likewise.
2582 (oprs_not_set_p): Likewise.
2583 (compute_transp): Likewise.
2584 (extract_mentioned_regs_helper): Likewise.
2585 * genemit.c (gen_exp): Likewise.
2586 * local-alloc.c (equiv_init_varies_p): Likewise.
2587 (contains_replace_regs): Likewise.
2588 (memref_referenced_p): Likewise.
2589 * loop-invariant.c (check_maybe_invariant): Likewise.
2590 (hash_invariant_expr_1): Likewise.
2591 (invariant_expr_equal_p): Likewise.
2592 * postreload-gcse.c (oprs_unchanged_p): Likewise.
2593 * regclass.c (reg_scan_mark_refs): Likewise.
2594 * regrename.c (scan_rtx): Likewise.
2595 * resource.c (mark_referenced_resources): Likewise.
2596 (mark_set_resources): Likewise.
2597 * rtlanal.c (rtx_unstable_p): Likewise.
2598 (rtx_varies_p): Likewise.
2599 (count_occurrences): Likewise.
2600 (reg_mentioned_p): Likewise.
2601 (modified_between_p): Likewise.
2602 (modified_in_p): Likewise.
2603 (volatile_insn_p): Likewise.
2604 (volatile_refs_p): Likewise.
2605 (side_effects_p): Likewise.
2606 (may_trap_p_1): Likewise.
2607 (inequality_comparisons_p): Likewise.
2608 (computed_jump_p_1): Likewise.
2609 (commutative_operand_precedence): Likewise.
2610 * sched-deps.c (sched_analyze_2): Likewise.
2611 * sched-vis.c (print_value): Likewise.
2612 * reload.c (operands_match_p): Likewise.
2613 (subst_reg_equivs): Likewise.
2614 * reload1.c (eliminate_regs_1): Likewise.
2615 (elimination_effects): Likewise.
2616 (scan_paradoxical_subregs): Likewise.
2617 * alias.c (rtx_equal_for_memref_p): Likewise.
2618 * Makefile.in (RTL_BASE_H): Add fixed-value.h.
2619 * emit-rtl.c (const_fixed_htab): New hash table.
2620 (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed):
2622 (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed,
2623 const_fixed_from_fixed_value): New functions.
2624 (verify_rtx_sharing): Handle CONST_FIXED.
2625 (copy_rtx_if_shared_1): Likewise.
2626 (reset_used_flags): Likewise.
2627 (set_used_flags): Likewise.
2628 (copy_insn_1): Likewise.
2629 (init_emit_once): Create const_fixed_htab.
2630 Store fixed-point scalar and vector zero and one to const_tiny_rtx.
2632 2007-08-22 Zdenek Dvorak <ook@ucw.cz>
2634 PR tree-optimization/32949
2635 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Test nowrap_type_p
2636 before failing for ivs with non-constant step.
2638 2007-08-22 Hans-Peter Nilsson <hp@axis.com>
2640 * doc/md.texi (Iterators): Renamed from Macros. All contents
2641 changed to reflect rename of respectively define_code_macro and
2642 define_mode_macro to define_code_iterator and define_mode_iterator.
2643 (Mode Iterators, Code Iterators): Similar.
2644 * read-rtl.c (struct iterator_group, struct iterator_traverse_data)
2645 (uses_mode_iterator_p, apply_mode_iterator, uses_code_iterator_p)
2646 (apply_iterator_to_string, uses_iterator_p, apply_iterator_traverse)
2647 (initialize_iterators, find_iterator, check_code_iterator)
2648 (map_attr_string, apply_mode_maps, apply_iterator_to_rtx, add_mapping)
2649 (read_mapping, read_rtx_1): Similar.
2650 * config/alpha/sync.md, config/alpha/alpha.md, config/frv/frv.md,
2651 config/s390/s390.md, config/m32c/blkmov.md, config/m32c/m32c.md,
2652 config/spu/spu.md, config/sparc/sparc.md, config/sparc/sync.md,
2653 config/i386/i386.md, config/i386/mmx.md, config/i386/sse.md,
2654 config/i386/sync.md, config/crx/crx.md, config/xtensa/xtensa.md,
2655 config/cris/cris.c, config/cris/cris.md, config/ia64/sync.md,
2656 config/ia64/div.md, config/ia64/vect.md, config/ia64/ia64.md,
2657 config/m68k/m68k.md, config/rs6000/spe.md, config/rs6000/altivec.md,
2658 config/rs6000/sync.md, config/rs6000/rs6000.md,
2659 config/arm/vec-common.md, config/arm/neon.md, config/arm/iwmmxt.md,
2660 config/arm/arm.md, config/mips/mips-dsp.md, config/mips/mips.md,
2661 config/vax/vax.md, config/bfin/bfin.md: Similar.
2663 2007-08-22 David Daney <ddaney@avtrex.com>
2665 * doc/install.texi (Testing): Mention testing on a simulator.
2667 2007-08-22 Janis Johnson <janis187@us.ibm.com>
2669 * config/dfp-bit.c (DFP_TO_DFP): Check for overflow.
2671 * doc/libgcc.texi (Decimal float library routines): Fix formatting
2672 and rearrange floating point conversion functions into different
2675 2007-08-22 Maxim Kuvyrkov <maxim@codesourcery.com>
2677 * target.h (struct gcc_target.sched: dfa_pre_advance_cycle,
2678 dfa_post_advance_cycle): New scheduler hooks.
2679 * target-def.h (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
2680 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): New macros to initialize
2682 (TARGET_SCHED): Use them.
2683 * doc/tm.texi (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
2684 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Document new hooks.
2685 * haifa-sched.c (advance_one_cycle): Invoke new hooks.
2687 * genautomata.c (insn_has_dfa_reservation_p): New DFA interface
2688 function to facilitate debugging.
2689 (INSN_HAS_DFA_RESERVATION_P_FUNC_NAME): New macro.
2690 (output_insn_has_dfa_reservation_p): New static function to output
2691 insn_has_dfa_reservation_p ().
2692 (write_automata): Use it.
2693 * genattr.c (main): Output declaration for
2694 insn_has_dfa_reservation_p ().
2696 2007-08-22 Christian Bruel <christian.bruel@st.com>
2697 Richard Guenther <rguenther@suse.de>
2699 * fold-const.c (fold_binary): Optimize A-A if -ffinite-math-only.
2700 * simplify_rtx (simplify_binary_operation_1): Likewise.
2702 2007-08-22 Rask Ingemann Lambertsen <rask@sygehus.dk>
2704 PR rtl-optimization/32557
2705 * df-problems.c (df_note_bb_compute): Use mws->start_regno instead
2706 of REGNO (mws->mw_reg).
2708 2007-08-22 Richard Guenther <rguenther@suse.de>
2711 * builtins.c (expand_builtin_int_roundingfn): Replace call
2712 argument wrapped with SAVE_EXPR directly.
2713 (expand_builtin_int_roundingfn_2): Likewise.
2715 2007-08-22 Richard Guenther <rguenther@suse.de>
2717 * tree-inline.c (inlinable_function_p): Restore disregarding
2718 inline limits for GNU extern inline functions.
2720 2007-08-22 Richard Guenther <rguenther@suse.de>
2723 * tree.c (host_integerp): Treat sizetype as signed as it is
2726 2007-08-21 Ian Lance Taylor <iant@google.com>
2728 PR tree-optimization/33134
2729 * tree-vrp.c (adjust_range_with_scev): Call
2730 set_value_range_to_value.
2732 2007-08-21 Aldy Hernandez <aldyh@redhat.com>
2734 * value-prof.h (gimple_remove_histogram_value): Remove duplicate
2737 2007-08-21 Aldy Hernandez <aldyh@redhat.com>
2739 * tree-flow-inline.h (next_imm_use_stmt): Remove unecessary
2742 2007-08-21 Nathan Froyd <froydnj@codesourcery.com>
2744 * config/rs6000/rs6000.c (expand_block_clear): Add TARGET_SPE
2745 cases to set eight bytes at a time.
2746 (expand_block_move): Likewise.
2748 2007-08-21 Jakub Jelinek <jakub@redhat.com>
2751 * dwarf2out.c (gen_decl_die): Don't call
2752 gen_tagged_type_instantiation_die if decl doesn't have tagged type.
2754 2007-08-21 Paul Brook <paul@codesourcery.com>
2755 Nathan Sidwell <nathan@codesourcery.com>
2756 Mark Mitchell <mark@codesourcery.com>
2757 Joseph Myers <joseph@codesourcery.com>
2759 * configure.ac: Add --with-pkgversion and --with-bugurl.
2760 * configure: Regenerate.
2761 * doc/install.texi: Document them.
2762 * version.c (version_string): Remove VERSUFFIX.
2763 (VERSUFFIX): Remove.
2764 (pkgversion_string): New.
2765 (bug_report_url): Do not hard-code initializer.
2766 * version.h (pkgversion_string): Declare.
2767 * Makefile.in (PKGVERSION_s, BUGURL_s, PKGVERSION, BUGURL_TEXI):
2769 (version.o): Define PKGVERSION and BUGURL.
2770 (gcc-vers.texi): Define VERSION_PACKAGE and BUGURL.
2771 (%.pod): Define BUGURL.
2772 * gcc.c (process_command, main): Use pkgversion_string.
2773 * toplev.c (compile_file, print_version): Likewise.
2774 * protoize.c (main): Likewise.
2775 * gcov.c (print_version): Likewise. Update copyright date.
2776 * gcov-dump.c (print_version): Likewise. Update copyright date.
2777 * mips-tdump.c (main): Likewise. Update copyright date.
2778 * mips-tfile.c (main): Likewise. Update copyright date.
2779 * doc/include/gcc-common.texi: Include VERSION_PACKAGE as subtitle.
2780 * doc/bugreport.texi: Use BUGURL for bug-reporting instructions;
2781 shorten description.
2782 * doc/gcc.texi: Include VERSION_PACKAGE in version description.
2783 * doc/gccint.texi: Likewise.
2784 * doc/invoke.texi: Use BUGURL for bug-reporting instructions.
2785 Update copyright date.
2787 2007-08-21 Uros Bizjak <ubizjak@gmail.com>
2789 * config/i386/i386.c (ix86_expand_clear): Use FLAGS_REG.
2790 (ix86_expand_strlensi_unroll_1): Ditto.
2791 (ix86_expand_branch): Use FLAGS_REG and FPSR_REG.
2792 (ix86_expand_carry_flag_compare): Update comment.
2794 2007-08-21 Jakub Jelinek <jakub@redhat.com>
2797 * fold-const.c (fold_unary): Optimize BIT_NOT_EXPR of VECTOR_CST.
2798 (fold_binary): Handle vectors in X | ~X and X ^ ~X optimizations.
2800 2007-08-21 Richard Guenther <rguenther@suse.de>
2802 * fold-const.c (fold_binary): Revert removing of index +p PTR folding.
2804 2007-08-21 Richard Guenther <rguenther@suse.de>
2807 * fold-const.c (fold_binary): Remove index +p PTR folding.
2808 Fix types of POINTER_PLUS_EXPR generated by folding of
2811 2007-08-20 Chao-ying Fu <fu@mips.com>
2813 * c-common.h (enum rid): Add new enumeration values of RID_SAT,
2814 RID_FRACT, and RID_ACCUM. RID_SAT needs to be inserted before
2815 RID_ONEWAY, so that it can be checked in declspecs_add_type.
2816 (c_common_fixed_point_type_for_size): Declare.
2817 * c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
2818 (c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
2819 (c_token_starts_declspecs): Likewise.
2820 (c_parser_declspecs): Likewise.
2821 (c_parser_attributes): Likewise.
2822 * c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
2823 (c_declspecs): Add saturating_p.
2824 * c-decl.c (build_null_declspecs): Initialize saturating_p.
2825 (declspecs_add_type): Avoid using complex with _Fract, _Accum, or
2826 _Sat. Handle RID_SAT.
2827 Avoid using void, bool, char, int, float, double, _Decimal32,
2828 _Decimal64, _Decimal128, and complex with _Sat.
2829 Handle RID_FRACT and RID_ACCUM.
2830 Make sure _Sat is used with _Fract or _Accum.
2831 (finish_declspecs): Handle cts_fract and cts_accum.
2832 * c-common.c (fixed-value.h): New include.
2833 (constant_expression_warning): Handle FIXED_CST.
2834 (overflow_warning): Likewise.
2835 (warnings_for_convert_and_check): Likewise.
2836 (c_common_fixed_point_type_for_size): New.
2837 (c_common_type_for_mode): Handle fixed-point modes to
2838 return various saturating/non-saturating, signed/unsigned types.
2839 (c_common_signed_or_unsigned_type): Support fixed-point types.
2840 (shorten_compare): Check fixed-point zero.
2841 Handle FIXED_POINT_TYPE.
2842 (c_common_truthvalue_conversion): Handle FIXED_CST.
2843 Handle FIXED_POINT_TYPE.
2844 (c_common_nodes_and_builtins): Record builtin types for fixed-point
2846 (handle_mode_attribute): Handle fixed-point modes. Need to check
2847 if the signness of base type and fixed-point modes are consistent.
2848 (handle_vector_size_attribute): Handle fixed-point modes.
2849 (same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE.
2850 (warn_for_div_by_zero): Check fixed-point zero.
2851 * c-typeck.c (c_common_type): Check FIXED_POINT_TYPE. Build
2852 a common fixed-point type based on fbit, ibit, sign, and saturation.
2853 (build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR,
2854 NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR,
2855 PREDECREMENT_EXPR, and POSTDECREMENT_EXPR.
2856 (convert_for_assignment): Support FIXED_POINT_TYPE.
2857 (digest_init): Handle FIXED_POINT_TYPE.
2858 (build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR,
2859 TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
2860 TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR,
2861 GE_EXPR, LT_EXPR, GT_EXPR.
2862 * target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New.
2863 (TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P.
2864 * target.h (gcc_target): Add fixed_point_supported_p.
2865 * targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT,
2866 MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM.
2867 (default_fixed_point_supported_p): Define.
2868 * targhooks.h (default_fixed_point_supported_p): Declare.
2869 * doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add.
2870 * doc/install.texi (Configuration): Add --enable-fixed-point.
2871 * configure.ac (--enable-fixed-point): New to enable fixed-point
2872 arithmetic extension to C. For mips targets, we enable it by default.
2873 * configure, config.in: Regenerate.
2875 2007-08-20 Pawel Sikora <pluto@pld-linux.org>
2877 * doc/invoke.texi (-Wnon-virtual-dtor): Update documentation.
2879 2007-08-20 David Edelsohn <edelsohn@gnu.org>
2881 * dwarf2out.c (text_section_used): Move declaration outside ifdef
2882 DWARF2_DEBUGGING_INFO.
2883 (cold_text_section_used): Same.
2884 (cold_text_section): Same.
2886 2007-08-20 Richard Guenther <rguenther@suse.de>
2888 * c-typeck.c (convert_for_assignment): Use the type of
2889 the member for the initialization.
2891 2007-08-20 Richard Guenther <rguenther@suse.de>
2893 * c-objc-common.c (c_disregard_inline_limits): Remove.
2894 * c-objc-common.h (c_disregard_inline_limits): Likewise.
2895 * cgraphunit.c (cgraph_process_new_functions): Call
2896 disregard_inline_limits_p.
2897 (cgraph_preserve_function_body_p): Likewise.
2898 * ipa-inline.c (compute_inline_parameters): Likewise.
2899 * langhooks-def.h (lhd_tree_inlining_disregard_inline_limits):
2901 (LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS): Remove.
2902 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
2903 disregard_inline_limits langhook.
2904 * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
2906 * langhooks.h (lang_hooks_for_tree_inlining): Remove
2907 disregard_inline_limits langhook.
2908 * tree-inline.c (disregard_inline_limits_p): New function.
2909 * tree-inline.h (disregard_inline_limits_p): Declare.
2911 2007-08-20 Richard Guenther <rguenther@suse.de>
2913 * langhooks-def.h (lhd_tree_inlining_auto_var_in_fn_p): Remove.
2914 (LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P): Likewise.
2915 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
2916 auto_var_in_fn_p langhook.
2917 * langhooks.c (lhd_tree_inlining_auto_var_in_fn_p): Rename and
2919 * tree.c (auto_var_in_fn_p): ... here.
2920 (find_var_from_fn): Call auto_var_in_fn_p directly.
2921 * langhooks.h (lang_hooks_for_tree_inlining): Remove
2922 auto_var_in_fn_p langhook.
2923 * tree-inline.c (remap_decls): Call auto_var_in_fn_p directly.
2924 (copy_body_r): Likewise.
2925 (self_inlining_addr_expr): Likewise.
2926 * tree.h (auto_var_in_fn_p): Declare.
2928 2007-08-20 Richard Guenther <rguenther@suse.de>
2930 * tree.c (WALK_SUBTREE): Call walk_tree_1.
2931 (walk_type_fields): Take lh parameter.
2932 (walk_tree): Rename to ...
2933 (walk_tree_1): ... this. Do not call the walk_subtrees
2934 langhook but the now passed callback. Pass lh on recursion.
2935 (walk_tree_without_duplicates): Rename to ...
2936 (walk_tree_without_duplicates_1): ... this. Take lh parameter
2937 and call walk_tree_1.
2938 * tree.h (walk_tree_lh): New typedef.
2939 (walk_tree_1): Declare.
2940 (walk_tree_without_duplicates_1): Likewise.
2941 (walk_tree): New define to walk_tree_1 with NULL lh parameter.
2942 (walk_tree_without_duplicates): New define to
2943 walk_tree_without_duplicates_1 with NULL lh parameter.
2944 * langhooks.c (lhd_tree_inlining_walk_subtrees): Remove.
2945 * langhooks.h (lang_hooks_for_tree_inlining): Remove walk_subtrees
2947 * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Remove.
2948 (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
2949 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove walk_subtrees
2952 2007-08-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
2955 * tree-inline.c (optimize_inline_calls): Move the cgraph checking
2956 code in front of the compacting of basic blocks.
2957 Move the folding of statements inbetween the cgraph checking
2958 and compacting of basic blocks.
2960 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2961 Serge Belyshev <belyshev@depni.sinp.msu.ru>
2964 * config/alpha/alpha.c (va_list_skip_additions): Check for
2965 POINTER_PLUS_EXPR in addition to PLUS_EXPR.
2966 (alpha_stdarg_optimize_hook): Look for POINTER_PLUS_EXPR instead of
2967 PLUS_EXPR when checking ap.__base.
2968 (alpha_va_start): Create POINTER_PLUS_EXPR instead of PLUS_EXPR
2969 when doing addition on pointer types. Use size_int instead of
2971 (alpha_gimplify_va_arg_1): Likewise, but use sizetype instead of
2972 ptr_type in the second operand.
2974 2007-08-19 Andrew Pinski <pinskia@gmail.com>
2977 * config/i386/darwin.h (CC1_SPEC): Add %(cc1_cpu) in front.
2979 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2982 * cfgexpand.c (expand_one_register_var): Mark pointer
2983 DECL_ARTIFICIAL as REG_POINTER also.
2984 * stmt.c (expand_decl): Likewise.
2986 2007-08-19 Daniel Berlin <dberlin@dberlin.org>
2993 * tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call.
2994 * tree-ssa-alias.c (init_transitive_clobber_worklist): Add
2995 on_worklist argument and avoid adding things to worklist multiple
2997 (add_to_worklist): Ditto.
2998 (mark_aliases_call_clobbered): Mark entire structure clobbered if
2999 single SFT is clobbered.
3000 (set_initial_properties): Ditto.
3001 (compute_call_clobbered): Update for changes to function
3003 (create_overlap_variables_for): Always create SFT for offset 0.
3004 (create_structure_vars): Handle PHI's, since we are in SSA form at
3006 * tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars.
3007 * tree-ssa-operands.c (access_can_touch_variable): Don't handle
3009 (add_vars_for_offset): Figure out aliases from access + points-to.
3010 (add_virtual_operand): Use add_vars-for_offset.
3011 (get_tmr_operands): Update for NMT changes, rewrite to be correct.
3012 (add_call_clobber_ops): Remove makes_clobbering_call set.
3013 (get_expr_operands): Always pass through the INDIRECT_REF
3015 * tree-ssa-structalias.c (struct constraint_graph): Remove
3017 Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to,
3018 address_taken, pt_used, number_incoming.
3019 (FIRST_ADDR_NODE): Removed.
3020 (merge_graph_nodes): Remove broken code for the moment.
3021 (init_graph): New function.
3022 (build_pred_graph): Remove code to init_graph.
3023 Add location equivalence support.
3024 (struct scc_info): Rename roots to deleted.
3026 (init_scc_info): Ditto
3027 (init_topo_info): Use graph->size.
3028 (compute_topo_order): Ditto.
3029 (do_da_constraint): Removed.
3030 (do_sd_constraint): Remove calls to find().
3031 set_union_with_increment should always get 0 as last arg here.
3032 (do_complex_constraint): Replace do_da_constraint with assert.
3034 (struct equiv_class_label): New.
3035 (pointer_equiv_class_table): Ditto.
3036 (location_equiv_class_table): Ditto.
3037 (equiv_class_label_hash): Ditto.
3038 (equiv_class_label_eq): Ditto
3039 (equiv_class_lookup): Ditto.
3040 (equiv_class_ladd): Ditto.
3041 (pointer_equiv_class): Ditto.
3042 (location_equiv_class): Ditto.
3043 (condense_visit): Rename and rewrite from label_visit to do only
3044 SCC related stuff for HU.
3045 (label_visit): Do HU work for HU.
3046 (perform_var_substitution): Update to do HU and location
3048 (free_var_substitution_info): Update to free HU and location
3049 equivalence structures. */
3050 (find_equivalent_node): Update for pointer but not location
3052 (unite_pointer_equivalences): New function.
3053 (move_complex_constraints): Rewrite to only do moving.
3054 (rewrite_constraints): Split out of move_complex_constraints.
3055 (solve_graph): Use graph->size.
3056 (process_constraint_1): Add from_call argument, use it.
3057 Split *a = &b into two constraints.
3058 (process_constraint): Use new process_constraint_1.
3059 (get_constraint_for_component_ref): Handle bitmaxsize == -1 case.
3060 (get_constraint_for): Handle non-pointer integers properly.
3061 Remove code that used to handle structures.
3062 (handle_ptr_arith): Fix a few bugs in pointer arithmetic handling
3063 with unknown addends.
3064 (handle_rhs_call): New function.
3065 (find_func_aliases): Use handle_rhs_call.
3066 (set_uids_in_ptset): Add an assert.
3067 (set_used_smts): Fix bug in not considering unified vars.
3068 (compute_tbaa_pruning): Stop initing useless iteration_obstack.
3069 (compute_points_to_sets): Update for other function changes.
3070 (delete_points_to_sets): Ditto.
3071 (ipa_pta_execute): Ditto.
3072 (pass_ipa_pta): We need to update SSA after ipa_pta.
3074 2007-08-19 Jan Hubicka <jh@suse.cz>
3076 * i386.md: Replace "rim" and "mri" constraints by "g".
3078 2007-08-19 Joseph Myers <joseph@codesourcery.com>
3080 * dwarf2out.c (text_section_used, cold_text_section_used,
3081 cold_text_section, dwarf2out_note_section_used): New.
3082 (dwarf2out_init): Initialize cold_text_section.
3083 (dwarf2out_switch_text_section, dwarf2out_begin_function): Call
3084 dwarf2out_note_section_used.
3085 (size_of_aranges): Only count entry for text section if it was
3086 used. Count entry for cold text section if it was used.
3087 (output_aranges): Only output entries for text section and cold
3088 text section if they were used.
3090 2007-08-19 Andrew Pinski <pinskia@gmail.com>
3092 * tree-pretty-print.c (debug_generic_expr): Add a comment about
3094 (debug_generic_stmt): Likewise.
3095 (debug_tree_chain): Likewise.
3097 2007-08-19 Dorit Nuzman <dorit@il.ibm.com>
3099 * tree-data-refs.c (split_constant_offset): Expose.
3100 * tree-data-refs.h (split_constant_offset): Add declaration.
3102 * tree-vectorizer.h (dr_alignment_support): Renamed
3103 dr_unaligned_software_pipeline to dr_explicit_realign_optimized.
3104 Added a new value dr_explicit_realign.
3105 (_stmt_vec_info): Added new fields: dr_base_address, dr_init,
3106 dr_offset, dr_step, and dr_aligned_to, along with new access
3107 functions for these fields: STMT_VINFO_DR_BASE_ADDRESS,
3108 STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET, STMT_VINFO_DR_STEP, and
3109 STMT_VINFO_DR_ALIGNED_TO.
3111 * tree-vectorizer.c (vect_supportable_dr_alignment): Add
3113 In case of outer-loop vectorization with non-fixed misalignment - use
3114 the dr_explicit_realign scheme instead of the optimized realignment
3116 (new_stmt_vec_info): Initialize new fields.
3118 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Handle the
3119 'nested_in_vect_loop' case. Change verbosity level.
3120 (vect_analyze_data_ref_access): Handle the 'nested_in_vect_loop' case.
3121 Don't fail on zero step in the outer-loop for loads.
3122 (vect_analyze_data_refs): Call split_constant_offset to calculate
3123 base, offset and init relative to the outer-loop.
3125 * tree-vect-transform.c (vect_create_data_ref_ptr): Replace the unused
3126 BSI function argument with a new function argument - at_loop.
3127 Simplify the condition that determines STEP. Takes additional argument
3128 INV_P. Support outer-loop vectorization (handle the
3129 nested_in_vect_loop case), including zero step in the outer-loop. Call
3130 vect_create_addr_base_for_vector_ref with additional argument.
3131 (vect_create_addr_base_for_vector_ref): Takes additional argument LOOP.
3132 Updated function documentation. Handle the 'nested_in_vect_loop' case.
3133 Fixed and simplified calculation of step.
3134 (vectorizable_store): Call vect_create_data_ref_ptr with loop instead
3135 of bsi, and with additional argument. Call bump_vector_ptr with
3136 additional argument. Fix typos. Handle the 'nested_in_vect_loop' case.
3137 (vect_setup_realignment): Takes additional arguments INIT_ADDR and
3138 DR_ALIGNMENT_SUPPORT. Returns another value AT_LOOP. Handle the case
3139 when the realignment setup needs to take place inside the loop.
3140 Support the dr_explicit_realign scheme. Allow generating the optimized
3141 realignment scheme for outer-loop vectorization. Added documentation.
3142 (vectorizable_load): Support the dr_explicit_realign scheme. Handle
3143 the 'nested_in_vect_loop' case, including loads that are invariant in
3144 the outer-loop and the realignment schemes. Handle the case when the
3145 realignment setup needs to take place inside the loop. Call
3146 vect_setup_realignment with additional arguments. Call
3147 vect_create_data_ref_ptr with additional argument and with loop instead
3148 of bsi. Fix 80-column overflow. Fix typos. Rename PHI_STMT to PHI.
3149 (vect_gen_niters_for_prolog_loop): Call
3150 vect_create_addr_base_for_vector_ref with additional arguments.
3151 (vect_create_cond_for_align_checks): Likewise.
3152 (bump_vector_ptr): Updated to support the new dr_explicit_realign
3153 scheme: takes additional argument bump; argument ptr_incr is now
3154 optional; updated documentation.
3155 (vect_init_vector): Takes additional argument (bsi). Use it, if
3156 available, to insert the vector initialization.
3157 (get_initial_def_for_induction): Pass additional argument in call to
3159 (vect_get_vec_def_for_operand): Likewise.
3160 (vect_setup_realignment): Likewise.
3161 (vectorizable_load): Likewise.
3163 2007-08-19 Dorit Nuzman <dorit@il.ibm.com>
3165 * tree-vectorizer.h (vect_is_simple_reduction): Takes a loop_vec_info
3166 as argument instead of struct loop.
3167 (nested_in_vect_loop_p): New function.
3168 (vect_relevant): Add enum values vect_used_in_outer_by_reduction and
3170 (is_loop_header_bb_p): New. Used to differentiate loop-header phis
3171 from other phis in the loop.
3172 (destroy_loop_vec_info): Add additional argument to declaration.
3174 * tree-vectorizer.c (supportable_widening_operation): Also check if
3175 nested_in_vect_loop_p (don't allow changing the order in this case).
3176 (vect_is_simple_reduction): Takes a loop_vec_info as argument instead
3177 of struct loop. Call nested_in_vect_loop_p and don't require
3178 flag_unsafe_math_optimizations if it returns true.
3179 (new_stmt_vec_info): When setting def_type for phis differentiate
3180 loop-header phis from other phis.
3181 (bb_in_loop_p): New function.
3182 (new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so
3183 just update their loop_vinfo. Order of BB traversal now matters -
3184 call dfs_enumerate_from with bb_in_loop_p.
3185 (destroy_loop_vec_info): Takes additional argument to control whether
3186 stmt_vinfo of the loop stmts should be destroyed as well.
3187 (vect_is_simple_reduction): Allow the "non-reduction" use of a
3188 reduction stmt to be defines by a non loop-header phi.
3189 (vectorize_loops): Call destroy_loop_vec_info with additional argument.
3191 * tree-vect-transform.c (vectorizable_reduction): Call
3192 nested_in_vect_loop_p. Check for multitypes in the inner-loop.
3193 (vectorizable_call): Likewise.
3194 (vectorizable_conversion): Likewise.
3195 (vectorizable_operation): Likewise.
3196 (vectorizable_type_promotion): Likewise.
3197 (vectorizable_type_demotion): Likewise.
3198 (vectorizable_store): Likewise.
3199 (vectorizable_live_operation): Likewise.
3200 (vectorizable_reduction): Likewise. Also pass loop_info to
3201 vect_is_simple_reduction instead of loop.
3202 (vect_init_vector): Call nested_in_vect_loop_p.
3203 (get_initial_def_for_reduction): Likewise.
3204 (vect_create_epilog_for_reduction): Likewise.
3205 (vect_init_vector): Check which loop to work with, in case there's an
3207 (get_initial_def_for_inducion): Extend to handle outer-loop
3208 vectorization. Fix indentation.
3209 (vect_get_vec_def_for_operand): Support phis in the case vect_loop_def.
3210 In the case vect_induction_def get the vector def from the induction
3211 phi node, instead of calling get_initial_def_for_inducion.
3212 (get_initial_def_for_reduction): Extend to handle outer-loop
3214 (vect_create_epilog_for_reduction): Extend to handle outer-loop
3216 (vect_transform_loop): Change assert to just skip this case. Add a
3218 (vect_finish_stmt_generation): Add a couple asserts.
3220 (vect_estimate_min_profitable_iters): Multiply
3221 cost of inner-loop stmts (in outer-loop vectorization) by estimated
3223 (vect_model_reduction_cost): Don't add reduction epilogue cost in case
3224 this is an inner-loop reduction in outer-loop vectorization.
3226 * tree-vect-analyze.c (vect_analyze_scalar_cycles_1): New function.
3227 Same code as what used to be vect_analyze_scalar_cycles, only with
3228 additional argument loop, and loop_info passed to
3229 vect_is_simple_reduction instead of loop.
3230 (vect_analyze_scalar_cycles): Code factored out into
3231 vect_analyze_scalar_cycles_1. Call it for each relevant loop-nest.
3232 Updated documentation.
3233 (analyze_operations): Check for inner-loop loop-closed exit-phis during
3234 outer-loop vectorization that are live or not used in the outerloop,
3235 cause this requires special handling.
3236 (vect_enhance_data_refs_alignment): Don't consider versioning for
3238 (vect_analyze_data_refs): Check that there are no datarefs in the
3240 (vect_mark_stmts_to_be_vectorized): Also consider vect_used_in_outer
3241 and vect_used_in_outer_by_reduction cases.
3242 (process_use): Also consider the case of outer-loop stmt defining an
3243 inner-loop stmt and vice versa.
3244 (vect_analyze_loop_1): New function.
3245 (vect_analyze_loop_form): Extend, to allow a restricted form of nested
3246 loops. Call vect_analyze_loop_1.
3247 (vect_analyze_loop): Skip (inner-)loops within outer-loops that have
3248 been vectorized. Call destroy_loop_vec_info with additional argument.
3250 * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Don't allow
3251 in the inner-loop when doing outer-loop vectorization. Add
3252 documentation and printout.
3253 (vect_recog_dot_prod_pattern): Likewise. Also add check for
3254 GIMPLE_MODIFY_STMT (in case we encounter a phi in the loop).
3256 2007-08-18 Andrew Pinski <pinskia@gmail.com>
3258 * tree-affine.h (print_aff): New prototype.
3259 (debug_aff): Likewise.
3260 * tree-affine.c (print_aff): New function.
3261 (debug_aff): Likewise.
3263 2007-08-18 Paul Brook <paul@codesourcery.com>
3264 Joseph Myers <joseph@codesourcery.com>
3266 * common.opt (-fdebug-prefix-map=): New option.
3267 * opts.c: Include debug.h.
3268 (common_handle_option): Handle -fdebug-prefix-map.
3269 * final.c: Include ggc.h.
3270 (struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
3271 remap_debug_filename): New.
3272 * Makefile.in (final.o, opts.o): Update dependencies.
3273 * debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
3274 * configure.ac: Check for assembler --debug-prefix-map support.
3275 * configure, config.in: Regenerate.
3276 * gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
3277 (ASM_DEBUG_SPEC): Include ASM_MAP.
3278 * doc/install.texi (--with-debug-prefix-map): Document.
3279 * doc/invoke.texi (-fdebug-prefix-map): Document.
3280 * dbxout.c (dbxout_init, dbxout_start_source_file,
3281 dbxout_source_file): Call remap_debug_filename.
3282 * dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
3283 dwarf2out_start_source_file, dwarf2out_finish): Call
3284 remap_debug_filename.
3285 (file_table_relative_p): Do not check d->emitted_number.
3286 * toplev.c (output_file_directive): Call remap_debug_filename.
3287 * vmsdbgout.c (write_srccorr): Call remap_debug_filename.
3288 * xcoffout.c (xcoffout_source_file): Call remap_debug_filename.
3290 2007-08-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3292 * loop-invariant.c (find_invariants_to_move): Add missing macro
3295 2007-08-17 Tom Tromey <tromey@redhat.com>
3297 * tree.h (struct tree_label_decl): Removed old "java" fields.
3299 2007-08-17 Richard Sandiford <richard@codesourcery.com>
3300 Nigel Stephens <nigel@mips.com>
3302 * config/mips/sde.h (DRIVER_SELF_SPECS): Add commas.
3303 Treat -mno-data-in-code and -mcode-xonly as aliases for
3304 -mcode-readable=no and -mcode-readable=pcrel respectively.
3305 * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly.
3306 (MULTILIB_OPTIONS): Add -mcode-readable=no multilibs.
3307 (MULTILIB_DIRNAMES): Update accordingly.
3309 2007-08-17 H.J. Lu <hongjiu.lu@intel.com>
3311 * Makefile.in (version.o): Depend on $(REVISION) only if
3312 REVISION_s is defined.
3314 2007-08-17 Sa Liu <saliu@de.ibm.com>
3315 Ulrich Weigand <uweigand@de.ibm.com>
3318 * tree.c (reconstruct_complex_type): For a pointer to a vector,
3319 use build_qualified_type to retain qualifiers of the base type.
3321 2007-08-17 Chen Liqin <liqin@sunnorth.com.cn>
3323 * config/score/score.md : Update pattern tablejump.
3324 * config/score/score.c : Update score_initialize_trampoline
3326 * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro.
3327 (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro.
3328 * doc/contrib.texi: Add my entry.
3330 2007-08-16 H.J. Lu <hongjiu.lu@intel.com>
3332 * Makefile.in (REVISION): New.
3335 (version.o): Also depend on $(REVISION). Add
3336 -DREVISION=$(REVISION_s).
3338 * version.c (version_string): Add REVISION.
3340 2007-08-16 Seongbae Park <seongbae.park@gmail.com>
3342 * tree-eh.c (lower_try_finally_onedest): Reset the locus
3343 of GOTO that's relocated to a different block.
3345 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3347 * c-common.c (const_strip_array_types): New.
3348 * c-common.h (lang_missing_noreturn_ok_p): Delete.
3349 (const_strip_array_types): New.
3350 * c-objc-common.c (c_disregard_inline_limits,
3351 c_warn_unused_global_decl): Constify.
3352 * c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl,
3353 c_vla_type_p, c_incomplete_type_error): Likewise.
3354 * c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise.
3355 * hooks.c (hook_bool_const_tree_false): New.
3356 * hooks.h (hook_bool_const_tree_false): Likewise.
3357 * langhooks-def.h (lhd_warn_unused_global_decl,
3358 lhd_incomplete_type_error, lhd_expr_size,
3359 lhd_tree_inlining_disregard_inline_limits,
3360 lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
3361 LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify.
3362 * langhooks.c (lhd_warn_unused_global_decl,
3363 lhd_incomplete_type_error,
3364 lhd_tree_inlining_disregard_inline_limits,
3365 lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
3366 lhd_expr_size): Likewise.
3367 * langhooks.h (lang_hooks_for_tree_inlining,
3368 lang_hooks_for_tree_dump, lang_hooks_for_types,
3369 lang_hooks_for_decls, lang_hooks): Likewise.
3370 * pointer-set.c (pointer_set_t, pointer_set_create,
3371 pointer_set_contains, insert_aux, pointer_set_insert,
3372 pointer_set_traverse, pointer_map_t, pointer_map_create,
3373 pointer_map_contains, pointer_map_insert, pointer_map_traverse):
3375 * pointer-set.h (pointer_set_contains, pointer_set_insert,
3376 pointer_set_traverse, pointer_map_contains, pointer_map_insert,
3377 pointer_map_traverse): Likewise.
3378 * predict.c (assert_is_empty): Likewise.
3379 * tree-affine.c (free_name_expansion): Likewise.
3380 * tree-cfg.c (edge_to_cases_cleanup): Likewise.
3381 * tree.c (size_in_bytes, max_int_size_in_bytes): Likewise.
3382 * tree.h (size_in_bytes, max_int_size_in_bytes): Likewise.
3384 2007-08-16 Victor Kaplansky <victork@il.ibm.com>
3386 * tree-vectorizer.c (new_loop_vec_info): Initialize new
3388 (destroy_loop_vec_info): Add call to VEC_free.
3389 * tree-vectorizer.h (may_alias_ddrs): Define.
3390 (LOOP_VINFO_MAY_ALIAS_DDRS): Define.
3391 * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
3392 Change reporting to dump.
3393 (vect_is_duplicate_ddr): New.
3394 (vect_mark_for_runtime_alias_test): New.
3395 (vect_analyze_data_ref_dependences) Add call to
3396 vect_mark_for_runtime_alias_test.
3397 (vect_enhance_data_refs_alignment): Define local variable
3398 vect_versioning_for_alias_required, don't perform
3399 peeling for alignment if versioning for alias is
3401 (vect_enhance_data_refs_alignment): Use
3402 PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS instead of
3403 PARAM_VECT_MAX_VERSION_CHECKS.
3404 * tree-vect-transform.c
3405 (vect_create_cond_for_alias_checks): New.
3406 (vect_transform_loop): Add call to
3407 vect_create_cond_for_alias_checks.
3408 (vect_vfa_segment_size): New.
3409 * params.def (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS):
3411 (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS): Define.
3412 * gcc/doc/invoke.texi
3413 (vect-max-version-for-alignment-checks): Document.
3414 (vect-max-version-for-alias-checks): Document.
3415 (vect-max-version-checks): Remove.
3417 2007-08-16 Uros Bizjak <ubizjak@gmail.com>
3419 * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on
3420 the same line as the instruction for all asm dialects.
3421 (*rep_movsi): Ditto.
3422 (*rep_movsi_rex64): Ditto.
3423 (*rep_movqi): Ditto.
3424 (*rep_movqi_rex64): Ditto.
3425 (*rep_stosdi_rex64): Ditto.
3426 (*rep_stossi): Ditto.
3427 (*rep_stossi_rex64): Ditto.
3428 (*rep_stosqi): Ditto.
3429 (*rep_stosqi_rex64): Ditto.
3430 (*cmpstrnqi_nz_1): Ditto.
3431 (*cmpstrnqi_nz_rex_1): Ditto.
3432 (*cmpstrnqi_1): Ditto.
3433 (*cmpstrnqi_rex_1): Ditto.
3434 (*strlenqi_1): Ditto.
3435 (*strlenqi_rex_1): Ditto.
3436 * config/i386/sync.md (*sync_compare_and_swap<mode>): Emit "lock"
3437 prefix on the same line as the instruction for all asm dialects.
3438 (sync_double_compare_and_swap<mode>): Ditto.
3439 (*sync_double_compare_and_swapdi_pic): Ditto.
3440 (*sync_compare_and_swap_cc<mode>): Ditto.
3441 (sync_double_compare_and_swap_cc<mode>): Ditto.
3442 (*sync_double_compare_and_swap_ccdi_pic): Ditto.
3443 (sync_old_add<mode>): Ditto.
3444 (sync_add<mode>): Ditto.
3445 (sync_sub<mode>): Ditto.
3446 (sync_ior<mode>): Ditto.
3447 (sync_and<mode>): Ditto.
3448 (sync_xor<mode>): Ditto.
3450 2007-08-16 Richard Sandiford <richard@codesourcery.com>
3453 * reload.c (find_reloads): Check that the memory returned by
3454 find_reloads_toplev was not the result of forcing a constant
3456 (find_reloads_toplev): Always use simplify_gen_subreg to get
3457 the subreg of a constant. If the result is also a constant,
3458 but not a legitimate one, force it into the constant pool
3459 and reload its address.
3461 2007-08-15 David Edelsohn <edelsohn@gnu.org>
3463 * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
3466 2007-08-15 Daniel Jacobowitz <dan@codesourcery.com>
3468 * config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute
3469 directive for the current vector ABI.
3471 2007-08-15 Steve Ellcey <sje@cup.hp.com>
3474 * caller-save.c (reg_save_code): Set invalide status on restore code.
3476 2007-08-15 Diego Novillo <dnovillo@google.com>
3478 * tree-ssa-alias.c (compute_memory_partitions): Use
3479 alias_bitmap_obstack to allocate bitmaps.
3480 (reset_alias_info): Factor out of init_alias_info.
3481 Mark all name tags not associated to an SSA name for renaming.
3482 (init_alias_info): Call it.
3483 (create_name_tags): Tidy. Add comments.
3484 (dump_points_to_info_for): Do not call get_mem_sym_stats_for.
3486 2007-08-15 Maxim Kuvyrkov <maxim@codesourcery.com>
3488 * config/mips/mips.c (vr4130_swap_insns_p): Use new interface to
3489 scheduler dependencies.
3491 2007-08-15 Rask Ingemann Lambertsen <rask@sygehus.dk>
3493 * config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for
3495 (*iorsi_1_zext): Likewise.
3496 (*iorsi_1_zext_imm): Likewise.
3497 * config/i386/sse.md: (*sse4_1_extractps): Use "nonimmediate_operand"
3498 with "rm"/"xm" constraint.
3499 (sse2_vmsqrtv2df2): Likewise.
3501 2007-08-15 Jakub Jelinek <jakub@redhat.com>
3504 * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
3507 2007-08-14 Daniel Berlin <dberlin@dberlin.org>
3509 * tree-pass.h (PROP_pta): Removed.
3510 (TODO_rebuild_alias): New.
3511 (pass_may_alias): Removed.
3512 * tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild
3513 aliasing if we changed something.
3514 * tree-ssa-alias.c (compute_may_aliases): Make non-static. Update
3516 (pass_may_alias): Removed.
3517 (create_structure_vars): Return TODO_rebuild_alias.
3518 * tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias.
3519 * tree-sra.c (tree_sra): Only rebuild aliasing if something
3521 (tree_sra_early): We never affect aliasing right now.
3522 * tree-flow.h (compute_may_aliases): New prototype.
3523 * passes.c: Remove pass_may_alias from the passes.
3524 (execute_function_todo): Support TODO_rebuild_alias.
3526 2007-08-14 Kai Tietz <kai.tietz@onevision.com>
3528 * i386.c: (legitimize_address): Move dllimported variable check
3529 infront of legitimizing pic address of CONST symbols.
3531 2007-08-14 Steve Ellcey <sje@cup.hp.com>
3533 PR tree-optimization/32941
3534 * tree-eh.c (struct leh_tf_state): Add goto_queue_map field.
3535 (goto_queue_cmp): Remove.
3536 (find_goto_replacement): Change search method.
3537 (maybe_record_in_goto_queue): Add assert.
3538 (lower_try_finally): Remove qsort call, add pointer_map_destroy call.
3539 * Makefile.in (tree-eh.o): Add pointer-set.h dependency.
3541 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3543 * alias.c (component_uses_parent_alias_set): Constify.
3544 * alias.h (component_uses_parent_alias_set): Likewise.
3545 * cfgrtl.c (print_rtl_with_bb): Likewise.
3546 * double-int.c (tree_to_double_int, double_int_fits_to_tree_p,
3547 mpz_get_double_int): Likewise.
3548 * double-int.h (double_int_fits_to_tree_p, tree_to_double_int,
3549 mpz_get_double_int): Likewise.
3550 * expr.c (is_aligning_offset, undefined_operand_subword_p,
3551 mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset):
3553 * expr.h (safe_from_p): Likewise.
3554 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
3556 * gimplify.c (should_carry_locus_p, zero_sized_field_decl,
3557 zero_sized_type, goa_lhs_expr_p): Likewise.
3558 * omp-low.c (is_variable_sized, use_pointer_for_field): Likewise.
3559 * rtl.h (print_rtl_with_bb): Likewise.
3560 * sched-vis.c (print_exp, print_value, print_pattern): Likewise.
3561 * tree-cfg.c (const_first_stmt, const_last_stmt): New.
3562 * tree-flow-inline.h (bb_stmt_list): Constify.
3563 (cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev,
3565 * tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last,
3566 const_first_stmt, const_last_stmt): New.
3567 (block_may_fallthru, empty_block_p): Constify.
3568 * tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY,
3569 EXPR_ONLY_BODY): New.
3570 (expr_first, expr_last, expr_only): Use macro for body.
3571 (const_expr_first, const_expr_last, const_expr_only): New.
3572 * tree-iterator.h (const_tree_stmt_iterator, ctsi_start,
3573 ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next,
3574 ctsi_prev, ctsi_stmt): New.
3575 * tree-scalar-evolution.c (get_loop_exit_condition): Constify.
3576 * tree-scalar-evolution.h (get_loop_exit_condition): Likewise.
3577 * tree-ssa-loop-niter.c (loop_only_exit_p,
3578 derive_constant_upper_bound): Likewise.
3579 * tree-ssa-phiopt.c (empty_block_p): Likewise.
3580 * tree-ssa-threadupdate.c (redirection_block_p): Likewise.
3581 * tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise.
3582 * tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise.
3583 * tree-vrp.c (vrp_bitmap_equal_p): Likewise.
3584 * tree.c (get_type_static_bounds): Likewise.
3585 * tree.h (const_expr_first, const_expr_last, const_expr_only): New.
3586 (get_type_static_bounds): Constify.
3588 2007-08-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
3591 * config/i386/i386.h (CANONICALIZE_COMPARISON): New.
3592 * config/i386/i386.md (plusminus)(addsub)(SWI): New.
3593 (*<addsub><mode>3_cc_overflow): New.
3594 (*add<mode>3_cconly_overflow): New.
3595 (*sub<mode>3_cconly_overflow): New.
3596 (*<addsub>si3_zext_cc_overflow): New.
3597 * config/i386/predicates.md (fcmov_comparison_operator): Accept
3598 CCCmode for LTU, GTU, LEU and GEU.
3599 (ix86_comparison_operator): Likewise.
3600 (ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
3601 * config/i386/i386.c (put_condition_code): Support CCCmode.
3602 (ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
3603 or MINUS expressions.
3605 2007-08-14 Andrew Pinski <pinskia@gmail.com>
3608 * c-typeck.c (build_binary_op): Disallow vector float types with
3609 BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
3611 2007-08-14 Maxim Kuvyrkov <maxim@codesourcery.com>
3613 * sched-int.h (struct _dep): Rename field 'kind' to 'type'.
3614 (DEP_KIND): Rename to DEP_TYPE. Update all uses.
3615 (dep_def): New typedef.
3616 (init_dep_1, sd_debug_dep): Declare functions.
3617 (DEP_LINK_KIND): Rename to DEP_LINK_TYPE.
3618 (debug_dep_links): Remove.
3619 (struct _deps_list): New field 'n_links'.
3620 (DEPS_LIST_N_LINKS): New macro.
3621 (FOR_EACH_DEP_LINK): Remove.
3622 (create_deps_list, free_deps_list, delete_deps_list): Remove
3624 (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
3625 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
3626 (copy_deps_list_change_con, move_dep_link): Ditto.
3627 (struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps'
3628 and 'spec_back_deps'. New field 'resolved_forw_deps'. Remove field
3630 (INSN_BACK_DEPS): Remove.
3631 (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
3633 (INSN_DEP_COUNT): Remove.
3634 (enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP. Fix comments.
3635 (spec_info, haifa_recovery_block_was_added_during_scheduling_p):
3636 Declare global variables.
3637 (deps_pools_are_empty_p, sched_free_deps): Declare functions.
3638 (add_forw_dep, compute_forward_dependences): Remove declarations.
3639 (add_or_update_back_dep, add_or_update_back_forw_dep): Ditto.
3640 (add_back_forw_dep, delete_back_forw_dep): Ditto.
3641 (debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare
3643 (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW):
3645 (SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto.
3646 (sd_list_types_def): New typedef.
3647 (sd_next_list): Declare function.
3648 (struct _sd_iterator): New type.
3649 (sd_iterator_def): New typedef.
3650 (sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline
3652 (FOR_EACH_DEP): New cycle wrapper.
3653 (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
3655 (sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto.
3656 (sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists):
3659 * sched-deps.c (init_dep_1): Make global.
3660 (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
3662 (dump_dep): New static function.
3663 (dump_dep_flags): New static variable.
3664 (sd_debug_dep): New function.
3665 (add_to_deps_list, remove_from_deps_list): Update 'n_links' field of
3667 (move_dep_link): Use remove_from_deps_list (), instead of
3669 (dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove.
3670 (dep_link_is_detached_p): New static function.
3671 (deps_obstack, dl_obstack, dn_obstack): Remove. Use dn_pool, dl_pool
3673 (dn_pool, dl_pool): New alloc_pools.
3674 (dn_pool_diff, dl_pool_diff): New static variables.
3675 (create_dep_node, delete_dep_node): New static function.
3676 (create_deps_list): Make it static. Use alloc_pool 'dl_pool'.
3677 (deps_list_empty_p): Make it static. Use 'n_links' field.
3678 (deps_pools_are_empty_p): New static function.
3679 (alloc_deps_list, delete_deps_list): Remove.
3680 (dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove.
3681 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
3682 (copy_deps_list_change_con): Remove. Use sd_copy_back_deps () instead.
3683 (forward_dependency_cache): Remove.
3684 (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove
3685 'back' from the names. Change signature to use dep_t instead of
3687 (add_back_dep): Ditto. Make global.
3688 (check_dep_status): Rename to check_dep ().
3689 (sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn):
3691 (sd_finish_insn): Ditto.
3692 (sd_find_dep_between_no_cache): New static function.
3693 (sd_find_dep_between): New function.
3694 (ask_dependency_caches, set_dependency_caches): New static functions.
3695 (update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto.
3696 (add_or_update_dep_1): Separate pieces of functionality into
3697 ask_dependency_caches (), update_dependency_caches (),
3698 change_spec_dep_to_hard (), update_dep ().
3699 (get_back_and_forw_lists): New static function.
3700 (sd_add_dep): Separate setting of dependency caches into
3701 set_dependency_caches ().
3702 (sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps):
3704 (sd_delete_dep): Ditto.
3705 (DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants.
3706 (dump_lists): New static function.
3707 (sd_debug_lists): New debug function.
3708 (delete_all_dependences, fixup_sched_groups): Update to use
3709 sd_* infrastructure.
3710 (sched_analyze_2): Create data-speculative dependency only if
3711 data-speculation is enabled.
3712 (sched_analyze_insn): If insn cannot be speculative, make all its
3713 dependencies non-speculative.
3714 (sched_analyze): Use sd_init_insn ().
3715 (add_forw_dep, compute_forward_dependencies): Remove.
3716 (delete_dep_nodes_in_back_deps): New static function.
3717 (sched_free_deps): New function.
3718 (init_dependency_caches): Init alloc_pools.
3719 (extend_depedency_caches): Update after removing of
3720 forward_dependency_cache.
3721 (free_dependency_caches): Ditto. Free alloc_pools.
3722 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove.
3723 (delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep):
3725 (add_back_forw_dep, delete_back_forw_dep): Ditto.
3726 (add_dependence): Use init_dep ().
3727 (get_dep_weak_1): New static function.
3728 (get_dep_weak): Move logic to get_dep_weak_1 ().
3729 (dump_ds): New static function moved from haifa-sched.c:
3730 debug_spec_status ().
3731 (debug_ds): New debug function.
3732 (check_dep_status): Rename to check_dep (). Update to check whole
3735 * haifa-sched.c (spec_info): Make global.
3736 (added_recovery_block_p): Rename to
3737 'haifa_recovery_block_was_added_during_current_schedule_block_p'.
3738 (haifa_recovery_block_was_added_during_scheduling_p): New variable.
3739 (dep_cost, priority, rank_for_schedule, schedule_insn): Update
3740 to use new interfaces.
3741 (ok_for_early_queue_removal): Ditto.
3742 (schedule_block): Initialize logical uids of insns emitted by the
3744 (sched_init): Initialize new variable.
3745 (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
3747 (extend_global): Initialize insn data.
3748 (init_h_i_d): Remove code that is now handled in sd_init_insn ().
3749 (process_insn_forw_deps_be_in_spec): Change signature. Update to use
3751 (add_to_speculative_block): Update to use new interfaces.
3752 (create_recovery_block): Set new variables.
3753 (create_check_block_twin, fix_recovery_deps): Update to use new
3755 (sched_insn_is_legitimate_for_speculation_p): New function.
3756 (speculate_insn): Move checking logic to
3757 sched_insn_is_legitimate_for_speculation_p ().
3758 (sched_remove_insn): Finalize sched-deps information of instruction.
3759 (clear_priorities, add_jump_dependencies): Update to use new
3761 (debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
3763 * sched-rgn.c (set_spec_fed, find_conditional_protection): Update
3764 to use new interfaces.
3765 (is_conditionally_protected, is_pfree, is_prisky) Ditto.
3766 (new_ready): Try to use control speculation only if it is available.
3767 (add_branch_dependences): Update to use new interfaces.
3768 (compute_block_backward_dependences): Rename to
3769 compute_block_dependences (). Call
3770 targetm.sched.dependencies_evaluation_hook ().
3771 (free_block_dependencies): New static function.
3772 (debug_dependencies): Update to use new interfaces.
3773 (schedule_region): Remove separate computation of forward dependencies.
3774 Move call of targetm.sched.dependencies_evaluation_hook () to
3775 compute_block_dependences (). Free dependencies at the end of
3776 scheduling the region.
3778 * sched-ebb.c (earliest_block_with_similiar_load): Update to use
3780 (add_deps_for_risky_insns): Ditto.
3781 (schedule_ebb): Remove separate computation of forward dependencies.
3782 Free dependencies at the end of scheduling the ebb.
3784 * ddg.c (create_ddg_dependence): Update to use new interfaces.
3785 (build_intra_loop_deps): Ditto. Remove separate computation of
3786 forward dependencies. Free sched-deps dependencies.
3788 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
3789 to use new interfaces.
3790 (ia64_dfa_new_cycle, ia64_gen_check): Ditto.
3792 * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
3794 (is_costly_group): Ditto.
3796 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3798 * alias.c (rtx_equal_for_memref_p): Constify.
3799 * basic-block.h (const_edge, const_basic_block): New.
3800 (reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p,
3801 single_pred_p, single_succ_edge, single_pred_edge, single_succ,
3802 single_pred, maybe_hot_bb_p, probably_cold_bb_p,
3803 probably_never_executed_bb_p, edge_probability_reliable_p,
3804 br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print,
3805 inside_basic_block_p, control_flow_insn_p, dominated_by_p):
3807 * bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise.
3808 * bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up):
3810 * cfganal.c (flow_active_insn_p, forwarder_block_p,
3811 flow_nodes_print, dfs_enumerate_from): Likewise.
3812 * cfgbuild.c (count_basic_blocks, inside_basic_block_p,
3813 control_flow_insn_p, count_basic_blocks): Likewise.
3814 * cfgloop.c (flow_bb_inside_loop_p, glb_enum_p,
3815 get_loop_body_with_size, loop_exit_edge_p): Likewise.
3816 * cfgloop.h (flow_bb_inside_loop_p, num_loop_insns,
3817 average_num_loop_insns, loop_exit_edge_p,
3818 just_once_each_iteration_p, can_duplicate_loop_p): Likewise.
3819 * cfgloopanal.c (just_once_each_iteration_p, num_loop_insns,
3820 average_num_loop_insns, seq_cost): Likewise.
3821 * cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise.
3822 * dominance.c (dominated_by_p): Likewise.
3823 * emit-rtl.c (validate_subreg): Likewise.
3824 * except.c (can_throw_internal, can_throw_external): Likewise.
3825 * except.h (can_throw_internal, can_throw_external): Likewise.
3826 * gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p,
3827 oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p,
3828 compute_transp, load_killed_in_block_p, reg_killed_on_edge,
3829 simple_mem, store_ops_ok, load_kills_store, find_loads,
3830 store_killed_in_insn, store_killed_after, store_killed_before,
3831 gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat):
3833 * ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok,
3834 noce_mem_write_may_trap_or_fault_p): Likewise.
3835 * pointer-set.c (pointer_set_contains, pointer_map_contains):
3837 * pointer-set.h (pointer_set_contains, pointer_map_contains):
3839 * predict.c (can_predict_insn_p, maybe_hot_bb_p,
3840 probably_cold_bb_p, probably_never_executed_bb_p,
3841 edge_probability_reliable_p, br_prob_note_reliable_p,
3842 can_predict_insn_p): Likewise.
3843 * regclass.c (reg_set_to_hard_reg_set): Likewise.
3844 * resource.c (return_insn_p): Likewise.
3845 * rtl.h (reg_set_between_p, reg_set_p, validate_subreg):
3847 * rtlanal.c (reg_set_between_p, reg_set_p): Likewise.
3848 * tracer.c (count_insns, ignore_bb_p, better_p): Likewise.
3849 * tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr,
3850 verify_gimple_modify_stmt): Likewise.
3851 * tree-chrec.c (is_not_constant_evolution,
3852 is_multivariate_chrec_rec, is_multivariate_chrec,
3853 chrec_contains_symbols, chrec_contains_undetermined,
3854 tree_contains_chrecs, evolution_function_is_affine_multivariate_p,
3855 evolution_function_is_univariate_p, avoid_arithmetics_in_type_p,
3856 eq_evolutions_p, scev_direction): Likewise.
3857 * tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec,
3858 eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols,
3859 chrec_contains_symbols_defined_in_loop,
3860 chrec_contains_undetermined, tree_contains_chrecs,
3861 evolution_function_is_affine_multivariate_p,
3862 evolution_function_is_univariate_p, chrec_zerop,
3863 evolution_function_is_constant_p, evolution_function_is_affine_p,
3864 evolution_function_is_affine_or_constant_p,
3865 tree_does_not_contain_chrecs, chrec_type): Likewise.
3866 * tree-data-ref.c (tree_fold_divides_p,
3867 object_address_invariant_in_loop_p, dr_may_alias_p,
3868 ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p,
3869 same_access_functions, constant_access_functions,
3870 access_functions_are_affine_or_constant_p, find_vertex_for_stmt):
3872 * tree-flow.h (scev_direction): Likewise.
3873 * tree-gimple.c (is_gimple_stmt): Likewise.
3874 * tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p):
3876 * tree-pretty-print.c (op_prio): Likewise.
3877 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
3878 analyzable_condition, backedge_phi_arg_p): Likewise.
3879 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
3880 * tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise.
3881 * tree-ssa-threadupdate.c (dbds_continue_enumeration_p):
3884 2007-08-13 Dan Hipschman <dsh@google.com>
3887 * c-format.c (check_format_arg): Move check for zero-length
3888 format strings below the check for unterminated strings.
3890 2007-08-13 Andrew Pinski <pinskia@gmail.com>
3893 * c-typeck.c (build_unary_op <case BIT_NOT_EXPR>): Reject vector float
3896 2007-08-13 Nick Clifton <nickc@redhat.com>
3898 * config/arm/arm_neon.h: Revert GPLv3 patch to this file.
3900 2007-08-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3903 * c-format.c (gcc_gfc_length_specs): New array.
3904 (gcc_gfc_char_table): Add unsigned specifier, and references to
3905 the l length modifier.
3906 (format_types_orig): Use the new gcc_gfc_length_specs.
3908 2007-08-12 Sa Liu <saliu@de.ibm.com>
3910 * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
3911 and with REG_RETVAL note after split.
3913 2007-08-11 David Daney <ddaney@avtrex.com>
3915 * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter