1 2009-06-19 Uros Bizjak <ubizjak@gmail.com>
3 * see.c: Remove for real.
5 2009-06-19 Uros Bizjak <ubizjak@gmail.com>
7 * optabs.h (enum optab_index): Add new OTI_significand.
8 (significand_optab): Define corresponding macro.
9 * optabs.c (init_optabs): Initialize significand_optab.
10 * genopinit.c (optabs): Implement significand_optab using
11 significand?f2 patterns.
12 * builtins.c (expand_builtin_mathfn): Handle
13 BUILT_IN_SIGNIFICAND{,F,L}.
14 (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
15 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
17 * config/i386/i386.md (significandxf2, significand<mode>2): New
18 expanders to implement significandf, significand and significandl
19 built-ins as inline x87 intrinsics.
21 2009-06-18 Anatoly Sokolov <aesok@post.ru>
23 * config/avr/avr.c (avr_override_options): Remove setting value of
24 PARAM_INLINE_CALL_COST.
26 2009-06-18 Richard Henderson <rth@redhat.com>
29 * tree-pass.h (TDF_ASMNAME): New.
30 * tree-dump.c (dump_options): Add asmname.
31 * doc/invoke.texi: Document it.
33 * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
34 (dump_decl_name): ...here.
35 (dump_function_name): New flags arg; mind TDF_ASMNAME.
36 (dump_generic_node): Update dump_function_name calls.
37 (print_call_name): New flags arg; update all dump calls.
38 * diagnostic.h (print_call_name): Update.
39 * gimple-pretty-print.c (dump_gimple_call): Update.
41 2009-06-18 H.J. Lu <hongjiu.lu@intel.com>
44 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
46 2009-06-18 Diego Novillo <dnovillo@google.com>
48 * doc/plugins.texi: Document plugin_is_GPL_compatible.
49 * plugin.c (str_license): Declare.
50 (try_init_one_plugin): Assert that the symbol
51 'plugin_is_GPL_compatible' exists.
53 2009-06-18 Sergei Dyshel <sergeid@il.ibm.com>
56 * Makefile.in (OBJS-common): Remove see.o.
58 * common.opt (fsee): Mark as preserved for backward compatibility.
59 * opts.c (common_handle_option): Add OPT_fsee to the backward
60 compatibility section.
61 * passes.c (init_optimization_passes, pass_see): Remove pass.
62 * timevar.def (TV_SEE): Remove.
63 * tree-pass.h (pass_see): Remove declaration.
64 * doc/invoke.texi (-fsee): Remove documentation.
66 2009-06-18 Martin Jambor <mjambor@suse.cz>
68 * tree-sra.c: Include statistics.h
69 (sra_stats): New variable.
70 (sra_initialize): Clear sra_stats.
71 (create_access_replacement): Increment sra_stats.replacements.
72 (get_access_replacement): Do not return twice.
73 (analyze_all_variable_accesses): Increment statistics counter by the
74 number of scalarized aggregates.
75 (generate_subtree_copies): Increment sra_stats.subtree_copies.
76 (sra_modify_expr): Increment sra_stats.exprs.
77 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
78 (sra_modify_assign): Increment sra_stats.exprs,
79 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
80 (perform_intra_sra): Update statistics counters.
81 * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
83 2009-06-18 Sandra Loosemore <sandra@codesourcery.com>
85 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
86 (arm_scalar_mode_supported_p): New function.
88 2009-06-18 Paul Brook <paul@codesourcery.com>
89 Sandra Loosemore <sandra@codesourcery.com>
91 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
92 (__extendhfsf2, __truncsfhf2): Define.
93 * config/arm/fp16.c: New file.
94 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
95 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
97 2009-06-18 Sandra Loosemore <sandra@codesourcery.com>
99 * doc/extend.texi (Half-Precision): New section.
100 * doc/invoke.texi (Option Summary): List -mfp16-format.
101 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format.
102 * config/arm/arm.opt (mfp16-format=): New.
103 * config/arm/arm.c: Include intl.h.
104 (TARGET_INVALID_PARAMETER_TYPE): Redefine.
105 (TARGET_INVALID_RETURN_TYPE): Redefine.
106 (TARGET_PROMOTED_TYPE): Redefine.
107 (TARGET_CONVERT_TO_TYPE): Redefine.
108 (arm_fp16_format): Define.
109 (all_fpus): Add entry for neon-fp16.
110 (fp_model_for_fpu): Likewise.
111 (struct fp16_format): Declare.
112 (all_fp16_formats): Define.
113 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
115 (arm_override_options): Set arm_fp16_format. Call sorry for fp16
117 (arm_legitimate_index_p): Treat HFmode like HImode.
118 (thumb1_legitimate_address_p): Make it recognize HFmode constants.
119 (coproc_secondary_reload_class): Special-case HFmode.
120 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
121 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
122 (arm_init_fp16_builtins): New.
123 (arm_init_builtins): Call it.
124 (arm_invalid_parameter_type): New.
125 (arm_invalid_return_type): New.
126 (arm_promoted_type): New.
127 (arm_convert_to_type).
128 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16
130 (arm_emit_fp16_const): New function.
131 (arm_mangle_type): Mangle __fp16 as "Dh".
132 * config/arm/arm.h (TARGET_VFPD32): Make it know about
134 (TARGET_NEON_FP16): New.
135 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
136 (enum fputype): Add FPUTYPE_NEON_FP16.
137 (enum arm_fp16_format_type): Declare.
138 (arm_fp16_format): Declare.
139 (LARGEST_EXPONENT_IS_NORMAL): Define.
140 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
141 * config/arm/arm-modes.def (HFmode): Define.
142 * config/arm/vfp.md: (*movhf_vfp): New.
145 * config/arm/arm.md: (fpu): Add neon_fp16.
146 (floatsihf2, floatdihf2): New.
147 (fix_trunchfsi2, fix_trunchfdi2): New.
152 (*thumb1_movhf): New.
153 (consttable_2): Add check for HFmode constants.
154 (consttable_4): Handle HFmode constants.
156 2009-06-18 Uros Bizjak <ubizjak@gmail.com>
158 * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
160 2009-06-17 Olivier Hainque <hainque@adacore.com>
162 * collect2.c (main): Use CONST_CAST2 to perform char ** to
163 const char ** conversion in AIX specific section.
165 2009-06-17 H.J. Lu <hongjiu.lu@intel.com>
167 * config/i386/i386.c (ix86_special_builtin_type): Remove
168 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED.
169 (bdesc_special_args): Updated.
170 (ix86_init_mmx_sse_builtins): Likewise.
171 (ix86_expand_special_args_builtin): Likewise.
173 2009-06-17 Richard Henderson <rth@redhat.com>
175 * tree-pretty-print.c (maybe_dump_asm_name): New.
176 (dump_decl_name): Use it.
177 (PRINT_FUNCTION_NAME): Merge into...
178 (dump_function_name): ... here. Use maybe_dump_asm_name.
180 2009-06-17 Cary Coutant <ccoutant@google.com>
182 * dbxout.c (dbxout_source_line): Add is_stmt parameter.
184 * debug.c (struct gcc_debug_hooks): Change placeholder for
186 (debug_nothing_int_charstar_int): Replaced by...
187 (debug_nothing_int_charstar_int_bool): ...this.
188 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
189 source_line prototype.
190 (debug_nothing_int_charstar_int): Replaced by...
191 (debug_nothing_int_charstar_int_bool): ...this.
192 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
193 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
194 Output is_stmt operand when necessary.
195 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
196 (notice_source_line): Add is_stmt parameter.
197 * sdbout.c (sdbout_source_line): Add is_stmt parameter.
198 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
200 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
201 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
203 2009-06-17 Ian Lance Taylor <iant@google.com>
205 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
207 (struct store_by_pieces_d): Rename from store_by_pieces. Change
210 2009-06-17 Adam Nemet <anemet@caviumnetworks.com>
212 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
213 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
214 tree_strip_sign_nop_conversions and
215 tree_ssa_strip_useless_type_conversions rather than stripping
217 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
219 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
220 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
221 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
222 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
225 2009-06-17 Michael Eager <eager@eagercon.com>
227 * config/rs6000/constraints.md (register_constraint "d"): New.
228 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
229 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
230 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
231 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
232 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
233 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
234 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
235 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
236 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
237 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
239 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
240 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
241 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
242 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
243 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
244 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
245 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
246 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
247 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
248 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
249 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
250 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
251 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
252 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
254 2009-06-16 Ian Lance Taylor <iant@google.com>
256 * profile.c (total_num_never_executed): Don't define.
257 (compute_branch_probabilities): Don't count or print
259 (init_branch_prob): Don't set total_num_never_executed.
260 (end_branch_prob): Don't print total_num_never_executed.
262 2009-06-17 David Daney <ddaney@caviumnetworks.com>
264 * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
266 2009-06-17 David Edelsohn <edelsohn@gnu.org>
268 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
271 2009-06-17 Steve Ellcey <sje@cup.hp.com>
273 * expr.c (expand_assignment): Change complex type check.
275 2009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
277 * doc/plugins.texi (Building GCC plugins): Added new section.
279 2009-06-17 Ian Lance Taylor <iant@google.com>
281 * c-pch.c (get_ident): Don't set size of templ array.
282 (pch_init): Don't set size of partial_pch array.
284 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
285 string constant to intialize an array whose size is the length of
288 2009-06-17 Richard Guenther <rguenther@suse.de>
290 PR tree-optimization/40389
291 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
292 to addressable types.
293 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
295 2009-06-17 Richard Guenther <rguenther@suse.de>
298 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
299 if there is no evolution of left in the loop bail out.
300 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
303 2009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
304 Janis Johnson <janis187@us.ibm.com>
307 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
308 for the symbol ref of a constant that is the source of a move
309 - nor for any other not-obvious-label-ref constants.
311 2009-06-16 Olatunji Ruwase <tjruwase@google.com>
313 * plugin.c (position_pass): Skip newly inserted pass during list
314 traversal to avoid repeated insertion.
316 2009-06-16 Ian Lance Taylor <iant@google.com>
318 * vec.h (VEC_stack_alloc): Define different version if
319 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
320 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
321 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
322 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
324 2009-06-16 H.J. Lu <hongjiu.lu@intel.com>
326 * config.gcc (extra_headers): Add ia32intrin.h for x86.
328 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
329 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
330 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
331 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
332 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
333 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
334 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
335 (bdesc_special_args): Add __builtin_ia32_rdtsc and
336 __builtin_ia32_rdtscp.
337 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
338 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
339 and __builtin_ia32_rorhi.
340 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
341 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
342 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
343 (ix86_expand_args_builtin): Likewise.
344 (ix86_expand_special_args_builtin): Likewise.
346 * config/i386/i386.md (UNSPECV_RDTSCP): New.
347 (UNSPECV_RDTSC): Likewise.
348 (UNSPECV_RDPMC): Likewise.
349 (*bsr): Renamed to ...
351 (*bsr_rex64): Renamed to ...
355 (*rdpmc_rex64): Likewise.
358 (*rdtsc_rex64): Likewise.
361 (*rdtscp_rex64): Likewise.
363 * config/i386/ia32intrin.h: New.
365 * config/i386/x86intrin.h: Include <ia32intrin.h>.
367 2009-06-16 Ian Lance Taylor <iant@google.com>
369 * ira-build.c (copy_info_to_removed_store_destinations):
372 2009-06-16 Ian Lance Taylor <iant@google.com>
374 * c-decl.c (grokdeclarator): Change size_varies to bool.
376 2009-06-16 Ian Lance Taylor <iant@google.com>
378 * sel-sched.c: Make forward declarations of move_op_hooks and
379 fur_hooks explicitly extern.
381 2009-06-16 Ian Lance Taylor <iant@google.com>
383 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
384 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
386 2009-06-16 Ian Lance Taylor <iant@google.com>
388 * resource.c (mark_referenced_resources): Change
389 include_delayed_effects parameter to bool. Change all callers.
390 (mark_end_of_function_resources): Likewise.
391 * reorg.c (insn_references_resource_p): Likewise.
392 (insn_sets_resource_p): Likewise.
393 * resource.h (mark_referenced_resources): Update declaration.
394 (mark_end_of_function_resources): Update declaration.
396 2009-06-16 David Edelsohn <edelsohn@gnu.org>
398 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
400 2009-06-16 David Edelsohn <edelsohn@gnu.org>
402 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
403 GCC can bootstrap on AIX with GNU Binutils 2.20.
405 2009-06-16 Ian Lance Taylor <iant@google.com>
407 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
409 2009-06-16 Ian Lance Taylor <iant@google.com>
411 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
412 inline, not extern inline.
413 (exact_log2): Likewise.
414 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
416 (exact_log2): Likewise, but don't test CTZ_HWI.
418 2009-06-16 Ian Lance Taylor <iant@google.com>
420 * bitmap.c (bitmap_clear): Don't declare as inline.
421 * gimple.c (gimplify_assign): Likewise.
422 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
423 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
424 (sched_scan_info): Remove duplicate definition.
426 2009-06-16 Ian Lance Taylor <iant@google.com>
428 * c-common.c (skip_evaluation): Don't define.
429 (c_inhibit_evaluation_warnings): Define global variable.
430 (overflow_warning): Check c_inhibit_evaluation_warnings rather
431 than skip_evaluation.
432 (convert_and_check, warn_for_div_by_zero): Likewise.
433 * c-common.h (skip_evaluation): Don't declare.
434 (c_inhibit_evaluation_warnings): Declare.
435 * c-parser.c (c_parser_typeof_specifier): Set
436 c_inhibit_evaluation_warnings rather than skip_evaluation.
437 (c_parser_conditional_expression): Likewise.
438 (c_parser_binary_expression): Likewise.
439 (c_parser_sizeof_expression): Likewise.
440 (c_parser_alignof_expression): Likewise.
441 * c-typeck.c (build_indirect_ref): Check
442 c_inhibit_evaluation_warnings rather than skip_evaluation.
443 (build_conditional_expr, build_binary_op): Likewise.
445 2009-06-16 Richard Guenther <rguenther@suse.de>
447 * tree-ssa-alias.c (is_escape_site): Remove.
448 * tree-ssa-alias.h (enum escape_type): Remove.
449 (is_escape_site): Likewise.
450 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
451 via casts and asms without deferring to is_escape_site.
453 2009-06-16 Jakub Jelinek <jakub@redhat.com>
456 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
457 use gen_lowpart if op0 has complex mode.
459 2009-06-16 Richard Guenther <rguenther@suse.de>
461 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
462 variables add them to ESCAPED.
463 (find_func_aliases): Do not make all indirectly stored values escaped.
465 2009-06-16 Rafael Avila de Espindola <espindola@google.com>
467 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
470 2009-06-16 Martin Jambor <mjambor@suse.cz>
472 PR tree-optimization/40432
473 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
474 check whether we need to force gimple register operand.
476 2009-06-16 Martin Jambor <mjambor@suse.cz>
478 PR tree-optimization/40413
479 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
480 build_ref_for_offset.
481 (propagate_subacesses_accross_link): Fix a typo in a comment.
483 2009-06-16 Ira Rosen <irar@il.ibm.com>
485 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
486 with additional parameter.
487 * tree-vectorizer.h (enum vect_def_type): Add new value
489 (enum vect_relevant): Add comments.
490 (vect_is_simple_reduction): Add new argument.
491 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
492 Detect nested cycles.
493 (vect_is_simple_reduction): Update documentation, add an argument to
494 distinguish inner-loop reduction from nested cycle, detect nested
495 cycles, fix printings and indentation, don't swap operands in case
497 (get_initial_def_for_reduction): Handle subtraction.
498 (vect_create_epilog_for_reduction): Add new argument to specify
500 (vect_finalize_reduction): Handle subtraction, fix comments.
501 (vectorizable_reduction): Handle nested cycles. In case of nested
502 cycle keep track of the reduction variable position. Call
503 vect_is_simple_reduction with additional parameter. Use original
504 statement code in reduction epilogue for nested cycle. Call
505 vect_create_epilog_for_reduction with additional parameter.
506 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
507 inner-loop vectorization.
508 (vect_recog_widen_sum_pattern): Likewise.
509 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
511 (vect_mark_stmts_to_be_vectorized): Likewise.
512 (vect_get_vec_def_for_operand): Handle nested cycles.
514 2009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
516 * doc/invoke.texi (Debugging Options): Fix option index entries
517 for -fdump-statistics, -frandom-seed add entries for
518 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
519 (FRV Options): Fix entries for -mTLS, -mtls.
520 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
521 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
522 (M68hc1x Options): Fix @itemx for -mnominmax.
523 (MCore Options): Fix entry for -mno-lsim.
524 (MMIX Options): Fix entry for -mabi=mmixware.
525 (PDP-11 Options): Fix entry for -mbcopy-builtin.
527 2009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
529 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
530 Mention the plugin mode of gengtype.
531 * doc/gty.texi (Source Files Containing Type Information): Likewise.
532 * gengtype.c: Updated copyright.
533 (plugin_files, nb_plugin_files) Added new static variables.
534 (measure_input_list) Care about plugin_files.
535 (write_rtx_next): Added early return in plugin mode.
536 (create_file): Updated copyright year in generated file. Added
538 (oprintf): Added early return if NULL outf.
539 (get_output_file_with_visibility): Care of plugin_files.
540 (get_output_file_name): May return null.
541 (write_local): Added early return.
542 (put_mangled_filename): Ditto.
543 (finish_root_table): Added check for base_files.
544 (write_roots): Care about null when plugins.
545 (main): Added plugin mode.
547 2009-06-15 Ian Lance Taylor <iant@google.com>
549 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
550 * gcov.c (read_count_file): Add braces around variables declared
553 * c.opt (Wjump-misses-init): New warning.
554 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
555 -Wall and -Wc++-compat if not already set.
556 (c_common_post_options): Clear warn_jump_misses_init if it was not
558 * c-decl.c (struct c_binding): Change type field to a union with
559 new label field. Make it the first field in the struct. Update
560 references to type to use u.type instead.
561 (struct c_spot_bindings): Define.
562 (struct c_goto_bindings): Define.
563 (c_goto_bindings_p): Define, along with VECs.
564 (struct c_label_vars): Define.
565 (struct c_scope): Add has_label_bindings field.
566 (bind_label, set_spot_bindings): New static functions.
567 (decl_jump_unsafe, update_spot_bindings): New static functions.
568 (update_label_decls): New static function.
569 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
570 Update binding u.label field to shadowed field.
571 (c_binding_start_stmt_expr): New function.
572 (c_binding_end_stmt_expr): New function.
573 (pushdecl): Don't call c_begin_vm_scope.
574 (make_label): Add defining and p_label_vars parameters. Change
576 (lookup_label): Correct test for whether a label has not yet been
577 defined. Call bind_label rather than bind.
578 (warn_about_goto): New static function.
579 (lookup_label_for_goto): New function.
580 (declare_label): Call bind_label rather than bind.
581 (check_earlier_gotos): New static function.
582 (define_label): Don't give errors about jumping into statement
583 expressions or scopes of variably modified types. Call
584 set_spot_bindings and check_earlier_gotos. Call bind_label
585 instead of bind. Don't set label_context_stack_se or
586 label_context_stack_vm.
587 (c_get_switch_bindings): New function.
588 (c_release_switch_bindings): New function.
589 (c_check_switch_jump_warnings): New function.
590 (start_function): Don't set label_context_stack_se or
591 label_context_stack_vm.
592 (finish_function): Likewise.
593 * c-typeck.c (label_context_stack_se): Don't define.
594 (label_context_stack_vm): Don't define.
595 (c_finish_goto_label): Call lookup_label_for_goto rather than
596 lookup_label. Don't give errors about jumping into a statement
597 expression or the scope of a variably modified type. Don't set
598 label_context_stack_se or label_context_stack_vm.
599 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
600 fields. Add bindings field.
601 (c_start_case): Don't set deleted fields. Set bindings field.
602 (do_case): Rework order of tests. Don't check blocked_stmt_expr
603 or blocked_vm. Call c_check_switch_jump_warnings.
604 (c_finish_case): Don't test blocked_stmt_expr field. Call
605 c_release_switch_bindings.
606 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
607 c_switch_stack. Don't walk label_context_stack_se labels. Don't
608 set label_context_stack_se. Call c_bindings_start_stmt_expr.
609 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
610 c_switch_stack. Don't walk label_context_stack_se labels. Don't
611 set label_context_stack_se. Call c_bindings_end_stmt_expr.
612 (c_begin_vm_scope, c_end_vm_scope): Don't define.
613 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
614 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
615 (C_DECL_UNJUMPABLE_VM): Don't define.
616 (C_DECL_UNDEFINABLE_VM): Don't define.
617 (struct c_label_list): Don't define.
618 (struct c_label_context_se): Don't define.
619 (struct c_label_context_vm): Don't define.
620 (struct c_spot_bindings): Declare.
621 (c_bindings_start_stmt_expr): Declare.
622 (c_bindings_end_stmt_expr): Declare.
623 (lookup_label_for_goto): Declare.
624 (c_get_switch_bindings, c_release_switch_bindings): Declare.
625 (c_check_switch_jump_warnings): Declare.
626 (label_context_stack_se, label_context_stack_vm): Don't declare.
627 (c_finish_goto_label): Update declaration.
628 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
629 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
630 (Warning Options): Document -Wjump-misses-init.
632 2009-06-15 Jakub Jelinek <jakub@redhat.com>
634 * tree-object-size.c (addr_object_size): Fix a pasto in the last
637 2009-06-15 Rafael Avila de Espindola <espindola@google.com>
639 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
641 2009-06-15 Aldy Hernandez <aldyh@redhat.com>
643 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
645 2009-06-15 Aldy Hernandez <aldyh@redhat.com>
647 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
649 2009-06-15 Rafael Avila de Espindola <espindola@google.com>
651 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
652 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
653 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
654 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
655 * dwarf2asm.c (dw2_force_const_mem): Update call to
657 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
658 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
659 * langhooks.c (lhd_comdat_group): Remove.
660 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
661 * tree.h (DECL_COMDAT_GROUP): New.
662 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
663 (tree_decl_with_vis): Add comdat_group. Remove one_only.
664 (make_decl_one_only): Change signature.
665 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
667 (make_decl_one_only): Change signature.
668 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
670 2009-06-15 Richard Guenther <rguenther@suse.de>
673 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
675 2009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
677 * tree-ssa-math-opts.c: Remove extra divide.
679 2009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
681 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
683 2009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
685 * passes.c: Add bswap pass.
686 * tree-pass.h: Add pass_optimize_bswap declaration.
687 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
688 Include rtl.h, expr.h and optabs.h for optab_handler check.
689 (struct symbolic_number, pass_optimize_bswap): New definition.
690 (do_shift_rotate, verify_symbolic_number_p): New functions.
691 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
692 (gate_optimize_bswap): New function.
693 * tree.c (widest_int_cst_value): New function.
694 * tree.h (widest_int_cst_value): Prototype added.
696 2009-06-14 Steven Bosscher <steven@gcc.gnu.org>
698 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
699 REG_EQUAL/REG_EQUIV notes.
701 2009-06-14 Richard Guenther <rguenther@suse.de>
704 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
705 has its address taken if NRV was applied and it is addressable.
706 * tree-ssa-structalias.c (get_constraint_for_address_of): New
707 function split out from ...
708 (get_constraint_for_1): ... here.
709 (handle_rhs_call): Use it to mark the return slot escaped if
710 it is addressable and NRV was applied.
712 2009-06-13 Aldy Hernandez <aldyh@redhat.com>
714 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
715 Change first argument type to location_t.
716 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
717 Do not set input_location.
718 Use loc instead of input_location throughout.
720 2009-06-13 Richard Guenther <rguenther@suse.de>
722 PR tree-optimization/40421
723 * tree-predcom.c (should_unroll_loop_p): Remove.
724 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
726 2009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
728 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
729 Add location argument.
731 2009-06-13 Aldy Hernandez <aldyh@redhat.com>
733 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
735 * config/s390/s390.c (s390_build_builtin_va_list): Same.
736 (s390_gimplify_va_arg): Pass location to create_artificial_label.
737 * config/spu/spu-protos.h: Add location to
738 spu_resolve_overloaded_builtin.
739 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
740 spu_build_builtin_va_list.
741 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
742 argument. Pass location to build_function_call_vec.
743 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
745 (emit_fpu_switch): Same.
746 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
747 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
748 to build_decl and create_artificial_label.
749 (xtensa_gimplify_va_arg_expr): Same.
750 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
751 (xstormy16_gimplify_va_arg_expr): Same.
752 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
753 * config/arm/arm.c (arm_build_builtin_va_list): Same.
754 * config/mips/mips.c (mips_build_builtin_va_list): Same.
755 (mips16_build_function_stub): Same.
756 (mips16_build_call_stub): Same.
758 2009-06-13 Richard Earnshaw <rearnsha@arm.com>
761 * arm/constraints.md (Pa, Pb): New constraints.
762 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
763 split pattern to deal with them.
765 2009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
767 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
768 fix index entry for -Xpreprocessor.
770 2009-06-12 Aldy Hernandez <aldyh@redhat.com>
772 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
773 Add location argument to build_decl call.
774 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
775 (rs6000_init_builtins): Same.
776 (spe_init_builtins): Same.
777 (rs6000_gimplify_va_arg): Add location argument to
778 create_artificial_label call.
780 2009-06-12 Steven Bosscher <steven@gcc.gnu.org>
782 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
783 * combine-stack-adj.c (pass_stack_adjustments): Use it.
784 * Makefile.in: Fix GGC dependency for gcse.o.
786 2009-06-12 Aldy Hernandez <aldyh@redhat.com>
788 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
789 * gimple-pretty-print.c (dump_gimple_stmt): Same.
790 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
792 * c-parser.c (c_parser_binary_expression): Use current column while
793 building binary operations.
794 * common.opt (fshow-column): Enable by default.
795 * tree-vrp.c (check_array_ref): Use warning_at.
796 (check_array_bounds): Use location from call back if expr has no
798 * tree.h: Add location argument to maybe_fold_*.
799 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
800 (maybe_fold_offset_to_array_ref): Add location argument and use it.
801 (maybe_fold_offset_to_component_ref): Same.
802 (maybe_fold_offset_to_reference): Same.
803 (maybe_fold_offset_to_address): Same.
804 (maybe_fold_stmt_indirect): Same.
805 (maybe_fold_stmt_addition): Same.
806 (fold_stmt_r): Pass location to maybe_fold_*.
807 (fold_gimple_assign): Same.
808 * c-tree.h: Add location argument to finish_decl,
809 default_function_array_conversion, store_init_value.
810 * c-decl.c (define_label): Use error_at.
811 (c_make_fname_decl): Pass location to finish_decl.
812 (finish_decl): New location argument.
813 (build_compound_literal): Pass location to store_init_value.
814 (grokdeclarator): Pass location to finish_decl.
816 * c-typeck.c (array_to_pointer_conversion): New location argument.
817 (function_to_pointer_conversion): Same.
818 (default_function_array_conversion): Same.
819 (parser_build_unary_op): Pass location to overflow_warning.
820 (parser_build_binary_op): Same. Use warning_at.
821 (build_unary_op): Pass location to array_to_pointer_conversion.
822 (build_c_cast): Pass location to digest_init.
823 (build_modify_expr): New location argument.
824 (convert_for_assignment): Same.
825 (store_init_value): Same.
827 (output_init_element): Pass location to digest_init and
828 array_to_pointer_conversion.
829 (c_finish_return): Pass location to convert_for_assignment.
830 * gimplify.c (gimplify_conversion): Pass location to
831 maybe_fold_offset_to_address.
832 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
833 to maybe_fold_stmt_addition.
834 * c-omp.c (c_finish_omp_atomic): Pass new location to
836 (c_finish_omp_for): Same.
837 * c-common.c (overflow_warning): New argument.
838 * c-common.h: New argument to build_modify_expr, overflow_warning.
839 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
841 (c_parser_initializer): Pass location to
842 default_function_array_conversion.
843 (c_parser_initelt): Same.
844 (c_parser_initval): Same.
845 (c_parser_asm_operands): Same.
846 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
847 (c_parser_conditional_expression): Same.
848 (c_parser_binary_expression): Add location info to stack. Use it.
849 (c_parser_unary_expression): Pass location to
850 default_function_array_conversion, parser_build_unary_op,
851 build_indirect_ref, c_parser_postfix_expression_after_primary.
852 (c_parser_postfix_expression_after_primary): New location argument.
854 (c_parser_expression_conv): Pass location to
855 default_function_array_conversion.
856 (c_parser_expr_list): Same.
857 (c_parser_omp_atomic): Same.
858 (c_parser_omp_for_loop): Same.
859 * c-tree.h: (struct c_declarator): Add comment to id_loc.
860 (build_array_declarator): New argument.
861 * c-decl.c (build_array_declarator): Add location argument.
862 (grokdeclarator): Set id_loc for cdk_array.
863 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
864 build_array_declarator.
865 * tree.c (build_omp_clause): Add location argument.
866 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
867 (OMP_CLAUSE_LOCATION): New macro.
868 (struct tree_omp_clause): Add location field.
869 (build_omp_clause): Add argument.
870 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
871 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
873 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
874 (cp_parser_omp_clause_collapse): Same.
875 (cp_parser_omp_clause_default): Same.
876 (cp_parser_omp_clause_if): Same.
877 (cp_parser_omp_clause_nowait): Same.
878 (cp_parser_omp_clause_num_threads): Same.
879 (cp_parser_omp_clause_ordered): Same.
880 (cp_parser_omp_clause_schedule): Same.
881 (cp_parser_omp_clause_untied): Same.
882 (cp_parser_omp_for_loop): Same.
883 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
884 * c-tree.h (c_start_case): Add location argument.
885 (c_process_expr_stmt): Same.
886 (c_finish_goto_*): Same.
887 * tree-parloops.c (initialize_reductions): Pass location to
889 (create_parallel_loop): Same.
890 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
891 (gfc_trans_omp_reduction_list): Same.
892 (gfc_trans_omp_clauses): Same.
893 (gfc_trans_omp_do): Same.
894 * c-typeck.c (c_finish_goto_label): Same.
895 (c_finish_goto_ptr): New location argument.
896 (c_start_case): Same.
897 (emit_side_effect_warnings): Same.
898 (c_process_expr_stmt): Same.
899 (c_finish_stmt_expr): Same.
900 (c_finish_omp_clauses): Use error_at instead of error.
901 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
903 * c-omp.c (c_split_parallel_clauses): New location argument.
904 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
906 (convert_local_reference_stmt): Same.
907 (convert_gimple_call): Same.
908 * c-common.h (c_split_parallel_clauses): New argument.
909 * c-parser.c (c_parser_statement_after_labels): Pass location to
911 (c_parser_switch_statement): Pass location to c_start_case.
912 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
913 and c_process_expr_stmt.
914 (c_parser_omp_variable_list): Add location argument.
915 (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
916 (c_parser_omp_clause_default): Same.
917 (c_parser_omp_clause_if): Same.
918 (c_parser_omp_clause_num_threads): Same.
919 (-c_parser_omp_clause_ordered): Same.
920 (c_parser_omp_clause_reduction): Pass location to
921 c_parser_omp_variable_list.
922 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
923 (c_parser_omp_clause_untied): Same.
924 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
925 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
927 * c-tree.h (check_for_loop_decls, undeclared_variable,
928 build_component_ref, build_array_ref, build_external_ref,
929 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
930 build_conditional_expr, build_compound_expr, c_cast_expr,
931 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
932 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
934 * c-semantics.c (build_stmt): Same.
935 (build_case_label): Same.
936 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
937 (undeclared_variable): New argument.
939 (lookup_label): Pass location on down.
940 (define_label): Same.
942 (build_compound_literal): Same.
943 (finish_struct): Same.
944 (finish_function): Do not set location here.
945 (check_for_loop_decls): New argument.
946 * tree.c (save_expr): Set location.
947 (build_empty_stmt): New argument.
948 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
949 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
950 * builtins.c (gimplify_va_arg_expr): Use locations.
951 (expand_builtin_sync_operation): Same.
952 * c-typeck.c (build_component_ref): New argument.
953 (build_array_ref): Same.
954 (build_external_ref): Same.
955 (c_expr_sizeof_expr): Same.
956 (c_expr_sizeof_type): Same.
957 (parser_build_unary_op): Same.
958 (build_conditional_expr): Same.
959 (build_compound_expr): Pass location on down.
960 (build_compound_expr): New argument.
961 (build_c_cast): Same.
963 (build_asm_expr): Same.
964 (c_finish_return): Same.
965 (c_process_expr_stmt): Pass location on down.
966 (c_finish_stmt_expr): New argument.
967 (push_clenaup): Same.
968 (c_finish_omp_parallel): Same.
969 (c_finish_omp_task): Same.
970 * gimplify.c (gimplify_call_expr): Pass location on down.
971 * c-omp.c (c_finish_omp_master): New argument.
972 (c_finish_omp_critical): Same.
973 (c_finish_omp_ordered): Same.
974 (c_finish_omp_barrier): Same.
975 (-c_finish_omp_taskwait): Same.
976 (c_finish_omp_atomic): Same.
977 (c_finish_omp_flush): Same.
978 * tree-inline.c (copy_tree_body_r): Pass location on down.
979 (inline_forbidden_p): Remove use of input_location.
980 * c-gimplify.c (c_build_bind_expr): New argument.
981 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
982 (c_sizeof_or_alignof_type): New argument.
983 (c_alignof_expr): Same.
984 (build_va_arg): Same.
985 (c_add_case_label): Same.
986 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
987 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
988 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
989 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
990 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
991 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
993 * stub-objc.c (objc_build_selector_expr): Same.
994 (objc_build_throw_stmt): Same.
995 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
996 (c_parser_initelt): Same.
997 (c_parser_compound_statement): Same.
998 (c_parser_compound_statement_nostart): Same.
999 (c_parser_label): Same.
1000 (c_parser_statement_after_labels): Same.
1001 (c_parser_if_body): Same.
1002 (c_parser_else_body): Same.
1003 (c_parser_if_statement): Same.
1004 (c_parser_switch_statement): Same.
1005 (c_parser_while_statement): Same.
1006 (c_parser_do_statement): Same.
1007 (c_parser_for_statement): Same.
1008 (c_parser_asm_statement): Same.
1009 (c_parser_conditional_expression): Same.
1010 (c_parser_binary_expression): Same.
1011 (c_parser_cast_expression): Same.
1012 (c_parser_unary_expression): Same.
1013 (c_parser_sizeof_expression): Same.
1014 (c_parser_alignof_expression): Same.
1015 (c_parser_postfix_expression): Same.
1016 (c_parser_expression): Same.
1017 (c_parser_objc_receiver): Same.
1018 (c_parser_omp_variable_list): Same.
1019 (c_parser_omp_structured_block): Same.
1020 (c_parser_omp_atomic): New argument.
1021 (c_parser_omp_barrier): Same.
1022 (c_parser_omp_critical): Same.
1023 (c_parser_omp_flush): Pass location on down.
1024 (c_parser_omp_for_loop): New argument.
1025 (c_parser_omp_for): Same.
1026 (c_parser_omp_master): Same.
1027 (c_parser_omp_ordered): Same.
1028 (c_parser_omp_sections_scope): Same.
1029 (c_parser_omp_sections): Same.
1030 (c_parser_omp_parallel): Same.
1031 (c_parser_omp_single): Same.
1032 (c_parser_omp_task): Same.
1033 (c_parser_omp_taskwait): Pass location on down.
1034 (c_parser_omp_construct): Same.
1035 (c_parser_omp_threadprivate): Same.
1036 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
1037 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
1038 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
1039 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
1040 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
1041 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
1042 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
1043 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
1044 config/i386/i386.c, stmt.c:
1045 Add location argument to the following function definitions and/or
1046 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
1047 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
1048 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
1049 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
1050 do_case, c_finish_bc_stmt, build_compound_literal,
1051 build_function_call.
1052 * c-decl.c (build_compound_literal): Add location argument.
1053 Make all diagnostic calls use location.
1054 (start_struct): Same.
1055 (finish_struct): Same.
1057 (build_enumerator): Same.
1058 (start_function): Same.
1059 (grokdeclarator): Make all diagnostic calls use location.
1060 (store_parm_decls_oldstyle): Same.
1061 * c-typeck.c (build_function_call): Add location argument.
1062 Make all diagnostic calls use location.
1064 (c_finish_bc_stmt): Same.
1065 * tree-nested.c (get_trampoline_type): Add argument.
1066 Pass location to build_decl.
1067 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
1068 * rtl.h (RTL_LOCATION): New.
1069 * c-common.c (c_add_case_label): Add location argument.
1070 Make all diagnostic calls use location.
1071 * c-common.h: Add location argument to make_fname_decl, do_case,
1072 c_add_case_label, build_function_call, resolve_overloaded_builtin.
1073 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
1074 Set it appropriately for every case. Pass enum_loc to start_enum
1075 call. Pass value_loc first to build_enumerator. Pass enum_loc to
1077 (c_parser_struct_or_union_specifier): Save location. Use it for
1078 start_struct, finish_struct, and parser_xref_tag.
1080 2009-06-12 Ian Lance Taylor <iant@google.com>
1082 * fold-const.c (fold_unary): Rename local variable and to and_expr.
1084 * c-opts.c (c_common_handle_option): For -Wc++-compat set
1085 cpp_opts->warn_cxx_operator_names.
1087 2009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
1090 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
1091 is returns NULL and OP is a VCE, look through the VCE.
1093 2009-06-12 Ian Lance Taylor <iant@google.com>
1096 * collect2.c (main): Use CONST_CAST2 in code inside #if
1097 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
1099 2009-06-12 Joey Ye <joey.ye@intel.com>
1102 * cfgexpand.c (get_decl_align_unit): Update
1103 max_used_stack_slot_alignment with align instead of
1104 stack_alignment_needed.
1106 * function.c (assign_stack_local_1): Update
1107 max_used_stack_slot_alignment with alignment_in_bits instead
1108 of stack_alignment_needed.
1109 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
1112 2009-06-12 Jakub Jelinek <jakub@redhat.com>
1114 * dwarf2out.c (last_var_location_insn): New variable.
1115 (dwarf2out_end_epilogue): Clear last_var_location_insn.
1116 (dwarf2out_var_location): Don't record anything after last real
1117 insn. Only change labels if there were any real instructions
1118 in between last note and this one, or if changed sections.
1120 2009-06-11 Richard Henderson <rth@redhat.com>
1122 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
1123 note when storing the frame pointer in a register.
1124 (FRP): Don't redefine to nothing for epilogue.
1125 (alpha_expand_epilogue): Mark register and sp restores.
1126 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
1128 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
1129 when gen_lowpart is needed.
1131 2009-06-11 Richard Henderson <rth@redhat.com>
1133 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
1135 * dwarf2out.c (need_data_align_sf_opcode): New.
1136 (div_data_align): Move earlier.
1137 (def_cfa_1, reg_save): Use it.
1139 2009-06-11 H.J. Lu <hongjiu.lu@intel.com>
1141 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
1142 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
1143 (ix86_handle_option): Handle OPT_mcrc32.
1144 (ix86_target_string): Add -mcrc32.
1145 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
1147 * config/i386/i386.h (TARGET_CRC32): New.
1149 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
1150 (sse4_2_crc32di): Likewise.
1152 * config/i386/i386.opt (mcrc32): New.
1154 * doc/invoke.texi: Document -mcrc32.
1156 2009-06-11 Richard Henderson <rth@redhat.com>
1158 * common.opt (gdwarf-): Accept a version number.
1159 * doc/invoke.texi (gdwarf-): Update docs.
1160 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
1161 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
1162 version level, and record it.
1164 * dwarf2.h (DW_CIE_VERSION): Remove.
1165 * dwarf2out.c (DWARF_VERSION): Remove.
1166 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
1167 (output_call_frame_info): Use CIE version 3 for dwarf3,
1168 or if the return register column is out of range for version 1.
1169 (dwarf_stack_op_name): Add all dwarf3 values.
1170 (DEBUG_PUBTYPES_SECTION): New.
1171 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
1172 encoding change for dwarf3.
1173 (output_die) [dw_val_class_die_ref]: Likewise.
1174 (output_compilation_unit_header): Emit correct version for dwarf3.
1175 (output_line_info): Likewise.
1176 (output_pubnames): Update for DWARF_VERSION removal.
1177 (output_aranges): Likewise.
1178 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
1179 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
1180 (dwarf2out_finish): Likewise.
1182 2009-06-11 David Daney <ddaney@caviumnetworks.com>
1184 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
1187 2009-06-11 David Daney <ddaney@caviumnetworks.com>
1190 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
1191 * builtins.c (expand_builtin_unreachable): New function.
1192 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
1193 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
1194 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
1196 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
1197 searching for missing barriers.
1199 2009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1201 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
1202 when -fprofile-generate* was passed.
1203 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
1205 2009-06-11 Anthony Green <green@moxielogic.com>
1207 * config/moxie/moxie.md: Define length attribute for all instructions.
1209 (*b<cond:code>): Support limited branch ranges for new PC-relative
1210 branch instructions.
1211 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
1213 2009-06-11 Jakub Jelinek <jakub@redhat.com>
1215 * config/i386/i386.c (min_insn_size): Use get_attr_length
1216 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
1219 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
1220 instead of emit_insn_before.
1222 2009-06-10 Ian Lance Taylor <iant@google.com>
1225 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
1228 2009-06-10 Revital Eres <eres@il.ibm.com>
1230 * passes.c (init_optimization_passes): Reschedule
1231 predictive-commoning pass before complete unroll pass.
1233 2009-06-10 Martin Jambor <mjambor@suse.cz>
1235 * cgraph.c (cgraph_node_can_be_local_p): New function.
1236 (cgraph_make_node_local): New function.
1237 * cgraph.h (cgraph_node_can_be_local_p): Declare.
1238 (cgraph_make_node_local): Declare.
1240 2009-06-10 Nathan Froyd <froydnj@codesourcery.com>
1242 * tree.h (tree_base): Add packed_flag and user_align fields.
1243 Decrease size of spare field.
1244 (TYPE_USER_ALIGN): Use user_align from tree_base.
1245 (DECL_USER_ALIGN): Likewise.
1246 (TYPE_PACKED): Use packed_flag from tree_base.
1247 (DECL_PACKED): Likewise.
1248 (tree_type): Delete packed_flag and user_align fields. Widen
1249 precision field. Widen mode field and shuffle fields to align
1250 mode on an 8-bit boundary.
1251 (tree_decl_common): Delete decl_flag_1 and user_align fields.
1252 Renumber decl_flag_* fields. Fix comments. Widen
1253 decl_common_unused field.
1254 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
1255 (DECL_EXTERNAL): Likewise.
1256 (DECL_BIT_FIELD): Likewise.
1257 (DECL_NONADDRESSABLE_P): Likewise.
1258 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
1259 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
1261 2009-06-10 Ian Lance Taylor <iant@google.com>
1263 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
1264 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
1265 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
1266 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
1267 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
1268 DEF_VEC_ALLOC_FUNC_P.
1269 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
1270 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
1271 DEF_VEC_ALLOC_FUNC_O.
1272 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
1273 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
1274 DEF_VEC_ALLOC_FUNC_I.
1275 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
1276 (vec_stack_p_reserve_exact_1): Declare.
1277 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
1278 (vec_stack_free): Declare.
1279 (VEC_stack_alloc): Define.
1280 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
1281 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
1282 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
1283 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
1285 (stack_vecs): New static variable.
1286 (vec_stack_p_reserve_exact_1): New function.
1287 (vec_stack_o_reserve_1): New static function.
1288 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
1289 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
1290 (vec_stack_free): New function.
1291 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
1292 (VEC_df_ref_stack_alloc): Define.
1293 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
1294 DEF_VEC_ALLOC_P_STACK.
1295 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
1296 (struct df_collection_rec): Change _vec fields to VEC. Remove
1298 (df_free_collection_rec): Adjust for new fields.
1299 (df_insn_rescan): Use new df_collection_rec fields.
1300 (df_notes_rescan, df_canonize_collection_rec): Likewise.
1301 (df_ref_create_structure, df_ref_record): Likewise.
1302 (df_get_conditional_uses, df_get_call_refs): Likewise.
1303 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
1304 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
1305 (df_record_exit_block_uses, df_bb_verify): Likewise.
1306 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers.
1307 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
1308 Remove count parameter. Change return type to void. Change all
1310 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
1311 Remove count parameter. Change return type to void. Change all
1313 (df_install_refs): Change old_vec parameter to VEC. Remove count
1314 parameter. Change all callers.
1315 (df_install_mws): Change old_vec parameter to VEC. Remove count
1316 parameter. Change all callers.
1317 (df_refs_verify): Change new_rec parameter to VEC. Change call
1319 (df_mws_verify): Likewise.
1321 2009-06-10 Alexandre Oliva <aoliva@redhat.com>
1323 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
1325 2009-06-10 H.J. Lu <hongjiu.lu@intel.com>
1327 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
1329 2009-06-10 Anthony Green <green@moxielogic.com>
1331 * config/moxie/crti.asm: New file.
1332 * config/moxie/crtn.asm: New file.
1333 * config/moxie/moxie.c: New file.
1334 * config/moxie/moxie.h: New file.
1335 * config/moxie/sfp-machine.h: New file.
1336 * config/moxie/moxie-protos.h: New file.
1337 * config/moxie/t-moxie: Created.
1338 * config/moxie/t-moxie-softfp: Created.
1339 * config/moxie/moxie.md: Created.
1340 * config/moxie/constraints.md: Created.
1341 * config.gcc: Add moxie support.
1342 * doc/md.texi (Machine Constraints): Add moxie constraints.
1343 * doc/contrib.texi (Contributors): Mention moxie port.
1344 * doc/install.texi (Specific): Mention the moxie port.
1346 2009-06-09 Ian Lance Taylor <iant@google.com>
1348 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
1350 * optabs.c (optab_table): Only use designated initializers if
1351 HAVE_DESIGNATED_INITIALIZERS is defined.
1352 (convert_optab_table): Likewise.
1353 (init_optabs): Always call init_insn_codes if
1354 HAVE_DESIGNATED_INITIALIZERS is not defined.
1356 2009-06-09 Ian Lance Taylor <iant@google.com>
1358 * targhooks.c (default_builtin_vectorized_function): Change fn
1359 parameter to unsigned int.
1360 (default_builtin_vectorized_conversion): Change code parameter to
1362 (default_builtin_reciprocal): Change fn parameter to unsigned int.
1363 * targhooks.h: Update declarations.
1364 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
1365 parameter to unsigned int.
1367 * c-typeck.c (comptypes_check_enum_int): New static function.
1368 (comptypes_internal): Add enum_and_int_p parameter. Change all
1370 (comp_target_types): Add location parameter. Change all callers.
1371 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
1373 (function_types_compatible_p, type_lists_compatible_p): Likewise.
1374 (build_conditional_expr): Add colon_loc parameter. Change all
1376 (convert_for_assignment): Add location parameter. Change all callers.
1377 * c-parser.c (c_parser_conditional_expression): Pass location of
1378 colon to build_conditional_expr.
1379 * c-tree.h (build_conditional_expr): Update declaration.
1381 2009-06-09 Sebastian Pop <sebastian.pop@amd.com>
1383 * graphite.c: Revert previous patch.
1385 2009-06-09 Sebastian Pop <sebastian.pop@amd.com>
1388 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
1390 2009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
1392 * tree-ssa-loop-prefetch.c
1393 (loop_prefetch_arrays): Fixed a portability problem in printf format
1396 2009-06-09 Martin Jambor <mjambor@suse.cz>
1398 PR tree-optimization/40351
1399 * tree-sra.c (propagate_subacesses_accross_link): Check that a
1400 refrence to a potential artifical subaccess can be constructed.
1402 2009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
1404 * config/sh/sh-protos.h (sh_optimization_options): Declare.
1405 (sh_override_options): Likewise.
1406 * config/sh/sh.c: Include params.h.
1407 (sh_optimization_options): New.
1408 (sh_override_options): Likewise.
1409 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
1410 (OVERRIDE_OPTIONS): Use sh_override_options.
1412 2009-06-08 Jakub Jelinek <jakub@redhat.com>
1414 * dwarf2out.c (emit_cfa_remember): New variable.
1415 (add_fde_cfi): If emit_cfa_remember, recurse to add
1416 DW_CFA_remember_state first.
1417 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
1418 instead just set emit_cfa_remember.
1420 2009-06-08 Jan Hubicka <jh@suse.cz>
1423 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
1425 2009-06-08 Jan Hubicka <jh@suse.cz>
1428 * cgraphunit.c (save_inline_function_body): Do not copy transform
1429 hooks for saved inline bodies.
1430 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
1433 2009-06-08 Adam Nemet <anemet@caviumnetworks.com>
1435 * jump.c (returnjump_p): Handle delayed branches. Add missing
1438 2009-06-08 Jan Hubicka <jh@suse.cz>
1441 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
1442 original node might've been modified.
1443 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
1445 2009-06-08 Jakub Jelinek <jakub@redhat.com>
1447 * tree-object-size.c (addr_object_size): Add OSI argument.
1448 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
1449 (compute_builtin_object_size, expr_object_size): Adjust callers.
1450 (plus_stmt_object_size): Call addr_object_size instead of
1451 compute_builtin_object_size.
1453 2009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
1454 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
1456 * tree-ssa-loop-prefetch.c
1457 (gather_memory_references): Introduced a counter for the number of
1459 (anything_to_prefetch_p): Introduced a counter for the number of
1461 (is_loop_prefetching_profitable): New function with a cost model
1463 (loop_prefetch_arrays): Use the new cost model to determine if
1464 prefetching is profitable.
1465 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
1466 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1467 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
1468 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1469 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
1470 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1472 2009-06-08 Michael Matz <matz@suse.de>
1475 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
1476 partitions use the same.
1477 (expand_one_var): Deal with DECL_RTL sometimes begin set also
1478 for basevars of SSA_NAMEs.
1479 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
1480 to not expand them twice.
1481 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
1484 2009-06-08 Alexandre Oliva <aoliva@redhat.com>
1486 * common.opt (fcompare-debug=, fcompare-debug-second): New.
1487 (fdump-final-insns=, gtoggle): New.
1488 * doc/invoke.texi: Document them.
1489 * final.c (rest_of_clean_state): Dump final insn stream.
1490 * gcc.c (invoke_as): Hook in -fcompare-debug.
1491 (static_spec_functions): Add compare-debug-dump-opt,
1492 compare-debug-self-opt and compare-debug-auxbase-opt.
1493 (compare_debug, compare_debug_second, compare_debug_opt): New.
1494 (switches_debug_check, n_switches_debug_check): New.
1495 (debug_auxbase_opt, debug_check_temp_file): New.
1496 (process_command): Handle -fno-compare-debug, -fcompare-debug and
1498 (do_self_spec): Handle arguments after switches.
1499 (do_spec_1): Add .gk extension to temp file basenames for compare.
1500 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
1501 (cc1_options): Use it instead of normal auxbase computation for
1502 the second compare-debug compilation.
1503 (compare_files): New.
1504 (main): Set up and implement compare debug mode.
1505 (compare_debug_dump_opt_spec_function): New.
1506 (compare_debug_self_opt_spec_function): New.
1507 (compare_debug_auxbase_opt_spec_function): New.
1508 * toplev.c (process_options): Handle flag_gtoggle,
1509 flag_dump_final_insns.
1510 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
1511 during -fcompare-debug-second compilation.
1513 2009-06-07 Ian Lance Taylor <iant@google.com>
1515 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
1516 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
1518 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
1519 with no default node. Change warning with %H to warning_at.
1520 Don't clear warn_switch around case checking.
1521 * doc/invoke.texi (Warning Options): Clarify distinction between
1522 -Wswitch and -Wswitch-enum.
1524 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1526 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
1528 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1530 * gbl-ctors.h: Add header guard.
1532 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1534 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
1535 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
1536 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
1537 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
1538 prototypes for removed functions.
1539 (expressions_equal_p): Move to ...
1540 * tree-ssa-sccvn.h: ... here and ...
1541 * matrix-reorg.c: ... adjust includes.
1543 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1545 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
1547 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1549 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
1550 (finish_function): Remove erroneous whitespace.
1552 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1554 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
1555 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
1557 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1559 * errors.c (internal_error): Commentary typo fix.
1560 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
1561 * tree-ssa-pre.c: Ditto.
1563 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1565 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
1566 them is supposed to hold actual statements.
1568 2009-06-06 Ian Lance Taylor <iant@google.com>
1570 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
1571 empty statements can now have attributes.
1573 2009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
1575 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
1576 * config/mips/mips.md: Ditto.
1578 2009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1580 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
1582 (__eabi_uconvert): Likewise.
1584 2009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1586 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
1587 CFI_* definitions with IN_GCC.
1589 2009-06-05 David Edelsohn <edelsohn@gnu.org>
1591 * xcoffout.h (xcoffout_source_line): Update prototype.
1593 2009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1595 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
1596 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
1598 2009-06-05 Jakub Jelinek <jakub@redhat.com>
1601 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
1602 inlined_function_outer_scope_p blocks for artificial inlines
1604 * tree.c (tree_nonartificial_location): Rewrite using
1605 block_nonartificial_location.
1607 2009-06-05 Revital Eres <eres@il.ibm.com>
1608 Leehod Baruch <leehod@il.ibm.com>
1610 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
1611 (expand_expr_real_1): Remove comment.
1612 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1613 Vectorize misaligned access when the target supports it.
1614 (vect_supportable_dr_alignment): Check for unaligned access support.
1615 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
1618 2009-06-05 Julian Brown <julian@codesourcery.com>
1620 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
1621 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
1623 2009-06-05 Richard Guenther <rguenther@suse.de>
1626 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
1629 2009-06-05 Jakub Jelinek <jakub@redhat.com>
1631 * config/s390/s390.c (global_not_special_regno_p): New static inline.
1632 (save_gprs): Don't tell unwinder when a global register is saved.
1633 (s390_emit_epilogue): Emit needed epilogue unwind info.
1635 2009-06-05 Alexandre Oliva <aoliva@redhat.com>
1637 * dwarf2out.c (deferred_asm_name): New.
1638 (add_name_and_src_coords_attributes): Defer creation of
1639 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
1641 (move_linkage_attr): New.
1642 (dwarf2out_finish): Revisit deferrals and emit attributes at the
1645 2009-06-05 Alexandre Oliva <aoliva@redhat.com>
1647 * tree-nested.c (finalize_nesting_tree_1): Declare the
1648 frame_decl in the binding tree.
1650 2009-06-04 Cary Coutant <ccoutant@google.com>
1652 * basic-block.h (struct basic_block_def): Add discriminator field.
1653 * dbxout.c (dbxout_source_line): Add new parameter. Change all
1655 * debug.c (do_nothing_debug_hooks): Add additional entry.
1656 (debug_nothing_int_charstar_int): New function.
1657 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
1658 (debug_nothing_int_charstar_int): New declaration.
1659 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
1660 discriminator value in .loc directive.
1661 * final.c (last_discriminator): New variable.
1662 (discriminator): New variable.
1663 (final_start_function): Initialize above variables, pass current
1664 discriminator to debug hook.
1665 (notice_source_line): Check for discriminator change.
1666 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
1667 * sdbout.c (sdbout_source_line): New parameter.
1668 * tree-cfg.c (struct locus_discrim_map): New structure type.
1669 (discriminator_per_locus): New hash table.
1670 (build_gimple_cfg): Allocate and free discriminator hash table.
1671 (make_edges): Call assign_discriminator.
1672 (locus_map_hash): New function.
1673 (locus_map_eq): New function.
1674 (next_discriminator_for_locus): New function.
1675 (same_line_p): New function.
1676 (assign_discriminator): New function.
1677 (make_cond_expr_edges): Call assign_discriminator.
1678 (make_gimple_switch_edges): Likewise.
1679 (first_non_label_stmt): New function.
1680 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
1682 * xcoffout.c (xcoffout_source_line): Add new parameter.
1684 * configure.ac (gcc_cv_as_discriminator): New configury check for
1685 gas support for discriminator.
1686 * configure: Regenerate.
1687 * config.in: Regenerate.
1689 2009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1691 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
1692 val after checking for integers.
1694 2009-06-04 Uros Bizjak <ubizjak@gmail.com>
1696 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
1698 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
1699 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
1700 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
1701 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
1702 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
1703 X64_SSE_REGPARM_MAX.
1704 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
1705 X64_SSE_REGPARM_MAX.
1707 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
1709 * gcc.c (report_times_to_file): New.
1710 (execute): Implement it.
1711 (process_command): Support -time=.
1712 * doc/invoke.texi: Document it.
1714 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
1716 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
1717 that have value exprs.
1719 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
1721 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
1722 declarations for constants until...
1723 (dw2_output_indirect_constant_1): ... this point.
1725 2009-06-04 Richard Earnshaw <rearnsha@arm.com>
1728 * arm.md (arm_addsi3): Don't try to split an add with an
1729 eliminable register until after reload has completed.
1731 2009-06-03 Ian Lance Taylor <iant@google.com>
1733 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
1734 * genattrtab.c (write_length_unit_log): Likewise.
1735 * genchecksum.c (dosum): Likewise.
1736 * gengtype.c (write_rtx_next): Likewise.
1737 (finish_root_table, write_roots): Likewise.
1738 * gimple.c (gimple_ops_offset_): Likewise.
1739 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
1740 * config/arc/arc.c (arc_attribute_table): Likewise.
1741 * config/arm/arm.c (arm_attribute_table): Likewise.
1742 * config/avr/avr.c (avr_attribute_table): Likewise.
1743 * config/crx/crx.c (crx_attribute_table): Likewise.
1744 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
1745 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
1746 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
1747 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
1748 * config/sh/sh.c (sh_attribute_table): Likewise.
1749 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
1750 * config/spu/spu.c (spu_attribute_table): Likewise.
1751 * config/v850/v850.c (v850_attribute_table): Likewise.
1753 * config/alpha/alpha.c (vms_attribute_table): Make static.
1754 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
1755 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
1756 * config/mips/mips.c (mips_attribute_table): Likewise.
1758 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
1760 (cc1-checksum.o): Likewise.
1762 2009-06-03 Steve Ellcey <sje@cup.hp.com>
1764 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
1766 2009-06-03 Jakub Jelinek <jakub@redhat.com>
1768 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
1769 insn if it is changing sp. Use gen_add3_insn instead of
1770 conditionally gen_addsi3 and gen_adddi3.
1771 (offset_below_red_zone_p): New static inline function.
1772 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
1773 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
1774 * config/rs6000/ppc-asm.h: Include auto-host.h.
1775 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
1776 CFI_RESTORE): Define.
1777 * config/rs6000/crtresxgpr.asm: Add unwind info.
1778 * config/rs6000/crtresxfpr.asm: Likewise.
1779 * config/rs6000/crtresgpr.asm: Likewise.
1780 * config/rs6000/crtresfpr.asm: Likewise.
1781 * config/rs6000/crtsavgpr.asm: Likewise.
1782 * config/rs6000/crtsavfpr.asm: Likewise.
1784 * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
1785 argument of DWARF2_FRAME_REG_OUT macros.
1787 2009-06-03 Julian Brown <julian@codesourcery.com>
1789 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
1790 words or less (including TImode) in core registers.
1792 2009-06-03 Richard Guenther <rguenther@suse.de>
1795 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
1797 2009-06-03 Andrey Belevantsev <abel@ispras.ru>
1799 * statistics.c (statistics_counter_event): Do not record event
1800 in pass dump if its number == -1.
1801 (curr_statistics_hash): Add assert that we never get passes
1802 with static number == -1.
1804 2009-06-03 Richard Guenther <rguenther@suse.de>
1805 Andrey Belevantsev <abel@ispras.ru>
1807 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
1808 non-BLKmode arrays addressable.
1810 2009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
1812 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
1813 * config/m68k/m68k.h: ... here.
1814 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
1817 2009-06-03 Martin Jambor <mjambor@suse.cz>
1819 PR tree-optimization/40323
1820 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
1823 2009-06-03 Richard Guenther <rguenther@suse.de>
1825 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1828 2009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
1830 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
1831 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
1832 JUMP_TABLE_DATA_P where applicable.
1833 * config/sh/sh.c: Ditto.
1834 * config/sh/sh.h: Ditto.
1835 * config/sh/sh.md: Ditto.
1836 * config/sh/symbian.c: Ditto.
1838 2009-06-03 Uros Bizjak <ubizjak@gmail.com>
1840 * config/i386/driver-i386.c (describe_cache): Optimize
1841 concatenation of strings. Use snprintf instead of sprintf.
1842 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
1843 target when not compiling with GCC.
1845 2009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
1847 * config/sh/sh.c: Revert last change.
1848 (sh_expand_epilogue): Emit a blockage insn before the frame
1849 pointer adjustment unconditionally.
1851 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1853 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
1854 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
1855 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
1856 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
1857 to COLLECT_GCC_OPTIONS.
1859 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1861 * collect2.c (target_system_root): New variable.
1862 (main): Handle --sysroot=.
1863 (ignore_library): Strip the sysroot from the library path.
1865 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1867 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
1868 (collect2.o): Depend on collect2-aix.h.
1869 (collect2-aix.o): New rule.
1870 * collect2-aix.h: New file.
1871 * collect2-aix.c: Likewise.
1872 * collect2.c: Include collect2-aix.h. Don't undefine
1873 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
1874 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
1875 Use TARGET_AIX_VERSION instead of _AIX51.
1876 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
1877 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
1878 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
1879 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
1880 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
1882 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1884 * collect2.c (ignore_library): Avoid premature post-increment
1887 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1889 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
1890 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
1891 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
1892 CROSS_DIRECTORY_STRUCTURE too.
1893 (LINK_LIBG_SPEC): Likewise.
1894 (LIB_SPEC): Add %R to sysroot paths.
1895 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
1896 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
1897 * config/rs6000/aix51.h: As for aix43.h.
1898 * config/rs6000/aix52.h: Likewise.
1899 * config/rs6000/aix53.h: Likewise.
1900 * config/rs6000/aix61.h: Likewise.
1901 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
1902 to the beginning of sysroot paths.
1904 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
1906 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
1907 INSN_LISTs that are out of the REG_NOTE range.
1909 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
1911 * loop-unroll.c (struct iv_to_split): Add pointer to next.
1912 (struct var_to_expand): Likewise.
1913 (struct opt_info): Add head and tail for linked lists of the above.
1914 (analyze_insn_to_expand_var): Initialize next.
1915 (analyze_iv_to_split_insn): Likewise.
1916 (analyze_insns_in_loop): Create linked lists.
1917 (allocate_basic_variable): Simplify for use without hash table.
1918 (insert_var_expansion_initialization): Likewise, make it type-safer.
1919 (combine_var_copies_in_loop_exit): Likewise.
1920 (apply_opt_in_copies): Walk lists rather than hash tables.
1921 (release_var_copies): Simplified and inlined by hand into...
1922 (free_opt_info): ... this function.
1924 2009-06-02 Richard Guenther <rguenther@suse.de>
1926 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1929 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
1931 * cfgexpand.c (gimple_expand_cfg): Discard the source location
1932 only for builtins that are not overridden.
1934 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
1936 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
1939 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
1941 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
1943 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
1945 * combine.c (move_deaths): Compare LUIDs within the same BB only.
1947 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
1949 * common.opt (fdump-unnumbered-links): New.
1950 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
1951 * print-rtl.c (flag_dump_unnumbered_links): New.
1952 (print_rtx): Test it.
1954 2009-06-02 Richard Earnshaw <rearnsha@arm.com>
1956 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
1957 push/pop multiple to 8-byte alignment.
1959 2009-06-01 Jakub Jelinek <jakub@redhat.com>
1961 * config/i386/i386.c (queued_cfa_restores): New static variable.
1962 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
1964 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
1965 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
1966 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
1967 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
1968 note unconditionally.
1969 (ix86_emit_restore_regs_using_mov): Likewise.
1970 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1971 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
1972 it through to ix86_emit_restore_reg_using_pop.
1973 (ix86_emit_leave): Add RED_OFFSET argument. Call
1974 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
1975 instead of adding REG_CFA_OFFSET note unconditionally.
1976 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
1977 the above functions. Call ix86_add_queued_cfa_restore_notes when
1980 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
1981 force output of the label even for dwarf2out_do_cfi_asm.
1982 (add_fde_cfi): If -g2 and above and cfi might change CFA,
1983 force creation of CFI label and chain DW_CFA_set_loc jumping to it
1984 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
1986 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
1987 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
1988 dwarf2out_cfi_label callers.
1989 * tree.h (dwarf2out_cfi_label): Adjust prototype.
1990 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
1991 Adjust dwarf2out_cfi_label callers.
1992 * config/vax/vax.c (vax_output_function_prologue): Likewise.
1994 * config/i386/i386.h (struct machine_cfa_state,
1995 struct machine_function): Guard with ifndef USED_FOR_TARGET
1996 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
1999 * emutls.c (__emutls_get_address): Change arr->size to mean number
2000 of allocated arr->data entries instead of # of slots + 1.
2003 * recog.c (peep2_reinit_state): New function.
2004 (peephole2_init_state): Use it at the end of a basic block and also
2005 when seeing a RTX_FRAME_RELATED_P insn.
2007 2009-06-01 Steve Ellcey <sje@cup.hp.com>
2009 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
2010 fixuns_truncrfdi2): New.
2011 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
2012 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
2013 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
2014 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
2015 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
2016 *recip_approx): Remove.
2017 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
2018 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
2019 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
2021 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
2024 2009-06-01 Ian Lance Taylor <iant@google.com>
2026 * attribs.c (register_attribute): Use CONST_CAST.
2027 * collect2.c (main): Use CONST_CAST2.
2028 (scan_prog_file): Likewise.
2029 * gcc.c (process_command, main): Likewise.
2030 * toplev.c (toplev_main): Likewise.
2032 * c-typeck.c (handle_warn_cast_qual): New static function,
2033 partially broken out of build_c_cast.
2034 (build_c_cast): Call handle_warn_cast_qual.
2035 * doc/invoke.texi (Warning Options): Document new effect of
2038 2009-06-01 Aldy Hernandez <aldyh@redhat.com>
2040 * diagnostic.c (diagnostic_build_prefix): Always print columns.
2041 (diagnostic_report_current_module): Print columns.
2042 * common.opt (flag_show_column): Enable by default.
2044 2009-06-01 Luis Machado <luisgpm@br.ibm.com>
2046 * alias.c (find_base_term): Check for NULL term before returning.
2048 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2050 Revert due to PR40320:
2051 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2052 * calls.c (emit_library_call_value_1): Don't force_operand for move
2055 2009-06-01 Olivier Hainque <hainque@adacore.com>
2056 Eric Botcazou <ebotcazou@adacore.com>
2058 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
2059 to be processed as a bitfield for constructor output purposes.
2060 * output.h (initializer_constant_valid_for_bitfield_p): Declare
2062 * varasm.c (oc_local_state): New type, output_constructor
2063 local state to support communication with helpers.
2064 (oc_outer_state): New type, output_constructor outer state of
2065 relevance in recursive calls.
2066 (output_constructor_array_range): New output_constructor helper,
2067 extracted code for an array range element.
2068 (output_constructor_regular_field): New output_constructor helper,
2069 extracted code for an element that is not a bitfield.
2070 (output_constructor_bitfield): New output_constructor helper,
2071 extracted code for a bitfield element. Accept an OUTER state
2072 argument for recursive processing. Recurse on record or array
2073 CONSTRUCTOR values, possibly past noop conversions.
2074 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
2075 VALUE is a valid constant-valued expression for use in a static
2076 bit-field initializer.
2077 (output_constructor): Rework to use helpers. Accept and honor an
2078 OUTER state argument for recursive calls. Return total size. Be
2079 prepared for nested constructors initializing bitfields.
2080 (output_constant): Feed OUTER in calls to output_constructor.
2082 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
2084 * calls.c (emit_library_call_value_1): Don't force_operand for move
2087 2009-06-01 Nick Clifton <nickc@redhat.com>
2089 * doc/invoke.texi (IA-64 Options): Fix typo.
2091 2009-06-01 Ira Rosen <irar@il.ibm.com>
2093 PR tree-optimization/39129
2094 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
2096 (vect_do_peeling_for_loop_bound): Use
2097 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2098 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2099 (vect_loop_versioning): Likewise.
2100 (vect_create_cond_for_alias_checks): Fix indentation.
2101 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
2103 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
2104 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
2105 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
2106 "control flow in loop".
2107 (vect_estimate_min_profitable_iters): Use
2108 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2109 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2110 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
2111 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
2112 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
2113 statement belongs to a group of strided accesses with the exact code
2115 (vectorizable_load): Likewise.
2116 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
2117 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2119 2009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
2121 * config/freebsd-stdint.h: New file.
2122 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
2123 Add freebsd-stdint.h to tm_file.
2125 2009-06-01 Richard Earnshaw <rearnsha@arm.com>
2127 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
2128 (thumb2_extendhidi2): Likewise.
2130 2009-05-31 Ian Lance Taylor <iant@google.com>
2132 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
2134 2009-05-31 Ian Lance Taylor <iant@google.com>
2136 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
2137 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
2138 (ipa-reference.o): Depend upon gt-ipa-reference.h.
2140 2009-05-31 Jason Merrill <jason@redhat.com>
2142 * tree-pretty-print.c (print_call_name): Take the callee, not the
2143 call itself. Make non-static. Use dump_function_name for functions.
2144 (dump_generic_node): Adjust.
2145 * diagnostic.h: Declare print_call_name.
2146 * gimple-pretty-print.c (dump_gimple_call): Use it.
2148 2009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
2150 * config/sh/sh.md (ashldi3_std): New define_expand.
2153 2009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
2156 * config/sh/sh.c: Include debug.h.
2157 (sh_expand_epilogue): Emit a blockage insn before the frame
2158 pointer adjustment also when dwarf2out_do_frame returns true.
2160 2009-05-31 Richard Earnshaw <rearnsha@arm.com>
2162 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
2163 (thumb2_extendqidi2): New pattern.
2165 2009-05-31 Ira Rosen <irar@il.ibm.com>
2167 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
2168 mark phis for renaming.
2169 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
2170 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
2171 Call mark_sym_for_renaming.
2172 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
2173 * tree-vect-loop.c (vect_transform_loop): Remove
2174 vect_memsyms_to_rename initialization and a call to
2175 mark_set_for_renaming.
2177 2009-05-31 Jakub Jelinek <jakub@redhat.com>
2180 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
2181 frame related even if !set_cfa && style < 0.
2183 2009-05-30 Kai Tietz <kai.tietz@onevision.com>
2185 * config/i386/mingw-tls.c: New file.
2186 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
2187 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
2188 defining _WIN32 but not __CYGWIN__.
2190 2009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2192 * configure.ac: Add MPC support.
2194 * config.in, configure: Regenerate.
2196 2009-05-29 Richard Henderson <rth@redhat.com>
2198 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
2199 NOTE_INSN_BASIC_BLOCK.
2200 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
2201 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
2202 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
2204 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
2206 (add_cfi): Disable check redefining cfa away from drap.
2207 (lookup_cfa_1): Add remember argument; handle remember/restore.
2208 (lookup_cfa): Pass remember argument.
2209 (cfa_remember): New.
2210 (compute_barrier_args_size_1): Remove sibcall check.
2211 (dwarf2out_frame_debug_def_cfa): New.
2212 (dwarf2out_frame_debug_adjust_cfa): New.
2213 (dwarf2out_frame_debug_cfa_offset): New.
2214 (dwarf2out_frame_debug_cfa_register): New.
2215 (dwarf2out_frame_debug_cfa_restore): New.
2216 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
2217 (dwarf2out_begin_epilogue): New.
2218 (dwarf2out_frame_debug_restore_state): New.
2219 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
2220 DW_CFA_restore_state.
2221 (output_cfi_directive): Likewise.
2222 (convert_cfa_to_fb_loc_list): Likewise.
2223 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
2224 * dwarf2out.h: Update.
2225 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
2226 (copy_insn_1): Early out for null.
2227 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
2228 and dwarf2out_frame_debug_restore_state.
2229 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
2230 (prologue_insn_hash, epilogue_insn_hash): New.
2231 (free_after_compilation): Adjust freeing accordingly.
2232 (record_insns): Create hash table if needed; push insns into
2233 hash instead of array.
2234 (maybe_copy_epilogue_insn): New.
2235 (contains): Search hash table instead of array.
2236 (sibcall_epilogue_contains): Remove.
2237 (thread_prologue_and_epilogue_insns): Split eh_return insns
2238 and mark them as epilogues.
2239 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
2240 scanning in terms of basic blocks.
2241 * insn-notes.def (CFA_RESTORE_STATE): New.
2242 * jump.c (returnjump_p_1): Accept EH_RETURN.
2243 (eh_returnjump_p_1, eh_returnjump_p): New.
2244 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
2245 CFA_REGISTER, CFA_RESTORE): New.
2246 * rtl.def (EH_RETURN): New.
2247 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
2249 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
2250 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
2252 * config/i386/i386.c (gen_push): Update cfa state.
2253 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
2254 add a CFA_ADJUST_CFA note.
2255 (ix86_dwarf_handle_frame_unspec): Remove.
2256 (ix86_expand_prologue): Update cfa state.
2257 (ix86_emit_restore_reg_using_pop): New.
2258 (ix86_emit_restore_regs_using_pop): New.
2259 (ix86_emit_leave): New.
2260 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
2261 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
2262 * config/i386/i386.h (struct machine_cfa_state): New.
2263 (ix86_cfa_state): New.
2264 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
2265 (eh_return_internal): Merge from eh_return_<mode>,
2266 use eh_return rtx, split w/ epilogue.
2268 2009-05-29 Ian Lance Taylor <iant@google.com>
2270 * builtins.c (validate_gimple_arglist): Don't use va_arg with
2272 * calls.c (emit_library_call_value_1): Likewise.
2274 * c-typeck.c (c_build_va_arg): New function.
2275 * c-tree.h (c_build_va_arg): Declare.
2276 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
2277 instead of build_va_arg.
2279 2009-05-29 Eric Botcazou <ebotcazou@adacore.com>
2281 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
2282 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
2283 (ptr_difference_cost): Use affine combinations to compute it.
2284 (difference_cost): Likewise.
2285 (get_computation_cost_at): Compute more accurate cost for addresses
2286 if the ratio is a multiplier allowed in addresses.
2287 For non-addresses, consider that an additional offset or symbol is
2290 2009-05-29 Jakub Jelinek <jakub@redhat.com>
2292 * config/i386/i386.c (ix86_decompose_address): Avoid useless
2293 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
2295 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
2296 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
2297 (prefix_rex): For UNIT_MMX don't imply the prefix by default
2299 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
2300 to 1 for TYPE_SSE{IADD1,CVT1}.
2301 (prefix_vex_imm8): Removed.
2302 (length_vex): Only pass 1 as second argument to
2303 ix86_attr_length_vex_default if prefix_extra is 0.
2304 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
2305 (length): For prefix vex computation use length_immediate
2306 attribute instead of prefix_vex_imm8.
2307 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
2308 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
2309 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
2310 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
2311 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
2312 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
2313 a space in between the operands.
2314 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
2315 if one operand is 0xff and the other one si, di, bp or sp.
2316 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
2317 other one si, di, bp or sp.
2318 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
2319 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
2320 type and mode attributes.
2321 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
2322 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
2323 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
2324 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
2325 prefix_data16 attribute iff MODE_DF.
2326 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
2327 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
2328 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
2329 constm128_operand in length_immediate computation.
2330 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
2331 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
2332 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
2333 length_immediate attribute to 1.
2334 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
2335 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
2336 for certain alternatives.
2337 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
2338 prefix_data16 attribute if MODE_V1DF.
2339 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
2340 length_immediate to 1.
2341 (set_got_rex64, set_rip_rex64): Remove length attribute, set
2342 length_address to 4, set mode attribute to MODE_DI.
2343 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
2344 (fxam<mode>2_i387): Set length attribute to 4.
2345 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
2346 *prefetch_3dnow_rex): Override length_address attribute.
2347 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
2349 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
2350 (constm128_operand): Removed.
2351 * config/i386/i386.c (memory_address_length): For
2352 disp && !index && !base in 64-bit mode account for SIB byte if
2353 print_operand_address can't optimize disp32 into disp32(%rip)
2354 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
2355 for fs: or gs: segment.
2356 (ix86_attr_length_immediate_default): When checking if shortform
2357 is possible, truncate immediate to the length of the non-shortened
2359 (ix86_attr_length_address_default): Ignore MEM_P operands
2361 (ix86_attr_length_vex_default): Only check for DImode on
2362 GENERAL_REG_P operands.
2363 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
2364 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
2365 (sse_cvttps2pi): Clear prefix_rep attribute.
2366 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
2368 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
2369 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
2370 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
2371 iff operand 2 is const_int_operand.
2372 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
2373 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
2374 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
2376 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
2378 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
2379 prefix_data16 attribute for movlpd and movhpd instructions.
2380 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
2381 length_immediate for shufpd instruction.
2382 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
2383 (avx_cmpp<avxmodesuffixf2c><mode>3,
2384 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
2385 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
2386 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
2387 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
2388 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
2389 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
2390 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
2391 prefix_data16 attribute for the first alternative to 1.
2392 (*avx_loadlps): Override length_immediate for the first alternative.
2393 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
2394 attributes for second alternative.
2395 (*vec_concatv2sf_sse4_1): Override length_immediate and
2396 prefix_data16 attributes for second alternative.
2397 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
2398 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
2399 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
2400 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
2401 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
2402 prefix_data16 and length_immediate to 1.
2403 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
2405 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
2406 prefix_extra attribute for variants that don't have 0f prefix alone.
2407 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
2408 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
2409 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
2410 *sse4_1_pextrd): Set length_immediate to 1.
2411 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
2412 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
2414 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
2415 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
2416 length_immediate to 1 for second alternative.
2417 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
2418 prefix_extra and length_immediate attributes for the first
2420 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
2422 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
2423 to 1 for the first and third alternative.
2424 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
2426 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
2428 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
2430 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
2431 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
2432 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
2433 *avx_psign<mode>3): Set prefix_extra attribute to 1.
2434 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
2435 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
2436 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
2437 ssse3_psign<mode>3): Override prefix_rex attribute.
2438 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
2439 (ssse3_palignrti): Override length_immediate to 1.
2440 (ssse3_palignrdi): Override length_immediate to 1, override
2441 prefix_rex attribute.
2442 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
2443 (sse4a_extrqi): Override length_immediate to 2.
2444 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
2445 (sse4a_insertq): Override prefix_data16 to 0.
2446 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
2447 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
2448 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
2449 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
2450 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
2451 and length_immediate to 1.
2452 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
2453 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
2454 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
2455 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
2456 and length_immediate to 1.
2457 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
2458 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
2459 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
2460 avx_ptest256): Override prefix_extra to 1.
2461 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
2462 Override prefix_data16 and length_immediate to 1.
2463 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
2464 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
2465 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
2466 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
2467 prefix_data16 to 0 and prefix_extra to 2.
2468 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
2469 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
2471 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
2472 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
2473 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
2474 and prefix_extra to 2.
2475 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
2476 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
2477 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
2478 avx_vpermilvar<mode>3,
2479 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
2480 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
2481 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
2482 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
2483 Override prefix_extra to 1.
2484 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
2485 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
2486 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
2487 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
2488 prefix_extra and length_immediate to 1.
2489 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
2491 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
2492 to 1 for the first alternative.
2493 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
2494 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
2496 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
2497 *movv2sf_internal_avx, *movv2sf_internal): Override
2498 prefix_rep attribute for certain alternatives.
2499 (*mov<mode>_internal): Override prefix_rep or prefix_data16
2500 attributes for certain alternatives.
2501 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
2502 attributes for certain alternatives.
2503 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
2504 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
2505 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
2506 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
2507 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
2508 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
2509 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
2510 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
2511 length_immediate to 1 if operand 2 is const_int_operand.
2512 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
2513 *vec_extractv2si_1): Set length_immediate attribute to 1.
2514 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
2515 using old 3DNOW insn rather than SSE/3DNOW_A.
2516 (mmx_emms, mmx_femms): Clear modrm attribute.
2518 2009-05-29 Martin Jambor <mjambor@suse.cz>
2520 * tree-sra.c: New implementation of SRA.
2522 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
2523 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
2524 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
2525 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
2526 (SRA_MAX_STRUCTURE_COUNT): Removed.
2527 (SRA_FIELD_STRUCTURE_RATIO): Removed.
2528 * doc/invoke.texi (sra-max-structure-size): Removed.
2529 (sra-field-structure-ratio): Removed.
2531 2009-05-29 Jakub Jelinek <jakub@redhat.com>
2534 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
2537 2009-05-29 Andrey Belevantsev <abel@ispras.ru>
2539 PR rtl-optimization/40101
2540 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
2541 seqno. Adjust comment.
2542 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
2543 inserting bookkeeping before a jump, the jump is not scheduled.
2544 When no positive seqno found, provide a value. Add comment.
2546 2009-05-29 Richard Guenther <rguenther@suse.de>
2548 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
2549 short-cutting on the first component.
2551 2009-05-29 Jakub Jelinek <jakub@redhat.com>
2554 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
2555 for trees other than decls/types.
2557 2009-05-29 Richard Guenther <rguenther@suse.de>
2559 * tree-ssa-operands.c (get_expr_operands): Do not handle
2560 INDIRECT_REFs in the handled-component case. Remove
2561 unused get_ref_base_and_extent case.
2562 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
2563 tree_low_cst and host_integerp where possible.
2564 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
2565 codes for equivalence.
2566 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
2568 2009-05-29 David Billinghurst <billingd@gcc.gnu.org>
2570 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
2571 to tmake_file for i[34567]86-*-cygwin*.
2573 2009-05-29 Jakub Jelinek <jakub@redhat.com>
2576 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
2577 (altivec_categorize_keyword, init_vector_keywords,
2578 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
2581 2009-05-29 Kai Tietz <kai.tietz@onevision.com>
2583 * tree.c (handle_dll_attribute): Check if node is
2584 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
2586 2009-05-29 Richard Earnshaw <rearnsha@arm.com>
2588 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
2590 (thumb2_zero_extendqidi2): Likewise.
2592 2009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
2594 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
2595 instead of gen_movrt.
2596 * config/sh/sh.md (movrt): Remove.
2598 2009-05-28 Steve Ellcey <sje@cup.hp.com>
2600 * doc/invoke.texi (IA-64 Options):
2601 Add -msdata, -mfused-madd, -mno-inline-float-divide,
2602 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
2603 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
2604 -msched-prefer-non-control-spec-insns,
2605 -msched-stop-bits-after-every-cycle,
2606 -msched-count-spec-in-critical-path,
2607 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
2608 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
2609 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
2610 and -msched-spec-verbose.
2612 2009-05-28 Joseph Myers <joseph@codesourcery.com>
2614 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
2615 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
2617 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
2619 2009-05-28 Richard Guenther <rguenther@suse.de>
2621 * tree-ssa-alias.c (ao_ref_init): New function.
2622 (ao_ref_base): Likewise.
2623 (ao_ref_base_alias_set): Likewise.
2624 (ao_ref_alias_set): Likewise.
2625 (refs_may_alias_p_1): Change signature.
2626 (refs_may_alias_p): Adjust.
2627 (refs_anti_dependent_p): Likewise.
2628 (refs_output_dependent_p): Likewise.
2629 (call_may_clobber_ref_p_1): Change signature.
2630 (call_may_clobber_ref_p): Adjust.
2631 (stmt_may_clobber_ref_p_1): New function split out from ...
2632 (stmt_may_clobber_ref_p): ... here.
2633 (maybe_skip_until): Adjust signature.
2634 (get_continuation_for_phi): Likewise.
2635 (walk_non_aliased_vuses): Likewise.
2636 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
2637 (ao_ref_init): Declare.
2638 (ao_ref_base): Likewise.
2639 (ao_ref_alias_set): Likewise.
2640 (stmt_may_clobber_ref_p_1): Likewise.
2641 (walk_non_aliased_vuses): Adjust.
2642 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
2643 (get_ref_from_reference_ops): remove.
2644 (vn_reference_lookup_2): Adjust signature.
2645 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
2646 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
2647 (vn_reference_lookup): Adjust.
2648 (vn_reference_insert): Likewise.
2649 (vn_reference_insert_pieces): Adjust signature.
2650 (visit_reference_op_call): Adjust.
2651 * tree-ssa-pre.c (get_expr_type): Simplify.
2652 (phi_translate_1): Adjust.
2653 (compute_avail): Likewise.
2654 (translate_vuse_through_block): Do not re-build trees.
2655 (value_dies_in_block_x): Likewise.
2656 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
2658 (vn_reference_lookup_pieces): Adjust declaration.
2659 (vn_reference_insert_pieces): Likewise.
2661 2009-05-28 Benjamin Kosnik <bkoz@redhat.com>
2663 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
2664 with checking disabled.
2666 2009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
2670 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
2671 macro definition for support of three-operand format aligned
2672 .comm directive in assembler on cygwin/pe/mingw target OS.
2673 * configure: Regenerate.
2674 * config.h: Regenerate.
2676 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
2677 aligned form of .comm directive if -mpe-aligned-commons is in effect.
2678 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
2680 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
2681 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
2683 2009-05-28 Ira Rosen <irar@il.ibm.com>
2685 PR tree-optimization/40254
2686 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
2687 in analysis of basic blocks.
2689 2009-05-28 Adam Nemet <anemet@caviumnetworks.com>
2692 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2693 * target-def.h (TARGET_CONST_ANCHOR): New macro.
2694 (TARGET_INITIALIZER): Use it.
2695 * cse.c (CHEAPER): Move it up to the other macros.
2696 (insert): Rename this ...
2697 (insert_with_costs): ... to this. Add cost parameters. Update
2699 (insert): New function. Call insert_with_costs.
2700 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
2701 find_reg_offset_for_const, try_const_anchors): New functions.
2702 (cse_insn): Call try_const_anchors. Adjust cost of src_related
2703 when using a const-anchor. Call insert_const_anchors.
2704 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2705 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
2707 2009-05-28 Alexandre Oliva <aoliva@redhat.com>
2709 * tree-inline.c (remap_decls): Enable nonlocalized variables
2710 when not optimizing.
2712 2009-05-28 Alexandre Oliva <aoliva@redhat.com>
2714 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
2715 Simplify other tests involving optimize.
2717 2009-05-27 Tom Tromey <tromey@redhat.com>
2719 * unwind-dw2.c (_Unwind_DebugHook): New function.
2720 (uw_install_context): Call _Unwind_DebugHook.
2722 2009-05-27 Tom Tromey <tromey@redhat.com>
2724 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
2726 2009-05-27 Ian Lance Taylor <iant@google.com>
2728 * Makefile.in (LINKER, LINKER_FLAGS): Define.
2729 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
2730 (ALL_LINKERFLAGS): Define.
2731 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
2732 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2733 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
2734 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2735 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
2736 $(LINKER_FOR_BUILD).
2737 (build/gcov-iov$(build_exeext)): Likewise.
2739 2009-05-27 Julian Brown <julian@codesourcery.com>
2741 * gcse.c (target.h): Include.
2742 (can_assign_to_reg_without_clobbers_p): Check that the target allows
2743 copy of argument to a pseudo register.
2745 2009-05-27 Diego Novillo <dnovillo@google.com>
2747 * tree-ssa-live.c (dump_scope_block): Document arguments.
2748 (dump_scope_blocks): Document.
2749 (debug_scope_blocks): New.
2750 * tree-flow.h (debug_scope_blocks): Declare.
2752 2009-05-21 Denis Chertykov <denisc@overta.ru>
2754 * doc/contrib.texi (Contributors): Add myself to the list.
2756 2009-05-27 Olivier Hainque <hainque@adacore.com>
2758 * expr.c (target_align): New function. Alignment the TARGET of an
2759 assignment may be assume to have.
2760 (highest_pow2_factor_for_target): Use it instead of relying on
2761 immediate tree attributes of TARGET, not necessarily honored when
2762 intermediate bitfields are involved.
2764 2009-05-27 H.J. Lu <hongjiu.lu@intel.com>
2767 * config/i386/driver-i386.c (host_detect_local_cpu): Support
2768 AVX, SSE4, AES, PCLMUL and POPCNT.
2770 2009-05-27 Diego Novillo <dnovillo@google.com>
2772 * tree-pretty-print.c (dump_location): New.
2773 (dump_generic_node): Call it.
2774 Factor code to handle BLOCK nodes ...
2775 (dump_block_node): ... here.
2777 2009-05-27 Rafael Avila de Espindola <espindola@google.com>
2779 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
2781 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
2783 * gcc-plugin.h: Include config.h and system.h.
2784 (IN_GCC): Define if not defined.
2786 2009-05-27 Hans-Peter Nilsson <hp@axis.com>
2789 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
2792 2009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
2794 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
2796 * config/m32r/m32r.h: Ditto.
2797 * config/m32r/m32r.md: Ditto.
2798 * config/m32r/predicates.md: Ditto.
2800 2009-05-27 Alexandre Oliva <aoliva@redhat.com>
2802 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
2804 2009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
2807 (Loading plugins): typo.
2808 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
2809 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2810 (Interacting with the GCC Garbage Collector): Added new section.
2811 (Giving information about a plugin): Added new section for
2813 * ggc.h (ggc_register_root_tab): Added declaration.
2814 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
2815 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
2816 (register_callback): Improved comment in declaration.
2817 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
2818 (extra_root_vec) Added static variable for dynamic roots registration.
2819 (ggc_register_root_tab) Added new routine.
2820 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
2821 PLUGIN_GGC_MARKING event.
2822 * ggc-zone.c: Include plugin.h.
2823 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2824 * ggc-page.c: Include plugin.h.
2825 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2826 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
2827 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
2828 (register_callback): check lack of callbacks for
2829 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
2830 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
2831 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
2832 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2833 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
2834 dependency on plugin.h.
2835 (plugin.o): Added dependency on ggc.h...
2837 2009-05-26 Richard Guenther <rguenther@suse.de>
2841 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2842 with mismatched comparison modes.
2844 * expr.c (expand_expr_real_1): Expand the operand of a
2845 VIEW_CONVERT_EXPR in its natural mode.
2847 2009-05-26 Ian Lance Taylor <iant@google.com>
2849 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
2850 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
2851 (ALL_COMPILERFLAGS): Define.
2852 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
2853 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2854 (collect2$(exeext), collect2.o): Likewise.
2855 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
2856 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
2857 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
2858 (libbackend.o, intl.o, cppdefault.o): Likewise.
2859 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2860 (build/%.o): Use $(COMPILER_FOR_BUILD).
2861 (build/gen%$(build_exeext)): Likewise.
2862 (build/gcov-iov$(build_exeext)): LIkewise.
2863 * config/t-darwin (darwin.o): Use $(COMPILER).
2864 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
2865 * config/t-sol2 (sol2-c.o): Likewise.
2867 * config/t-vxworks (vxworks.o): Likewise.
2868 * config/x-darwin (host-darwin.o): Likewise.
2869 * config/x-hpux (host-hpux.o): Likewise.
2870 * config/x-linux (host-linux.o): Likewise.
2871 * config/x-solaris (host-solaris.o): Likewise.
2872 * config/alpha/x-alpha (driver-alpha.o): Likewise.
2873 * config/arm/t-arm (arm-c.o): Likewise.
2874 * config/arm/t-pe (pe.o): Likewise.
2875 * config/arm/t-wince-pe (pe.o): Likewise.
2876 * config/i386/t-cygming (winnt.o): Likewise.
2877 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
2878 * config/i386/t-cygwin (cygwin1.o): Likewise.
2879 (cygwin2.o): Likewise.
2880 * config/i386/t-i386 (i386-c.o): Likewise.
2881 * config/i386/t-interix (winnt.o): Likewise.
2882 * config/i386/t-netware (netware.o): Likewise.
2883 * config/i386/t-nwld (nwld.o): Likewise.
2884 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
2885 * config/i386/x-i386 (driver-i386.o): Likewise.
2886 * config/i386/x-cygwin (host-cygwin.o): Likewise.
2887 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
2888 * config/ia64/t-ia64 (ia64-c.o): Likewise.
2889 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
2890 * config/mips/x-native (driver-native.o): Likewise.
2891 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
2892 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
2893 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
2894 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
2895 * config/score/t-score-elf (score7.o): Likewise.
2896 (score3.o): Likewise.
2897 * config/sh/t-sh (sh-c.o): Likewise.
2898 * config/sh/t-symbian (sh-c.o): Likewise.
2899 (symbian.o): Likewise.
2900 * config/spu/t-spu-elf (spu-c.o): Likewise.
2901 * config/v850/t-v850 (v850-c.o): Likewise.
2902 * config/v850/t-v850e (v850-c.o): Likewise.
2904 2009-05-26 Richard Guenther <rguenther@suse.de>
2906 PR tree-optimization/40122
2907 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
2908 VECTOR_CSTs if possible.
2909 (fold_gimple_assign): Likewise.
2911 2009-05-26 Richard Guenther <rguenther@suse.de>
2914 * fold-const.c (fold_binary): Use the correct types for building
2917 2009-05-26 Richard Guenther <rguenther@suse.de>
2919 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
2920 redundant calls to merge_alias_info.
2921 (bump_vector_ptr): Likewise.
2922 * tree-ssa-copy.c (merge_alias_info): Remove.
2923 (replace_exp_1): Remove call to merge_alias_info.
2924 (propagate_tree_value): Likewise.
2925 (fini_copy_prop): Propagate points-to info.
2926 * tree-flow.h (merge_alias_info): Remove.
2928 2009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
2930 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
2932 2009-05-25 Jan Hubicka <jh@suse.cz>
2934 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2935 * cgraph.h (struct inline_summary): New filed self_wize,
2936 size_inlining_benefit, self_time and time_inlining_benefit.
2937 (struct cgraph_global_info): Replace insns by time ans size fields.
2938 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2939 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2940 (ipcp_update_callgraph): Do not touch function bodies.
2941 * ipa-inline.c: Include except.h
2942 (MAX_TIME): New constant.
2943 (overall_insns): Remove.
2945 (overall_size, max_benefit): New static variables.
2946 (cgraph_estimate_time_after_inlining): New function.
2947 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2948 (cgraph_clone_inlined_nodes): Update size.
2949 (cgraph_mark_inline_edge): Update size.
2950 (cgraph_estimate_growth): Use size info.
2951 (cgraph_check_inline_limits): Check size.
2952 (cgraph_default_inline_p): Likewise.
2953 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2954 (cgraph_decide_recursive_inlining): Check size.
2955 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2957 (cgraph_decide_inlining): Likewise.
2958 (cgraph_decide_inlining_incrementally): Likewise; honor
2959 PARAM_EARLY_INLINING_INSNS.
2960 (likely_eliminated_by_inlining_p): New predicate.
2961 (estimate_function_body_sizes): New function.
2962 (compute_inline_parameters): Use it.
2963 * except.c (must_not_throw_labels): New function.
2964 * except.h (must_not_throw_labels): Declare.
2965 * tree-inline.c (init_inline_once): Kill inlining_weigths
2966 * tree-ssa-structalias.c: Avoid uninitialized warning.
2967 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2968 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2969 (PARAM_INLINE_CALL_COST): Remove.
2970 (PARAM_EARLY_INLINING_INSNS): New.
2972 2009-05-25 Richard Guenther <rguenther@suse.de>
2974 PR tree-optimization/36327
2975 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
2976 callback for reference translation or lookup at the point of may-defs.
2977 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
2978 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
2979 for union COMPONENT_REFs.
2980 (vn_reference_lookup_3): New callback. Lookup from memset
2981 and CONSTRUCTOR assignment, translate through struct copies.
2982 (vn_reference_lookup_pieces): Make sure to not free the
2983 passed operands array. Adjust walk_non_aliased_vuses call.
2984 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
2985 make sure we do not leak memory.
2987 2009-05-25 Richard Guenther <rguenther@suse.de>
2989 * tree-ssa-alias.h (dump_points_to_solution): Declare.
2990 * tree-inline.c (expand_call_inline): Reset the escaped and
2992 * tree-ssa-structalias.c (pass_build_ealias): New.
2993 * tree-pass.h (pass_build_ealias): Declare.
2994 * passes.c (init_optimization_passes): Add PTA during
2995 early optimizations.
2996 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
2997 and CALLUSED solutions.
2998 (dump_points_to_solution): New function, split out from ...
2999 (dump_points_to_info_for): ... here.
3000 * tree-parloops.c (parallelize_loops): Reset the escaped and
3003 2009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3006 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
3007 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
3009 2009-05-25 Ira Rosen <irar@il.ibm.com>
3011 PR tree-optimization/40238
3012 * tree-vect-stmts.c (vect_init_vector): Insert initialization
3013 statements after basic block's labels.
3014 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
3015 to free the allocated memory.
3017 2009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
3019 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
3020 return address with a USE.
3022 2009-05-24 Richard Guenther <rguenther@suse.de>
3025 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
3026 array type from the main variant of the inner type.
3028 2009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3030 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
3031 definition to bool (from int) to un-break build.
3032 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
3034 2009-05-24 Paolo Bonzini <bonzini@gnu.org>
3036 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
3037 discard_stmt_changes): Delete.
3038 * tree-ssa-operands.c (scb_stack): Delete.
3039 (init_ssa_operands): Do not initialize it.
3040 (fini_ssa_operands): Do not free it.
3041 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
3043 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
3044 update_stmt, remove the others. Fix comments.
3045 * tree-dfa.c (optimize_stack_restore): Likewise.
3046 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
3047 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
3048 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3049 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
3051 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
3052 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
3053 (dom_opt_finalize_block): Likewise, adjusting access to
3055 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
3056 (stmts_to_rescan): Change item type to gimple.
3057 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
3059 2009-05-24 Ira Rosen <irar@il.ibm.com>
3061 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
3062 * tree-pass.h (pass_slp_vectorize): New pass.
3063 * params.h (SLP_MAX_INSNS_IN_BB): Define.
3064 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
3065 * tree-vectorizer.c (timevar.h): Include.
3066 (user_vect_verbosity_level): Declare.
3067 (vect_location): Fix comment.
3068 (vect_set_verbosity_level): Update user_vect_verbosity_level
3069 instead of vect_verbosity_level.
3070 (vect_set_dump_settings): Add an argument. Ignore user defined
3071 verbosity if dump flags require higher level of verbosity. Print to
3072 stderr only for loop vectorization.
3073 (vectorize_loops): Update call to vect_set_dump_settings.
3074 (execute_vect_slp): New function.
3075 (gate_vect_slp): Likewise.
3076 (struct gimple_opt_pass pass_slp_vectorize): New.
3077 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
3079 (vec_info_for_bb): New function.
3080 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
3081 (VECTORIZATION_ENABLED): New macro.
3082 (SLP_ENABLED, SLP_DISABLED): Likewise.
3083 (vect_is_simple_use): Add bb_vec_info argument.
3084 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
3085 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
3086 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
3087 vect_schedule_slp, vect_analyze_slp): Likewise.
3088 (vect_analyze_stmt): Add slp_tree argument.
3089 (find_bb_location): Declare.
3090 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
3091 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
3092 (vect_analyze_loop_operations, vect_analyze_loop,
3093 get_initial_def_for_induction, vect_create_epilog_for_reduction,
3094 vect_finalize_reduction, vectorizable_reduction,
3095 vectorizable_live_operation, vect_transform_loop): Likewise.
3096 * tree-data-ref.c (dr_analyze_innermost): Update comment,
3097 skip evolution analysis if analyzing a basic block.
3098 (dr_analyze_indices): Likewise.
3099 (initialize_data_dependence_relation): Skip the test whether the
3100 object is invariant for basic blocks.
3101 (compute_all_dependences): Skip dependence analysis for data
3102 references in basic blocks.
3103 (find_data_references_in_stmt): Don't fail in case of invariant
3104 access in basic block.
3105 (find_data_references_in_bb): New function.
3106 (find_data_references_in_loop): Move code to
3107 find_data_references_in_bb and add a call to it.
3108 (compute_data_dependences_for_bb): New function.
3109 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
3110 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
3112 (vect_analyze_data_ref_dependence): Check for interleaving in case of
3113 unknown dependence in basic block and fail in case of dependence in
3115 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
3116 dependence instances from either loop or basic block vectorization
3118 (vect_compute_data_ref_alignment): Check if it is loop vectorization
3119 before calling nested_in_vect_loop_p.
3120 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
3121 dependence instances from either loop or basic block vectorization
3123 (vect_verify_datarefs_alignment): Likewise.
3124 (vect_enhance_data_refs_alignment): Adjust function calls.
3125 (vect_analyze_data_refs_alignment): Likewise.
3126 (vect_analyze_group_access): Fix printing. Skip different checks if
3127 DR_STEP is 0. Keep strided stores either in loop or basic block
3128 vectorization data structure. Fix indentation.
3129 (vect_analyze_data_ref_access): Fix comments, allow zero step in
3131 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
3132 dependence instances from either loop or basic block vectorization
3134 (vect_analyze_data_refs): Update comment. Call
3135 compute_data_dependences_for_bb to analyze basic blocks.
3136 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
3137 case of loop vectorization. In case of basic block vectorization use
3138 data-ref itself as a base.
3139 (vect_create_data_ref_ptr): In case of basic block vectorization:
3140 don't advance the pointer, add new statements before the current
3141 statement. Adjust function calls.
3142 (vect_supportable_dr_alignment): Support only aligned accesses in
3143 basic block vectorization.
3144 * common.opt (ftree-slp-vectorize): New flag.
3145 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
3146 (vect_pattern_recog_1): Likewise.
3147 * tree-vect-stmts.c (process_use): Likewise.
3148 (vect_init_vector): Add new statements in the beginning of the basic
3149 block in case of basic block SLP.
3150 (vect_get_vec_def_for_operand): Adjust function calls.
3151 (vect_finish_stmt_generation): Likewise.
3152 (vectorizable_call): Add assert that it is loop vectorization, adjust
3154 (vectorizable_conversion, vectorizable_assignment): Likewise.
3155 (vectorizable_operation): In case of basic block SLP, take
3156 vectorization factor from statement's type and skip the relevance
3157 check. Adjust function calls.
3158 (vectorizable_type_demotion): Add assert that it is loop
3159 vectorization, adjust function calls.
3160 (vectorizable_type_promotion): Likewise.
3161 (vectorizable_store): Check for outer loop only in case of loop
3162 vectorization. Adjust function calls. For basic blocks, skip the
3163 relevance check and don't advance pointers.
3164 (vectorizable_load): Likewise.
3165 (vectorizable_condition): Add assert that it is loop vectorization,
3166 adjust function calls.
3167 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
3168 that it is not reduction, get vector type, call only supported
3169 functions, skip loop specific parts.
3170 (vect_transform_stmt): Check for outer loop only in case of loop
3172 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
3173 (vect_is_simple_use): Fix comment, add new argument, fix conditions
3174 for external definition.
3175 * passes.c (pass_slp_vectorize): New pass.
3176 * tree-vect-slp.c (find_bb_location): New function.
3177 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
3178 check for patterns only in loops.
3179 (vect_build_slp_tree): Add argument, adjust function calls, fail in
3180 case of multiple types in basic block SLP.
3181 (vect_mark_slp_stmts_relevant): New function.
3182 (vect_supported_load_permutation_p): Fix comment.
3183 (vect_analyze_slp_instance): Add argument. In case of basic block
3184 SLP, take vectorization factor from statement's type, check that
3185 unrolling factor is 1. Adjust function call. Save SLP instance in
3186 either loop or basic block vectorization structure. Return FALSE,
3188 (vect_analyze_slp): Add argument. Get strided stores groups from
3189 either loop or basic block vectorization structure. Return FALSE
3190 if basic block SLP failed.
3191 (new_bb_vec_info): New function.
3192 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
3193 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
3194 (vect_schedule_slp): Add argument. Get SLP instances from either
3195 loop or basic block vectorization structure. Set vectorization factor
3196 to be 1 for basic block SLP.
3197 (vect_slp_transform_bb): New function.
3198 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
3200 2009-05-23 Mark Mitchell <mark@codesourcery.com>
3202 * final.c (shorten_branches): Do not align labels for jump tables.
3203 (final_scan_insn): Use JUMP_TABLE_DATA_P.
3205 2009-05-23 Eric Botcazou <ebotcazou@adacore.com>
3207 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
3208 Remove outdated reference to flow.c and fix nits.
3209 * doc/gccint.texi: Tweak RTL description.
3210 * doc/rtl.texi: Likewise.
3212 2009-05-23 Denis Chertykov <chertykov@gmail.com>
3214 * config/avr/avr.c: Change my email address.
3215 * config/avr/avr.h: Likewise.
3216 * config/avr/avr.md: Likewise.
3217 * config/avr/avr-protos.h: Likewise.
3218 * config/avr/libgcc.S: Likewise.
3220 2009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3222 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
3223 (spu_split_load, spu_split_store): Change return type to int.
3224 (spu_split_convert): Declare.
3225 * config/spu/predicates.md (spu_mem_operand): Remove.
3226 (spu_mov_operand): Update.
3227 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
3228 * config/spu/spu.c (regno_aligned_for_load): Remove.
3229 (reg_aligned_for_addr, spu_expand_load): Define.
3230 (spu_expand_extv): Reimplement and handle MEM.
3231 (spu_expand_insv): Handle MEM.
3232 (spu_sched_reorder): Handle insn's with length 0.
3233 (spu_legitimate_address_p): Reimplement.
3234 (store_with_one_insn_p): Return TRUE for any mode with size
3235 larger than 16 bytes.
3236 (address_needs_split): Define.
3237 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
3239 (spu_convert_move): Define.
3240 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
3241 (spu_split_store): Change all MEM's to TImode.
3242 (spu_init_expanders): Preallocate registers that correspond to
3243 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
3245 (spu_split_convert): Define.
3246 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
3247 (_move<mode>, _movdi, _movti): Update predicate and condition.
3248 (load, store): Change to define_split.
3249 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
3251 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
3252 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
3253 define_insn_and_split of lshr<mode>3.
3254 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
3255 (<v>ashr<mode>3_imm): Define.
3256 (extv, extzv, insv): Allow MEM operands.
3257 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
3258 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
3259 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
3260 (_spu_convert2): Change to define_insn_and_split and remove the
3261 corresponding define_peephole2.
3262 (stack_protect_set, stack_protect_test, stack_protect_test_si):
3263 Change predicates to memory_operand.
3265 2009-05-22 Mark Mitchell <mark@codesourcery.com>
3267 * config/arm/thumb2.md: Add 16-bit multiply instructions.
3269 2009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
3271 PR tree-optimization/40219
3272 * tree.c (iterative_hash_expr): Make sure the builtin function is
3273 a normal builtin function and not a front end or back end builtin
3274 before indexing into the built_in_decls array.
3276 2009-05-22 Richard Guenther <rguenther@suse.de>
3279 * alias.c (write_dependence_p): Do not use TBAA for answering
3280 anti-dependence or output-dependence.
3281 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
3282 (emit_pointer_definition): Remove.
3283 (emit_alias_warning): Likewise.
3284 (find_what_var_points_to): Remove TBAA pruning code.
3285 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
3287 (compute_points_to_sets): Remove code computing the set of
3288 dereferenced pointers.
3289 * tree-data-ref.c (dr_may_alias_p): Properly use the split
3290 oracle for querying anti and output dependencies.
3291 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
3292 if TBAA may be applied.
3293 (refs_anti_dependent_p): New function.
3294 (refs_output_dependent_p): Likewise.
3295 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
3296 (refs_output_dependent_p): Likewise.
3297 * doc/tree-ssa.texi (Memory model): New section.
3298 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3299 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3300 * cfgexpand.c (expand_gimple_basic_block): Do not handle
3301 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
3302 * expr.c (expand_expr_real_1): Likewise.
3303 * gimple-low.c (lower_stmt): Likewise.
3304 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
3305 (dump_gimple_cdt): Remove.
3306 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3307 (gimple_size): Likewise.
3308 (walk_gimple_op): Likewise.
3309 (is_gimple_stmt): Likewise.
3310 (walk_stmt_load_store_addr_ops): Likewise.
3311 (gimple_build_cdt): Remove.
3312 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3313 * gimple.h (gimple_cdt_new_type): Remove.
3314 (gimple_cdt_new_type_ptr): Likewise.
3315 (gimple_cdt_set_new_type): Likewise.
3316 (gimple_cdt_location): Likewise.
3317 (gimple_cdt_location_ptr): Likewise.
3318 (gimple_cdt_set_location): Likewise.
3319 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3320 * tree-cfg.c (remove_useless_stmts_1): Do not handle
3321 GIMPLE_CHANGE_DYNAMIC_TYPE.
3322 (verify_types_in_gimple_stmt): Likewise.
3323 * tree-inline.c (estimate_num_insns): Likewise.
3324 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
3325 (copy_decl_to_var): Likewise.
3326 (copy_result_decl_to_var): Likewise.
3327 * tree-pretty-print.c (dump_generic_node): Do not handle
3328 CHANGE_DYNAMIC_TYPE_EXPR.
3329 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3330 * tree-ssa-operands.c (get_expr_operands): Likewise.
3331 * tree-ssa-structalias.c (struct variable_info): Remove
3332 no_tbaa_pruning member.
3333 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
3334 (unify_nodes): Do not copy it.
3335 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3336 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
3337 (set_uids_in_ptset): Do not check it.
3338 (find_what_var_points_to): Likewise.
3339 (compute_tbaa_pruning): Remove.
3340 (compute_points_to_sets): Do not call it.
3341 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3342 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3343 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
3344 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
3345 (DECL_NO_TBAA_P): Likewise.
3346 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
3347 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
3348 (expand_omp_atomic_pipeline): Do not set it.
3349 * print-tree.c (print_node): Do not dump it.
3350 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
3353 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
3356 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
3359 2009-05-22 Mark Mitchell <mark@codesourcery.com>
3361 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
3364 2009-05-22 Ben Elliston <bje@au.ibm.com>
3366 * Makefile.in (bversion.h, s-bversion): New targets.
3367 (TOPLEV_H): Add bversion.h.
3368 * toplev.h: Include "bversion.h".
3369 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
3370 the __format__ attribute only if compiling with the same version