]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
libiberty/
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
6388cfe2 12010-05-26 Kai Tietz <kai.tietz@onevision.com>
2
3 * builtin-types.def (BT_INT128): New primitive type.
4 (BT_UINT128): Likewise.
5 * c-common.c (c_common_r): Add __int128 keyword.
6 (c_common_type_for_size): Handle __int128.
7 (c_common_type_for_mode): Likewise.
8 (c_common_signed_or_unsigned_type): Likewise.
9 (c_common_nodes_and_builtins): Add builtin type
10 if target supports 128-bit integer scalar.
11 * c-common.h (enum rid): Add RID_INT128.
12 * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
13 if target supports 128-bit integer scalar.
14 * c-decl.c (declspecs_add_type): Handle new keyword
15 __int128.
16 (finish_declspecs): Likewise.
17 * c-parser.c (c_token_starts_typename): Handle RID_INT128.
18 (c_token_starts_declspecs): Likewise.
19 (c_parser_declspecs): Likewise.
20 (c_parser_attributes): Likewise.
21 (c_parser_objc_selector): Likewise.
22 * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
23 * c-tree.h (enum c_typespec_keyword): Add cts_int128.
24 * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
25 * tree.c (make_or_reuse_type): Likewise.
26 (make_unsigned_type): Likewise.
27 (build_common_tree_nodes_2): Likewise.
28 * tree.h (enum integer_type_kind): Add itk_int128 and
29 itk_unsigned_int128.
30 (int128_integer_type_node): New define..
31 (int128_unsigned_type_node): New define.
32 * cp/cp-tree.h (cp_decl_specifier_seq): Add new bifield
33 explicit_int128_p.
34 * cp/decl.c (grokdeclarator): Handle __int128.
35 * cp/parser.c (cp_lexer_next_token_is_decl_specifier_ke): Likewise.
36 (cp_parser_simple_type_specifier): Likewise.
37 * cp/rtti.c (emit_support_tinfos): Add int128 nodes for rtti.
38 * cp/typeck.c (cp_common_type): Handle __int128.
39 * cp/mangle.c (integer_type_codes): Add itk_int128 and
40 itk_unsigned_int128.
41 * doc/extend.texi: Add documentation about __int128 type.
42
3df47675 432010-05-26 Richard Guenther <rguenther@suse.de>
44
45 * tree-ssa-sccvn.c (copy_nary): Adjust.
46 (copy_phis): Rename to ...
47 (copy_phi): ... this. Adjust.
48 (copy_references): Rename to ...
49 (copy_reference): ... this. Adjust.
50 (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
51 result into the valid table.
52
a3fe427a 532010-05-26 Steven Bosscher <steven@gcc.gnu.org>
54
55 * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
56 insn-config.h, insn-codes.h, recog.h, and optabs.h.
57
5cac8529 582010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
59
60 * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic):
61 Remove.
62
e00798c7 632010-05-26 Richard Guenther <rguenther@suse.de>
64
65 * opts.c (common_handle_option): Handle OPT_Ofast.
66
3c6a9715 672010-05-26 Joseph Myers <joseph@codesourcery.com>
68
69 * diagnostic.c: Don't include opts.h.
70 (permissive_error_option): Define.
71 (diagnostic_initialize): Take n_opts parameter. Allocate memory
72 for classify_diagnostic. Don't use memset for
73 classify_diagnostic. Initialize new and recently added fields.
74 (diagnostic_classify_diagnostic): Use context->n_opts instead of
75 N_OPTS.
76 (diagnostic_report_diagnostic): Pass context parameter to
77 diagnostic_report_warnings_p. Use option_enabled and option_name
78 hooks from context.
79 (emit_diagnostic): Use permissive_error_option.
80 (permerror): Likewise.
81 * diagnostic.h: Don't include options.h.
82 (struct diagnostic_context): Add n_opts, opt_permissive,
83 inhibit_warnings, warn_system_headers, option_enabled and
84 option_name fields. Change classify_diagnostic to a pointer.
85 * opts-diagnostic.h: New file.
86 * opts.c: Include opts-diagnostic.h.
87 (common_handle_option): Set global_dc fields for -Wfatal-errors,
88 -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
89 (option_name): New function.
90 * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
91 (c_common_handle_option): Set global_dc->permissive for
92 -fpermissive.
93 * c-common.c (c_cpp_error): Save and restore
94 global_dc->warn_system_headers, not variable warn_system_headers.
95 * toplev.c: Include opts-diagnostic.h.
96 (general_init): Update call to diagnostic_initialize. Set
97 global_dc->show_column, global_dc->option_enabled and
98 global_dc->option_name.
99 (process_options): Don't set global_dc fields here.
100 * Makefile.in (DIAGNOSTIC_H): Remove options.h.
101 (diagnostic.o, opts.o, toplev.o): Update dependencies.
102
abdd77b8 1032010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
104
105 * config/picochip/picochip.md (movsi): Split a movsi from a
106 const after reload.
107
9ca7413c 1082010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
109
110 * ggc-zone.c: Update copyright year.
111 (poison_region): Mark memory for Valgrind as undefined before
112 memset () call and inaccessible afterwards.
113 (ggc_pch_total_size): Change type of i to int.
114
1152010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
116
117 * ggc-common.c (ggc_free_overhead): Allow empty slot.
118
1192010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
120
121 * ggc-common.c: Update copyright year.
122 (ggc_rlimit_bound): Remove prototype. Compile only if
123 !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
124 (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
125 && !ENABLE_GC_ALWAYS_COLLECT. Make static.
126 (ggc_min_heapsize_heuristic): Likewise.
127
ac30e3b2 1282010-05-26 Richard Guenther <rguenther@suse.de>
129
130 PR rtl-optimization/44164
131 * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
132 no-common access-path disambiguation.
133 (indirect_ref_may_alias_decl_p): Adjust.
134 (indirect_refs_may_alias_p): Likewise.
135 (refs_may_alias_p_1): Likewise.
136
e262034d 1372010-05-26 Steven Bosscher <steven@gcc.gnu.org>
138
139 * c-typeck.c: Do not include expr.h.
140
cb4070e0 1412010-05-26 Steven Bosscher <steven@gcc.gnu.org>
142
143 * rtl.h (decl_default_tls_model): Move prototype from here...
144 * output.h: ...to here.
145 * c-decl.c: Do not include rtl.h.
146 * c-pragma.c: Likewise.
147 * c-parser.c: Likewise.
148 * c-gimplify.c: Likewise. And also not hard-reg-set.
149 * c-common.c: Do not include rtl.h. Include tm_p.h and add a
150 FIXME note for it. Add a FIXME note for expr.h.
151 * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
152 ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
153 defined.
154
0e9ae12f 1552010-05-26 Jakub Jelinek <jakub@redhat.com>
156
157 PR target/44199
158 * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
159 or total_size is larger than red zone size for non-V4 ABI, emit a
160 stack_tie resp. frame_tie insn before stack pointer restore.
161 * config/rs6000/rs6000.md (frame_tie): New insn.
162
cbeb677e 1632010-05-25 Eric Botcazou <ebotcazou@adacore.com>
164
165 * function.h (struct function): Add can_throw_non_call_exceptions bit.
166 * lto-streamer-in.c (input_function): Stream it in.
167 * lto-streamer-out.c (output_function): Stream it out.
168 * function.c (allocate_struct_function): Set it.
169 (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
170 for flag_non_call_exceptions.
171 * cfgbuild.c (control_flow_insn_p): Likewise.
172 (make_edges): Likewise.
173 * cfgexpand.c (expand_stack_alignment): Likewise.
174 * combine.c (distribute_notes): Likewise.
175 * cse.c (cse_extended_basic_block): Likewise.
176 * except.c (insn_could_throw_p): Likewise.
177 * gcse.c (simple_mem): Likewise.
178 * ipa-pure-const.c (check_call): Likewise.
179 (check_stmt ): Likewise.
180 * lower-subreg.c (lower-subreg.c): Likewise.
181 * optabs.c (emit_libcall_block): Likewise.
182 (prepare_cmp_insn): Likewise.
183 * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
184 * postreload.c (rest_of_handle_postreload): Likewise.
185 * reload1.c (reload_as_needed): Likewise.
186 (emit_input_reload_insns): Likewise.
187 (emit_output_reload_insns): Likewise.
188 (fixup_abnormal_edges): Likewise.
189 * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
190 * store-motion.c (find_moveable_store): Likewise.
191 * tree-eh.c (stmt_could_throw_p): Likewise.
192 (tree_could_throw_p): Likewise.
193 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
194 * config/arm/arm.c (arm_expand_prologue): Likewise.
195 (thumb1_expand_prologue): Likewise.
196 * config/rx/rx.md (cbranchsf4): Likewise.
197 (cmpsf): Likewise.
198 * config/s390/s390.c (s390_emit_prologue): Likewise.
199 * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
200 (inline_forbidden_into_p): New predicate.
201 (expand_call_inline): Use it to forbid inlining.
202 (tree_can_inline_p): Likewise.
203
28ca4cf5 2042010-05-25 Steven Bosscher <steven@gcc.gnu.org>
205
206 * config/i386/i386-c.c: Do not include rtl.h.
207 * config/i386/t-i386: Update dependencies.
208
3ed880f8 2092010-05-25 Steven Bosscher <steven@gcc.gnu.org>
210
211 * attribs.c: Do not include rtl.h.
212 * Makefile.in: Update dependencies.
213
d817d01d 2142010-05-25 Anatoly Sokolov <aesok@post.ru>
215
216 * double-int.h (double_int_and): New.
217 * combine.c (try_combine): Clean up, use double_int_* and
218 immed_double_int_const functions.
219
b1383b01 2202010-05-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
221
222 * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
223 stderr to /dev/null instead of grep -q.
224 * configure: Regenerate.
225
c4b9c21a 2262010-05-25 Steven Bosscher <steven@gcc.gnu.org>
227
228 * Makefile.in (EXCEPT_H): Fix typo.
229
1180227d 2302010-05-25 Vladimir Makarov <vmakarov@redhat.com>
231
232 * ira-build.c (update_conflict_hard_reg_costs): New.
233 (ira_build): Call update_conflict_hard_reg_costs.
234
cd3ece53 2352010-05-25 Jakub Jelinek <jakub@redhat.com>
236
a8c57873 237 PR debug/41371
238 * var-tracking.c (find_loc_in_1pdv): Guard asserts with
239 ENABLE_CHECKING.
240 (intersect_loc_chains): Walk the s2var's loc_chain together
241 with s1node chain as long as the locations are equal, don't
242 call find_loc_in_1pdv in that case.
243
cd3ece53 244 PR debug/42801
245 * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
246 (copy_bind_expr): ... instead of here.
247 (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
248 if the block hasn't been remapped.
249 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
250 emitting concrete instance of abstract VLA, add DW_AT_type attribute.
251
78af26dc 2522010-05-25 Richard Guenther <rguenther@suse.de>
253
254 PR middle-end/44069
255 * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
256 out-of-bounds array accesses.
257
4062f557 2582010-05-25 Richard Guenther <rguenther@suse.de>
259
260 * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
261 (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
262 (run_gcc): Re-organize to make cleanup easier.
263
f0b78aef 2642010-05-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
265
266 * config/s390/s390.c (optimization_options): Fix and move the
267 flag_prefetch_loop_arrays override ...
268 (override_options): ... here.
269
1f63d337 2702010-05-25 Joseph Myers <joseph@codesourcery.com>
271
272 * diagnostic.c: Don't include plugin.h.
273 (diagnostic_report_diagnostic): Don't handle plugins specially
274 here. Pass context to internal_error callback.
275 * diagnostic.h (struct diagnostic_context): Add context parameter
276 to internal_error callback.
277 * plugin.c (warn_if_plugins, plugins_internal_error_function):
278 New.
279 * plugin.h (struct diagnostic_context): Declare.
280 (warn_if_plugins, plugins_internal_error_function): Declare.
281 * toplev.c (general_init): Set global_dc->internal_error.
282 * Makefile.in (diagnostic.o): Update dependencies.
283
191bb103 2842010-05-25 Iain Sandoe <iains@gcc.gnu.org>
285
286 * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
287 * config/rs6000/t-darwin64: New.
288 * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
289 build crt2.
290
f547ca12 2912010-05-25 Christian Borntraeger <borntraeger@de.ibm.com>
292
293 PR 44203
294 * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
295 match the original (and intended) behaviour before r159557. This
296 changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
297 in two ways.
298
1ebc0b9f 2992010-05-25 Richard Guenther <rguenther@suse.de>
300
301 * doc/invoke.texi: Document -Ofast.
302 * target.h (struct gcc_target): Add handle_ofast.
303 * target-def.h (TARGET_HANDLE_OFAST): Add.
304 (TARGET_INITIALIZER): Adjust.
305 * opts.c (decode_options): Handle -Ofast. Enable
306 -ffast-math with it.
307 * common.opt (Ofast): Add.
308
56bf9283 3092010-05-25 Paolo Bonzini <bonzini@gnu.org>
310
311 * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
312 * doc/md.texi (cstoreXX4): Update for cond-optab changes.
313
3142010-05-25 Paolo Bonzini <bonzini@gnu.org>
11e6818b 315
316 PR target/43610
317 * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
318 even if !FLOAT_LIB_COMPARE_RETURNS_BOOL. Always compute true_rtx and
319 false_rtx. Use false_rtx to compute the correct *ptest for reversed
320 comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
321
1b2c4a5b 3222010-05-25 Jakub Jelinek <jakub@redhat.com>
323
324 * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
325 DW_OP_minus with negated offset instead of DW_OP_plus.
326 (loc_list_from_tree): Don't test whether second operand is
327 INTEGER_CST.
328
34f82fe1 3292010-05-25 Wei Guozhi <carrot@google.com>
330
331 * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
332 tst instruction and a new alternative.
333 * config/arm/constraints.md (Pu): New constraint.
334
286887d9 3352010-05-24 Sebastian Pop <sebastian.pop@amd.com>
336
337 * function.c (assign_stack_local_1): Initialize variable
338 to avoid warning when bootstrapping at -O3.
339
75f488d0 3402010-05-24 Steven Bosscher <steven@gcc.gnu.org>
341
342 * configure.ac (all_lang_makefiles): Remove everything related to it.
343 * configure: Regenerate.
344 * Makefile.in: Fix reference to ada Make-lang.in.
345 Remove support for LANG_MAKEFILES.
346
e3cce89a 3472010-05-24 Daniel Jacobowitz <dan@codesourcery.com>
348 Sandra Loosemore <sandra@codesourcery.com>
349
350 * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
351 * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
352 description. Add arm_neon_fp16_ok.
353 (Add Options): Add arm_neon and arm_neon_fp16.
354
2c2efebb 3552010-05-24 Joseph Myers <joseph@codesourcery.com>
356
357 * diagnostic.c: Don't include flags.h.
358 (pedantic_warning_kind, permissive_error_kind): Take diagnostic
359 context parameters. Check flags in the context passed as a
360 parameter.
361 (diagnostic_build_prefix): Add context parameter. Check
362 show_column flag in context.
363 (diagnostic_action_after_output): Check fatal_errors flag in
364 context.
365 (diagnostic_report_current_module): Check show_column flag in
366 context.
367 (default_diagnostic_starter): Update call to
368 diagnostic_build_prefix.
369 (diagnostic_report_diagnostic): Pass context to
370 pedantic_warning_kind.
371 (emit_diagnostic): Pass context to permissive_error_kind.
372 (permerror): Pass context to permissive_error_kind.
373 * diagnostic.h (struct diagnostic_context): Add show_column,
374 pedantic_errors, permissive and fatal_errors fields.
375 (diagnostic_build_prefix): Update prototype.
376 * langhooks.c
377 * toplev.c (process_options): Set flags in global_dc from
378 flag_show_column, flag_pedantic_errors, flag_permissive,
379 flag_fatal_errors.
380 * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
381 to diagnostic_build_prefix.
382 * Makefile.in (diagnostic.o): Update dependencies.
383
cbac4842 3842010-05-24 H.J. Lu <hongjiu.lu@intel.com>
385
386 * config/i386/ia32intrin.h (__crc32q): Define only if
387 __SSE4_2__ is defined.
388
01a5cbdf 3892010-05-24 Iain Sandoe <iains@gcc.gnu.org>
390
391 PR target/44132
392 PR middle-end/43602
393 * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
394 DECL_VISIBILITY_SPECIFIED.
395 (emutls_decl): Set DECL_PRESERVE_P and copy
396 DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
397 (emutls_finalize_control_var): New callback.
398 (emutls_finish): Finalize emutls control variables.
399 * toplev.c (compile_file): Move the call to emutls_finish ()
400 before varpool_assemble_pending_decls ().
401
0d2f7070 4022010-05-24 Daniel Gutson <dgutson@codesourcery.com>
403
404 * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
405 added to the preprocessor condition.
406
47a55be7 4072010-05-24 Paul Brook <paul@codesourcery.com>
408
409 * gengtype-lex.l: Add HARD_REG_SET.
410 * expr.c (expand_expr_real_1): Record writes to hard registers.
411 * function.c (rtl_data): Add asm_clobbers.
412 * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
413 (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
414 Use crtl->asm_clobbers.
415
4da34bd9 4162010-05-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
417
418 * doc/makefile.texi (Makefile): Mention stages 'profile'
419 and 'feedback' for profiledbootstrap.
420
b32fbb9d 4212010-05-23 H.J. Lu <hongjiu.lu@intel.com>
422
423 PR target/44245
424 * config/i386/i386.c (def_builtin): Properly check
425 OPTION_MASK_ISA_64BIT.
426
ce3765bf 4272010-05-23 Joseph Myers <joseph@codesourcery.com>
428
429 * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
430 typedefs with different but compatible types. Allow duplicate
431 typedefs with the same type except for pedantic non-C1X, but give
432 warning for variably modified types.
433 * c-typeck.c (tagged_types_tu_compatible_p,
434 function_types_compatible_p, type_lists_compatible_p,
435 comptypes_internal): Add parameter different_types_p; set
436 *different_types_p for different but compatible types. All
437 callers changed.
438 (comptypes_check_different_types): New.
439 * c-tree.h (comptypes_check_different_types): Declare.
440
a79e7523 4412010-05-23 Steven Bosscher <steven@gcc.gnu.org>
442
443 * regs.h: Do not include obstack.h, basic-block.h.
444 Include machmode.h.
445 * jump.c: Include basic-block.h.
446 * profile.c: Likewise.
447 * tree-profile.c: Likewise.
448 * coverage.c: Likewise.
449 * basic-block.h (optimize_function_for_size_p): Move to function.h.
450 (optimize_function_for_speed_p): Likewise.
451 * function.h (optimize_function_for_size_p,
452 optimize_function_for_speed_p): Moved here from basic-block.h.
c6e9953d 453 * Makefile.in: Update dependencies.
a79e7523 454
c335b5fe 4552010-05-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
456
457 * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
458 before calling make; allow override through $MAKE.
459 * doc/invoke.texi (Optimize Options): Document override.
460
c7000751 4612010-05-23 Anatoly Sokolov <aesok@post.ru>
462
463 * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
464 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
465 (rs6000_mode_dependent_address_ptr): Make static.
466 * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
467 * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
468 Remove.
469
db94badd 4702010-05-23 Maarten Lankhorst <mlankhorst@codeweavers.com>
5aa30755 471
472 PR target/43869
473 * config/i386/i386.c: Make sure that the correct regparm is passed.
474
7ffb8e03 4752010-05-23 Steven Bosscher <steven@gcc.gnu.org>
476
477 * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
478 * sbitmap.c: ...to here to internalize sbitmap element access.
479 Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
480 Explain why basic-block.h is included.
481 * function.h: Include tm.h for CUMULATIVE_ARGS.
482 * Makefile.in: Update dependencies.
483
0f71a633 4842010-05-22 Steven Bosscher <steven@gcc.gnu.org>
485
486 * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
487 New core types.
488 * sbitmap.h (struct sbitmap_def): Do not typedef here.
489 * sbitmap.c: Include sbitmap.h.
490 * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
491 hard-reg-set.h. Split everything related to regsets out from here...
492 * regset.h: ...to here. New file.
493 * df.h: Include regset.h and sbitmap.h.
494 * tree-flow.h: Likewise.
495 * cfgloop.h: Likewise.
496 * except.h: Do not include sbitmap.h. Include hashtab.h.
497 * cgraph.h: Include vec.h and function.h.
498 * reload.h (struct insn_chain): Change types of live_throughout
499 and dead_or_set from regset_head to bitmap_head.
500 (compute_use_by_pseudos): Be defined also if regset.h is not included.
501 * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
502 spilled_regs from regset_head to bitmap_head to avoid dependency
503 in regset.h.
504 * sel-sched-ir.h: Include regset.h.
505 * reload.c: Include df.h before reload.h.
506 * caller-save.c: Likewise.
507 * reload1.c: Likewise.
508 * ira.c: Likewise.
509 (mark_elimination): Update type of r to bitmap, consistent with
510 DF_LR_IN.
511 * dominance.c: Include bitmap.h.
512 * modulo-sched.c: Include df.h.
513 * cfganal.c: Include bitmap.h and sbitmap.h.
514 * cfgbuild.c: Include sbitmap.h.
515 * lcm.c: Include sbitmap.h.
516 * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
517 * domwalk.c: Include sbitmap.h, exclude ggc.h.
518 * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
519 * cselib.c: Include bitmap.h.
520 * tree-optimize.c: Include regset.h.
521 * stmt.c: Include bitmap.h.
522 * Makefile.in: Update dependencies.
523
933b10c6 5242010-05-22 Jan Hubicka <jh@suse.cz>
525
526 * cgraph.h (struct varpool_node): Add same_comdat_group.
527 * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
528 pointer.
529 (output_varpool): Update call of lto_output_varpool_node.
530 (input_varpool): Read same_comdat_group pointer.
531 (input_varpool_1): Fixup same_comdat_group pointer.
532 * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
533 group is needed, all are.
534 * varpool.c (varpool_remove_node): Remove node from same comdat group
535 linklist too.
536 (varpool_analyze_pending_decls): Walk same comdat groups.
537
240a4681 5382010-05-22 Steven Bosscher <steven@gcc.gnu.org>
539
540 * rtl.h (union rtunion_def): Remove rt_bit member.
541 (XBITMAP, X0BITMAP, XCBITMAP): Remove.
542 * print-rtl (print_rtx): Do not print the member.
543 * gengtype.c (adjust_field_rtx_def): Do not handle it.
544 * gengenrtl.c (type_from_format): Likewise.
545 (accessor_from_format): Likewise.
546
34408c5c 5472010-05-22 Joseph Myers <joseph@codesourcery.com>
548
549 * dbgcnt.c: Include toplev.h instead of errors.h.
550 * ira-emit.c: Don't include errors.h.
551 * ira.c: Include toplev.h instead of errors.h.
552 * lto-compress.c: Include toplev.h instead of errors.h.
553 * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
554 ira.o, dbgcnt.o): Update dependencies.
555
ca3e35a1 5562010-05-22 Richard Guenther <rguenther@suse.de>
557
558 * gimple.c (gimple_types_compatible_p): Check type qualifications
559 before merging pointer to complete and pointer to incomplete type.
560 * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
561 we use our own resolution algorithm. The gold linker plugin
562 doesn't do the job we want it to do here.
563
e1ff7315 5642010-05-22 Anatoly Sokolov <aesok@post.ru>
565
566 * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
567 * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
568 (sparc_mode_dependent_address_p): New function.
569
1da86322 5702010-05-21 Steven Bosscher <steven@gcc.gnu.org>
571
572 * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
573
574 * timevar.c: Do not include any core headers.
575 (timevar_print): De-i18n-ize.
576 (print_time): Likewise.
577 * timevar.h (timevar_push, timevar_pop): Make inline functions.
578
ce084dfc 5792010-05-21 Joseph Myers <joseph@codesourcery.com>
580
581 * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
582 langhooks-def.h.
583 (diagnostic_initialize): Initialize x_data not last_function.
584 (diagnostic_report_current_function): Move to tree-diagnostic.c.
585 (default_diagnostic_starter): Call
586 diagnostic_report_current_module not
587 diagnostic_report_current_function.
588 (diagnostic_report_diagnostic): Initialize x_data not
589 abstract_origin.
590 (verbatim): Likewise.
591 * diagnostic.h (struct diagnostic_info): Change abstract_origin to
592 x_data.
593 (struct diagnostic_context): Change last_function to x_data.
594 (diagnostic_auxiliary_data): Replace with
595 diagnostic_context_auxiliary_data and
596 diagnostic_info_auxiliary_data.
597 (diagnostic_last_function_changed, diagnostic_set_last_function,
598 diagnostic_report_current_function): Move to tree-diagnostic.h.
599 (print_declaration, dump_generic_node, print_generic_stmt,
600 print_generic_stmt_indented, print_generic_expr,
601 print_generic_decl, debug_c_tree, dump_omp_clauses,
602 print_call_name, debug_generic_expr, debug_generic_stmt,
603 debug_tree_chain, default_tree_printer): Move to
604 tree-pretty-print.h.
605 (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
606 print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
607 gimple-pretty-print.h.
608 * pretty-print.c: Don't include tree.h
609 (pp_base_format): Don't handle %K here.
610 (pp_base_tree_identifier): Move to tree-pretty-print.c.
611 * pretty-print.h (text_info): Change abstract_origin to x_data.
612 (pp_tree_identifier, pp_unsupported_tree,
613 pp_base_tree_identifier): Move to tree-pretty-print.h.
614 * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
615 tree-pretty-print.h: New files.
616 * tree-pretty-print.c: Include tree-pretty-print.h.
617 (percent_K_format): New. Moved from pretty-print.c.
618 (pp_base_tree_identifier): Move from pretty-print.c.
619 * c-objc-common.c: Include tree-pretty-print.h.
620 (c_tree_printer): Handle %K here.
621 * langhooks.c: Include tree-diagnostic.h.
622 (lhd_print_error_function): Use diagnostic_abstract_origin macro.
623 * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
624 (default_tree_printer): Handle %K using percent_K_format.
625 (general_init): Use default_tree_diagnostic_starter.
626 * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
627 (free_lang_data): Use default_tree_diagnostic_starter.
628 * c-pretty-print.c: Include tree-pretty-print.h.
629 * cfgexpand.c: Include tree-pretty-print.h and
630 gimple-pretty-print.h.
631 * cgraphunit.c: Include tree-pretty-print.h and
632 gimple-pretty-print.h.
633 * dwarf2out.c: Include tree-pretty-print.h.
634 * except.c: Include tree-pretty-print.h.
635 * gimple-pretty-print.c: Include tree-pretty-print.h and
636 gimple-pretty-print.h.
637 * gimplify.c: Include tree-pretty-print.h.
638 * graphite-poly.c: Include tree-pretty-print.h and
639 gimple-pretty-print.h.
640 * ipa-cp.c: Include tree-pretty-print.h.
641 * ipa-inline.c: Include gimple-pretty-print.h.
642 * ipa-prop.c: Include tree-pretty-print.h and
643 gimple-pretty-print.h.
644 * ipa-pure-const.c: Include gimple-pretty-print.h.
645 * ipa-struct-reorg.c: Include tree-pretty-print.h and
646 gimple-pretty-print.h.
647 * ipa-type-escape.c: Include tree-pretty-print.h.
648 * print-rtl.c: Include tree-pretty-print.h.
649 * print-tree.c: Include gimple-pretty-print.h.
650 * sese.c: Include tree-pretty-print.h.
651 * tree-affine.c: Include tree-pretty-print.h.
652 * tree-browser.c: Include tree-pretty-print.h.
653 * tree-call-cdce.c: Include gimple-pretty-print.h.
654 * tree-cfg.c: Include tree-pretty-print.h and
655 gimple-pretty-print.h.
656 * tree-chrec.c: Include tree-pretty-print.h.
657 * tree-data-ref.c: Include tree-pretty-print.h and
658 gimple-pretty-print.h.
659 * tree-dfa.c: Include tree-pretty-print.h.
660 * tree-if-conv.c: Include tree-pretty-print.h and
661 gimple-pretty-print.h.
662 * tree-inline.c: Include tree-pretty-print.h.
663 * tree-into-ssa.c: Include tree-pretty-print.h and
664 gimple-pretty-print.h.
665 * tree-nrv.c: Include tree-pretty-print.h.
666 * tree-object-size.c: Include tree-pretty-print.h and
667 gimple-pretty-print.h.
668 * tree-outof-ssa.c: Include tree-pretty-print.h and
669 gimple-pretty-print.h.
670 * tree-parloops.c: Include tree-pretty-print.h and
671 gimple-pretty-print.h.
672 * tree-predcom.c: Include tree-pretty-print.h and
673 gimple-pretty-print.h.
674 * tree-scalar-evolution.c: Include tree-pretty-print.h and
675 gimple-pretty-print.h.
676 * tree-sra.c: Include tree-pretty-print.h.
677 * tree-ssa-address.c: Include tree-pretty-print.h.
678 * tree-ssa-alias.c: Include tree-pretty-print.h.
679 * tree-ssa-ccp.c: Include tree-pretty-print.h and
680 gimple-pretty-print.h.
681 * tree-ssa-coalesce.c: Include tree-pretty-print.h.
682 * tree-ssa-copy.c: Include tree-pretty-print.h and
683 gimple-pretty-print.h.
684 * tree-ssa-copyrename.c: Include tree-pretty-print.h.
685 * tree-ssa-dce.c: Include tree-pretty-print.h and
686 gimple-pretty-print.h.
687 * tree-ssa-dom.c: Include tree-pretty-print.h and
688 gimple-pretty-print.h.
689 * tree-ssa-dse.c: Include gimple-pretty-print.h.
690 * tree-ssa-forwprop.c: Include tree-pretty-print.h.
691 * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
692 * tree-ssa-live.c: Include tree-pretty-print.h and
693 gimple-pretty-print.h.
694 * tree-ssa-loop-im.c: Include tree-pretty-print.h and
695 gimple-pretty-print.h.
696 * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
697 gimple-pretty-print.h.
698 * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
699 gimple-pretty-print.h.
700 * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
701 gimple-pretty-print.h.
702 * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
703 * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
704 * tree-ssa-operands.c: Include tree-pretty-print.h and
705 gimple-pretty-print.h.
706 * tree-ssa-phiprop.c: Include tree-pretty-print.h and
707 gimple-pretty-print.h.
708 * tree-ssa-pre.c: Include tree-pretty-print.h and
709 gimple-pretty-print.h.
710 * tree-ssa-propagate.c: Include gimple-pretty-print.h.
711 * tree-ssa-reassoc.c: Include tree-pretty-print.h and
712 gimple-pretty-print.h.
713 * tree-ssa-sccvn.c: Include tree-pretty-print.h and
714 gimple-pretty-print.h.
715 * tree-ssa-sink.c: Include gimple-pretty-print.h.
716 * tree-ssa-ter.c: Include tree-pretty-print.h and
717 gimple-pretty-print.h.
718 * tree-ssa-uninit.c: Include gimple-pretty-print.h.
719 * tree-ssa.c: Include tree-pretty-print.h and
720 gimple-pretty-print.h.
721 * tree-stdarg.c: Include gimple-pretty-print.h.
722 * tree-switch-conversion.c: Include gimple-pretty-print.h.
723 * tree-tailcall.c: Include tree-pretty-print.h and
724 gimple-pretty-print.h.
725 * tree-vect-data-refs.c: Include tree-pretty-print.h and
726 gimple-pretty-print.h.
727 * tree-vect-loop-manip.c: Include tree-pretty-print.h and
728 gimple-pretty-print.h.
729 * tree-vect-loop.c: Include tree-pretty-print.h and
730 gimple-pretty-print.h.
731 * tree-vect-patterns.c: Include gimple-pretty-print.h.
732 * tree-vect-slp.c: Include tree-pretty-print.h and
733 gimple-pretty-print.h.
734 * tree-vect-stmts.c: Include tree-pretty-print.h and
735 gimple-pretty-print.h.
736 * tree-vectorizer.c: Include tree-pretty-print.h.
737 * tree-vrp.c: Include tree-pretty-print.h and
738 gimple-pretty-print.h.
739 * value-prof.c: Include tree-pretty-print.h and
740 gimple-pretty-print.h.
741 * var-tracking.c: Include tree-pretty-print.h.
742 * Makefile.in (OBJS-common): Add tree-diagnostic.o.
743 (tree-diagnostic.o): New dependencies.
744 (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
745 tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
746 tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
747 tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
748 tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
749 tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
750 tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
751 tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
752 tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
753 tree-ssa-address.o, tree-ssa-loop-niter.o,
754 tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
755 tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
756 tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
757 gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
758 tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
759 tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
760 tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
761 tree-parloops.o, tree-stdarg.o, tree-object-size.o,
762 gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
763 toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
764 ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
765 ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
766 tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
767 tree-switch-conversion.o, var-tracking.o, value-prof.o,
768 cfgexpand.o, pretty-print.o): Update dependencies.
769
42877745 7702010-05-22 Andreas Tobler <andreast@fgznet.ch>
771
772 * tree-ssa-structalias.c: Remove tm_p.h from include.
773
1feb164a 7742010-05-21 Jeff Law <law@redhat.com>
775
776 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
777
f340b9ff 7782010-05-21 Jason Merrill <jason@redhat.com>
779
780 * tree-eh.c (cleanup_is_dead_in): New.
781 (lower_try_finally): Don't generate a dead cleanup region.
782 (lower_cleanup): Likewise.
783
47086a61 7842010-05-21 Jakub Jelinek <jakub@redhat.com>
785
786 PR debug/44223
787 * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
788 unchain each use from the cyclic next_regno_use chain first.
789
dae0b5cb 7902010-05-21 Steven Bosscher <steven@gcc.gnu.org>
791
792 * real: Do not include gmp.h, mpfr.h, and mpc.h.
793 (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
794 (real_value_negate, real_value_abs): New prototypes.
795 (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
796 * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
797 new include file for interface between MPFR and REAL_VALUE_TYPE.
798 * real.c: Include realmpfr.h.
799 (real_arithmetic2): Remove legacy function.
800 (real_value_negate): New.
801 (real_value_abs): New.
802 (mfpr_from_real, real_from_mpfr): Move from here...
803 * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
804 * builtins.c: Include realmpfr.h.
805 * fold-const.c: Include realmpfr.h.
806 (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
807 (fold_negate_const): Likewise.
808 (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
809 * toplev.c: Include realmpfr.h.
810 * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
811 and real_value_negate.
812 * fixed-value.c (check_real_for_fixed_mode): Likewise.
813 * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
814 (vfp3_const_double_index): Likewise.
815 (arm_print_operand): Likewise.
816 * Makefile.in: Update dependencies.
817
76dccead 8182010-05-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
819
820 * config/s390/s390.c (override_options): Increase the default
821 of max-completely-peel-times.
822
d68c2c10 8232010-05-21 Julian Brown <julian@codesourcery.com>
824 Mark Mitchell <mark@codesourcery.com>
825
826 * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
827 sibling calls for Thumb-1.
828 * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
829 * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
830 Thumb-2.
831 (*call_insn, *call_value_insn): Don't use for Thumb-2.
832 (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
833 for Thumb-2.
834 (return): New expander.
835 (*arm_return): New name for ARM return insn.
836 * config/arm/thumb2.md (*thumb2_return): New insn pattern.
837
9afa4711 8382010-05-19 Joel Sherrill <joel.sherrill@oarcorp.com>
839
840 * config.gcc (sparc64-*-rtems*): New target.
841
30b22e1c 8422010-05-21 Nathan Froyd <froydnj@codesourcery.com>
843
844 * tree.c (build_function_decl_skip_args): Fix grammar.
845 (build_function_type_list_1): Fix typos, adjust formatting.
846
a7a46268 8472010-05-21 Steven Bosscher <steven@gcc.gnu.org>
848
849 * tree.h: Include real.h and fixed-value.h as basic datatypes.
850 * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
851 tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
852 tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
853 tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
854 genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
855 tree-pretty-print.c, tree-loop-distribution.c,
856 tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
857 tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
858 tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
859 tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
860 tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
861 tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
862 tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
863 tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
864 tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
865 tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
866 genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
867 tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
868 gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
869 tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
870 tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
871 store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
872 tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
873 tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
874 tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
875 tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
876 fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
877 tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
878 config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
879 config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
880 config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
881 config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
882 config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
883 config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
884 config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
885 config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
886 config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
887 config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
888 config/score/score7.c, config/score/score.c, config/arm/arm.c,
889 config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
890 config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
891 config/bfin/bfin.c:
892 Clean up redundant includes.
893 * Makefile.in: Update accordingly.
894
b67573db 8952010-05-21 Nathan Froyd <froydnj@codesourcery.com>
896
897 PR middle-end/44204
898 * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
899 statement has no arguments.
900
83e170df 9012010-05-21 Kai Tietz <kai.tietz@onevision.com>
902
903 PR/44139
904 * varasm.c (emutls_decl): Merge attributes to new decl.
905
126740ee 9062010-05-21 Eric Botcazou <ebotcazou@adacore.com>
907
908 PR middle-end/44101
909 * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
910 around the uniquized constructor if its type requires a conversion.
911
65138c0f 9122010-05-21 Jakub Jelinek <jakub@redhat.com>
913
914 PR debug/44205
915 * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
916 at -O0 goto_locus of any of the incoming edges differs from
917 goto_locus of outgoing edge, or gimple_location of any of the
918 labels differs.
919
f7ace4bc 9202009-09-14 Vladimir Makarov <vmakarov@redhat.com>
921
922 * ira.c (ira_non_ordered_class_hard_regs): Define.
923 (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
924 * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
925 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
926 cost of unaligned hard regs when allocating multi-reg pseudos.
927
27a909cf 9282010-05-20 Richard Sandiford <rdsandiford@googlemail.com>
929
930 * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
931 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
932 for TARGET_NO_FLOAT.
933 * config/mips/mips.c (mips_file_start): Expand conditional expression
934 into "if" statements. Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
935 (mips_override_options): Move -mno-float override -msoft-float and
936 -mhard-float.
937 * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
938 Condition(TARGET_SUPPORTS_NO_FLOAT).
939 * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
940 __mips_no_float here.
941 (SUBTARGET_OVERRIDE_OPTIONS): Delete.
942 (TARGET_SUPPORTS_NO_FLOAT): Define.
943 * config/mips/sdemtk.opt: Delete.
944
3d9dc642 9452010-05-20 Segher Boessenkool <segher@kernel.crashing.org>
946
947 * ipa-prop.c (compute_complex_ancestor_jump_func): Bail
948 out if !cond.
949
5a079549 9502010-05-20 Uros Bizjak <ubizjak@gmail.com>
951
952 PR target/43733
953 * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
954 * configure: Regenerate.
955 * config.in: Regenerate.
956 * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
957 instead of sahf only for 64bit targets.
958
20f8d64b 9592010-05-20 Jakub Jelinek <jakub@redhat.com>
960
961 PR debug/44178
962 * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
963 setup_ref_regs for DEBUG_INSNs.
964
d3577e1b 9652010-05-20 Jan Hubicka <jh@suse.cz>
966
967 PR middle-end/44197
968 * varpool.c (varpool_remove_node): Handle in-varpool aliases.
969
7496f4ad 9702010-05-20 Kenneth Zadeck <zadeck@naturalbridge.com>
971
972 PR bootstrap/43870
973 * df-scan.c (df_ref_compare): Stabilize sort.
974
cc5f5b98 9752010-05-20 Jakub Jelinek <jakub@redhat.com>
976
977 * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
978 argument. Don't use DW_OP_piece if offset is non-zero,
979 put offset into second DW_OP_bit_piece argument.
980 (dw_sra_loc_expr): Adjust callers. For memory expressions
981 compute offset.
982
ff970143 9832010-05-20 Hans-Peter Nilsson <hp@axis.com>
984
985 PR target/44202
986 * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
987 settings for 16-bit-constant "addo" alternative.
988
626ab854 9892010-05-19 James E. Wilson <wilson@codesourcery.com>
990
ffbf763f 991 * config/mips/mips-dsp.md (add<DSPV:mode>3,
992 mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
993
626ab854 994 PR target/43764
995 * mips.c (mips_call_expr_from_insn): New arg second_call. Set it.
996 (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
997 Use it.
998
0eaaa1b0 9992010-05-19 Joseph Myers <joseph@codesourcery.com>
1000
1001 * diagnostic.c (FLOAT, FFS): Don't undefine.
1002 * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
1003 * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
1004 include ordering.
1005
42a4b11f 10062010-05-19 Richard Sandiford <rdsandiford@googlemail.com>
1007
1008 * combine.c (propagate_for_debug): Call make_compound_operation
1009 on the source value.
1010 (try_combine): When implementing a split chosen by find_split_point,
1011 either copy i2src or set it to null. Assert that i2src is not null
1012 before substituting into CALL_INSN_FUNCTION_USAGE.
1013
c5083e8b 10142010-05-19 Anatoly Sokolov <aesok@post.ru>
1015
1016 * double-int.h (double_int_ior): New function.
1017 * tree.h (build_int_cst_wide_type): Remove.
1018 * tree.c (build_int_cst_wide_type): Remove.
1019 * fold-const.c (native_interpret_int): Use double_int_to_tree instead
1020 of build_int_cst_wide_type.
1021 * stor-layout.c (set_sizetype): (Ditto.).
1022 * dojump.c (do_jump): Use build_int_cstu instead of
1023 build_int_cst_wide_type.
1024
f96dd706 10252010-05-19 Eric Botcazou <ebotcazou@adacore.com>
1026
1027 * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
1028 * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
1029 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
1030 * gimplify.c: (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
1031 TARGET_EXPR nodes, but only once, if instructed to do so. Do not
1032 propagate the 'data' argument to copy_tree_r.
1033 (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
1034 Propagate 'data' argument to walk_tree.
1035 (copy_if_shared): New function.
1036 (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
1037 (unmark_visited): New function.
1038 (unshare_body): Call copy_if_shared instead of doing it manually.
1039 (unvisit_body): Call unmark_visited instead of doing it manually.
1040
97d67146 10412010-05-19 Nathan Froyd <froydnj@codesourcery.com>
1042
1043 * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
1044 (hook_tree_tree_int_treep_bool_null): ...this. Update signature.
1045 * hooks.c: Likewise.
1046 * target-def.h (TARGET_FOLD_BUILTIN): Define to
1047 hook_tree_tree_int_treep_bool_null.
1048 * target.h: (struct gcc_target): Update signature of fold_builtin
1049 field.
1050 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
1051 * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
1052 instead of the call expression.
1053 (fold_builtin_call_array): Pass n and argarray directly.
1054 (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
1055 consing a list.
1056 * config/alpha/alpha.c (alpha_fold_builtin): Update signature. Lift
1057 MAX_ARGS check out of the loop. Delete declaration of `arity', declare
1058 `i' and use it in place of `arity'.
1059 * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
1060 Dereference `args' directly.
1061 * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
1062
4e7c6e48 10632010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1064
1065 * doc/sourcebuild.texi (Effective-Target Keywords): Document
1066 3dnow, sse3, sse2.
1067 (Directives): Document optional dg-require-effective-target
1068 selector.
1069
e35f74d5 10702010-05-19 Richard Guenther <rguenther@suse.de>
1071
1072 PR lto/44196
1073 * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
1074
cba6710d 10752010-05-19 Richard Guenther <rguenther@suse.de>
1076
1077 * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
1078 * common.opt (fwhopr=): New.
1079 * opts.c (common_handle_option): Handle OPT_fwhopr.
1080 * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
1081 * collect2.c (main): Match -fwhopr*.
1082 * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
1083 Execute ltrans stage in parallel when jobs is bigger than 1.
1084
05157f42 10852010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1086
1087 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
1088 pentiumpro on Solaris 8/x86 with Sun as.
1089 * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
1090 hidden alias bug.
1091 (gcc_cv_as_ix86_quad): Check for .quad directive.
1092 * configure: Regenerate.
1093 * config.in: Regenerate.
1094 * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
1095
7115ea05 10962010-05-19 Martin Jambor <mjambor@suse.cz>
1097
1098 * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
1099 also for indirect edges. Actual printing moved...
1100 (ipa_print_node_jump_functions_for_edge): ...here.
1101 (ipa_compute_jump_functions): Renamed to
1102 ipa_compute_jump_functions_for_edge and made static.
1103 (ipa_compute_jump_functions): New function.
1104 (make_edge_direct_to_target): Check if the number of arguments on
1105 the newly direct edge is the same as the number of parametrs of
1106 the callee.
1107 * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
1108 ipa_compute_jump_functions. Call ipa_analyze_params_uses.
1109 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1110 analysis functions unconditionally, call the new
1111 ipa_analyze_params_uses on the node instead of every edge.
1112
81d2a38f 11132010-05-19 Christian Borntraeger <borntraeger@de.ibm.com>
1114
908a94fd 1115 * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
81d2a38f 1116 to tree.
908a94fd 1117 (dump_mem_ref): Adopt debug code to handle a tree as step. This
81d2a38f 1118 also checks for a constant int vs. non-constant but
1119 loop-invariant steps.
908a94fd 1120 (find_or_create_group): Change the sort algorithm to only consider
81d2a38f 1121 steps that are constant ints.
908a94fd 1122 (idx_analyze_ref): Adopt code to handle a tree instead of a
81d2a38f 1123 HOST_WIDE_INT for step.
908a94fd 1124 (gather_memory_references_ref): Handle tree instead of int and be
81d2a38f 1125 prepared to see a NULL_TREE.
908a94fd 1126 (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
81d2a38f 1127 prefetches if the step cannot be calculated at compile time.
908a94fd 1128 (issue_prefetch_ref): Issue prefetches for non-constant but
81d2a38f 1129 loop-invariant steps.
1130
578fcce9 11312010-05-18 Nathan Froyd <froydnj@codesourcery.com>
1132
1133 Revert:
1134 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
1135
1136 * tree.h (build_call_list): Remove.
1137 * tree.c (build_call_list): Remove.
1138
8ce39042 11392010-05-18 Nathan Froyd <froydnj@codesourcery.com>
1140
1141 * tree.h (build_call_list): Remove.
1142 * tree.c (build_call_list): Remove.
1143
2ebf562c 11442010-05-18 Jan Hubicka <jh@suse.cz>
1145
1146 * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
1147
3a16ebc2 11482010-05-18 Vladimir Makarov <vmakarov@redhat.com>
1149
1150 PR rtl-optimization/43332
1151 * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
1152
d3bd87c3 11532010-05-18 Anatoly Sokolov <aesok@post.ru>
1154
1155 * tree.h (build_int_cstu): Implement as static inline.
1156 * tree.c (build_int_cstu): Remove function.
1157 (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
1158 sign extended.
1159
c8c65e07 11602010-05-18 Richard Guenther <rguenther@suse.de>
1161
1162 PR lto/44143
1163 * lto-wrapper.c (verbose): New variable. Initialize from -v.
1164 (debug): Initialize from -save-temps.
1165 (collect_execute): Print command-line when verbose.
1166 (run_gcc): Always use COLLECT_GCC_OPTIONS. Use fork_execute
1167 for ltrans invocation. Produce -dumpbase flag again.
1168 (process_args): Remove.
1169 (main): Simplify.
1170 * collect2.c (maybe_run_lto_and_relink): Only pass object
1171 files to lto-wrapper.
1172 * gcc.c (LINK_COMMAND_SPEC): Likewise.
1173
28918f8e 11742010-05-18 Jan Hubicka <jh@suse.cz>
1175
1176 * opts.c (decode_options): Do not disable whopr at ipa_cp.
1177 * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
1178
897f9d25 11792010-05-18 Steven Bosscher <steven@gcc.gnu.org>
1180
1181 PR lto/44184
1182 * lto-streamer-out.c (output_gimple_stmt): Output number of labels
1183 in a GIMPLE_ASM.
1184 * lto-streamer-in.c (input_gimple_stmt): Read number of labels
1185 in a GIMPLE_ASM.
1186
4b32df91 11872010-05-18 Jakub Jelinek <jakub@redhat.com>
1188
1189 PR debug/41371
1190 * var-tracking.c (find_loc_in_1pdv): Add a few checks from
1191 rtx_equal_p inline.
1192
f64b48e2 11932010-05-18 Steven Bosscher <steven@gcc.gnu.org>
1194
1195 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
1196 lto-macho as lto_binary_reader.
1197
1198 * darwin.c (darwin_asm_named_section): Do not add assembler comment
1199 after .section directive; just print it before the directive instead.
1200
a510bd8d 12012010-05-17 Jan Hubicka <jh@suse.cz>
1202
1203 * cgraph.c (cgraph_create_virtual_clone): Only check
1204 versionable_function_p when not in wpa and checking is enabled.
1205 * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
1206 there are no more functions to materialize.
1207
1bf41320 12082010-05-17 Jan Hubicka <jh@suse.cz>
1209
1210 * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
1211 * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
1212 New functions.
1213 (output_cgraph): Call output_cgraph_opt_summary.
1214 (input_cgrpah): Call input_cgraph_opt_summary.
1215 (output_cgraph_opt_summary_p, output_node_opt_summary,
1216 input_node_opt_summary, input_cgraph_opt_section): New functions.
1217 * lto-section-in.c (lto_section_name): Add cgraphopt.
1218 * tree-inline.c (tree_function_versioning): Handle parm_num.
1219 * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
1220 * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
1221
016efb93 12222010-05-17 Changpeng Fang <changpeng.fang@amd.com>
1223
1224 * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
1225 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
1226 the insn to prefetch ratio heuristic to loops with known trip count.
1227
c0a0de5e 12282010-05-17 Changpeng Fang <changpeng.fang@amd.com>
1229
1230 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
1231 (schedule_prefetches): Do not generate a prefetch if the unroll factor
1232 is far from what is required by the prefetch.
1233
bc1b408a 12342010-05-17 Jan Hubicka <jh@suse.cz>
1235
1236 * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
1237 (ipcp_estimate_growth): Likewise.
1238 (ipcp_const_param_count): Likewise.
1239 (ipcp_insert_stage): Likewise.
1240 * ipa-prop.c (visit_load_for_mod_analysis): New function.
1241 (visit_store_addr_for_mod_analysis): Set used flag.
1242 (ipa_detect_param_modifications): Set used flag for SSE params;
1243 update use of walk_stmt_load_store_addr_ops.
1244 (ipa_print_node_params): Print used flag.
1245 (ipa_write_node_info): Stream used flag.
1246 (ipa_read_node_info): Likewise.
1247 * ipa-prop.h (struct ipa_param_descriptor): Add used field.
1248 (ipa_is_param_used): New function.
1249 (lto_ipa_fixup_call_notes): Remove unused declaration.
1250
fa1a7502 12512010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1252
1253 PR target/44074
1254 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
1255 * configure: Regenerate.
1256 * config.in: Regenerate.
908a94fd 1257 * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
fa1a7502 1258 !HAVE_AS_IX86_REP_LOCK_PREFIX.
1259 Don't emit whitespace.
1260 * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
1261 (*rep_movsi): Likewise.
1262 (*rep_movsi_rex64): Likewise.
1263 (*rep_movqi): Likewise.
1264 (*rep_movqi_rex64): Likewise.
1265 (*rep_stosdi_rex64): Likewise.
1266 (*rep_stossi): Likewise.
1267 (*rep_stossi_rex64): Likewise.
1268 (*rep_stosqi): Likewise.
1269 (*rep_stosqi_rex64): Likewise.
1270 (*cmpstrnqi_nz_1): Use {%;} after repz.
1271 (*cmpstrnqi_nz_rex_1): Likewise.
1272 (*cmpstrnqi_1): Likewise.
1273 (*cmpstrnqi_rex_1): Likewise.
1274 (*strlenqi_1): Use {%;} after repnz.
1275 (*strlenqi_rex_1): Likewise.
1276 * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
1277 (*sync_compare_and_swap<mode>): Likewise.
1278 (sync_double_compare_and_swap<mode>): Likewise.
1279 (*sync_double_compare_and_swapdi_pic): Likewise.
1280 (sync_old_add<mode>): Likewise.
1281 (sync_add<mode>): Likewise.
1282 (sync_sub<mode>): Likewise.
1283 (sync_<code><mode>): Likewise.
1284
6378ffb3 12852010-05-17 Martin Jambor <mjambor@suse.cz>
1286
1287 * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
1288 otr_token and polymorphic.
1289 * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
1290 (cgraph_clone_edge): Copy the above fields.
1291 * tree.c (get_binfo_at_offset): New function.
1292 * tree.h (get_binfo_at_offset): Declare.
1293 * ipa-prop.h (enum jump_func_type): Added known_type jump function
1294 type, reordered items, updated comments.
1295 (union jump_func_value): Added base_type field, reordered fields.
1296 (enum ipa_lattice_type): Moved down in the file.
1297 (struct ipa_param_descriptor): New field polymorphic.
1298 (ipa_is_param_polymorphic): New function.
1299 * ipa-prop.c: Include gimple.h and gimple-fold.h.
1300 (ipa_print_node_jump_functions): Print known type jump functions.
1301 (compute_complex_pass_through): Renamed to...
1302 (compute_complex_assign_jump_func): this.
1303 (compute_complex_ancestor_jump_func): New function.
1304 (compute_known_type_jump_func): Likewise.
1305 (compute_scalar_jump_functions): Create known type and complex ancestor
1306 jump functions.
1307 (ipa_note_param_call): New parameter polymorphic, set the corresponding
1308 flag in the call note accordingly.
1309 (ipa_analyze_call_uses): Renamed to...
1310 (ipa_analyze_indirect_call_uses): this. New parameter target, define
1311 variable var only in the block where it is used.
1312 (ipa_analyze_virtual_call_uses): New function.
1313 (ipa_analyze_call_uses): Likewise.
1314 (combine_known_type_and_ancestor_jfs): Likewise.
1315 (update_jump_functions_after_inlining): Implemented handling of a
1316 number of new jump function types combination.
1317 (print_edge_addition_message): Removed.
1318 (make_edge_direct_to_target): New function.
1319 (try_make_edge_direct_simple_call): Likewise.
1320 (try_make_edge_direct_virtual_call): Likewise.
1321 (update_call_notes_after_inlining): Renamed to...
1322 (update_indirect_edges_after_inlining): this. Moved edge creation for
1323 indirect calls to try_make_edge_direct_simple_call, also calls
1324 try_make_edge_direct_virtual_call for virtual calls.
1325 (ipa_print_node_params): Changed the header message.
1326 (ipa_write_jump_function): Stream also known type jump functions.
1327 (ipa_read_jump_function): Likewise.
1328 (ipa_write_indirect_edge_info): Stream new fields in
1329 cgraph_indirect_call_info.
1330 (ipa_read_indirect_edge_info): Likewise.
1331 * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
1332 GIMPLE_FOLD_H.
1333
f2310de3 13342010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1335
1336 * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
1337
432093e5 13382010-05-17 Nathan Froyd <froydnj@codesourcery.com>
1339
1340 * tree.h (CALL_EXPR_ARGS): Delete.
1341 (call_expr_arglist): Delete.
1342 * tree.c (call_expr_arglist): Delete.
1343 * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
1344 targetm.fold_builtin.
1345 * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
1346 Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
1347 * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
1348 arglist parameter. Use CALL_EXPR_ARG.
1349 (picochip_expand_builtin_3op): Likewise.
1350 (picochip_expand_builtin_2opvoid): Likewise.
1351 (picochip_expand_array_get): Likewise.
1352 (picochip_expand_array_put): Likewise.
1353 (picochip_expand_array_testport): Likewise.
1354 (picochip_expand_builtin): Don't call CALL_EXPR_ARGS. Pass exp
1355 rather than arglist.
1356 * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
1357 CALL_EXPR_ARGS.
1358 * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
1359 than TREE_VALUE and TREE_CHAIN.
1360 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
1361 * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
1362 the arglist.
1363
625a1adc 13642010-05-17 Jakub Jelinek <jakub@redhat.com>
1365
febcf1b8 1366 PR bootstrap/42347
1367 * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
1368 to have no fallthru edge.
1369
625a1adc 1370 PR middle-end/44102
1371 * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
1372 bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
1373 mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
1374 add BARRIER after previous bb if needed.
1375
e1036019 13762010-05-17 Nathan Froyd <froydnj@codesourcery.com>
908a94fd 1377
e1036019 1378 * tree.c (build_function_type_list_1): Remove bogus assert condition.
908a94fd 1379
d33dc3b0 13802010-05-17 Alan Modra <amodra@gmail.com>
1381
1382 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
1383 unnecessary prototype. Replace copy_r12 and copy_r11 flag params
1384 with copy_reg rtx param.
1385 (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
1386 Correct cases where code for ABI_V4 did not initialise the reg
1387 used to access frame. Also leave frame_reg_rtx as sp for large
1388 frames that save no regs.
1389
c29a2c24 13902010-05-17 Martin Jambor <mjambor@suse.cz>
1391
1392 PR middle-end/44133
1393 * tree-sra.c (create_access_replacement): New parameter rename, mark
1394 the replaement for renaming only when it is true.
1395 (get_access_replacement): Pass true in the rename parameter of
1396 create_access_replacement.
1397 (get_unrenamed_access_replacement): New function.
1398 (replace_uses_with_default_def_ssa_name): New parameter racc, get the
1399 replacement declaration from it.
1400
43165fe4 14012010-05-17 Bernd Schmidt <bernds@codesourcery.com>
1402
1403 * function.c (try_fit_stack_local, add_frame_space): New static
1404 functions.
1405 (assign_stack_local_1): Use them. Look for opportunities to use
1406 space previously wasted on alignment.
1407 * function.h (struct frame_space): New.
1408 (struct rtl_data): Add FRAME_SPACE_LIST member.
1409 * reload1.c (something_was_spilled): New static variable.
1410 (alter_reg): Set it.
1411 (reload): Test it in addition to testing if the frame size changed.
1412
d80deb0a 14132010-05-17 Christian Borntraeger <borntraeger@de.ibm.com>
1414
908a94fd 1415 * config/s390/s390.c: Define sane prefetch settings and activate
1416 flag_prefetch_loop_arrays on -O3.
1417 * config/s390/s390.h: Declare that read can use write prefetch.
d80deb0a 1418
d4ebb40e 14192010-05-17 Jakub Jelinek <jakub@redhat.com>
1420
1421 * lto-streamer-out.c (lto_output): Fix --enable-checking=release
1422 build.
1423
70a8f5ac 14242010-05-16 Jan Hubicka <jh@suse.cz>
1425
1426 * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
1427 function body; do not check stdarg field of struct function.
1428
c8ae5ac2 14292010-05-16 Jan Hubicka <jh@suse.cz>
1430
1431 * cgraph.c (dump_cgraph_node): Dump versionable flag.
1432 * cgraph.h (cgraph_local_info): Add versionable flag.
1433 * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
1434 (ipcp_versionable_function_p): Use it.
1435 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
1436 versionable flag.
1437
02b2818c 14382010-05-16 Jan Hubicka <jh@suse.cz>
1439
1440 * cgraph.c (cgraph_clone_node): Take decl argument and insert
1441 clone into hash when it is different from orig.
1442 (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
1443 * cgraph.h (cgraph_clone_node): Update prototype.
1444 * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
1445 (lto_cgraph_encoder_delete): Delete body map.
1446 (lto_cgraph_encoder_size): Move to header.
c8ae5ac2 1447 (lto_cgraph_encoder_encode_body_p,
1448 lto_set_cgraph_encoder_encode_body): New.
02b2818c 1449 (lto_output_node): Do not take written_decls argument; output clone_of
1450 pointer.
1451 (add_node_to): Add include_body_argument; call
1452 lto_set_cgraph_encoder_encode_body on master of the clone.
1453 (add_references): Update use of add_node_to.
1454 (compute_ltrans_boundary): Likewise.
1455 (output_cgraph): Do not create written_decls bitmap.
1456 (input_node): Take nodes argument; stream in clone_of correctly.
1457 (input_cgraph_1): Update use of input_node.
1458 * lto-streamer-out.c (lto_output): Use encoder info to decide
1459 what bodies to output.
1460 * ipa-inline.c (cgraph_clone_inlined_nodes,
1461 cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
1462 * lto-streamer.h (lto_cgraph_encoder_d): Add body.
1463 (lto_cgraph_encoder_size): Define here.
1464 (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
1465 Declare.
1466
d67e4f04 14672010-05-16 Richard Guenther <rguenther@suse.de>
1468
1469 * doc/invoke.texi (-fipa-struct-reorg): Do not mention
1470 -fipa-type-escape.
1471 * ipa-type-escape.c (gate_type_escape_vars): Run when
1472 -fipa-struct-reorg runs.
1473 * opts.c (decode_options): Do not unset flag_ipa_type_escape.
1474 * common.opt (fipa-type-escape): Remove.
1475
30a50b60 14762010-05-16 Eric Botcazou <ebotcazou@adacore.com>
1477
1478 * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
1479 (decode_options): Likewise.
1480 * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
1481
3e7743d4 14822010-05-16 Jan Hubicka <jh@suse.cz>
1483
1484 * ipa.c (function_and_variable_visibility): Also bring local all
1485 aliases.
1486
b50c6e49 14872010-05-16 Richard Guenther <rguenther@suse.de>
1488
1489 * alias.c (nonoverlapping_memrefs_p): Remove use of
1490 IPA type-escape information.
1491
f80e7755 14922010-05-16 Joseph Myers <joseph@codesourcery.com>
1493
1494 * c-common.c (c_common_reswords): Add _Static_assert for C.
1495 * c-parser.c (c_token_starts_declaration,
1496 c_parser_next_token_starts_declaration,
1497 c_parser_static_assert_declaration_no_semi,
1498 c_parser_static_assert_declaration): New.
1499 (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
1500 Handle static assertions if static_assert_ok.
1501 (c_parser_external_declaration, c_parser_declaration_or_fndef,
1502 c_parser_compound_statement_nostart, c_parser_label,
1503 c_parser_for_statement, c_parser_objc_methodprotolist,
1504 c_parser_omp_for_loop): All callers of
1505 c_parser_declaration_or_fndef changed.
1506 (c_parser_struct_declaration): Handle static assertions.
1507 (c_parser_compound_statement_nostart): Use
1508 c_parser_next_token_starts_declaration and
1509 c_token_starts_declaration to detect start of declarations.
1510 (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
1511 Likewise.
1512
b600778c 15132010-05-16 Anatoly Sokolov <aesok@post.ru>
1514
1515 * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
1516 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
1517 * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1518 TARGET_FUNCTION_VALUE_REGNO_P): Define.
1519 (mmix_function_outgoing_value): Rename to...
1520 (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
1521 (mmix_function_value_regno_p): Make static.
1522 (mmix_libcall_value): New function.
1523 * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
1524 mmix_function_value_regno_p): Remove declaration.
1525
06a0401b 15262010-05-16 Eric Botcazou <ebotcazou@adacore.com>
1527
1528 * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
1529 BUILT_IN_ALLOCA if stack checking is enabled.
1530
a868678a 15312010-05-16 Richard Guenther <rguenther@suse.de>
1532
1533 * var-tracking.c (vars_copy_1): Inline ...
1534 (vars_copy): ... here. Use FOR_EACH_HTAB_ELEMENT.
1535 (variable_union): Use FOR_EACH_HTAB_ELEMENT. Merge asserts.
1536 (variable_merge_over_cur): Adjust. Merge asserts.
1537 (variable_merge_over_src): Likewise.
1538 (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
1539 (variable_post_merge_new_vals): Merge asserts.
1540 (variable_post_merge_perm_vals): Likewise.
1541 (find_mem_expr_in_1pdv): Likewise.
1542 (dataflow_set_different_value): Remove.
1543 (onepart_variable_different_p): Merge asserts.
1544 (variable_different_p): Likewise.
1545 (dataflow_set_different_1): Inline ...
1546 (dataflow_set_different): ... here. Use FOR_EACH_HTAB_ELEMENT.
1547 (emit_notes_for_differences_1): Merge asserts.
1548
4bdd2942 15492010-05-16 Richard Guenther <rguenther@suse.de>
1550
1551 * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
1552 * optabs.c (libfunc_decl_hash): Likewise.
1553 * varasm.c (emutls_decl): Likewise.
1554
49c7f2ee 15552010-05-16 Steven Bosscher <steven@gcc.gnu.org>
1556
1557 * c-decl.c: Don't include gimple.h.
1558 (merge_decls): Do not copy gimple_body.
1559
54f6ea65 15602010-05-15 Jason Merrill <jason@redhat.com>
1561
1562 * c.opt: Add -fnothrow-opt.
1563
7c1a227e 15642010-05-15 Jan Hubicka <jh@suse.cz>
1565
06a0401b 1566 * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
1567 analyzed.
7c1a227e 1568 * passes.c (ipa_write_summaries): Write all analyzed nodes.
1569
115133dd 15702010-05-15 Steven Bosscher <steven@gcc.gnu.org>
1571
1572 * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
1573 * Makefile.in: Add it.
1574 Fix all other Makefile dependencies for changes below.
1575 * tree.h: Include it instead of defining VEC primitives here.
1576 * gimple.h: Likewise.
1577 * rtl.h: Likewise.
1578 * tree-inline.h: Inlclude vecir.h instead of gimple.h.
1579 * except.h: Include vecir.h, break dependence on tree.h.
1580
1581 * gimplify.c (append_to_statement_list_1, append_to_statement_list):
1582 Move from here...
1583 * tree-iterator.c: ...to here.
1584 * tree-iterator.h: Fix file introduction comment. Add extern markers.
1585
1586 * c-lex.c: Include fixed-value.h instead of rtl.h. Do not include
1587 tm_p.h.
1588 * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
1589 * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
1590 integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
1591 tree-mudflap.h, and target.h.
1592 * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
1593 predict.h, tree-inline.h, gimple.h, and langhooks.h.
1594 * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
1595 Add FIXME for why gimple.h is still included (should be unnecessary
1596 since GCC 4.5 gimplification unit-at-a-time).
1597 * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
1598 * c-pragma.c: Add FIXME for why function.h needs to be included just
1599 for cfun, at front-end level.
1600 Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
1601 Do not include ggc.h, but include vecprim.h for VEC(char).
1602 * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
1603 Explain why target.h is included.
1604 * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
1605 Explain why gimple.h is included.
1606 * c-ppoutput.c: Do not include tm.h.
1607 * c-common.c: Do not include gimple.h. Explain why expr.h is included.
1608 * c-parses.c: Explain why rtl.h is included, and that this (and only
1609 this) is also why tm.h must be included.
1610 Do not include except.h.
1611 * c-lang.c: Do not include ggc.h.
1612
a3fd2b64 16132010-05-15 Uros Bizjak <ubizjak@gmail.com>
1614
1615 * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
1616
afb3d3c4 16172010-05-15 Joseph Myers <joseph@codesourcery.com>
1618
1619 * c-decl.c (grokfield): Allow typedefs for anonymous structs and
1620 unions by default if those structs and unions have no tags. Do
1621 not condition anonymous struct and unions handling on flag_iso.
1622 Allow anonymous structs and unions for C1X.
1623 (finish_struct): Do not diagnose lack of named fields when
1624 anonymous structs and unions present for C1X. Accept flexible
1625 array members in structure with anonymous structs or unions but no
1626 directly named fields.
1627 * doc/extend.texi (Unnamed Fields): Update.
1628
a1072234 16292010-05-15 Eric Botcazou <ebotcazou@adacore.com>
1630
1631 * gimple.h (compare_field_offset): Rename into...
1632 (gimple_compare_field_offset): ...this.
1633 * gimple.c (compare_field_offset): Rename into...
1634 (gimple_compare_field_offset): ...this. Compare the full access if
1635 the offset is self-referential.
1636 (gimple_types_compatible_p): Adjust for above renaming.
1637 * lto-streamer-in.c (input_gimple_stmt): Likewise. Also compare the
1638 DECL_NONADDRESSABLE_P flag of fields before merging them.
1639
7858b562 16402010-05-15 Nathan Froyd <froydnj@codesourcery.com>
1641
1642 * tree.h (ctor_to_list): Delete.
1643 * tree.c (ctor_to_list): Delete.
1644
d97be713 16452010-05-15 Jan Hubicka <jh@suse.cz>
1646
1647 * ipa-reference.c: Include toplev.h
1648 (is_proper_for_analysis): Only add to all_module_statics
1649 if it is allocated.
1650 (write_node_summary_p, stream_out_bitmap,
1651 ipa_reference_write_optimization_summary,
1652 ipa_reference_read_optimization_summary): New.
1653 (struct ipa_opt_pass_d pass_ipa_reference): Add
1654 optimization summary streaming.
a3fd2b64 1655 * lto-cgraph.c (referenced_from_this_partition_p,
d97be713 1656 reachable_from_this_partition_p): New functions.
1657 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1658 call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
1659 * opts.c (decode_options): Enable ipa_reference.
1660 * Makefile.in (ipa-reference.o): Add toplev.h dependency.
1661 * lto-streamer.h (referenced_from_this_partition_p,
1662 reachable_from_this_partition_p): Declare.
1663
8f71200d 16642010-05-15 Richard Guenther <rguenther@suse.de>
1665
1666 PR tree-optimization/44038
1667 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
1668 taking the address of a V_C_E of a constant.
1669
db5a3693 16702010-05-14 Jan Hubicka <jh@suse.cz>
1671
1672 * tree.h (memory_identifier_string): Remove.
1673 * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
1674 (ipa_reference_global_vars_info_d): Remove statics_not_read and
1675 statics_not_written.
1676 (ipa_reference_optimization_summary_d): New structure.
1677 (ipa_reference_optimization_summary_t): New type and vector.
1678 (ipa_reference_vars_info_d): Embedd structures instead of using
1679 pointers.
1680 (reference_vars_to_consider): Remove out of GGC space.
1681 (module_statics_escape): Remove.
1682 (global_info_obstack): Rename to ...
1683 (optimization_summary_obstack): ... this one.
1684 (initialization_status_t): Remove.
1685 (memory_identifier_string): Remove.
1686 (get_reference_vars_info): Fix indenting.
1687 (set_reference_vars_info): Likewise.
1688 (get_reference_optimization_summary): New.
1689 (set_reference_optimization_summary): New.
1690 (get_global_reference_vars_info): Remove.
1691 (ipa_reference_get_read_global): Remove.
1692 (ipa_reference_get_written_global): Remove.
1693 (ipa_reference_get_not_read_global): Update.
1694 (ipa_reference_get_not_written_global): Update.
1695 (is_proper_for_analysis): Outlaw addressable.
1696 (propagate_bits): Update for new datastructures.
1697 (analyze_variable): Remove.
1698 (init_function_info): Update for new datastructures.
1699 (clean_function_local_data): Remove.
1700 (clean_function): Remove.
1701 (copy_global_bitmap): Use optimizations_summary_obstack.
1702 (duplicate_node_data): Duplicate optimization summary only.
1703 (remove_node_data): Remove optimization summary only.
1704 (generate_summary): Do not analyze variables; do not compute
1705 module_statics_escape; do not prune solutions by it.
1706 (read_write_all_from_decl): Fix typos in comments.
1707 (propagate): Doscover readonly and nonaddressable first;
1708 update for new datastructures; share global bitmaps.
1709 * ipa-reference.h (ipa_reference_get_read_global,
1710 ipa_reference_get_written_global): Remove.
1711 * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
1712 * Makefile.in: Remove ipa-refereference from GT files.
1713
f00c0191 17142010-05-14 Jakub Jelinek <jakub@redhat.com>
1715
1716 PR debug/44112
1717 * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
1718 for all SYMBOL_REF_DECLs.
1719
8dfbf71d 17202010-05-14 Jan Hubicka <jh@suse.cz>
1721
1722 * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
1723 (varpool_all_refs_explicit_p): New inline function.
1724 * ipa-reference.c: Update comment.
1725 (module_statics_written): Remove.
1726 (get_static_decl): Remove.
1727 (ipa_init): Do not initialize module_statics_written.
1728 (analyze_function): Likewise.
1729 (generate_summary): Likewise; do not compute module_statics_readonly
1730 and do not update variable flags.
1731 (propagate): Call ipa_discover_readonly_nonaddressable_vars.
1732 * ipa.c: Inlucde flags.h
1733 (cgraph_local_node_p): New.
1734 (cgraph_remove_unreachable_nodes): Return early when not optimizing;
1735 promote functions to local.
1736 (ipa_discover_readonly_nonaddressable_vars): New function.
1737 (function_and_variable_visibility): Use cgraph_local_node_p.
1738 * varpool.c (varpool_finalize_decl): Set force_output for
1739 DECL_PRESERVE_P vars.
1740
97274085 17412010-05-14 Jan Hubicka <jh@suse.cz>
1742
1743 * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
1744
b0834cc0 17452010-05-14 Richard Guenther <rguenther@suse.de>
1746
1747 PR tree-optimization/44119
1748 * tree-ssa-pre.c (eliminate): Properly mark replacement of
1749 a PHI node necessary.
1750
f8b3db21 17512010-05-14 Eric Botcazou <ebotcazou@adacore.com>
1752
1753 * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
1754
73bb17ce 17552010-05-14 Jason Merrill <jason@redhat.com>
1756
1d3f675f 1757 PR c++/44127
1758 * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
1759 (gimple_call_set_nothrow): New.
1760 * gimple.c (gimple_build_call_from_tree): Call it.
1761 (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
1762
73bb17ce 1763 PR c++/44127
1764 * gimplify.c (gimplify_seq_add_stmt): No longer static.
1765 * gimple.h: Declare it.
1766 * gimple.c (gimple_build_eh_filter): No ops.
1767
9da87cb8 17682010-05-14 Jan Hubicka <jh@suse.cz>
1769
1770 * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
1771 nodes already in queue.
f8b3db21 1772 (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
1773 re-enqueueing node.
9da87cb8 1774
37cd7b09 17752010-05-14 Jakub Jelinek <jakub@redhat.com>
1776
1777 PR debug/44136
1778 * cfgexpand.c (expand_debug_expr): If non-memory op0
1779 has BLKmode, return NULL.
1780
6fc76bb0 17812010-05-14 Harsha Jagasia <harsha.jagasia@amd.com>
1782
1783 * config.gcc: Add support for --with-cpu option for bdver1.
1784 * config/i386/i386.h (TARGET_BDVER1): New macro.
1785 (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
1786 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
1787 (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
1788 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
1789 Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
1790 (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
1791 (processor_type): Add PROCESSOR_BDVER1.
1792 * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
1793 processor_type in config/i386/i386.h.
1794 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
1795 movaps <reg, reg> instead of movapd <reg, reg> when replacing
1796 movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
1797 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
1798 to emit packed xor instead of packed double/packed integer
1799 xor for SSE and AVX when moving a zero value.
f8b3db21 1800 * config/i386/sse.md: Add check for
1801 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
1802 movapd/movdqa for SSE and AVX.
1803 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
1804 single logical operations i.e and, or and xor instead of packed double
1805 logical operations for SSE and AVX.
a3fd2b64 1806 * config/i386/i386-c.c (ix86_target_macros_internal):
1807 Add PROCESSOR_BDVER1.
6fc76bb0 1808 * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
1809 (has_fma4, has_xop): New.
1810 * config/i386/i386.c (bdver1_cost): New variable.
1811 (m_BDVER1): New macro.
1812 (m_AMD_MULTIPLE): Add m_BDVER1.
1813 (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
f8b3db21 1814 x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
1815 x86_tune_use_simode_fiop, x86_tune_promote_qimode,
1816 x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
1817 x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
1818 x86_tune_sse_partial_reg_dependency,
1819 x86_tune_sse_unaligned_load_optimal,
1820 x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
1821 x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
1822 x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
1823 x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
1824 x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
6fc76bb0 1825 Enable/disable for bdver1.
1826 (processor_target_table): Add bdver1_cost.
1827 (cpu_names): Add bdver1.
1828 (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
1829 processor_alias_table.
f8b3db21 1830 (ix86_expand_vector_move_misalign): Change.
1831 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
1832 Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
1833 Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
1834 of movupd/movdqu for SSE and AVX.
6fc76bb0 1835 (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
1836 (ix86_tune_adjust_cost): Add code for bdver1.
1837 (standard_sse_constant_opcode): Add check for
1838 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
1839 of packed double xor for SSE and AVX.
1840
3a413729 18412010-05-14 Pat Haugen <pthaugen@us.ibm.com>
1842
1843 * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
1844 result to unsigned.
1845
2a95155a 18462010-05-14 Tristan Gingold <gingold@adacore.com>
1847
1848 * toplev.c (default_debug_hooks): Remove this variable.
1849 (process_options): Remove assignments to default_debug_hooks.
1850
2b5b3ca3 18512010-05-14 Martin Jambor <mjambor@suse.cz>
1852
1853 * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
1854 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
1855 * langhooks.h (struct lang_hooks_for_decls): Removed field
1856 fold_obj_type_ref.
1857 * tree.c (free_lang_data): Remove assignment to
1858 lang_hooks.fold_obj_type_ref.
1859 * tree.def (OBJ_TYPE_REF): Update comment.
1860
888b74b6 18612010-05-14 Richard Guenther <rguenther@suse.de>
1862
1863 PR tree-optimization/44124
1864 * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
1865
cdabd5b2 18662010-05-14 Alan Modra <amodra@gmail.com>
1867
1868 PR target/44075
1869 * config/rs6000/rs6000.c (struct machine_function): Reorder
1870 fields for better packing. Add lr_save_state.
1871 (rs6000_ra_ever_killed): Return lr_save_state if set.
1872 (rs6000_emit_eh_reg_restore): Set lr_save_state.
1873
97db846f 18742010-05-13 Jan Hubicka <jh@suse.cz>
1875
1876 * varpool.c (decide_is_variable_needed): Drop code checking
1877 TREE_SYMBOL_REFERENCED.
1878
0b49f8f8 18792010-05-13 Jan Hubicka <jh@suse.cz>
1880
1881 * final.c (output_addr_const): Do not call mark_decl_referenced.
1882 * cgraphunit.c (process_function_and_variable_attributes): Use
1883 mark_needed_node dirrectly.
1884 (assemble_thunk): Do not call mark_decl_referenced.
1885
a396c341 18862010-05-13 Anatoly Sokolov <aesok@post.ru>
1887
1888 * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
1889
c32f7a5a 18902010-05-13 Jeff Law <law@redhat.com>
1891
1892 * ira-conflicts.c (print_allocno_conflicts): New function broken out
1893 from...
1894 (print_conflicts): Call print_allocno_conflicts.
1895
a101a346 18962010-05-13 Jakub Jelinek <jakub@redhat.com>
1897
1898 PR debug/44104
1899 * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
1900 if it is NULL.
1901
aca9e986 19022010-05-13 Kai Tietz <kai.tietz@onevision.com>
1903
1904 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
1905 t-mingw-w64 or t-mingw-w32 for multilib configuration.
1906 * config/i386/t-mingw-w32: New.
1907 * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
a3fd2b64 1908
e4227d04 19092010-05-13 Martin Jambor <mjambor@suse.cz>
1910
1911 * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
1912 gimple-fold.c).
1913 * gimple-fold.c (get_base_binfo_for_type): New function.
1914 (gimple_get_relevant_ref_binfo): Likewise.
1915 (gimple_fold_obj_type_ref_known_binfo): Likewise.
1916 (gimple_fold_obj_type_ref): Likewise.
1917 (fold_gimple_call): Simplify condition for folding virtual calls
1918 and call gimple_fold_obj_type_ref.
1919 * gimple.h (gimple_get_relevant_ref_binfo): Declare.
1920 (gimple_fold_obj_type_ref_known_binfo): Likewise.
1921
b52dd48b 19222010-05-13 Andreas Schwab <schwab@linux-m68k.org>
1923
1924 * config/rs6000/rs6000-protos.h
1925 (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
1926 * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
1927 (rs6000_debug_mode_dependent_address)
1928 (rs6000_mode_dependent_address_ptr): Likewise.
1929
5dee2817 19302010-05-13 Jakub Jelinek <jakub@redhat.com>
1931
1932 PR debug/43983
1933 * var-tracking.c (track_expr_p): Allow tracking of variables optimized
1934 by SRA.
1935 * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
1936 * tree-sra.c (create_access_replacement): Call unshare_expr before
a3fd2b64 1937 passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
5dee2817 1938 * dwarf2out.c: Include tree-flow.h.
1939 (struct var_loc_node): Rename var_loc_note field to loc, add comment.
1940 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
1941 Handle DW_OP_bit_piece.
1942 (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
1943 construct_piece_list, adjust_piece_list): New functions.
1944 (add_var_loc_to_decl): Handle SRA optimized variables.
1945 Adjust for var_loc_note to loc field renaming.
1946 (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
1947 in VAR_LOCATION note.
1948 (new_loc_descr_op_bit_piece): New function.
1949 (dw_sra_loc_expr): New function.
1950 (dw_loc_list): Use it. Don't handle the last range after the
1951 loop, handle it inside of the loop. Adjust for var_loc_note
1952 to loc field renaming.
1953 (add_location_or_const_value_attribute): Only special case
1954 single entry loc lists if loc is NOTE_P. Adjust for
1955 var_loc_note to loc field renaming.
1956 (dwarf2out_var_location): Don't set newloc->var_loc_note
1957 and newloc->next here.
1958
cdedc740 19592010-05-12 Jan Hubicka <jh@suse.cz>
1960
cd2aaa6c 1961 * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
1962 flag.
cdedc740 1963 * cgraph.h (cgraph_only_called_directly_p,
1964 cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
1965 (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
1966 * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
1967 (assemble
1968 * ipa.c (cgraph_remove_unreachable_nodes): Use
cd2aaa6c 1969 cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
1970 flags.
cdedc740 1971 * tree-inline.c (copy_bb): Check address_taken flag.
1972 * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
1973 externally_visible flag.
1974
c7ca48ea 19752010-05-12 Jason Merrill <jason@redhat.com>
1976
1977 PR bootstrap/44048
1978 PR target/44099
1979 * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
1980 * sdbout.c (plain_type_1): Likewise.
1981 * dwarf2out.c (is_base_type): Likewise.
1982 (gen_type_die_with_usage): Likewise. Generate
1983 DW_TAG_unspecified_type for any LANG_TYPE.
1984
f8b7e3ec 19852010-05-12 Jan Hubicka <jh@suse.cz>
1986
1987 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
1988 indrect edges too.
1989 * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
1990 (cgraph_clone_edge): Update.
1991 (cgraph_node_remove_callees): Remove indirect calls too.
1992 * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
1993 (cgraph_create_indirect_edge): Update prototype.
1994 * ipa-reference.c (has_proper_scope_for_analysis): Rename to
1995 is_proper_for_analysis.
1996 (add_new_function, visited_nodes, function_insertion_hook_holder,
1997 get_local_reference_vars_info, mark_address_taken, mark_address,
1998 mark_load, mark_store, check_asm_memory_clobber, check_call,
1999 scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
2000 (ipa_init): Do not initialize visited_nodes;
2001 function_insertion_hook_holder.
2002 (analyze_variable): Rewrite.
2003 (analyze_function): Rewrite.
2004 (copy_local_bitmap): Remove.
2005 (duplicate_node_dat): Do not duplicate local info.
2006 (generate_summary): Simplify to only walk cgraph.
2007 (write_node_summary_p, ipa_reference_write_summary,
2008 ipa_reference_read_summary): Remove.
2009 (propagate): Do not remove function insertion;
2010 generate summary.
2011 (pass_ipa_reference): NULLify summary handling fields.
2012 * lto-cgraph.c (lto_output_edge): Output ecf_flags.
2013 (input_edge): Input ecf_flags.
2014 * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
2015 (update_indirect_edges_after_inlining): Ignore edges with unknown
2016 param.
2017
a5b022e7 20182010-05-12 Sriraman Tallam <tmsriram@google.com>
2019
2020 * implicit-zee.c: New file.
2021 * tree-pass.h (pass_implicit_zee): Declare.
2022 * passes.c (init_optimization_passes): Add zee pass.
2023 * common.opt (fzee): New flag.
2024 * timevar.def (TV_ZEE): Define.
2025 * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
2026 and beyond.
2027 * Makefile.in (implicit-zee.o): Add new build file.
2028
09cf91da 20292010-05-12 Kazu Hirata <kazu@codesourcery.com>
2030 Nathan Froyd <froydnj@codesourcery.com>
2031
2032 * c-common.c (sync_resolve_params): Remove write-only variable.
2033
98e22cb6 20342010-05-12 Anatoly Sokolov <aesok@post.ru>
2035
2036 * target.h (struct gcc_target): Add mode_dependent_address_p field.
2037 * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2038 (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
2039 * targhooks.c (default_mode_dependent_address_p): New function.
2040 * targhooks.h (default_mode_dependent_address_p): Declare function.
2041 * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2042 (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
2043 * recog.c: (mode_dependent_address_p): Call mode_dependent_address_p
2044 target hook. Change return type to bool.
2045 * recog.h: (mode_dependent_address_p): Change return type to bool.
2046
c6732547 20472010-05-12 Kazu Hirata <kazu@codesourcery.com>
2048 Nathan Froyd <froydnj@codesourcery.com>
2049
2050 * tree-mudflap.c (build_function_type_0, build_function_type_1,
2051 build_function_type_2, build_function_type_3): Remove.
2052 (mudflap_init): Use build_function_type_list.
2053
2100aa42 20542010-05-12 Kazu Hirata <kazu@codesourcery.com>
2055 Nathan Froyd <froydnj@codesourcery.com>
2056
2057 * coverage.c (build_fn_info_value): Call build_constructor instead of
2058 build_constructor_from_list.
2059 (build_ctr_info_value): Likewise.
2060 (build_gcov_info): Likewise.
2061
8ce9d9df 20622010-05-12 Nathan Froyd <froydnj@codesourcery.com>
2063
2064 * tree.c (build_constructor): Compute TREE_CONSTANT for the
2065 resultant constructor.
2066 (build_constructor_single): Don't set TREE_CONSTANT.
2067 (build_constructor_from_list): Don't compute TREE_CONSTANT.
2068
6f932b06 20692010-05-12 Jan Hubicka <jh@suse.cz>
2070
2071 * cgraph.h (struct varpool_node): Add aux.
2072 * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
2073 * varpool.c (varpool_remove_node): Do not remove initializer.
2074 (varpool_reset_queue): Export.
2075 (varpool_finalize_decl): Volatile vars are forced to be output.
2076 * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
2077 replaced decl.
2078 * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
2079 process_references, varpool_can_remove_if_no_refs): New functions.
2080 (cgraph_remove_unreachable_nodes): Handle variables too.
2081
3b349354 20822010-05-12 H.J. Lu <hongjiu.lu@intel.com>
2083
2084 PR target/44088
2085 * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
2086
d51857bd 20872010-05-12 Jakub Jelinek <jakub@redhat.com>
2088
b0b48c1d 2089 PR middle-end/44085
2090 * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
2091 change value of ORT_TASK.
2092 (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
2093 (omp_notice_threadprivate_variable): New function.
2094 (omp_notice_variable): Call it for threadprivate variables.
2095 If enclosing ctx is a task, print enclosing task rather than
2096 enclosing parallel. Handle ORT_UNTIED_TASK like ORT_TASK.
2097 (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
2098 if task has untied clause.
2099
d51857bd 2100 PR debug/42278
2101 * dwarf2out.c (base_type_die): Don't add name attribute here.
2102 (modified_type_die): Instead of sizetype use
2103 its underlying original type. If a DW_TAG_base_type doesn't
2104 have name added, add __unknown__.
2105 (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
2106 always call force_type_die instead.
2107
b5d5f0d6 21082010-05-12 Maxim Kuvyrkov <maxim@codesourcery.com>
2109
2110 * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
2111 for __stack_chk_guard.
2112
b2af2a93 21132010-05-11 Jakub Jelinek <jakub@redhat.com>
2114
dd690367 2115 * c-opts.c (c_common_parse_file): If start_end_main_source_file,
2116 don't call start_source_file debug hook here...
2117 (finish_options): ... but here, after outputting predefined and
2118 command line defines and undefs.
2119
dcb172b4 2120 PR middle-end/44071
2121 * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
2122 no fallthru edge.
2123 * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
2124 optimizing away empty bb with no successors, move over its
2125 footer chain to fallthru predecessor.
2126 * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
2127 (rtl_split_edge): For asm goto call patch_jump_insn even if
2128 splitting fallthru edge.
2129
6834c43a 2130 PR c++/44059
2131 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
2132 even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
2133 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
2134 * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
2135 on DW.ref.* decls.
2136
b2af2a93 2137 PR c++/44062
2138 * c-parser.c (c_parser_expression): Mark LHS of a comma
2139 expression as read if it is a decl, handled component or
2140 COMPOUND_EXPR with that on the RHS.
2141 * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
2142 if it is a decl or handled component.
2143
25429dc2 21442010-05-11 Jan Hubicka <jh@suse.cz>
2145
2146 * lto-symtab.c (lto_symtab_free): New function.
2147 * lto-streamer.h (lto_symtab_free): Declare.
2148
21492010-05-11 Jan Hubicka <jh@suse.cz>
2150
2151 * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
2152 that if function is needed it is reachable.
2153 (lto_output_node): See if it the function is reachable or referenced.
2154 (output_cgraph): Update call of lto_output_node.
2155 * lto-streamer.h (reachable_from_other_partition_p): Declare.
2156
bc200246 21572010-05-11 Jan Hubicka <jh@suse.cz>
2158
2159 * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
2160 Mark as used.
2161
960dff4c 21622010-05-11 Jan Hubicka <jh@suse.cz>
2163
2164 PR tree-optimize/44063
cd2aaa6c 2165 * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
2166 queue.
960dff4c 2167 (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
2168 limits.
2169 (estimate_function_body_sizes): Compute sizes even when disregarding.
2170
85880558 21712010-05-11 Kai Tietz <kai.tietz@onevision.com>
2172
2173 * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
2174
bac48e43 21752010-05-11 Jan Hubicka <jh@suse.cz>
2176
2177 * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
2178 into every boundary.
2179
67362b23 21802010-05-11 Jan Hubicka <jh@suse.cz>
2181
2182 * matrix-reorg.c (matrix_reorg): Rebuild edges.
2183
a6b606a8 21842010-05-11 Jan Hubicka <jh@suse.cz>
2185
2186 * lto-streamer.c (lto_streamer_cache_add_to_node_array,
2187 lto_streamer_cache_delete): Put nodes into heap.
a0000c1f 2188 * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
2189 heap.
a6b606a8 2190
ea7e866e 21912010-05-11 Jan Hubicka <jh@suse.cz>
2192
2193 * cgraphbuild.c (cgraph_rebuild_references): New.
44a38e0c 2194 * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
2195 out extern inlines.
ea7e866e 2196 * cgraph.h (cgraph_rebuild_references): Declare.
2197 * tree-inline.c (tree_function_versioning): Use it.
2198 * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
2199
2b2fe710 22002010-05-11 Jan Hubicka <jh@suse.cz>
2201
2202 * cgraph.c: Include ipa-utils.h
2203 (cgraph_create_virtual_clone): Update references.
2204 * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
2205
8234f090 22062010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
2207
b52dd48b 2208 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
8234f090 2209 prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
2210 cache size.
2211
5d68c00f 22122010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
2213
b52dd48b 2214 * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
5d68c00f 2215
3b020075 22162010-05-11 Jakub Jelinek <jakub@redhat.com>
2217
663e8646 2218 * gcc.c (execute): For -### don't quote arguments that
2219 contain just alphanumerics and _/-. characters.
2220 * doc/invoke.texi: Document that change for -###.
2221
3b020075 2222 PR debug/44023
2223 * df-problems.c (struct dead_debug): Add to_rescan field.
2224 (dead_debug_init): Clear to_rescan field.
2225 (dead_debug_finish): Rescan all debug insns in to_rescan
2226 bitmap and free the bitmap.
2227 (dead_debug_insert_before): Instead of rescanning debug insns
2228 immediately queue their rescanning until dead_debug_finish.
2229 (df_note_bb_compute): After dead_debug_add do continue instead
2230 of break.
2231
f145fac4 22322010-05-10 Jakub Jelinek <jakub@redhat.com>
2233
2234 PR debug/44028
2235 * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
2236 clear also INSN_REG_USE_LIST.
2237
2ad972c5 22382010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2239
2240 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
2241
dcbc7a08 22422010-05-10 Jan Hubicka <jh@suse.cz>
2243
cd2aaa6c 2244 * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
2245 commited change.
dcbc7a08 2246
a33890d0 22472010-05-10 Jan Hubicka <jh@suse.cz>
2248
cd2aaa6c 2249 * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
2250 Allocate encoders.
a33890d0 2251 * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
2252 * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
2253 (lto_streamer_cache_create): Init alloc pool.
2254 (lto_streamer_cache_delete): Free alloc pool.
2255 * lto-streamer.h: Include alloc pool.
2256 (lto_streamer_cache_d): Use alloc pool.
2257 * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
2258
12221745 22592010-05-10 Jan Hubicka <jh@suse.cz>
2260
2261 * Makefile.in (cgraphbuild.o): Add dependency on except.h.
2262 * cgraphbuild.c: Include except.h
2263 (record_type_list, record_eh_tables): New function.
2264 (build_cgraph_edges, rebuild_cgraph_edges): Use it.
2265
796535a3 22662010-05-10 Jan Hubicka <jh@suse.cz>
2267
2268 * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
2269 __frame_dummy_init_array_entry, force_to_data): Attribute as used
2270 rather than unused.
2271
f4a50267 22722010-05-10 Michael Matz <matz@suse.de>
2273
2274 * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
2275 (can_reassociate_p): Use FLOAT_TYPE_P.
2276 * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
2277 (vect_force_simple_reduction): ... this.
9a23df5d 2278 * tree-parloops.c (gather_scalar_reductions): Use
f4a50267 2279 vect_force_simple_reduction.
2280 * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
2281 vect_is_simple_reduction, add modify argument, if true rewrite
2282 "a-b" into "a+(-b)".
2283 (vect_is_simple_reduction, vect_force_simple_reduction): New
2284 functions.
2285 (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
2286
22872010-05-10 H.J. Lu <hongjiu.lu@intel.com>
2288 Vladimir Makarov <vmakarov@redhat.com>
7ec7a88e 2289
2290 PR rtl-optimization/44012
2291 * ira-build.c (remove_unnecessary_allocnos): Nullify
2292 regno_allocno_map of the removed allocno.
2293
a6898883 22942010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2295
2296 * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
2297 to /dev/null.
2298 * configure: Regenerate.
2299
cbbd336d 23002010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2301
2302 * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
2303 unused.
2304 Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
2305 * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
2306 support in Sun ld.
2307 * configure: Regenerate.
2308
0fa4671b 23092010-05-10 Richard Guenther <rguenther@suse.de>
2310
2311 * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
2312 marked if the entry identifier is marked.
2313
8ce86007 23142010-05-10 Richard Guenther <rguenther@suse.de>
2315
2316 * c-common.c (struct c_common_attributes): Add fnspec attribute.
2317 (handle_fnspec_attribute): New function.
2318 * gimple.h (gimple_call_return_flags): Declare.
2319 (gimple_call_arg_flags): Likewise.
2320 * gimple.c (gimple_call_arg_flags): New function.
2321 (gimple_call_return_flags): Likewise.
2322 * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
2323 New argument flags.
2324 (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
2325 return value flags.
2326 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
2327 * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
2328 main work to ...
2329 (make_heapvar_for): ... this new function.
2330 (handle_rhs_call): Handle fnspec attribute argument specifiers.
2331 (handle_lhs_call): Likewise.
2332 (find_func_aliases): Adjust.
2333
3912327b 23342010-05-10 Richard Guenther <rguenther@suse.de>
2335
2336 PR tree-optimization/44050
9a23df5d 2337 * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
3912327b 2338
37d9c84e 23392010-05-10 Wei Guozhi <carrot@google.com>
2340
2341 PR target/42879
2342 * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
2343
10064fb9 23442010-05-09 Joseph Myers <joseph@codesourcery.com>
2345
2346 PR c/10676
2347 * c-typeck.c (lookup_field): Take a type directly. Update
2348 recursive calls.
2349 (build_component_ref): Update call to lookup_field.
2350 (set_init_label): Use lookup_field to find initialized field.
2351 Handle returned list of fields like a sequence of designators.
2352
3760428f 23532010-05-09 Richard Guenther <rguenther@suse.de>
2354
2355 PR middle-end/44024
2356 * fold-const.c (tree_single_nonzero_warnv_p): Properly
2357 handle &FUNCTION_DECL.
2358
8af5341f 23592010-05-09 Joseph Myers <joseph@codesourcery.com>
2360
2361 PR c/4784
2362 * c-decl.c (detect_field_duplicates_hash): New. Handle anonymous
2363 structures and unions recursively.
2364 (detect_field_duplicates): Move duplicate detection with a hash to
2365 detect_field_duplicates_hash. Always use a hash if anonymous
2366 structures or unions are present.
2367 * doc/extend.texi (Unnamed Fields): Document that duplicate fields
2368 give errors.
2369
bfb81bed 23702010-05-09 H.J. Lu <hongjiu.lu@intel.com>
2371
2372 PR target/44046
2373 * config/i386/driver-i386.c (host_detect_local_cpu): Properly
2374 detect Atom, Core 2 and Core i7.
2375
d9f0ee99 23762010-05-09 Richard Guenther <rguenther@suse.de>
2377
2378 * gcc.c (store_arg): Handle temporary file deletion for
2379 joined arguments.
2380
868357d3 23812010-05-09 Richard Guenther <rguenther@suse.de>
2382
2383 PR middle-end/44043
2384 * ipa-inline.c (estimate_function_body_sizes): Return after
2385 disregarding inline limits.
2386
774abee6 23872010-05-09 Richard Guenther <rguenther@suse.de>
2388
2389 * gcc.c (store_arg): Revert last change.
2390
5d6da7da 23912010-05-08 Sandra Loosemore <sandra@codesourcery.com>
2392
2393 PR middle-end/28685
2394 * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
2395 (optimize_ops_list): Call it.
2396
ca100953 23972010-05-08 Richard Guenther <rguenther@suse.de>
2398
2399 PR tree-optimization/44030
2400 * tree-ssa-pre.c (eliminate): Copy NECESSARY flag. Set
2401 NECESSARY flag if we propagate from a inserted expression.
2402
c9d19f43 24032010-05-08 Eric Botcazou <ebotcazou@adacore.com>
2404
2405 * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
2406 domain types as equal if they are both PLACEHOLDER_EXPRs.
2407
c0150c04 24082010-05-08 Richard Guenther <rguenther@suse.de>
2409
2410 * lto-wrapper.c (run_gcc): Remove linker output from
2411 command line for LTRANS invocation.
2412
23433d72 24132010-05-07 Steven Bosscher <steven@gcc.gnu.org>
2414
2415 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2416 lto-macho as lto_binary_reader.
2417 * target.h (struct gcc_target): New hooks lto_start and lto_end.
2418 * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
2419 * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
2420 in lto_start and lto_end calls.
2421 (is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O
2422 magic numbers.
2423 (scan_prog_file): Update is_elf_or_coff call.
2424 * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
2425
2426 * collect2.c (main): Fix enum comparison.
2427
2428 * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
2429 Add prototypes.
2430 * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
2431 * darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START
2432 and TARGET_ASM_LTO_END.
2433 * darwin.c: Include obstack.h and lto-streamer.h.
2434 (lto_section_names_offset, lto_section_names_obstack,
2435 lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
2436 global variables.
2437 (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
2438 (darwin_asm_lto_start): New function. Redirect output to asm_out_file
2439 to a temporary file.
2440 (darwin_asm_lto_end): New function. Restore asm_out_file.
2441 (darwin_asm_named_section): For LTO sections, replace the name with
2442 the offset of the section name in a string table, and build this
2443 table.
2444 (darwin_file_start): Initialize global vars for LTO support.
2445 (darwin_file_end): If output to asm_out_file was redirected, append it
2446 to the proper asm_out_file here. Add the section names section.
2447
dd821e08 24482010-05-07 Steven Bosscher <steven@gcc.gnu.org>
2449
2450 * c-pragma.c (pending_weak_d, pending_weak): New.
2451 (pending_weaks): Change the type to VEC((pending_weak,gc) *.
2452 (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
2453 handle_pragma_weak): Update the uses of pending_weaks.
2454
ece262d5 24552010-05-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2456
2457 PR documentation/44016
2458 * doc/standards.texi (Standards): Link to unversioned
2459 cxx0x_status.html page.
2460
3fdda2e9 24612010-05-07 Iain Sandoe <iains@gcc.gnu.org>
2462
2463 PR target/43708
2464 * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
2465 in addition to TREE_USED, to avoid "set but unused" warnings.
2466
e20bb126 24672010-05-07 Changpeng Fang <changpeng.fang@amd.com>
2468
2469 * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
2470 (is_loop_prefetching_profitable): Do not insert prefetches
2471 when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
2472 times the prefetch ahead distance.
2473
3fa57e84 24742010-05-07 Changpeng Fang <changpeng.fang@amd.com>
2475
2476 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
2477 Account for loop unrolling in the insn-to-prefetch ratio heuristic.
2478 (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
2479 the unroll_factor.
2480
3665c1ba 24812010-05-07 Changpeng Fang <changpeng.fang@amd.com>
2482
2483 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
2484 a diagnostic info when the insn-to-mem ratio is too small.
2485
eb4ef3d1 24862010-05-07 Richard Guenther <rguenther@suse.de>
2487
2488 * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
2489 the linker plugin.
2490 (store_arg): Queue temp_filename for deletion instead of
2491 the whole argument.
2492
264cbb51 24932010-05-07 Richard Guenther <rguenther@suse.de>
2494
2495 * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
2496 (run_gcc): Handle LTRANS phase invocation.
9a23df5d 2497 * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
264cbb51 2498
a353dfef 24992010-05-07 Jakub Jelinek <jakub@redhat.com>
2500
2501 * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
2502 this is also meaningful on PARM_DECLs and RESULT_DECLs.
2503
c72033f8 25042010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2505
2506 * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
2507
e6366f1e 25082010-05-07 Richard Guenther <rguenther@suse.de>
2509
2510 PR tree-optimization/44020
2511 * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
2512 code when PRE is not yet initialized.
2513
0bf68cc9 25142010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2515
2516 * config/mips/dbxmdebug.h: Remove.
2517 * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
2518
cdd6b2f1 25192010-05-07 Shujing Zhao <pearly.zhao@oracle.com>
2520
2521 * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
2522 with null pointer and also warn about ordered comparison of zero with
2523 pointer if -Wextra.
2524
4e25478e 25252010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
2526
2527 * graphite-blocking.c
2528 (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
2529 * graphite-clast-to-gimple.c
2530 (clast_to_gcc_expression): Same.
2531 (precision_for_value): Same.
2532 (precision_for_interval): Same.
2533 (gcc_type_for_interval): Same.
2534 (graphite_create_new_guard): Same.
2535 (compute_bounds_for_level): Same.
2536 (graphite_create_new_loop_guard): Same.
2537 * graphite-interchange.c
2538 (build_linearized_memory_access): Same.
2539 (pdr_stride_in_loop): Same.
2540 (memory_strides_in_loop_1): Same.
2541 (memory_strides_in_loop): Same.
2542 (extend_scattering): Same.
2543 (psct_scattering_dim_for_loop_depth): Same.
2544 (pbb_number_of_iterations): Same.
2545 * graphite-poly.h
2546 (debug_iteration_domains): Same.
2547 * graphite-ppl.c
2548 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2549 (ppl_set_inhomogeneous_gmp): Same.
2550 (ppl_strip_loop): Same.
2551 (ppl_lexico_compare_linear_expressions): Same.
2552 (ppl_read_polyhedron_matrix): Same.
2553 (ppl_max_for_le_pointset): Same.
2554 * graphite-ppl.h
2555 (ppl_read_polyhedron_matrix): Same.
2556 (tree_int_to_gmp): Same.
2557 (gmp_cst_to_tree): Same.
2558 (ppl_set_inhomogeneous): Same.
2559 (ppl_set_inhomogeneous_tree): Same.
2560 (ppl_set_coef): Same.
2561 (ppl_set_coef_tree): Same.
2562 * graphite-sese-to-poly.c
2563 (build_pbb_scattering_polyhedrons): Same.
2564 (build_scop_scattering): Same.
2565 (scan_tree_for_params_right_scev): Same.
2566 (scan_tree_for_params): Same.
2567 (find_params_in_bb): Same.
2568 (find_scop_parameters): Same.
2569 (add_upper_bounds_from_estimated_nit): Same.
2570 (build_loop_iteration_domains): Same.
2571 (add_condition_to_domain): Same.
2572 (pdr_add_memory_accesses): Same.
2573
25742010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
2575
2576 * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
2577 CLooG's value_* macros to their respective mpz_* counterparts.
2578 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
2579 (graphite_create_new_loop_guard): Same.
2580 * graphite-interchange.c (build_linearized_memory_access): Same.
2581 (pdr_stride_in_loop): Same.
2582 (memory_strides_in_loop_1): Same.
2583 (1st_interchange_profitable_p): Same.
2584 * graphite-poly.c (extend_scattering): Same.
2585 (psct_scattering_dim_for_loop_depth): Same.
2586 (pbb_number_of_iterations): Same.
2587 (pbb_number_of_iterations_at_time): Same.
2588 * graphite-poly.h (new_1st_loop): Same.
2589 * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
2590 (oppose_constraint): Same.
2591 (insert_constraint_into_matrix): Same.
2592 (ppl_set_inhomogeneous_gmp): Same.
2593 (ppl_set_coef_gmp): Same.
2594 (ppl_strip_loop): Same.
2595 (ppl_lexico_compare_linear_expressions): Same.
2596 (ppl_max_for_le_pointset): Same.
2597 (ppl_min_for_le_pointset): Same.
2598 (ppl_build_realtion): Same.
2599 * graphite-ppl.h (gmp_cst_to_tree): Same.
2600 (ppl_set_inhomogeneous): Same.
2601 (ppl_set_inhomogeneous_tree): Same.
2602 (ppl_set_coef): Same.
2603 (ppl_set_coef_tree): Same.
2604 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
2605 (build_scop_scattering): Same.
2606 (add_value_to_dim): Same.
2607 (scan_tree_for_params_right_scev): Same.
2608 (scan_tree_for_params_int): Same.
2609 (scan_tree_for_params): Same.
2610 (find_params_in_bb): Same.
2611 (find_scop_parameters): Same.
2612 (add_upper_bounds_from_estimated_nit): Same.
2613 (build_loop_iteration_domains): Same.
2614 (create_linear_expr_from_tree): Same.
2615 (add_condition_to_domain): Same.
2616 (pdr_add_memory_accesses): Same.
2617
6fe11077 26182010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
2619 Jason Merrill <jason@redhat.com>
2620
2621 * c-common.c (c_common_reswords): Add nullptr.
2622 * c-common.h: Add RID_NULLPTR. Reorganize C++0x rids.
2623 * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
2624 (gen_type_die_with_usage): Likewise.
2625 * dbxout.c (dbxout_type): Likewise.
2626 * sdbout.c (plain_type_1): Likewise.
2627
e8f78e99 26282010-05-06 Jason Merrill <jason@redhat.com>
2629
5f52d2e2 2630 * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
2631 Don't change GS_OK to GS_ALL_DONE. Make sure that all cases set
2632 ret appropriately.
2633 (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
2634
e8f78e99 2635 * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
2636 stripping WITH_SIZE_EXPR.
2637 (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
2638 change.
2639
be52f086 26402010-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2641
2642 * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
2643 list of obsolete configurations.
2644 Disabled check for obsolete configurations.
2645 (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
2646 Removed support for previous versions.
2647 * config/mips/iris.h: Removed.
2648 * config/mips/iris5.h: Removed.
2649 * config/mips/iris6.h: Merged old iris.h contents.
2650 (TARGET_IRIX): Removed.
2651 (DRIVER_SELF_SPECS): Removed mabi=32.
2652 (IDENT_ASM_OP): Removed undef.
2653 (STARTFILE_SPEC): Removed mabi=32.
2654 (ENDFILE_SPEC): Likewise.
2655 (IRIX_SUBTARGET_LINK_SPEC): Likewise.
2656 (MACHINE_TYPE): Update for IRIX 6.5.
2657 * config/mips/mips.c (mips_build_builtin_va_list): Replaced
2658 TARGET_IRIX by TARGET_IRIX6.
2659 (mips_file_start): Likewise.
2660 (mips_output_external): Remove IRIX 5/6 O32 support.
2661 (mips_output_function_prologue): Likewise.
2662 * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
2663 TARGET_IRIX6.
2664 (TARGET_CPU_CPP_BUILTINS): Likewise.
2665 (TARGET_IRIX): Removed.
2666 * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
2667 (MULTILIB_DIRNAMES): Removed 32.
2668 (MULTILIB_OSDIRNAMES): Removed ../lib.
9a23df5d 2669 * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
be52f086 2670 (Specific, mips-sgi-irix5): Document removal.
9a23df5d 2671 (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
be52f086 2672 Remove references to older IRIX 6 releases and the O32 ABI.
2673
eceee1ca 26742010-05-06 Jakub Jelinek <jakub@redhat.com>
2675
2676 PR bootstrap/43994
2677 * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
2678 instead of DF_REF_REAL_REG.
2679
889e1397 26802010-05-06 Dave Korn <dave.korn.cygwin@gmail.com>
2681
2682 PR target/43888
2683 * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
2684 handling to still return true for x64 targets.
2685
5de089bf 26862010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
2687
2688 * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
2689
42edf1a3 26902010-05-06 Jan Hubicka <jh@suse.cz>
2691
2692 PR tree-optimization/43791
2693 * ipa-inline.c (update_caller_keys): Remove bogus
2694 disregard_inline_limits check.
2695
348bc2f1 26962010-05-06 Michael Matz <matz@suse.de>
2697
2698 PR tree-optimization/43984
2699 * tree-ssa-pre.c (inserted_phi_names): Remove.
2700 (inserted_exprs): Change to bitmap.
2701 (create_expression_by_pieces): Set bits, don't append to vector.
2702 (insert_into_preds_of_block): Don't handle inserted_phi_names.
2703 (eliminate): Don't look at inserted_phi_names, remove deleted
2704 insns from inserted_exprs.
9a23df5d 2705 (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
348bc2f1 2706 (init_pre, fini_pre): Allocate and free bitmaps.
2707 (execute_pre): Insert insns on edges before elimination.
2708
ea181df0 27092010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
2710
2711 * tree.c (initializer_zerop): Handle STRING_CST.
2712
1f3db819 27132010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
2714
2715 PR 40989
2716 * doc/invoke.texi (Wimplicit): Document as C only.
2717 * opts.c (common_handle_option): Add argument kind.
2718 (handle_option): Rename as read_cmdline_option. Factor out code to...
2719 (handle_option): ... here. New.
2720 (handle_options): Rename as read_cmdline_options.
2721 (decode_options): Update call.
2722 (set_option): Use option index instead of option pointer. Classify
2723 diagnostics correctly.
2724 (enable_warning_as_error): Call handle_option.
2725 * opts.h (set_option): Update declaration.
2726 (handle_option): Declare.
9a23df5d 2727 * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
1f3db819 2728 * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
2729 * c-opts.c (set_Wimplicit): Delete.
2730 (c_family_lang_mask): New static constant.
2731 (c_common_handle_option): Add argument kind. Use handle_option
2732 instead of set_Wimplicit.
2733 (c_common_post_options): warn_implicit and warn_implicit_int
2734 are disabled by default.
2735 * c-common.c (warn_implicit): Do not define here.
2736 * c-common.h (warn_implicit): Do not declare here.
2737 (c_common_handle_option): Update declaration.
2738 * lto-opts.c (lto_reissue_options): Update call to set_option.
2739
4bb63bc8 27402010-05-06 Richard Guenther <rguenther@suse.de>
2741
2742 PR tree-optimization/43571
2743 * domwalk.c (walk_dominator_tree): Walk the dominator
2744 sons in more optimal order.
2745
9bf0a3f9 27462010-05-06 Richard Guenther <rguenther@suse.de>
2747
2748 PR tree-optimization/43934
2749 * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
2750 (stmt_cost): Likewise.
2751 (extract_true_false_args_from_phi): New helper.
2752 (determine_max_movement): For PHI nodes verify we can hoist them
2753 and compute their cost.
2754 (determine_invariantness_stmt): Handle PHI nodes.
2755 (move_computations_stmt): Likewise. Hoist PHI nodes in
2756 if-converted form using COND_EXPRs.
9a23df5d 2757 (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
9bf0a3f9 2758 (tree_ssa_lim): Likewise.
2759 * tree-flow.h (tree_ssa_lim): Adjust prototype.
2760 * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
2761
7a3ffe99 27622010-05-06 Richard Guenther <rguenther@suse.de>
2763
2764 PR tree-optimization/43987
2765 * tree-ssa-structalias.c (could_have_pointers): For possibly
2766 address-taken variables force pointers to be recorded.
2767 (create_variable_info_for_1): Likewise.
2768 (push_fields_onto_fieldstack): Pass in wheter all fields
2769 must have pointers.
2770 (find_func_aliases): Query types instead of vars whether
2771 they contain pointers where appropriate.
2772
8d810329 27732010-05-06 Jan Hubicka <jh@suse.cz>
2774
2775 * cgraphbuild.c (record_reference_ctx): Add varpool_node.
2776 (record_reference, mark_address, mark_load, mark_store): Record
2777 references.
2778 (record_references_in_initializer): Update call of record_references.
2779 (rebuild_cgraph_edges): Remove all references before rebuiding.
2780 * cgraph.c (cgraph_create_node): Clear ref list.
2781 (cgraph_remove_node): Remove references.
2782 (dump_cgraph_node): Dump references.
2783 (cgraph_clone_node): Clone references.
2784 * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
2785 (struct cgraph_node, varpool_node): Add ref_lst.
2786 * ipa-ref.c: New file.
2787 * ipa-ref.h: New file.
2788 * ipa-ref-inline.h: New file.
2789 * lto-cgraph.c (output_varpool): Take cgrag node set argument.
2790 (referenced_from_other_partition_p): New function.
2791 (lto_output_varpool_node): Take set arugment; call
2792 referenced_from_other_partition.
2793 (lto_output_ref): New.
2794 (add_references): New.
2795 (output_refs): New.
9a23df5d 2796 (output_cgraph): Compute boundary based on references; output refs.
8d810329 2797 (output_varpool): Accept cgraph_node_set argument.
2798 (input_ref): New.
2799 (input_refs): New.
2800 (input_cgraph): Call input_refs.
2801 * lto-section-in.c (lto_section_name): Add refs.
2802 * Makefile.in: (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
2803 (ipa-ref.o): New file.
2804 * varpool.c (varpool_node): Clear ipa ref list.
2805 (varpool_remove_node): Remove references.
2806 (dump_varpool_node): Dump references.
2807 (varpool_assemble_decl): Only compile finalized ones.
2808 (varpool_extra_name_alias): Initialize ref list.
2809 * lto-streamer.c (lto-get_section_name): Add .refs section.
2810 * lto-streamer.h (lto_section_type): Add LTO_section_refs.
2811 (referenced_from_other_partition_p): Declared.
2812
29b41aee 28132010-05-06 Ira Rosen <irar@il.ibm.com>
2814
2815 PR tree-optimization/43901
2816 * tree-vect-stmts.c (vectorizable_call): Assert that vector
2817 type is not NULL if it's transformation phase, and return
2818 FALSE if it's analysis.
9a23df5d 2819 (vectorizable_conversion, vectorizable_operation,
2820 vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
29b41aee 2821
60995f0b 28222010-05-05 Andrew Pinski <andrew.pinski@caviumnetworks.com>
2823
2824 * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
2825 Delete.
2826 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
2827 New define.
2828 * config/mips/mips-protos.h
2829 (mips_small_register_classes_for_mode_p): Delete prototype.
2830
74f1fddf 28312010-05-06 Bernd Schmidt <bernds@codesourcery.com>
2832
2833 * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
2834 * config/arm/arm.c (multiple_operation_profitable_p,
2835 compute_offset_order): New static functions.
2836 (load_multiple_sequence, store_multiple_sequence): Use them.
2837 Replace constant 4 with MAX_LDM_STM_OPS. Compute order[0] from
2838 memory offsets, not register numbers.
2839 (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
2840
dcff3217 28412010-05-05 Steven Bosscher <steven@gcc.gnu.org>
2842
9a23df5d 2843 * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
dcff3217 2844 (get_pending_sizes, put_pending_size, put_pending_sizes):
2845 Update the uses of pending_sizes.
2846 * c-decl.c (store_parm_decls): Likewise.
2847 * c-tree.h (struct c_arg_info): Likewise.
2848 * tree.h: Update the prototype for get_pending_sizes and
2849 put_pending_sizes.
2850
47b19b94 28512010-05-05 Jason Merrill <jason@redhat.com>
2852
2ec3af9c 2853 PR debug/43370
2854 * c-common.c (handle_aligned_attribute): Respect
2855 ATTR_FLAG_TYPE_IN_PLACE.
2856
47b19b94 2857 PR testsuite/43758
2858 * target.h (struct gcc_target): Add attribute_takes_identifier_p.
2859 * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
2860 (TARGET_INITIALIZER): Use it.
2861 * c-common.c (attribute_takes_identifier_p): Call it.
2862 * c-common.h: Update prototype.
2863 * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
2864 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
2865
0217ac3c 28662010-05-05 Jakub Jelinek <jakub@redhat.com>
2867
2868 PR debug/43950
2869 * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
2870 DW_ID_down_case for Fortran compilation units.
2871
8a123d26 28722010-05-05 Jan Hubicka <jh@suse.cz>
2873
2874 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
2875 handle aliases.
2876
646150d6 28772010-05-05 Eric Botcazou <ebotcazou@adacore.com>
2878
2879 * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
2880 a variable-sized RESULT_DECL.
2881
39bd86a4 28822010-05-05 Maxim Kuvyrkov <maxim@codesourcery.com>
2883
2884 * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
2885
eda37335 28862010-05-05 Jason Merrill <jason@redhat.com>
2887
2888 PR c++/43787
2889 * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
2890 returns GS_OK.
2891 (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
2892
a2f58a79 28932010-05-05 Alexandre Oliva <aoliva@redhat.com>
2894 Jakub Jelinek <jakub@redhat.com>
2895
2896 PR debug/43478
2897 * df-problems.c (struct dead_debug_use, struct dead_debug): New.
2898 (dead_debug_init, dead_debug_finish): New functions.
2899 (dead_debug_add, dead_debug_insert_before): Likewise.
2900 (df_note_bb_compute): Initialize a dead_debug object, add dead
2901 debug uses to it, insert debug bind insns before death insns,
2902 reset debug insns that refer to pending uses at the end.
2903 * rtl.h (make_debug_expr_from_rtl): New prototype.
2904 * varasm.c (make_debug_expr_from_rtl): New function.
2905
a238367f 29062010-05-05 Jan Hubicka <jh@suse.cz>
2907
2908 * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
9a23df5d 2909 (lto_varpool_encoder_new, lto_varpool_encoder_delete,
2910 lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
2911 lto_varpool_encoder_deref, lto_varpool_encoder_size,
a238367f 2912 lto_varpool_encoder_encode_initializer_p,
2913 lto_set_varpool_encoder_encode_initializer): New functions.
2914 (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
2915 call output_varpool.
2916 (input_varpool_node): Do not always set analyzed.
2917 (input_cgraph_1): Return vector of cgraph nodes.
2918 (input_varpool_1): Return vector of varpools.
2919 (input_cgraph): Free the vectors.
2920 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
2921 output only initializers needed.
2922 (lto_output): Only call output_cgraph.
2923 (produce_asm_for_decls): Call lto_varpool_encoder_delete.
2924 * lto-section-out.c (lto_new_out_decl_state): Initialize
2925 state->varpool_node_encoder.
2926 * lto-streamer.h (lto_varpool_encoder_d): New.
9a23df5d 2927 (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
a238367f 2928 (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
2929 (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
2930 lto_varpool_encoder_encode, lto_varpool_encoder_delete,
2931 lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
2932 Declare.
2933 (output_varpool, input_varpool): Remove declarations.
2934
9269f553 29352010-05-05 Jan Hubicka <jh@suse.cz>
2936
2937 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
2938 with body can prevail.
2939
29402010-05-05 Jan Hubicka <jh@suse.cz>
2941
2942 * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
2943 size.
2944
e3b362c8 29452010-05-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2946
9a23df5d 2947 * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
e3b362c8 2948
2949 * gengtype.h (erro_at_line): Constify pos argument.
2950
2951 * gengtype.c: Include hashtab.h.
2952 (enum gc_used): Document GC_MAYBE_POINTED_TO.
2953 (error_at_line): Constify pos argument.
2954 (do_typedef): Initialize p->opt field.
2955 (get_file_gtfilename): Fix comment typo.
2956 (struct walk_type_data): Constify line field.
2957 (get_output_file_for_structure): New function.
2958 (write_local_func_for_structure): Constify orig_s argument.
2959 Use get_output_file_for_structure.
2960 (write_func_for_structure): Use get_output_file_for_structure.
2961 (INDENT): New define.
2962 (dump_pair, dump_type, dump_type_list, dump_typekind)
2963 (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
2964 (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
2965 functions.
2966 (seen_types): New variable.
2967 (main): New variable do_dump. Process "-d" command line option.
2968 Call dump_everything if dump requested.
2969
4e9d80c4 29702010-05-05 Jakub Jelinek <jakub@redhat.com>
2971
2972 * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
2973 in a temporary instead of invoking the macro multiple times.
2974 (track_expr_p): Likewise.
2975
21cd990d 29762010-05-04 Neil Vachharajani <nvachhar@google.com>
2977
2978 * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
2979 per new semantics.
2980 * opts.c (decode_options): Enable -Werror=coverage-mismatch.
2981 * coverage.c (get_coverage_counts): Always emit a warning. Adjust
2982 conditions for printing notes.
2983 * common.opt (-Wcoverage-mismatch): Allow negative, default to
2984 true, update documentation.
2985 * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
21cd990d 2986
4516a56b 29872010-05-04 Jakub Jelinek <jakub@redhat.com>
2988
2989 PR c/43981
2990 * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
2991 on dimen.
2992
c502d441 29932010-05-04 H.J. Lu <hongjiu.lu@intel.com>
2994
2995 PR target/43799
9a23df5d 2996 * config/i386/i386.md (sse_prologue_save): Clobber CC register.
c502d441 2997 (*sse_prologue_save_insn1): Likewise.
2998 (SSE prologue save splitter): Likewise.
2999
621b002b 30002010-05-04 Eric Botcazou <ebotcazou@adacore.com>
3001
3002 * tree.c (free_lang_data_in_one_sizepos): New inline function.
3003 (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
3004 types. Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
3005 (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
3006 all decls. Call it on DECL_FIELD_OFFSET of fields.
3007 (find_decls_types_r): Follow DECL_VALUE_EXPR.
3008 (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
3009
32efc363 30102010-05-04 Martin Jambor <mjambor@suse.cz>
3011
3012 * tree-sra.c (build_access_from_expr_1): The first parameter type
3013 changed to simple tree.
3014 (build_access_from_expr): Likewise, gsi parameter was eliminated.
3015 (scan_assign_result): Renamed to assignment_mod_result, enum elements
3016 renamed as well.
3017 (build_accesses_from_assign): Removed all parameters except for a
3018 simple gimple statement. Now returns a simple bool.
3019 (scan_function): All non-analysis parts moved to separate functions
3020 sra_modify_function_body and ipa_sra_modify_function_body. Removed all
3021 parameters and updated both callers.
3022 (sra_modify_expr): Removed parameter data.
3023 (sra_modify_function_body): New function.
3024 (perform_intra_sra): Call sra_modify_function_body to modify the
3025 function body.
3026 (replace_removed_params_ssa_names): Parameter data changed into
3027 adjustments vector.
3028 (sra_ipa_modify_expr): Likewise. Also removed unused parameter gsi and
3029 changed the parameter dont_convert to convert with the opposite
3030 meaning.
3031 (sra_ipa_modify_assign): Parameter data changed into adjustments
3032 vector, return value changed to bool.
3033 (ipa_sra_modify_function_body): New function.
3034 (sra_ipa_reset_debug_stmts): Updated a comment.
3035 (modify_function): Use ipa_sra_modify_function_body to modify function
3036 body.
3037
288debed 30382010-05-04 H.J. Lu <hongjiu.lu@intel.com>
3039
3040 PR middle-end/43671
3041 * alias.c (true_dependence): Handle the same VALUE in x and mem.
3042 (canon_true_dependence): Likewise.
3043 (write_dependence_p): Likewise.
3044
63b0bea7 30452010-05-04 Jan Hubicka <jh@suse.cz>
3046
3047 * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
3048 * cgraphbuild.c: Include ipa-utils.h
3049 (record_reference_ctx): New struct.
3050 (record_reference): Simplify to work on initializers; not statements.
3051 (mark_address, mark_load, mark_store): New.
3052 (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3053 walk PHI nodes too.
3054 (record_references_in_initializer): Update use of record_reference.
3055 (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3056 walk PHI nodes too.
3057
b55bfc2f 30582010-05-04 Jan Hubicka <jh@suse.cz>
3059
3060 * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
3061 node will be removed anyway.
3062 (lto_varpool_replace_node): Allow also unanalyzed nodes;
3063 relink aliases of node into prevailing node.
3064 * varpool.c (varpool_remove_node): Remove aliases properly;
3065 when removing node, remove all its aliases too; remove DECL_INITIAL
3066 of removed node; ggc_free the varpool node.
3067
7981828b 30682010-05-04 Richard Guenther <rguenther@suse.de>
3069
3070 PR tree-optimization/43879
3071 * tree-ssa-structalias.c (alias_get_name): Use
3072 DECL_ASSEMBLER_NAME if available.
3073 (create_function_info_for): Return the varinfo node.
3074 (ipa_pta_execute): Associate same-body aliases and extra names
3075 with their origin nodes varinfo. Dump DECL_ASSEMBLER_NAME.
3076
1d45023e 30772010-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
3078
9a23df5d 3079 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
1d45023e 3080
815333e5 30812010-05-04 Mikael Pettersson <mikpe@it.uu.se>
3082
3083 PR bootstrap/43964
3084 * ira-color.c (assign_hard_reg): Declare rclass and add_cost
3085 only if HONOR_REG_ALLOC_ORDER is not defined.
3086
ebc6c513 30872010-05-04 Richard Guenther <rguenther@suse.de>
3088
3089 PR tree-optimization/43949
3090 * tree-vrp.c (extract_range_from_binary_expr): Only handle
3091 TRUNC_MOD_EXPR.
3092
bb9c1a09 30932010-04-26 Jason Merrill <jason@redhat.com>
3094
3095 * c.opt (-fstrict-enums): New.
3096 * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
3097
056a4e5a 30982010-05-03 David Ung <davidu@mips.com>
3099 James E. Wilson <wilson@codesourcery.com>
3100
3440fb35 3101 * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
056a4e5a 3102 emit the trap instruction before the divide for TUNE_74K.
3103
ed5527ca 31042010-05-03 Steven Bosscher <steven@gcc.gnu.org>
3105
3106 * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
3107 (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
3108 based on the above, for new target hook.
3109
3110 * hooks.c (hook_bool_mode_true): New generic hook.
3111 * hooks.h (hook_bool_mode_true): Add prototype.
3112
3113 * target.h (struct gcc_target): Add small_register_classes_for_mode_p
3114 target hook.
3115 * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
3116 target hook, set to hook_bool_mode_false.
3117 * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
3118 * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
3119 with targetm.small_register_classes_for_mode_p.
3120 (find_reusable_reload): Likewise.
3121 (combine_reloads): Likewise.
3122 * reload1.c (reload_as_needed): Likewise.
3123 * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
3124 * ifcvt.c (noce_process_if_block, check_cond_move_block,
3125 dead_or_predicable): Likewise.
3126 * regmove.c (optimize_reg_copy_1): Likewise.
3127 * calls.c (prepare_call_address): Likewise.
3128 (precompute_register_parameters): Likewise.
3129
3130 * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
3131 hook definition.
3132 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
3133 implementation of the hook that considers all register classes
3134 small except for SH64.
3135 (sh_override_options): Use the new hook.
3136 * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
3137 Add prototype.
3138
3139 * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
3140 hook definition.
3141 * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
3142 implementation of the hook that considers all register classes
3143 small for THUMB1.
3144 * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
3145 Add prototype.
3146
3147 * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
3148 hook definition.
3149 * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
3150 implementation of the hook that considers all register classes
3151 small for MIPS16.
3152 * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
3153 Add prototype.
3154
3155 * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
3156 hook definition.
3157 * config/m32c/m32c.h: Likewise.
3158 * config/pdp11/pdp11.h: Likewise.
3159 * config/avr/avr.h: Likewise.
3160 * config/xtensa/xtensa.h: Likewise.
3161 * config/m68hc11/m68hc11.h: Likewise.
3162 * config/mn10300/mn10300.h: Likewise.
3163 * config/mcore/mcore.h: Likewise.
3164 * config/h8300/h8300.h: Likewise.
3165 * config/bfin/bfin.h: Likewise.
3166
3167 * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
3168 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
3169
b79dc18a 31702010-05-03 Anatoly Sokolov <aesok@post.ru>
3171
3172 * double-int.h (tree_to_double_int): Remove macro.
3173 (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
3174 * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3175 (tree_to_double_int): New function.
3176 * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
3177 Move ...
3178 * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3179
650b60e8 31802010-05-03 Richard Guenther <rguenther@suse.de>
3181
3182 PR tree-optimization/43971
3183 * tree-ssa-structalias.c (get_constraint_for_1): Fix
3184 constraints in the !flag_delete_null_pointer_checks case.
3185
ea81e5c7 31862010-05-03 Jakub Jelinek <jakub@redhat.com>
3187
3188 PR debug/43972
3189 * config/i386/i386.c (ix86_delegitimize_address): Make sure the
3190 result mode matches original rtl mode.
3191
e17f954a 31922010-05-03 Dave Korn <dave.korn.cygwin@gmail.com>
3193
0aa157d6 3194 PR target/43888
e17f954a 3195 * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
3196
88cbb881 31972010-05-02 Uros Bizjak <ubizjak@gmail.com>
3198
3199 * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
3200 when processing flag options.
3201
b8a67225 32022010-05-02 Uros Bizjak <ubizjak@gmail.com>
3203
3204 * gcov-iov.c (main): Change format string placeholder
3205 from %#08x to 0x%08x.
3206 * genchecksum.c (dosum): Change format string placeholder
3207 from %#02x to 0x%02x.
3208
40a61243 32092010-05-02 Richard Guenther <rguenther@suse.de>
3210
3211 PR tree-optimization/43879
b8a67225 3212 * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
40a61243 3213
bc2e3b16 32142010-05-02 Bruno Haible <bruno@clisp.org>
3215
3216 * doc/extend.texi (Function Attributes): Fix a typo.
3217
9c5b6e15 32182010-05-02 Uros Bizjak <ubizjak@gmail.com>
3219
3220 Revert:
3221 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
3222 placeholder from 0x%x to %#x.
3223 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
b8a67225 3224 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
3225 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
3226 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
3227 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
3228 * config/i386/i386.c (ix86_target_string): Ditto.
9c5b6e15 3229 * config/i386/i386.c (output_pic_addr_const): Ditto.
b8a67225 3230 (print_operand): Ditto.
9c5b6e15 3231
95dcf70a 32322010-05-02 Uros Bizjak <ubizjak@gmail.com>
3233
3234 * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
3235 placeholder from 0x%x to %#x.
3236 (ASM_OUTPUT_DEBUG_DATA1): Ditto.
3237 (ASM_OUTPUT_DEBUG_DATA4): Ditto.
3238 (ASM_OUTPUT_DEBUG_DATA): Ditto.
3239 (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
3240 (ASM_OUTPUT_DEBUG_DATA8): Ditto.
3241 * optc-gen.awk: Ditto.
3242 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
3243 (HOST_WIDE_INT_PRINT_HEX): Ditto.
3244 (HOST_WIDEST_INT_PRINT_HEX): Ditto.
3245 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
95dcf70a 3246
e1ce1485 32472010-05-01 Anatoly Sokolov <aesok@post.ru>
3248
3249 * target.h (struct calls): Add function_value_regno_p field.
3250 * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
3251 (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
3252 * targhooks.c (default_function_value_regno_p): New function.
3253 * targhooks.h (default_function_value_regno_p): Declare function.
3254 * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
3255 * builtins.c. (apply_result_size): (Ditto.).
3256 * combine.c. (likely_spilled_retval_p): (Ditto.).
3257 * mode-switching.c. Include 'target.h'.
3258 (create_pre_exit): Use function_value_regno_p hook.
3259 * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
3260 * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
3261 TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
3262
3263 * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
3264 * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
3265 (ix86_function_value_regno_p): Declare as static, change argument
3266 type to const unsigned int.
3267 * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
3268
ccab2921 32692010-05-01 Richard Guenther <rguenther@suse.de>
3270
3271 PR tree-optimization/43949
3272 * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
3273 types.
3274 (extract_range_from_binary_expr): Handle *_MOD_EXPR.
3275
33274180 32762010-05-01 Anatoly Sokolov <aesok@post.ru>
3277
3278 * rtl.h (CONST_DOUBLE_P): Define.
3279 (rtx_to_double_int): Declare.
3280 * emit-rtl.c (rtx_to_double_int): New function.
3281 * dwarf2out.c (insert_double): New function.
3282 (loc_descriptor, add_const_value_attribute): Clean up, use
3283 rtx_to_double_int and insert_double functions.
3284
bfe513a4 32852010-05-01 Jonathan Wakely <jwakely.gcc@gmail.com>
3286
3287 * doc/extend.texi (Inline): Add missing return keyword to examples.
3288 (Function Attributes, Variable Attributes, Pragmas): Hyphenate
3289 "command-line".
3290
9f5d6ac9 32912010-04-30 Eric Botcazou <ebotcazou@adacore.com>
3292
3293 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
3294 the variable part of the offset as well. Use highest_pow2_factor for
3295 all alignment checks.
3296
b306798a 32972010-04-30 Richard Guenther <rguenther@suse.de>
3298
3299 PR tree-optimization/43879
3300 * tree-ssa-structalias.c (type_could_have_pointers): Functions
3301 can have pointers.
3302
db8fd1ef 33032010-04-30 Jan Hubicka <jh@suse.cz>
3304
b306798a 3305 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
3306 varpool.
db8fd1ef 3307 (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
3308
bf7d782b 33092010-04-30 Jan Hubicka <jh@suse.cz>
3310
b306798a 3311 * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
3312 New.
bf7d782b 3313 * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
3314 * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
3315 (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
3316 cgraph_node_set_needs_ltrans_p): Remove.
3317
67076d6d 33182010-04-30 Steven Bosscher <steven@gcc.gnu.org>
3319
3320 * sdbout.c: Include vec.h, do not include varray.h.
3321 (deferred_global_decls, sdbout_global_decl,
3322 sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
3323 * toplev.c: Do not include varray.h.
3324 (dump_memory_report): Do not dump VARRAY statistics.
3325 * gengtype.c (open_base_file): Ignore varray.h.
3326 * Makefile.in: Update for abovementioned changes.
3327 Remove all traces of varray.c and varray.h.
3328 * varray.c: Remove file.
3329 * varray.h: Remove file.
3330
da67d826 33312010-04-30 Jan Hubicka <jh@suse.cz>
3332
3333 * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
3334 references.
3335
e55e3a4a 33362010-04-30 Jan Hubicka <jh@suse.cz>
3337
3338 * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
3339 needed.
3340
61cf0658 33412010-04-30 Richard Guenther <rguenther@suse.de>
3342
3343 * tree-ssa-structalias.c (get_constraint_for_1): Generate
3344 constraints for CONSTRUCTOR.
3345
4d07b54f 33462010-04-30 Richard Guenther <rguenther@suse.de>
3347
3348 PR lto/43946
3349 * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
3350 first after all lowering passes.
3351
3f9da559 33522010-04-30 Steven Bosscher <steven@gcc.gnu.org>
3353
3354 * toplev.c: Include varray.h for statistics dumping.
3355 * tree.h: Do not declare varray_head_tag.
3356 * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
3357 regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
3358 c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
3359 gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
3360 lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
3361 tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
3362 c-common.c, c-common.h, reg-stack.c, basic-block.h,
3363 tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
3364 include varray.h.
3365 * Makefile.in: Update for abovementioned changes.
3366
877fe380 33672010-04-30 Jakub Jelinek <jakub@redhat.com>
3368
3369 PR debug/43942
3370 * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
3371
1b7aefdb 33722010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
3373
3374 * config/picochip/picochip.c (picochip_legitimize_address): Define.
3375 Use this function to do machine-specific conversion.
3376 (picochip_legitimize_reload_address): Likewise.
3377 (picochip_legitimate_address_p): Check valid base register only if
3378 strict.
3379 (picochip_check_conditional_copy): Check for modw only if opnd is
3380 register.
3381 * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
3382 to call the function in c.
3383 * config/picochip/picochip-protos.h
3384 (picochip_legitimize_reload_address): Define.
3385 * config/picochip/picochip.md (supported_compare1): Define.
3386
b7e3aeb1 33872010-04-30 Jan Hubicka <jh@suse.cz>
3388
3389 * cgraph.h (cgraph_local_info): Remove for_functions_valid.
3390 (cgraph_global_info): Remove inlined.
3391 (LTO_cgraph_tag_names): Remove.
3392 (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
3393 * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
3394 simplify cgraph tags and document.
3395 (lto_output_node): Use only LTO_cgraph_unavail_node and
3396 LTO_cgraph_analyzed_node; Do not save analzed, reachable,
95dcf70a 3397 for_functions_valid, global info, process and output flags.
b7e3aeb1 3398 (input_overwrite_node): Initialize estimated stack size and
95dcf70a 3399 estimated growth. Do not read flags we no longer store.
b7e3aeb1 3400 (input_node): Likewise do not read info no longer stored.
3401 * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
3402 flag.
3403
4d6c561b 34042010-04-30 Richard Guenther <rguenther@suse.de>
3405
3406 PR tree-optimization/43879
3407 * tree-ssa-structalias.c (get_constraint_for_1): Properly
3408 handle non-zero initializers.
3409
663870fc 34102010-04-30 Richard Guenther <rguenther@suse.de>
3411
3412 * builtins.c (fold_builtin_1): Delete free (0).
3413
b7e3aeb1 34142010-04-29 Jan Hubicka <jh@suse.cz>
57305941 3415
3416 * gengtype.c (open_base_files): Add lto-streamer.h
3417 * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
3418 (pass_ipa_cp): GGC collect.
3419 * toplev. (compile_file): Do not output symbols.
3420 * ipa-inline.c (pass_ipa_inline): Add ggc collect.
3421 * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
3422 TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
3423 * lto-section-in.c: Include ggc.h
3424 (lto_new_in_decl_state): Alloc in GGC.
3425 (lto_delete_in_decl_state): Likewise.
95dcf70a 3426 * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
3427 Collect.
57305941 3428
dedfd669 34292010-04-29 Bernd Schmidt <bernds@codesourcery.com>
3430
3431 PR target/42895
3432 * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
3433 ORDER_REGS_FOR_LOCAL_ALLOC. All instances of this macro changed.
3434 (HONOR_REG_ALLOC_ORDER): Describe new macro.
3435 * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
3436 * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
3437 account only if HONOR_REG_ALLOC_ORDER is not defined.
3438 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
3439 * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
95dcf70a 3440
34412010-04-29 Jon Grant <04@jguk.org>
3442
2bd5037b 3443 * collect2.c (vflag): Change type from int to bool.
3444 (debug): Likewise.
3445 (helpflag): New global bool.
95dcf70a 3446 (main): Set vflag and debug with boolean, not integer truth values.
3447 Accept new "--help" option and output usage text if found.
2bd5037b 3448 * collect2.h (vflag): Update prototype.
3449 (debug): Likewise.
95dcf70a 3450
ccb7e201 34512010-04-29 H.J. Lu <hongjiu.lu@intel.com>
3452
a7274b28 3453 PR bootstrap/43936
95dcf70a 3454 * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
ccb7e201 3455
08cfd855 34562010-04-29 Richard Guenther <rguenther@suse.de>
3457
3458 PR bootstrap/43935
3459 * plugin.h (invoke_plugin_callbacks): Annotate arguments
3460 with ATTRIBUTE_UNUSED.
3461
b61508f5 34622010-04-29 H.J. Lu <hongjiu.lu@intel.com>
3463
3464 PR target/43921
3465 * config/i386/i386.c (get_some_local_dynamic_name): Replace
3466 INSN_P with NONDEBUG_INSN_P.
3467 (distance_non_agu_define): Likewise.
3468 (distance_agu_use): Likewise.
3469
10760fe9 34702010-04-29 Bernd Schmidt <bernds@codesourcery.com>
3471
3472 From Dominique d'Humieres <dominiq@lps.ens.fr>
3473 PR bootstrap/43858
3474 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
3475 test_set.
3476
95dcf70a 34772010-04-29 Brian Hackett <bhackett1024@gmail.com>
a3f551d2 3478
3479 * plugin.h (invoke_plugin_callbacks): New inline function.
3480 * plugin.c (flag_plugin_added): New global flag.
3481 (add_new_plugin): Initialize above flag.
3482 (invoke_plugin_callbacks): Rename to ...
3483 (invoke_plugin_callbacks_full): ... this.
3484
0cddb138 34852010-04-28 Jan Hubicka <jh@suse.cz>
3486
3487 * lto-symtab.c (lto_symtab_entry_def) Add vnode.
3488 (lto_varpool_replace_node): New.
3489 (lto_symtab_resolve_symbols): Resolve varpool nodes.
3490 (lto_symtab_merge_decls_1): Prefer decls with varpool node.
3491 (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
3492 * cgraph.h (varpool_node_ptr): New type.
3493 (varpool_node_ptr): New vector.
3494 (varpool_node_set_def): New structure.
3495 (varpool_node_set): New type.
3496 (varpool_node_set): New vector.
3497 (varpool_node_set_element_def): New structure.
3498 (varpool_node_set_element, const_varpool_node_set_element): New types.
3499 (varpool_node_set_iterator): New type.
3500 (varpool_node): Add prev pointers, add used_from_other_partition,
3501 in_other_partition.
3502 (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
3503 varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
3504 varpool_get_node, varpool_remove_node): Declare.
3505 (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
3506 varpool_node_set_size): New inlines.
3507 * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
3508 * tree-pass.h (varpool_node_set_def): Forward declare.
3509 (ipa_opt_pass_d): Summary writting takes vnode sets too.
3510 (ipa_write_optimization_summaries): Update prototype.
3511 * ipa-cp.c (ipcp_write_summary): Update.
3512 * ipa-reference.c (ipa_reference_write_summary): Update.
3513 * lto-cgraph.c (lto_output_varpool_node): New static function.
3514 (output_varpool): New function.
3515 (input_varpool_node): New static function.
3516 (input_varpool_1): New function.
3517 (input_cgraph): Input varpool.
3518 * ipa-pure-const.c (pure_const_write_summary): Update.
3519 * lto-streamer-out.c (lto_output): Update, output varpool too.
3520 (write_global_stream): Kill WPA hack.
3521 (produce_asm_for_decls): Update.
3522 (output_alias_pair_p): Handle variables.
3523 (output_unreferenced_globals): Output only needed partition of varpool.
3524 * ipa-inline.c (inline_write_summary): Update.
95dcf70a 3525 * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
3526 cgraph.
0cddb138 3527 * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
3528 * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
3529 varpool_node_set_new, varpool_node_set_add,
3530 varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
3531 debug_varpool_node_set): New functions.
3532 * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
3533 (execute_one_pass): Process new decls too.
3534 (ipa_write_summaries_2): Pass around vsets.
3535 (ipa_write_summaries_1): Likewise.
3536 (ipa_write_summaries): Build vset; be more selective about cgraph nodes
3537 to add.
3538 (ipa_write_optimization_summaries_1): Pass around vsets.
3539 (ipa_write_optimization_summaries): Likewise.
3540 * varpool.c (varpool_get_node): New.
3541 (varpool_node): Update doubly linked lists.
3542 (varpool_remove_node): New.
3543 (dump_varpool_node): More dumping.
3544 (varpool_enqueue_needed_node): Update doubly linked lists.
3545 (decide_is_variable_needed): Kill ltrans hack.
3546 (varpool_finalize_decl): Kill lto hack.
3547 (varpool_assemble_decl): Skip decls in other partitions.
3548 (varpool_assemble_pending_decls): Update doubly linkes lists.
3549 (varpool_empty_needed_queue): Likewise.
3550 (varpool_extra_name_alias): Likewise.
3551 * lto-streamer.c (lto_get_section_name): Add vars section.
3552 * lto-streamer.h (lto_section_type): Update.
3553 (output_varpool, input_varpool): Declare.
3554
a5fc34f1 35552010-04-28 Mike Stump <mikestump@comcast.net>
3556
77204665 3557 * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
a5fc34f1 3558
1334250c 35592010-04-28 Eric Botcazou <ebotcazou@adacore.com>
3560
3561 * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
3562 record or union type with RECORD_OR_UNION_TYPE_P predicate.
3563 (lto_input_ts_type_tree_pointers): Likewise.
3564 * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
3565 (lto_output_ts_type_tree_pointers): Likewise.
3566
ecba073f 35672010-04-28 Eric Botcazou <ebotcazou@adacore.com>
3568
3569 Uniquization of constants at the Tree level
792e829a 3570 * tree.h (DECL_IN_CONSTANT_POOL): New macro.
ecba073f 3571 (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
3572 bit to the end.
3573 (tree_output_constant_def): Declare.
792e829a 3574 * gimplify.c (gimplify_init_constructor): When using block copy, first
ecba073f 3575 uniquize the constant constructor on the RHS.
792e829a 3576 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
3577 DECL_IN_CONSTANT_POOL flag.
ecba073f 3578 * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
792e829a 3579 * varasm.c (make_decl_rtl): Deal with variables belonging to the global
3580 constant pool.
ecba073f 3581 (assemble_variable): Deal with symbols belonging to the tree constant
3582 pool.
3583 (get_constant_section): Add ALIGN parameter and simplify.
3584 (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
3585 (assemble_constant_contents): Use the expression of the VAR_DECL.
3586 (output_constant_def_contents): Use the alignment of the VAR_DECL.
3587 (tree_output_constant_def): New global function.
3588 (mark_constant): Use the expression of the VAR_DECL.
792e829a 3589 (place_block_symbol): Use the alignment of the VAR_DECL and the size of
3590 its expression.
ecba073f 3591 (output_object_block): Likewise and assemble the expression.
3592
29737a6d 35932010-04-28 Eric Botcazou <ebotcazou@adacore.com>
3594
3595 * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
3596 hash_tree, eq_tree): New tree hash table.
3597 (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
3598 [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
3599 lto_orig_address_remove): Reimplement.
3600
a7d4604b 36012010-04-28 Xinliang David Li <davidxl@google.com>
3602
3603 PR c/42643
3604 * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
3605 (compute_uninit_opnds_pos): New function.
3606 (is_non_loop_exit_postdominating): New function.
3607 (compute_control_dep_chain): New function.
3608 (find_pdom): New function.
3609 (convert_control_dep_chain_into_preds): New function.
3610 (find_predicates): New function.
3611 (find_control_equiv_block): New function.
3612 (collect_phi_def_edges): New function.
3613 (find_def_preds): New function.
3614 (find_dom): New function.
3615 (dump_predicates): New function.
3616 (get_cmp_code): New function.
3617 (is_value_included_in): New function.
3618 (find_matching_predicate_in_rest_chains): New function.
3619 (use_pred_not_overlap_with_undef_path_pred): New function.
3620 (is_use_properly_guarded): New function.
3621 (normalize_cond_1): New function.
3622 (is_and_or_or): New function.
3623 (normalize_cond): New function.
3624 (is_gcond_subset_of): New function.
3625 (is_subset_of_any): New function.
3626 (is_or_set_subset_of): New function.
3627 (is_and_set_subset_of): New function.
3628 (is_norm_cond_subset_of): New function.
3629 (is_pred_expr_subset_of): New function.
3630 (is_pred_chain_subset_of): New function.
3631 (is_included_in): New function.
3632 (is_superset_of): New function.
3633 (find_uninit_use): New function.
3634 (warn_uninitialized_phi): New function.
3635 (compute_possibly_undefined_names): New function.
3636 (ssa_undefined_value_p): New function.
3637 (execute_late_warn_uninitialized): New function.
3638 * tree-ssa.c (ssa_undefined_value_p): Removed.
3639 (warn_uninit): Changed to extern.
3640 (warn_uninitialized_phi): Removed.
3641 (warn_uninitialized_vars): Changed to extern.
3642 (execute_late_warn_uninitialized): Removed
3643 * tree-flow.h: Add new prototypes.
3644 * timevar.def: Add new time variable.
3645 * Makefile.in: Add new build file.
3646
913fc649 36472010-04-28 Uros Bizjak <ubizjak@gmail.com>
3648
3649 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
3650 type if available.
3651
80962ae7 36522010-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3653
3654 PR target/22224
3655 * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
3656
799c8711 36572010-04-28 Martin Jambor <mjambor@suse.cz>
3658
3659 * cgraph.h (struct cgraph_node): New field indirect_calls.
3660 (struct cgraph_indirect_call_info): New type.
3661 (struct cgraph_edge): Removed field indirect_call. New fields
3662 indirect_info, indirect_inlining_edge and indirect_unknown_callee.
3663 (cgraph_create_indirect_edge): Declare.
3664 (cgraph_make_edge_direct): Likewise.
3665 (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
3666 * ipa-prop.h (struct ipa_param_call_note): Removed.
3667 (struct ipa_node_params): Removed field param_calls.
3668 (ipa_create_all_structures_for_iinln): Declare.
3669 * cgraph.c: Described indirect edges and uids in initial comment.
3670 (cgraph_add_edge_to_call_site_hash): New function.
3671 (cgraph_edge): Search also among the indirect edges, use
3672 cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
3673 (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
3674 one, use cgraph_add_edge_to_call_site_hash to add edges to the call
3675 site hash.
3676 (initialize_inline_failed): Assign a reason to indirect edges.
3677 (cgraph_create_edge_1): New function.
3678 (cgraph_create_edge): Moved some functionality to
3679 cgraph_create_edge_1.
3680 (cgraph_create_indirect_edge): New function.
3681 (cgraph_edge_remove_callee): Add an assert checking for
3682 non-indirectness.
3683 (cgraph_edge_remove_caller): Special-case indirect edges.
3684 (cgraph_remove_edge): Likewise.
3685 (cgraph_set_edge_callee): New function.
3686 (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
3687 (cgraph_make_edge_direct): New function.
3688 (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
3689 the declaration of the call statement matches.
3690 (cgraph_node_remove_callees): Special-case indirect edges.
3691 (cgraph_clone_edge): Likewise.
3692 (cgraph_clone_node): Clone also the indirect edges.
3693 (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
3694 indirect_call, dump count of indirect_calls edges.
3695 * ipa-prop.c (iinlining_processed_edges): New variable.
3696 (ipa_note_param_call): Create indirect edges instead of
3697 creating notes. New parameter node.
3698 (ipa_analyze_call_uses): New parameter node, pass it on to
3699 ipa_note_param_call.
3700 (ipa_analyze_stmt_uses): Likewise.
3701 (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
3702 (print_edge_addition_message): Work on edges rather than on notes.
3703 (update_call_notes_after_inlining): Likewise, renamed to
3704 update_indirect_edges_after_inlining.
3705 (ipa_create_all_structures_for_iinln): New function.
3706 (ipa_free_node_params_substructures): Do not free notes.
3707 (ipa_edge_duplication_hook): Propagate bits within
3708 iinlining_processed_edges bitmap.
3709 (ipa_node_duplication_hook): Do not duplicate notes.
3710 (free_all_ipa_structures_after_ipa_cp): Renamed to
3711 ipa_free_all_structures_after_ipa_cp.
3712 (free_all_ipa_structures_after_iinln): Renamed to
9a23df5d 3713 ipa_free_all_structures_after_iinln.
799c8711 3714 (ipa_write_param_call_note): Removed.
3715 (ipa_read_param_call_note): Removed.
3716 (ipa_write_indirect_edge_info): New function.
3717 (ipa_read_indirect_edge_info): Likewise.
3718 (ipa_write_node_info): Do not stream notes, do stream information
3719 in indirect edges.
3720 (ipa_read_node_info): Likewise.
3721 (lto_ipa_fixup_call_notes): Removed.
3722 * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
3723 * ipa-inline.c (pass_ipa_inline): Likewise.
3724 * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
3725 * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
3726 * tree-inline.c (copy_bb): Removed an unnecessary double check for
3727 is_gimple_call.
3728 * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
3729 edges.
3730 * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
3731 (output_cgraph): Stream also indirect edges.
3732 (lto_output_edge): Added capability to stream indirect edges.
3733 (input_edge): Likewise.
3734 (input_cgraph_1): Likewise.
1263c11c 3735 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
3736 of indirect edges.
799c8711 3737
d812977b 37382010-04-28 Richard Guenther <rguenther@suse.de>
3739
3740 PR tree-optimization/43879
3741 PR tree-optimization/43909
3742 * tree-ssa-structalias.c (struct variable_info): Add
3743 only_restrict_pointers flag.
3744 (new_var_info): Initialize it. Increment stats.total_vars here.
9a23df5d 3745 (create_function_info_for): Do not increment stats.total_vars here.
d812977b 3746 (get_function_part_constraint): Fix build with C++.
3747 (insert_into_field_list): Remove.
3748 (push_fields_onto_fieldstack): Properly merge fields.
3749 (create_variable_info_for): Split and simplify.
3750 (create_variable_info_for_1): New piece.
3751 (intra_create_variable_infos): Properly make restrict constraints
3752 from parameters.
3753
d87cde43 37542010-04-28 Richard Guenther <rguenther@suse.de>
3755
3756 PR c++/43880
95dcf70a 3757 * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
d87cde43 3758
2c06958d 37592010-04-27 Manuel López-Ibáñez <manu@gcc.gnu.org>
3760 Jan Hubicka <hubicka@ucw.cz>
3761
3762 * doc/invoke.texi (-Wsuggest-attribute=const,
3763 -Wsuggest-attribute=pure): Document.
3764 * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
3765 (function_always_visible_to_compiler_p,
3766 suggest_attribute, warn_function_pure, warn_function_const):
3767 New functions.
3768 (check_call): Improve debug info.
3769 (analyze_function): Do not check availability.
3770 (add_new_function): Check availability.
3771 (propagate): Output warnings.
3772 (skip_function_for_local_pure_const): New function.
3773 (local_pure_const): Use it; output warnings.
3774 * common.opt (Wsuggest-attribute=const,
3775 Wsuggest-attribute=pure): New.
3776
0b577e62 37772010-04-27 Jakub Jelinek <jakub@redhat.com>
3778
3779 * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
3780 force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
3781 or DW_CFA_def_cfa_offset{,_sf}.
3782
eb65426a 37832010-04-27 Eric Botcazou <ebotcazou@adacore.com>
3784
3785 * tree.h: Fix truncated long macros.
3786
a2beb429 37872010-04-27 Kai Tietz <kai.tietz@onevision.com>
3788
3789 * collect2.c (TARGET_64BIT): Redefine to target's default.
3790 * tlink.c: Likewise.
3791 * config/i386/cygming.h (USER_LABEL_PREFIX): Define
3792 dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
3793 * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
3794 for underscoring __USER_LABEL_PREFIX__.
3795 * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
3796 (SUB_LINK_ENTRY32): New.
3797 (SUB_LINK_ENTRY64): New.
913fc649 3798 (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
a2beb429 3799 * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
3800 (SUB_LINK_ENTRY64): New.
3801 (SUB_LINK_ENTRY): New.
3802 (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
3803 (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
3804 x64 target is choosen.
3805 * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
3806 * configure: Regenerated.
3807 * configure.ac (leading-mingw64-underscores): Option added.
3808
4e2db0ad 38092010-04-27 Jan Hubicka <jh@suse.cz>
3810
3811 * doc/invoke.texi (-fipa-profile): Document.
3812 * opts.c (decode_options): Enable ipa-profile at -O1.
3813 * timevar.def (TV_IPA_PROFILE): Define.
3814 * common.opt (fipa-profile): Add.
eb65426a 3815 * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
3816 flag for clones.
4e2db0ad 3817 (cgraph_propagate_frequency): Handle only local ones.
3818 * tree-pass.h (pass_ipa_profile): Declare.
3819 * ipa-profile.c (gate_profile): Use flag_ipa_profile.
3820 (pass_ipa_profile): Use TV_IPA_PROFILE.
3821 * ipa.c (ipa_profile): New function.
3822 (gate_ipa_profile): Likewise.
3823 (pass_ipa_profile): New global variable.
3824 * passes.c (pass_ipa_profile): New.
3825
d0ac9107 38262010-04-27 Nathan Froyd <froydnj@codesourcery.com>
3827
3828 * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
3829
c524ac5d 38302010-04-27 Martin Jambor <mjambor@suse.cz>
3831
3832 PR middle-end/43812
3833 * ipa.c (dissolve_same_comdat_group_list): New function.
3834 (function_and_variable_visibility): Call
3835 dissolve_same_comdat_group_list when comdat group contains external or
3836 newly local nodes.
3837 * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
3838 lists are circular and that they contain only DECL_ONE_ONLY nodes.
3839
7cbee418 38402010-04-27 Eric Botcazou <ebotcazou@adacore.com>
3841
3842 * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
3843 (const_hash_1) <VECTOR_CST>: New case.
3844 (compare_constant) <VECTOR_CST>: Likewise.
3845 <ADDR_EXPR>: Deal with LABEL_REFs.
3846 (copy_constant) <VECTOR_CST>: New case.
3847
5ea60108 38482010-04-27 Jan Hubicka <jh@suse.cz>
3849
3850 * cgraph.c (cgraph_propagate_frequency): New function.
3851 * cgraph.h (cgraph_propagate_frequency): Declare.
3852 * ipa-inline.c (cgraph_clone_inlined_nodes): Call
3853 cgraph_propagate_frequency.
3854
a43d1001 38552010-04-27 Jakub Jelinek <jakub@redhat.com>
3856
3857 * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
3858
f2df6027 38592010-04-27 Bernd Schmidt <bernds@codesourcery.com>
3860
3861 PR target/40657
3862 * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
3863 (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
3864 here to determine which regs to push and how much stack to reserve.
3865
86689d78 38662010-04-27 Jie Zhang <jie@codesourcery.com>
3867
3868 * doc/gimple.texi (gimple_statement_with_ops): Remove
3869 addresses_taken field.
3870 (gimple_statement_with_memory_ops): Likewise.
3871
4ad4123f 38722010-04-27 Jan Hubicka <jh@suse.cz>
3873
3874 * tree-inline.c (eni_inlining_weights): Remove.
3875 (estimate_num_insns): Special case more builtins.
3876
bf8949d1 38772010-04-27 Shujing Zhao <pearly.zhao@oracle.com>
913fc649 3878
bf8949d1 3879 PR c/32207
3880 * c-typeck.c (build_binary_op): Move forward check for comparison
3881 pointer with null pointer constant and adjust the diagnostic message.
3882
e6d35c71 38832010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
3884
3885 PR lto/42776
3886 * configure.ac (gcc_cv_as_section_has_align): Set if installed
3887 binutils supports extended .section directive needed by LTO, or
3888 warn if older binutils found.
3889 (LTO_BINARY_READER): New AC_SUBST'd variable.
3890 (LTO_USE_LIBELF): Likewise.
3891 * gcc/config.gcc (lto_binary_reader): New target-specific configure
3892 variable.
3893 * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
3894 (LTO_USE_LIBELF): Likewise.
3895 * configure: Regenerate.
3896
3897 * collect2.c (is_elf): Rename from this ...
3898 (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
3899 object files in addition to ELF-formatted ones.
3900 (scan_prog_file): Caller updated. Also allow for LTO info marker
3901 symbol to be prefixed or not by an extra underscore.
3902
3903 * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
3904 * config/i386/winnt.c: Also #include lto-streamer.h
3905 (i386_pe_asm_named_section): Specify 1-byte section alignment for
3906 LTO named sections.
3907 (i386_pe_asm_output_aligned_decl_common): Add comment.
3908 (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
3909
e94ec4b2 39102010-04-27 Hans-Peter Nilsson <hp@bitrange.com>
3911
ebd9ec20 3912 PR target/43889
e94ec4b2 3913 * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
3914 Add missing earlyclobber for second alternative.
3915
330ce56e 39162010-04-26 Bernd Schmidt <bernds@codesourcery.com>
3917
3918 * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
3919 bits for artificial defs at the top of the block.
3920 * fwprop.c (single_def_use_enter_block): Don't call it.
3921
7e0cc44b 39222010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
d87f538b 3923
3924 PR 43715
3925 * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
3926 instead of "$gcc_cv_objdump -T".
3927 Use "-undefined dynamic_lookup" on darwin.
3928 * gcc/configure: Regenerate.
3929
abc3b078 39302010-04-26 Jakub Jelinek <jakub@redhat.com>
3931
3932 PR c/43893
3933 * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
3934
561ba0aa 39352010-04-26 Nathan Froyd <froydnj@codesourcery.com>
3936
3937 * c-parser.c (struct c_token): Move location field up.
3938 * c-tree.h (struct c_typespec): Move expr_const_operands field up.
3939 (struct c_declspecs): Convert typespec_word, storage_class, and
3940 default_int_p into bitfields.
3941 (struct c_declarator): Move loc field up.
3942
609c710b 39432010-04-26 Nathan Froyd <froydnj@codesourcery.com>
3944
3945 * cfgloop.h (struct loop): Move can_be_parallel field up.
3946 * ipa-prop.h (struct ip_node_params): Move bitfields up.
3947 * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
3948 down.
3949 (struct iv_cand): Convert pos field into a bitfield.
3950 * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
3951 field up.
3952 (struct _stmt_vec_info): Shuffle fields for better packing.
3953
b145ba32 39542010-04-26 Eric Botcazou <ebotcazou@adacore.com>
3955
3956 * varasm.c (IN_NAMED_SECTION): Remove guard.
3957 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
3958 (IN_NAMED_SECTION_P): ...this.
3959 (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
3960 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
3961
71302876 39622010-04-26 Eric Botcazou <ebotcazou@adacore.com>
3963
3964 * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
3965 Use VOID_TYPE_P for all void type tests. Adjust TYPE variable instead
3966 of shadowing it. Fix comments.
3967
125b6d78 39682010-04-26 Jan Hubicka <jh@suse.cz>
3969
3970 * cgraph.c (cgraph_create_node): Set node frequency to normal.
3971 (cgraph_clone_node): Copy function frequency.
3972 * cgraph.h (node_frequency): New enum
3973 (struct cgraph_node): Add.
3974 * final.c (rest_of_clean_state): Update.
3975 * lto-cgraph.c (lto_output_node): Output node frequency.
3976 (input_overwrite_node): Input node frequency.
3977 * tre-ssa-loop-ivopts (computation_cost): Update.
71302876 3978 * lto-streamer-out.c (output_function): Do not output function
3979 frequency.
3980 * predict.c (maybe_hot_frequency_p): Update and handle functions
3981 executed once.
125b6d78 3982 (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
3983 attribute lookup.
3984 (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
71302876 3985 (compute_function_frequency): Set noreturn functions to be executed
3986 once.
125b6d78 3987 (choose_function_section): Update.
3988 * lto-streamer-in.c (input_function): Do not input function frequency.
71302876 3989 * function.c (allocate_struct_function): Do not initialize function
3990 frequency.
125b6d78 3991 * function.h (function_frequency): Remove.
3992 (struct function): Remove function frequency.
3993 * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
3994 (try_update): Update.
3995 * tree-inline.c (initialize_cfun): Do not update function frequency.
3996 * passes.c (pass_init_dump_file): Update.
3997 * i386.c (ix86_compute_frame_layout): Update.
3998 (ix86_pad_returns): Update.
3999
bca0860e 40002010-04-26 Jie Zhang <jie@codesourcery.com>
4001
4002 PR tree-optimization/43833
4003 * tree-vrp.c (range_int_cst_p): New.
4004 (range_int_cst_singleton_p): New.
4005 (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
4006 when both operands are constants. Use range_int_cst_p in
4007 BIT_IOR_EXPR case.
4008
32936803 40092010-04-26 Jan Hubicka <jh@suse.cz>
4010
4011 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
4012
60d62ca4 40132010-04-26 Richard Guenther <rguenther@suse.de>
4014
4015 PR lto/43080
4016 * gimple.c (gimple_decl_printable_name): Deal gracefully
4017 with a NULL DECL_NAME.
4018
be9d48ea 40192010-04-26 Richard Guenther <rguenther@suse.de>
4020
4021 PR lto/42425
4022 * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
4023 if emitting debug information and it is either a function
4024 or a namespace decl.
4025
6ea6a380 40262010-04-26 Ira Rosen <irar@il.ibm.com>
4027
913fc649 4028 * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
4029 determine if the statement is vectorizable, and a macro to access it.
4030 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
4031 Skip statements that can't be vectorized. If the analysis fails,
4032 mark the statement as unvectorizable if vectorizing basic block.
6ea6a380 4033 (vect_compute_data_refs_alignment): Likewise.
913fc649 4034 (vect_verify_datarefs_alignment): Skip statements marked as
6ea6a380 4035 unvectorizable. Add print.
913fc649 4036 (vect_analyze_group_access): Skip statements that can't be
4037 vectorized. If the analysis fails, mark the statement as
6ea6a380 4038 unvectorizable if vectorizing basic block.
913fc649 4039 (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
4040 * tree-vect-stmts.c (vectorizable_store): Fix the number of
6ea6a380 4041 generated stmts for SLP.
4042 (new_stmt_vec_info): Initialize the new field.
913fc649 4043 * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
6ea6a380 4044 statements marked as unvectorizable.
4045
39012afb 40462010-04-25 Joseph Myers <joseph@codesourcery.com>
4047
4048 * c-common.c (flag_isoc1x): New.
4049 (flag_isoc99): Update comment.
4050 * c-common.h (flag_isoc1x): New.
4051 (flag_isoc99): Update comment.
4052 * c-cppbuiltin.c (builtin_define_float_constants): Also define
4053 __<type>_DECIMAL_DIG__.
4054 * c-opts.c (set_std_c1x): New.
4055 (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
4056 (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
4057 * c.opt (-std=c1x, -std=gnu1x): New options.
4058 * doc/cpp.texi: Mention -std=c1x.
4059 * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
4060 * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
4061 * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
4062 * doc/standards.texi: Mention C1X.
4063 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
4064 LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
4065 LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
4066 Define for C1X.
4067
ba75bdd5 40682010-04-25 Uros Bizjak <ubizjak@gmail.com>
4069
4070 * config/i386/gmon-sol2.c (_mcleanup): Change format string
4071 placeholder from 0x%x to %#x.
4072 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
4073 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
4074 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
4075 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
4076 * config/i386/i386.c (ix86_target_string): Ditto.
4077 (output_pic_addr_const): Ditto.
4078 (print_operand): Ditto.
4079
b420d71b 40802010-04-25 Paolo Bonzini <bonzini@gnu.org>
4081
4082 * combine.c (find_split_point): Add third argument. Use it
4083 to find nested multiply-accumulate instructions. Adjust calls.
4084 (try_combine): Adjust call to find_split_point.
4085
6488fcc5 40862010-04-24 Gerald Pfeifer <gerald@pfeifer.com>
4087
4088 * doc/contrib.texi (Contributors): Add Dodji Seketeli.
4089
e230978b 40902010-04-24 Bernd Schmidt <bernds@codesourcery.com>
4091
4092 PR tree-optimization/41442
4093 * fold-const.c (merge_truthop_with_opposite_arm): New function.
4094 (fold_binary_loc): Call it.
4095
3fee9a69 40962010-04-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
4097
ba75bdd5 4098 * toplev.c (general_init): Set default for fdiagnostics-show-option.
3fee9a69 4099 * opts.c (common_handle_option): Allow disabling it.
ba75bdd5 4100 * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
4101
f235634e 41022010-04-23 Eric Botcazou <ebotcazou@adacore.com>
4103
4104 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
4105 between modes if both types are integral.
4106
8081b5e7 41072010-04-23 Richard Guenther <rguenther@suse.de>
4108
4109 PR tree-optimization/43572
4110 * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
4111
33d8f019 41122010-04-23 Richard Guenther <rguenther@suse.de>
4113
4114 PR lto/43455
4115 * tree-inline.c (tree_can_inline_p): Also check compatibility
4116 of return types.
4117
7038698b 41182010-04-23 Martin Jambor <mjambor@suse.cz>
4119
4120 PR tree-optimization/43846
4121 * tree-sra.c (struct access): New flag grp_assignment_read.
4122 (build_accesses_from_assign): Set grp_assignment_read.
4123 (sort_and_splice_var_accesses): Propagate grp_assignment_read.
4124 (enum mark_read_status): New type.
4125 (analyze_access_subtree): Propagate grp_assignment_read, create
4126 accesses also if both direct_read and root->grp_assignment_read.
4127
8cef76a0 41282010-04-23 Martin Jambor <mjambor@suse.cz>
4129
4130 PR middle-end/43835
4131 * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
4132 function does not have type attributes.
4133
712afa45 41342010-04-23 Richard Guenther <rguenther@suse.de>
4135
4136 PR lto/42653
4137 * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
4138 of FUNCTION_DECLs.
4139
2bf96dd7 41402010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
4141
4142 * sese.h (create_if_region_on_edge): Remove.
4143
4144 * sese.c (create_if_region_on_edge): Make static.
4145
4146 * tree-inline.c: Do not include ggc.h.
4147
4148 * expr.c: Do not include ggc.h.
4149
4150 * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
4151 dependencies.
4152
0152fbc1 41532010-04-22 Kaz Kojima <kkojima@gcc.gnu.org>
4154
4155 PR target/43744
4156 * config/sh/sh.c (find_barrier): Don't emit a constant pool
4157 in the middle of insns for casesi_worker_2.
4158
3c31be88 41592010-04-22 David Edelsohn <edelsohn@gnu.org>
4160
4161 * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
4162
41632010-04-22 Ira Rosen <irar@il.ibm.com>
47deb25f 4164
c10b9de6 4165 PR tree-optimization/43842
82f5958d 4166 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
47deb25f 4167 loop unrolling in update of exit phis. Fix comment.
4168 * tree-vect-slp.c (vect_analyze_slp): Check that there are at
82f5958d 4169 least two reduction statements in the loop before starting SLP
47deb25f 4170 analysis.
4171
7454e6c5 41722010-04-22 Nick Clifton <nickc@redhat.com>
4173
4174 * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
4175
50fa62c6 41762010-04-22 Alexander Monakov <amonakov@ispras.ru>
4177
4178 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
4179 to simplify a + ~a.
4180
1e33ad50 41812010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
4182
4183 * tree-parloops.c (loop_parallel_p): New argument
4184 parloop_obstack. Pass it down.
4185 (parallelize_loops): New variable parloop_obstack. Initialize it,
4186 pass it down, free it.
4187
4188 * tree-loop-linear.c (linear_transform_loops): Pass down
4189 lambda_obstack.
4190
4191 * tree-data-ref.h (lambda_compute_access_matrices): New argument
4192 of type struct obstack *.
4193
4194 * tree-data-ref.c (analyze_subscript_affine_affine): New variable
4195 scratch_obstack. Initialize it, pass down, free it.
4196
4197 * lambda.h (lambda_loop_new): Remove.
4198 (lambda_matrix_new, lambda_matrix_inverse)
4199 (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
4200 argument of type struct obstack *.
4201
4202 * lambda-trans.c (lambda_trans_matrix_new): New argument
4203 lambda_obstack. Pass it down, use obstack allocation for ret.
4204 (lambda_trans_matrix_inverse): New argument lambda_obstack. Pass
4205 it down.
4206
4207 * lambda-mat.c (lambda_matrix_get_column)
4208 (lambda_matrix_project_to_null): Remove.
4209 (lambda_matrix_new): New argument lambda_obstack. Use obstack
4210 allocation for mat.
4211 (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
4212 lambda_obstack.
4213
4214 * lambda-code.c (lambda_loop_new): New function.
4215 (lambda_lattice_new, compute_nest_using_fourier_motzkin)
4216 (lambda_compute_auxillary_space, lambda_compute_target_space)
4217 (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
4218 (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
4219 (build_access_matrix): New argument lambda_obstack. Use obstack
4220 allocation for am.
4221 (lambda_compute_step_signs, lambda_compute_access_matrices): New
4222 argument lambda_obstack. Pass it down.
4223
0ca212b8 42242010-04-22 Bernd Schmidt <bernds@codesourcery.com>
4225
4226 * optabs.h (expand_widening_mult): Declare.
4227
80ebf6ea 42282010-04-22 Richard Guenther <rguenther@suse.de>
4229
4230 PR tree-optimization/43845
4231 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
4232 lookup the CALL_EXPR function and arguments.
4233
579a6158 42342010-04-22 Nick Clifton <nickc@redhat.com>
4235
4236 * config/stormy16/stormy16.c
82f5958d 4237 (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
579a6158 4238 * config/stormy16/stormy16.h: Tidy up formatting.
4239 (DONT_USE_BUILTIN_SETJMP): Remove definition.
4240 * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
4241 (ineqbranchsi): Delete pattern.
4242 * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
4243 * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
4244 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
4245 stormy16-lib2-ucmpsi2.c.
4246
f1565c91 42472010-04-22 Bernd Schmidt <bernds@codesourcery.com>
4248
4249 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
4250 df_simulate_find_noclobber_defs as appropriate. Keep track of an
4251 extra set merge_set_noclobber, and use it to relax the final test
4252 slightly.
4253 * df.h (df_simulate_find_noclobber_defs): Declare.
4254 * df-problems.c (df_simulate_find_defs): Don't ignore partial or
4255 conditional defs.
4256 (df_simulate_find_noclobber_defs): New function.
4257
24bd4421 42582010-04-22 Uros Bizjak <ubizjak@gmail.com>
4259
4260 * config/i386/i386.md: Use {} around multi-line preparation statements.
4261
759791ee 42622010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
4263
4264 * c-tree.h (push_init_level, pop_init_level, set_init_index)
4265 (process_init_element): New argument of type struct obstack *.
4266
4267 * c-typeck.c (push_init_level, pop_init_level, set_designator)
4268 (set_init_index, set_init_label, set_nonincremental_init)
4269 (set_nonincremental_init_from_string, find_init_member)
4270 (output_init_element, output_pending_init_elements)
4271 (process_init_element): New argument braced_init_obstack. Pass it
4272 down.
4273 (push_range_stack, add_pending_init): New argument
4274 braced_init_obstack. Use obstack allocation.
4275
4276 * c-parser.c (c_parser_initelt, c_parser_initval): New argument
4277 braced_init_obstack. Pass it down.
4278 (c_parser_braced_init): New variables ret, braced_init_obstack.
4279 Initialize obstack, pass it down and finally free it.
4280
62be004c 42812010-04-22 Bernd Schmidt <bernds@codesourcery.com>
4282
4283 PR middle-end/29274
62be004c 4284 * tree-pass.h (pass_optimize_widening_mul): Declare.
4285 * tree-ssa-math-opts.c (execute_optimize_widening_mul,
4286 gate_optimize_widening_mul): New static functions.
4287 (pass_optimize_widening_mul): New.
ba75bdd5 4288 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
62be004c 4289 <case MULT_EXPR>: Remove support for widening multiplies.
4290 * tree.def (WIDEN_MULT_EXPR): Tweak comment.
4291 * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
4292 simplify_gen_unary rather than directly building extensions.
4293 * tree-cfg.c (verify_gimple_assign_binary): Add tests for
4294 WIDEN_MULT_EXPR.
4295 * expmed.c (expand_widening_mult): New function.
4296 * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
4297
5a2aecd6 42982010-04-21 Jan Hubicka <jh@suse.cz>
4299
4300 * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
4301 * lto-section-in.c (lto_section_name): Remove wpa_fixup.
4302 * lto-wpa-fixup.c: Remove.
4303 * Makefile.in (lto-wpa-fixup.o): Remove.
4304 * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
4305 (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
4306 * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
4307
ddc90d88 43082010-04-21 Jan Hubicka <jh@suse.cz>
4309
4310 * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
4311 add write_optimization_summary, read_optimization_summary.
4312 (ipa_write_summaries_of_cgraph_node_set): Remove.
4313 (ipa_write_optimization_summaries): Declare.
4314 (ipa_read_optimization_summaries): Declare.
4315 * ipa-cp.c (pass_ipa_cp): Update.
4316 * ipa-reference.c (pass_ipa_reference): Update.
4317 * ipa-pure-const.c (pass_ipa_pure_const): Update.
4318 * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
4319 Update.
4320 * ipa-inline.c (pass_ipa_inline): Update.
4321 * ipa.c (pass_ipa_whole_program): Update.
4322 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
4323 * passes.c (ipa_write_summaries_1): Do not test wpa.
4324 (ipa_write_optimization_summaries_1): New.
4325 (ipa_write_optimization_summaries): New.
4326 (ipa_read_summaries): Do not test ltrans.
4327 (ipa_read_optimization_summaries_1): New.
4328 (ipa_read_optimization_summaries): New.
4329
4fedf884 43302010-04-21 Jan Hubicka <jh@suse.cz>
4331
4332 * lto-cgraph.c (lto_output_node): Do not output comdat groups
4333 for boundary nodes.
4334 (output_cgraph): Do not arrange comdat groups for boundary nodes.
4335
f9e293e5 43362010-04-21 Jakub Jelinek <jakub@redhat.com>
4337
4338 PR debug/40040
4339 * dwarf2out.c (add_name_and_src_coords_attributes): Add
4340 DW_AT_{,MIPS_}linkage_name even for Fortran decls.
4341
509414a5 43422010-04-21 Jan Hubicka <jh@suse.cz>
4343
4344 * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
4345
e288c7a9 43462010-04-21 Jan Hubicka <jh@suse.cz>
4347
4348 * varpool.c (decide_is_variable_needed): Variable is always needed
4349 during ltrans.
4350
f855a9b7 43512010-04-21 Jan Hubicka <jh@suse.cz>
4352
4353 * opts.c (decode_options): Enable pure-const pass for whopr.
4354
6d61f3f9 43552010-04-21 Jan Hubicka <jh@suse.cz>
4356
4357 * cgraph.c (dump_cgraph_node): Dump also assembler name.
4358 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
4359 at WPA dumping.
4360 (cgraph_decide_inlining): Do not expect callee to be removed in all
4361 cases.
4362
f247be10 43632010-04-21 Eric B. Weddington <eric.weddington@atmel.com>
4364
4365 * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
4366
2cd7ed52 43672010-04-21 Uros Bizjak <ubizjak@gmail.com>
4368
4369 * config/i386/i386.md (x86_shrd): Add athlon_decode and
4370 amdfam10_decode attributes.
4371
cb561506 43722010-04-21 Jakub Jelinek <jakub@redhat.com>
4373
4374 PR middle-end/43570
4375 * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
4376 OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
4377 (lower_copyprivate_clauses): Use private var in outer
4378 context instead of original var. Make sure the types
4379 are correct for VLAs.
4380
b2c2343f 43812010-04-21 Richard Guenther <rguenther@suse.de>
4382
4383 * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
4384 to non-pointer objects.
4385
76a1250d 43862010-04-21 Jakub Jelinek <jakub@redhat.com>
4387
8c7e2a7b 4388 * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument. Drop
4389 last chain entry if it starts with the still current label.
4390 (add_location_or_const_value_attribute): Check that
24bd4421 4391 loc_list->first->next is NULL instead of comparing ->first with ->last.
8c7e2a7b 4392 (dwarf2out_var_location): Pass last_label resp. last_postcall_label
4393 to add_var_loc_to_decl.
4394
76a1250d 4395 * dwarf2out.c (output_call_frame_info): For dw_cie_version
24bd4421 4396 >= 4 add also address size and segment size fields into CIE header.
76a1250d 4397
4398 * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
4399 long as address size is the same as sizeof (void *) and
4400 segment size is 0.
4401 * unwind-dw2-fde.c (get_cie_encoding): Likewise. If
4402 address size or segment size is unexpected, return DW_EH_PE_omit.
4403 (classify_object_over_fdes): If get_cie_encoding returned
4404 DW_EH_PE_omit, return -1.
4405 (init_object): If classify_object_over_fdes returned -1,
4406 pretend there were no FDEs at all.
4407
41edf0a1 44082010-04-21 Uros Bizjak <ubizjak@gmail.com>
4409
4410 * config/i386/i386.md (bswap<mode>2): Macroize expander from
4411 bswap{si,di}2 using SWI48 mode iterator.
4412 (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
4413 SWI48 mode iterator. Set type attribute of bswap insn to bitmanip,
4414 set modrm attribute of bswap insn to 0 and remove length attribute.
4415 (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
4416 iterator. Set type attribute to bitmanip, set modrm attribute to 0,
4417 set mode attribute to <MODE> and remove length attribute.
4418
0cc9609c 44192010-04-20 James E. Wilson <wilson@codesourcery.com>
4420
4421 PR rtl-optimization/43520
4422 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
4423 zero available registers.
4424
b4c7e601 44252010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4426
4427 * builtins.c (fold_builtin_cproj): Fold more cases.
4428
c2373fdb 44292010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4430
4431 * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
4432 (fold_builtin_1): Fold builtin cproj.
4433 * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
4434 Use ATTR_CONST_NOTHROW_LIST.
4435
b5a754c1 44362010-04-20 Uros Bizjak <ubizjak@gmail.com>
4437
4438 * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
4439 and ffsdi2 using SWI48 mode iterator. Expand SImode insn through
4440 ffsi2_no_cmove for !TARGET_CMOVE.
4441 (ffssi2_no_cmove): Rename from *ffs_no_cmove. Make public.
4442 (ffssi2): Remove expander.
4443 (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
4444 mode iterator.
4445 (ctz<mode>2): Ditto from ctz{si,di}2.
4446 (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
4447 mode iterator.
4448 (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
4449 mode iterator.
4450
a6d38f07 44512010-04-20 Jakub Jelinek <jakub@redhat.com>
4452
4453 * dwarf2out.c (AT_linkage_name): Define.
4454 (clone_as_declaration): Handle DW_AT_linkage_name.
4455 (add_name_and_src_coords_attributes): Use AT_linkage_name instead
4456 of DW_AT_MIPS_linkage_name.
4457 (move_linkage_attr): Likewise.
4458 (dwarf2out_finish): Likewise.
4459
2b6cd5e4 44602010-04-20 Xinliang David Li <davidxl@gcc.gnu.org>
4461
4462 PR middle-end/41952
b5a754c1 4463 * fold-const.c (fold_comparison): New folding rule.
2b6cd5e4 4464
a6d38f07 44652010-04-20 Anatoly Sokolov <aesok@post.ru>
3e052aec 4466
4467 * double-int.h (double_int_setbit): Declare.
4468 * double-int.c (double_int_setbit): New function.
4469 * rtl.h (immed_double_int_const): Declare.
4470 * emit-rtl.c (immed_double_int_const): New function.
4471 * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
4472 and immed_double_int_const functions.
4473 * optabs.c (expand_absneg_bit, expand_copysign_absneg,
4474 expand_copysign_bit): (Ditto.).
4475 * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
4476 * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
4477 * dojump.c (prefer_and_bit_test): (Ditto.).
4478 * expr.c (convert_modes, reduce_to_bit_field_precision,
4479 const_vector_from_tree): (Ditto.).
4480 * expmed.c (mask_rtx, lshift_value): (Ditto.).
4481
08843223 44822010-04-20 Jan Hubicka <jh@suse.cz>
4483
4484 * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
4485 (dump_cgraph_node): Dump new flags.
b5a754c1 4486 * cgraph.h (struct cgraph_node): Add flags
4487 reachable_from_other_partition and in_other_partition.
4488 (cgraph_can_remove_if_no_direct_calls_p): Functions used by
4489 other partition can not be removed.
4490 * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
4491 the other partition must be output; silence sanity checking on
4492 leaking functions bodies from other paritition.
08843223 4493 * lto-cgraph.c (reachable_from_other_partition_p): New function.
4494 (lto_output_node): Output new flags; do not sanity check that inline
4495 clones are output; drop lto_forced_extern_inline_p code; do not mock
4496 visibility flags at partition boundaries.
4497 (add_node_to): New function.
4498 (output_cgraph): Use it to sort functions so masters appear before
4499 clones.
4500 (input_overwrite_node): Input new flags.
4501 * passes.c (ipa_write_summaries): Do not call
4502 lto_new_extern_inline_states.
77204665 4503 * lto-section-out.c (forced_extern_inline,
4504 lto_new_extern_inline_states lto_delete_extern_inline_states,
4505 lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
08843223 4506 * lto-streamer.h (lto_new_extern_inline_states,
4507 * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
4508 lto_forced_extern_inline_p): Kill.
4509
e1148535 45102010-04-20 Richard Guenther <rguenther@suse.de>
4511
4512 * tree-ssa-structalias.c (do_sd_constraint): Add edges only
4513 from vars that can have pointers.
4514 (process_constraint): Dump useless constraints.
4515
3eaadea6 45162010-04-20 Richard Guenther <rguenther@suse.de>
4517
b5a754c1 4518 * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
3eaadea6 4519 (dump_sa_points_to_info): Remove asserts.
4520 (init_base_vars): nothing_id isn't an escape point nor does it
4521 have pointers.
4522
678b5e9b 45232010-04-20 Jakub Jelinek <jakub@redhat.com>
4524
4525 * tree.h (TYPE_REF_IS_RVALUE): Define.
4526 * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
4527 should_move_die_to_comdat, prune_unused_types_walk): Handle
4528 DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
4529 (modified_type_die, gen_reference_type_die): Emit
4530 DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
4531 if TYPE_REF_IS_RVALUE and -gdwarf-4.
4532
9c7185f7 45332010-04-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4534
4535 PR target/43635
4536 * config/s390/s390.c (s390_emit_call): Turn direct into indirect
4537 calls for -fpic -m31 if they have been sibcall optimized.
4538
1dd98d5a 45392010-04-19 James E. Wilson <wilson@codesourcery.com>
4540
1e6fdd40 4541 * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
4542 ar.lc fixed and call-used.
4543
1dd98d5a 4544 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
4545
e7eaba7b 45462010-04-19 Jan Hubicka <jh@suse.cz>
4547
4548 * opts.c (decode_options): Disable whpr incompatible passes.
4549 * lto/lto.c (lto_1_to_1_map): Skip clones.
4550 (read_cgraph_and_symbols): Do not mark everything as needed.
4551 (do_whole_program_analysis): Do map only after optimizing;
4552 set proper cgraph_state; use passmanager.
4553
af3d13d6 45542010-04-19 DJ Delorie <dj@redhat.com>
4555
4556 * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
4557 POINTER_PLUS_EXPR and fix them.
4558
ee5aed24 45592010-04-19 Eric B. Weddington <eric.weddington@atmel.com>
4560
4561 * config/avr/avr-devices.c (avr_mcu_types): Add support for new
4562 devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
4563 attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
4564 atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
4565 atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
4566 atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
4567 atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
4568 atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
4569 m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
4570 atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
4571 * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
4572
76b61550 45732010-04-19 Eric Botcazou <ebotcazou@adacore.com>
4574
4575 * ifcvt.c (noce_try_cmove_arith): Fix long lines.
4576 (check_cond_move_block): Likewise.
4577 (cond_move_process_if_block): Likewise.
4578 (noce_find_if_block): Improve formatting.
4579 (find_if_header): Pass 0 to memset and tweak conditions.
4580 (cond_exec_find_if_block): Fix long lines and tweak conditions.
4581
ce2646e8 45822010-04-19 Jakub Jelinek <jakub@redhat.com>
4583
b5a754c1 4584 * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
4585 for -gdwarf-4.
ce2646e8 4586
c46df3b1 4587 PR middle-end/43337
4588 * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
4589 with non-local decl doesn't need chain.
4590
fe15436a 45912010-04-19 Vladimir Makarov <vmakarov@redhat.com>
4592
4593 * ira-color.c (allocno_reload_assign): Avoid accumulating
4594 reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
4595
2ac51e48 45962010-04-19 Martin Jambor <mjambor@suse.cz>
4597
4598 * gimple.h (create_tmp_reg): Declare.
4599 * gimplify.c (create_tmp_reg): New function.
4600 (gimplify_return_expr): Use create_tmp_reg.
4601 (gimplify_omp_atomic): Likewise.
4602 (gimple_regimplify_operands): Likewise.
4603 * tree-dfa.c (make_rename_temp): Likewise.
4604 * tree-predcom.c (predcom_tmp_var): Likewise.
4605 (reassociate_to_the_same_stmt): Likewise.
4606 * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
4607 (get_replaced_param_substitute): Likewise.
4608 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
4609 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
4610 * tree-ssa-pre.c (get_representative_for): Likewise.
4611 (create_expression_by_pieces): Likewise.
4612 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
4613 (create_tailcall_accumulator): Likewise.
4614
e32916b6 46152010-04-19 Martin Jambor <mjambor@suse.cz>
4616
4617 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
4618 new_stmt.
4619 (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
4620
9300c776 46212010-04-19 Richard Guenther <rguenther@suse.de>
4622
4623 PR tree-optimization/43796
4624 * tree-vrp.c (adjust_range_with_scev): Lookup init and step
4625 from SCEV in the lattice.
4626 (vrp_visit_phi_node): Dump change.
4627
993c1715 46282010-04-19 Richard Guenther <rguenther@suse.de>
4629
4630 * configure.ac: Fix quoting around elf_getshstrndx ABI check.
4631 * configure: Re-generated.
4632
d6b951b8 46332010-04-19 Richard Guenther <rguenther@suse.de>
4634
4635 PR tree-optimization/43783
4636 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
4637 constant ARRAY_REF operands two and three if possible.
4638
1870b3a0 46392010-04-19 Uros Bizjak <ubizjak@gmail.com>
4640
4641 PR target/43766
4642 * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
4643
ea687d00 46442010-04-19 Jie Zhang <jie@codesourcery.com>
4645
4646 PR target/43662
1870b3a0 4647 * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
ea687d00 4648
82f5958d 46492010-04-19 Ira Rosen <irar@il.ibm.com>
eefa05c8 4650
4651 PR tree-optimization/37027
b5a754c1 4652 * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
eefa05c8 4653 and macro to access it.
4654 (vectorizable_reduction): Add argument.
4655 (vect_get_slp_defs): Likewise.
4656 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
4657 statements for possible use in SLP.
4658 (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
4659 (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
4660 (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
4661 add new argument.
4662 (vectorizable_reduction): Likewise.
b5a754c1 4663 * tree-vect-stmts.c (vect_get_vec_defs): Update call to
eefa05c8 4664 vect_get_slp_defs.
4665 (vectorizable_type_demotion, vectorizable_type_promotion,
4666 vectorizable_store): Likewise.
4667 (vect_analyze_stmt): Update call to vectorizable_reduction.
4668 (vect_transform_stmt): Likewise.
4669 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
4670 (vect_build_slp_tree): Fix indentation. Check that there are no loads
4671 from different interleaving chains in same node.
4672 (vect_slp_rearrange_stmts): New function.
b5a754c1 4673 (vect_supported_load_permutation_p): Allow load permutations for
eefa05c8 4674 reductions. Call vect_slp_rearrange_stmts() to rearrange statements
4675 inside SLP nodes if necessary.
4676 (vect_analyze_slp_instance): Handle reductions.
4677 (vect_analyze_slp): Try to build SLP instances originating from groups
4678 of reductions.
4679 (vect_detect_hybrid_slp_stmts): Skip reduction statements.
4680 (vect_get_constant_vectors): Create initial vectors for reductions
4681 according to reduction code. Add new argument.
b5a754c1 4682 (vect_get_slp_defs): Add new argument, pass it to
eefa05c8 4683 vect_get_constant_vectors.
4684 (vect_schedule_slp_instance): Remove SLP tree root statements.
4685
7765d0db 46862010-04-19 Jakub Jelinek <jakub@redhat.com>
4687
4688 * tree.h (ENUM_IS_SCOPED): Define.
4689 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
4690 for ENUM_IS_SCOPED enums.
4691
ad086ed4 46922010-04-18 Eric Botcazou <ebotcazou@adacore.com>
4693
4694 * fold-const.c (fold_comparison): Use ssizetype.
4695 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
4696 * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
4697 * tree-loop-distribution.c (build_size_arg_loc): Likewise.
4698 * tree-object-size.c (compute_object_sizes): Use size_type_node.
4699
4700 * tree.h (initialize_sizetypes): Remove parameter.
4701 (build_common_tree_nodes): Remove second parameter.
4702 * stor-layout.c (initialize_sizetypes): Remove parameter.
4703 Always create an unsigned type.
4704 (set_sizetype): Assert that the passed type is unsigned and simplify.
4705 * tree.c (build_common_tree_nodes): Remove second parameter.
4706 Adjust call to initialize_sizetypes.
4707 * c-decl.c (c_init_decl_processing): Remove second argument in call to
4708 build_common_tree_nodes.
4709
f9f6abc1 47102010-04-18 Matthias Klose <doko@ubuntu.com>
4711
4712 * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
4713
82f5958d 47142010-04-18 Ira Rosen <irar@il.ibm.com>
4cfb69c8 4715
4716 PR tree-optimization/43771
4717 * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
4718 load permutation doesn't have gaps.
4719
7203f8f0 47202010-04-18 Jan Hubicka <jh@suse.cz>
4721
4722 * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
4723 (sse_prologue_save_insn expander): Use new pattern.
4724 (sse_prologue_save_insn1): New pattern and splitter.
4725 (sse_prologue_save_insn): Update to deal also with 64bit aligned
4726 blocks.
1870b3a0 4727 * i386.c (setup_incoming_varargs_64): Do not compute jump
4728 destination here.
7203f8f0 4729 (ix86_gimplify_va_arg): Update alignment needed.
1870b3a0 4730 (ix86_local_alignment): Do not align all local arrays to 128bit.
7203f8f0 4731
36595f64 47322010-04-17 Jan Hubicka <jh@suse.cz>
4733
4734 * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
4735
8135a42b 47362010-04-17 Richard Earnshaw <rearnsha@arm.com>
4737
4738 * arm.md (negdi2): Remove redundant code to force values into a
4739 register.
4740
b61d50b6 47412010-04-17 Richard Earnshaw <rearnsha@arm.com>
4742
4743 * arm/bpabi.S: Add EABI alignment attributes to objects.
4744 * arm/bpabi-v6m.S: Likewise.
4745 * arm/crti.asm: Likewise.
4746 * arm/crtn.asm: Likewise.
4747 * arm/lib1funcs.asm: Likewise.
4748 * arm/libunwind.S: Likewise.
4749
647e1499 47502010-04-17 Richard Earnshaw <rearnsha@arm.com>
4751
4752 * arm-protos.h (tune_params): New structure.
4753 * arm.c (current_tune): New variable.
4754 (arm_constant_limit): Delete.
4755 (struct processors): Add pointer to the tune parameters.
4756 (arm_slowmul_tune): New tuning option.
4757 (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
4758 (all_cores): Adjust to pick up the tuning model.
4759 (arm_constant_limit): New function.
4760 (arm_override_options): Select the appropriate tuning model. Delete
4761 initialization of arm_const_limit.
4762 (arm_split_constant): Use the new constant-limit model.
4763 (arm_rtx_costs): Pick up the current tuning model.
4764 * arm.md (is_strongarm, is_xscale): Delete.
4765 * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
4766 for Xscale variant architectures.
4767 (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
4768
fc0bf4cf 47692010-04-17 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4770
647e1499 4771 * config/arm/arm.c (arm_gen_constant): Remove unused variable
4772 can_shift.
fc0bf4cf 4773 (arm_rtx_costs_1): Remove unused variable extra_cost.
4774 (arm_unwind_emit_set): Use variable offset.
4775 (thumb1_output_casesi): Remove unused variable flags.
4776
e8db6cc1 47772010-04-16 Jeff Law <law@redhat.com>
4778
4779 * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
e4c2a550 4780 needing assignment rather than doing a two-phase assignment. Remove
4781 unused variable 'm'.
e8db6cc1 4782
4e15f806 47832010-04-16 Jakub Jelinek <jakub@redhat.com>
4784
4785 PR bootstrap/43767
4786 * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
4787
17b5ea6f 47882010-04-16 Doug Kwan <dougkwan@google.com>
4789
4790 * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
4791 (next_operand_entry_id): New static variable.
4792 (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
4793 (add_to_ops_vec): Assigned unique ID to operand entry.
4794 (struct oecount_s): New field ID.
4795 (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
4796 (undistribute_ops_list): Assign unique IDs to oecounts.
4797 (init_reassoc): reset next_operand_entry_id.
4798
2ca8548b 47992010-04-16 Doug Kwan <dougkwan@google.com>
4800
4801 * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
4802 missing left parenthesis.
b5a754c1 4803
bf42c086 48042010-04-16 Uros Bizjak <ubizjak@gmail.com>
4805
4806 * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
4807 *btdi_rex64 using SWI48 mode iterator.
4808 (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
4809 (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
4810 *jcc_btdi_mask_rex64.
4811
54539f04 48122010-04-16 Anatoly Sokolov <aesok@post.ru>
4813
4814 * double-int.h (tree_to_double_int): Convert to macro.
4815 * double-int.c (tree_to_double_int): Remove.
4816
63924764 48172010-04-16 Jakub Jelinek <jakub@redhat.com>
4818
4819 PR debug/43762
4820 * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
4821 with want_address 2 and in case a single element list might be
4822 possible, call it again with want_address 0.
4823
48242010-04-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
ec766bd7 4825
cfdcbbf4 4826 * config/h8300/h8300.c (print_operand) : Modify case 'V' and
4827 case 'W' print operands for HI mode.
4828 * config/h8300/h8300.h (Y0, Y2) : New constraints.
4829 * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
4830 (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
4831 * config/h8300/predicate.md (bit_register_indirect_operand): New.
4832
e1ae8bc6 4833 * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
4834
b5a754c1 4835 * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
a7e6b353 4836 cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
4837 #xx:3 and #xx:4 mode.
4838
51720411 4839 * config/h8300/h8300.md (inverted load with HImode dest): Add
4840 support for H8300SX.
4841
ec766bd7 4842 * config/h8300/predicate.md (bit_operand): Allow immediate values that
4843 satisfy 'U' constraint.
4844
d6845139 48452010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4846
b5a754c1 4847 * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
d6845139 4848 * configure: Regenerate.
4849 * config.in: Regenerate.
4850 * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
4851 works.
4852
a44dc115 48532010-04-16 Richard Guenther <rguenther@suse.de>
4854
4855 * tree.h (struct tree_decl_minimal): Move pt_uid ...
4856 (struct tree_decl_common): ... here.
4857 (DECL_PT_UID): Adjust.
4858 (SET_DECL_PT_UID): Likewise.
4859 (DECL_PT_UID_SET_P): Likewise.
4860
4debfcfc 48612010-04-16 Richard Guenther <rguenther@suse.de>
4862
4863 PR tree-optimization/43572
4864 * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
4865 * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
4866 * tree-flow.h (is_call_clobbered): Remove.
4867 * tree-flow-inline.h (is_call_clobbered): Likewise.
4868 * tree-dfa.c (dump_variable): Do not dump call clobber state.
4869 * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
4870 (execute_return_slot_opt): Adjust.
4871 * tree-tailcall.c (suitable_for_tail_opt_p): Remove
4872 check for call clobbered vars here.
4873 (find_tail_calls): Move tailcall verification to the
4874 proper place.
4875
a66fa75e 48762010-04-16 Diego Novillo <dnovillo@google.com>
4877
b5a754c1 4878 * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
a66fa75e 4879
a8e6c15d 48802010-04-16 Bernd Schmidt <bernds@codesourcery.com>
4881
4882 PR target/40603
4883 * config/arm/arm.md (cbranchqi4): New pattern.
4884 * config/arm/predicates.md (const0_operand,
4885 cbranchqi4_comparison_operator): New predicates.
4886
71e11843 48872010-04-16 Richard Guenther <rguenther@suse.de>
4888
4889 * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
4890 (dump_gimple_stmt): Likewise.
4891
a8e6c15d 48922010-04-16 Bernd Schmidt <bernds@codesourcery.com>
a67a82ef 4893
4894 * recog.h (struct recog_data): New field is_operator.
4895 (struct insn_operand_data): New field is_operator.
4896 * recog.c (extract_insn): Set recog_data.is_operator.
4897 * genoutput.c (output_operand_data): Emit code to set the
4898 is_operator field.
4899 * reload.c (find_reloads): Use it rather than testing for an
4900 empty constraint string.
4901
d60047aa 4902 PR target/41514
4903 * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
4904 If the previous insn is a cbranchsi4_insn with the same arguments,
4905 omit the compare instruction.
4906
956a6170 4907 * config/arm/arm.md (addsi3_cbranch): If destination is a high
4908 register, inputs must be low registers and we need a low register
4909 scratch. Handle alternative 2 like alternative 3.
4910
6f9688ce 49112010-04-16 Jakub Jelinek <jakub@redhat.com>
4912
4913 * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
4914 don't call get_addr on both. If one expression is a VALUE and
4915 the other a REG, check VALUE's locs if the REG isn't among them.
4916
992d172c 49172010-04-16 Christian Bruel <christian.bruel@st.com>
4918
4919 * config/sh/sh.h (sh_frame_pointer_required): New function.
4920 * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
4921 (flag_omit_frame_pointer) Set.
4922 (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
4923 (rounded_frame_size): Adjust size with outgoing_args_size.
4924 (sh_set_return_address): Must return from stack pointer.
4925 * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
4926 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
4927 (ACCUMULATE_OUTGOING_ARGS): Define.
4928 * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
4929 * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
4930
c011be89 49312010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
4932
4933 PR target/43471
4934 * config/sh/sh.c (sh_legitimize_reload_address): Use
4935 MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
4936 Remove a unneeded check for offset_base.
4937
14a40050 49382010-04-15 H.J. Lu <hongjiu.lu@intel.com>
4939
4940 * configure: Regenerated.
4941
cc6a115b 49422010-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4943
4944 * config/s390/s390.c (s390_call_save_register_used): Switch back
4945 to HARD_REGNO_NREGS.
4946
a5b373b8 49472010-04-15 Richard Guenther <rguenther@suse.de>
4948
4949 * alias.c (alias_set_subset_of): Handle alias-set zero
4950 child properly.
4951
93bda833 49522010-04-15 Mark Shinwell <shinwell@codesourcery.com>
4953 Julian Brown <julian@codesourcery.com>
4954
4955 * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
4956 alternatives according to use of high and low regs.
4957 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
4958 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
4959 optimizing for size on Thumb-2.
4960
8a84c748 49612010-04-15 Thomas Schwinge <tschwinge@gnu.org>
4962
4963 * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
4964
1a981e1a 49652010-04-15 Richard Guenther <rguenther@suse.de>
4966
4967 * tree-ssa-structalias.c (struct variable_info): Add
4968 is_fn_info flag.
4969 (new_var_info): Initialize it.
4970 (dump_constraints): Support printing last added constraints.
4971 (debug_constraints): Adjust.
4972 (dump_constraint_graph): Likewise.
4973 (make_heapvar_for): Check for NULL cfun.
4974 (get_function_part_constraint): New function.
4975 (get_fi_for_callee): Likewise.
4976 (find_func_aliases): Properly implement IPA PTA constraints.
4977 (process_ipa_clobber): New function.
4978 (find_func_clobbers): Likewise.
4979 (insert_into_field_list_sorted): Remove.
4980 (create_function_info_for): Properly allocate vars for IPA mode.
4981 Do not use insert_into_field_list_sorted.
4982 (create_variable_info_for): Properly generate constraints for
4983 global vars in IPA mode.
4984 (dump_solution_for_var): Always dump the solution.
4985 (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
4986 (find_what_var_points_to): Adjust.
4987 (pt_solution_set): Change.
4988 (pt_solution_ior_into): New function.
4989 (pt_solution_empty_p): Export.
4990 (pt_solution_includes_global): Adjust.
4991 (pt_solution_includes_1): Likewise.
4992 (pt_solutions_intersect_1): Likewise.
4993 (dump_sa_points_to_info): Check some invariants.
4994 (solve_constraints): Move constraint dumping ...
4995 (compute_points_to_sets): ... here.
4996 (ipa_pta_execute): ... and here.
4997 (compute_may_aliases): Do not re-compute points-to info
4998 locally if IPA info is available.
4999 (ipa_escaped_pt): New global var.
5000 (ipa_pta_execute): Properly implement IPA PTA.
5001 * tree-into-ssa.c (dump_decl_set): Support dumping
5002 decls not in referenced-vars.
5003 * tree-flow.h (struct gimple_df): Add ipa_pta flag.
5004 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
5005 (dump_points_to_solution): Likewise.
5006 * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
5007 * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
b5a754c1 5008 (remap_gimple_stmt): Reset call clobber/use information if necessary.
1a981e1a 5009 (copy_decl_to_var): Copy DECL_PT_UID.
5010 (copy_result_decl_to_var): Likewise.
5011 * tree.c (make_node_stat): Initialize DECL_PT_UID.
5012 (copy_node_stat): Copy it.
5013 * tree.h (DECL_PT_UID): New macro.
5014 (SET_DECL_PT_UID): Likewise.
5015 (DECL_PT_UID_SET_P): Likewise.
5016 (struct tree_decl_minimal): Add pt_uid member.
5017 * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
5018 (pt_solution_empty_p): Declare.
5019 (pt_solution_set): Adjust.
5020 (ipa_escaped_pt): Declare.
5021 * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
5022 * gimple-pretty-print.c (pp_points_to_solution): New function.
5023 (dump_gimple_call): Dump call clobber/use information.
5024 * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
5025 * tree-pass.h (TDF_ALIAS): New dump option.
5026 * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
5027 * doc/invoke.texi (-fipa-pta): Update documentation.
5028
2d18b16d 50292010-04-15 Richard Guenther <rguenther@suse.de>
5030
5031 * Makefile.in (OBJS-common): Add gimple-fold.o.
5032 (gimple-fold.o): New rule.
5033 * tree.h (maybe_fold_offset_to_reference,
5034 maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
5035 prototypes ...
5036 * gimple.h: ... here.
5037 * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
5038 may_propagate_address_into_dereference): Move prototypes ...
5039 * gimple.h: ... here.
5040 * tree-ssa-ccp.c (get_symbol_constant_value,
5041 may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
5042 maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
5043 maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
5044 maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
5045 ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
5046 fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
5047 gimplify_and_update_call_from_tree): Move ...
5048 * gimple-fold.c: ... here. New file.
5049 (ccp_fold_builtin): Rename to ...
5050 (gimple_fold_builtin): ... this.
5051 * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
5052
b2afff2d 50532010-04-15 Richard Guenther <rguenther@suse.de>
5054
5055 * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
5056 fit_double_type, force_fit_type_double, add_double_with_sign,
5057 neg_double, mul_double_with_sign, lshift_double, rshift_double,
5058 lrotate_double, rrotate_double, div_and_round_double): Move ...
5059 * double-int.c: ... here.
5060 * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
5061 add_double, neg_double, mul_double_with_sign, mul_double,
5062 lshift_double, rshift_double, lrotate_double, rrotate_double,
5063 div_and_round_double): Move prototypes ...
5064 * double-int.h: ... here.
5065
a8e6c15d 50662010-04-15 Bernd Schmidt <bernds@codesourcery.com>
db60a8f8 5067
5068 PR target/43742
5069 * config/sh/sh.md (doloop_end_split, dect): Undo previous patch. Use
5070 matching constraints to ensure inputs match the output.
5071
45197664 50722010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
5073
5074 PR target/43742
5075 * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
b5a754c1 5076 in an input-only operand.
45197664 5077
41283922 50782010-04-15 Anatoly Sokolov <aesok@post.ru>
5079
5080 * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
5081 (double_int_not, double_int_lshift, double_int_rshift): Declare.
5082 (double_int_negative_p): Convert to static inline function.
77204665 5083 * double-int.c (double_int_lshift, double_int_lshift): New functions.
41283922 5084 (double_int_negative_p): Remove.
b5a754c1 5085 * tree.h (lshift_double, rshift_double):
41283922 5086 * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
5087 * fold-const.c (fold_convert_const_int_from_real,
5088 fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
5089 (lshift_double): Change type of arith argument to bool.
5090 (rshift_double): Change type of arith argument to bool. Correct
5091 comment.
5092 * expmed.c (mask_rtx, lshift_value): (Ditto.).
5093
a8e6c15d 50942010-04-14 Bernd Schmidt <bernds@codesourcery.com>
b5a754c1 5095
84c471f5 5096 PR target/21803
5097 * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
5098 at the start and end of the then/else blocks, and omit them from the
5099 conversion.
5100 * cfgcleanup.c (flow_find_cross_jump): No longer static. Remove MODE
5101 argument; all callers changed. Pass zero to old_insns_match_p instead.
5102 (flow_find_head_matching_sequence): New function.
5103 (old_insns_match_p): Check REG_EH_REGION notes for calls.
5104 * basic-block.h (flow_find_cross_jump,
5105 flow_find_head_matching_sequence): Declare functions.
5106
33199a81 51072010-04-14 Jason Merrill <jason@redhat.com>
5108
5109 PR c++/36625
5110 * c-common.c (attribute_takes_identifier_p): New fn.
5111 * c-common.h: Declare it.
5112
57b0c232 51132010-04-14 Uros Bizjak <ubizjak@gmail.com>
5114
5115 * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
5116 splitter condition.
5117 (*udivmod<mode>4): Ditto.
5118
1c6bad28 51192010-04-14 Uros Bizjak <ubizjak@gmail.com>
5120
5121 * config/i386/i386.md (maxmin_int): Rename code attribute from
5122 maxminiprefix and update all users.
5123 (maxmin_float): Ditto from maxminfprefix.
5124 (logic): Ditto from logicprefix.
5125 (absneg_mnemonic): Ditto from absnegprefix.
5126 * config/i386/mmx.md: Update all users of maxminiprefix,
bf42c086 5127 maxminfprefix and logicprefix for rename.
1c6bad28 5128 * config/i386/sse.md: Ditto.
5129 * config/i386/sync.md (sync_<code><mode>): Update for
5130 logicprefix rename.
5131
61c21070 51322010-04-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
5133
5134 PR 42966
5135 * diagnostics.c (diagnostic_report_diagnostic): Mark specially
5136 warnings converted to errors.
5137
f5e8a4bc 51382010-04-14 Uros Bizjak <ubizjak@gmail.com>
5139
5140 * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
5141 used insn_type variable.
5142 (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
5143 to avoid set-but-not-used warning.
5144
3eb9ad16 51452010-04-14 Uros Bizjak <ubizjak@gmail.com>
5146
5147 * df-core.c (df_ref_debug): Change format string placeholder
5148 from 0x%x to %#x.
5149 * dwarf2asm.c (dw2_asm_output_data_raw,
5150 dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
5151 dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
5152 * dwarf2out.c (output_cfi, output_cfi_directive,
5153 dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
5154 output_cfa_loc_raw, output_die, output_ranges, output_file_names):
5155 Ditto.
5156 * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
5157 * print-rtl.c (print_rtx): Ditto.
5158
a02df28b 51592010-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
5160
5161 PR middle-end/42694
5162 * builtins.c (expand_builtin_pow_root): New function to expand pow
5163 calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
5164 series of sqrt and cbrt calls under -ffast-math.
5165 (expand_builtin_pow): Call it.
5166
836a3d81 51672010-04-14 Michael Matz <matz@suse.de>
5168
5169 PR tree-optimization/42963
5170 * tree-cfg.c (touched_switch_bbs): New static variable.
5171 (group_case_labels_stmt): New function broken out from ...
5172 (group_case_labels): ... here, use the above.
5173 (start_recording_case_labels): Allocate touched_switch_bbs.
5174 (end_recording_case_labels): Deallocate it, call
5175 group_case_labels_stmt.
5176 (gimple_redirect_edge_and_branch): Remember index of affected BB.
5177
023285da 51782010-04-14 Uros Bizjak <ubizjak@gmail.com>
5179
5180 * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
5181 from insn template.
5182
5d0d0688 51832010-04-14 Uros Bizjak <ubizjak@gmail.com>
5184
5185 * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
5186
022b3380 51872010-04-13 Jan Hubicka <jh@suse.cz>
5188
5189 * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
5190 of optimized out static functions.
5191 (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
5192 cost computation. Also sanity check for overflows.
5193 (update_caller_keys): Update cgraph_edge_badness call; properly
5194 update fibheap and sanity check that it is up to date.
5195 (add_new_edges_to_heap): Update cgraph_edge_badness.
5196 (cgraph_decide_inlining_of_small_function): Likewise;
5197 add sanity checking that badness in heap is up to date;
5198 improve dumping of reason; Update badness of calls to the
5199 offline copy of function currently inlined; dump badness
5200 of functions not inlined because of unit growth limits.
5201
c6feb9f1 52022010-04-13 Eric Botcazou <ebotcazou@adacore.com>
5203
5204 PR middle-end/32628
5205 * c-common.c (pointer_int_sum): Disregard overflow that occured only
5206 because of sign-extension change when converting to sizetype here...
5207 * fold-const.c (fold_convert_const_int_from_int): ...and not here.
5208
5209 * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
5210 the folding to constants. Remove redundant final conversion.
5211 (fold_binary) <associate>: Do not associate if the re-association of
5212 constants alone overflows.
5213 (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
5214 to the end of the list.
5215 (multiple_of_p) <COND_EXPR>: New case.
5216
d4c7816a 52172010-04-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
5218
5219 * opt-functions.awk (opt_sanitized_name): New.
5220 (opt_enum): New.
5221 * optc-gen.awk: Use it
5222 * opth-gen.awk: Use it.
5223
38525cf2 52242010-04-13 Martin Jambor <mjambor@suse.cz>
5225
5226 * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
5227 (sra_modify_assign): Delete stmts loading dead data even if racc has no
5228 children. Call replace_uses_with_default_def_ssa_name to handle
5229 SSA_NAES on lhs.
5230
774bc210 52312010-04-13 Michael Matz <matz@suse.de>
5232
5233 PR middle-end/43730
5234 * builtins.c (expand_builtin_interclass_mathfn): Also create
5235 a register if the predicate doesn't match.
5236
7dafeb82 52372010-04-13 Diego Novillo <dnovillo@google.com>
5238
5239 * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
5240 * c-pch.c: Include timevar.h.
5241 (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
5d0d0688 5242 (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
7dafeb82 5243 * ggc-common.c: Include timevar.h.
5d0d0688 5244 (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
7dafeb82 5245 * timevar.def (TV_PCH_SAVE): Define.
5246 (TV_PCH_CPP_SAVE): Define.
5247 (TV_PCH_PTR_REALLOC): Define.
5248 (TV_PCH_PTR_SORT): Define.
5249 (TV_PCH_RESTORE): Define.
5250 (TV_PCH_CPP_RESTORE): Define.
5251
c07e5b8b 52522010-04-13 Michael Matz <matz@suse.de>
5253
5254 * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
5255 into MINUS_EXPRs.
5256 (can_reassociate_p): New function.
5257 (break_up_subtract_bb, reassociate_bb): Use it.
5258
e212f99a 52592010-04-13 Richard Guenther <rguenther@suse.de>
5260
5261 PR bootstrap/43737
5262 * builtins.c (c_readstr): Fix assert.
5263
e4905a25 52642010-04-13 Uros Bizjak <ubizjak@gmail.com>
5265
5266 * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
5267 when generating cltd insn.
5268
5269 (*ashl<mode>3_1): Remove special handling for register operand 2.
5270 (*ashlsi3_1_zext): Ditto.
5271 (*ashlhi3_1): Ditto.
5272 (*ashlhi3_1_lea): Ditto.
5273 (*ashlqi3_1): Ditto.
5274 (*ashlqi3_1_lea): Ditto.
5275 (*<shiftrt_insn><mode>3_1): Ditto.
5276 (*<shiftrt_insn>si3_1_zext): Ditto.
5277 (*<shiftrt_insn>qi3_1_slp): Ditto.
5278 (*<rotate_insn><mode>3_1): Ditto.
5279 (*<rotate_insn>si3_1_zext): Ditto.
5280 (*<rotate_insn>qi3_1_slp): Ditto.
5281
c4ec6aca 52822010-04-13 Richard Guenther <rguenther@suse.de>
5283
5284 * tree-ssa-structalias.c (callused_id): Remove.
5285 (call_stmt_vars): New.
5286 (get_call_vi): Likewise.
5287 (lookup_call_use_vi): Likewise.
5288 (lookup_call_clobber_vi): Likewise.
5289 (get_call_use_vi): Likewise.
5290 (get_call_clobber_vi): Likewise.
5291 (make_transitive_closure_constraints): Likewise.
5292 (handle_const_call): Adjust to do per-call call-used handling.
5293 (handle_pure_call): Likewise.
5294 (find_what_var_points_to): Remove general callused handling.
5295 (init_base_vars): Likewise.
5296 (init_alias_vars): Initialize call_stmt_vars.
5297 (compute_points_to_sets): Process call-used and call-clobbered
5298 vars for call statements.
5299 (delete_points_to_sets): Free call_stmt_vars.
5300
91a74fc6 53012010-04-13 Richard Guenther <rguenther@suse.de>
5302
5303 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
5304 Only add RW dependence for dependence distance zero.
5305 Adjust maximal vectorization factor according to dependences.
5306 Move alignment handling ...
5307 (vect_find_same_alignment_drs): ... here. New function.
5308 (vect_analyze_data_ref_dependences): Adjust.
5309 (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
5310 (vect_analyze_data_refs): Adjust minimal vectorization factor
5311 according to data references.
5312 * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
5313 dependences before determining the vectorization factor.
5314 Analyze alignment after determining the vectorization factor.
5315 * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
5316 dependences before alignment.
5317 * tree-vectorizer.h (vect_analyze_data_ref_dependences):
5318 Adjust prototype.
5319 (vect_analyze_data_refs): Likewise.
5320 (MAX_VECTORIZATION_FACTOR): New define.
5321
493106f6 53222010-04-13 Duncan Sands <baldrick@free.fr>
5323
5324 * except.h (lang_eh_type_covers): Remove.
5325 * except.c (lang_eh_type_covers): Likewise.
5326
b5fdc416 53272010-04-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5d0d0688 5328 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5329
b5fdc416 5330 * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
5331 * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
5d0d0688 5332 UNITS_PER_LONG where it is ABI relevant.
b5fdc416 5333 (s390_return_addr_rtx): Likewise.
5334 (s390_back_chain_rtx): Likewise.
5335 (s390_frame_area): Likewise.
5336 (s390_frame_info): Likewise.
5337 (s390_initial_elimination_offset): Likewise.
5338 (save_gprs): Likewise.
5339 (s390_emit_prologue): Likewise.
5340 (s390_emit_epilogue): Likewise.
5341 (s390_function_arg_advance): Likewise.
5342 (s390_function_arg): Likewise.
5343 (s390_va_start): Likewise.
5344 (s390_gimplify_va_arg): Likewise.
5345 (s390_function_profiler): Likewise.
5346 (s390_optimize_prologue): Likewise.
5347 (s390_rtx_costs): Likewise.
5348 (s390_secondary_reload): Likewise.
5349 (s390_promote_function_mode): Likewise.
5350 (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
5351 (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
5352 registers available.
5353 (s390_unwind_word_mode): New function.
5354 (s390_function_value): Split 64 bit values into register pair if
5355 used as return value.
5356 (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
5357 function call parameters. Handle parallels.
5358 (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
5359 (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
5360 (DWARF_CIE_DATA_ALIGNMENT): New macro.
5361 (s390_expand_setmem): Remove unused variable src_addr.
5362 * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
5d0d0688 5363 deal with 64 bit registers.
b5fdc416 5364 * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
5365 Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
5366 (UNITS_PER_LONG): New macro.
5367 * libjava/include/s390-signal.h: Define extended ucontext
5368 structure containing the upper halfs of the 64 bit registers.
5369
b15b8239 53702010-04-13 Simon Baldwin <simonb@google.com>
5371
5372 * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
5373
e568189f 53742010-04-13 Eric Botcazou <ebotcazou@adacore.com>
5375
5376 * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
5377 rvalue on the RHS if the LHS is of a non-renamable type.
5378 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
5379
19bc000d 53802010-04-13 Matthias Klose <doko@ubuntu.com>
5381
5382 * gcc.c (cc1_options): Handle -iplugindir before processing
5383 the cc1 spec. Only add -iplugindir once.
5384 (cpp_unique_options): Add -iplugindir option if -fplugin* options
5385 found.
5386 * common.opt (iplugindir): Remove `Separate' property, initialize.
5387 * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
5388 option.
5389 * Makefile.in (check-%, check-parallel-%): Create plugin dir.
5390 (distclean): Remove plugin dir.
5391 * doc/invoke.texi: Document -iplugindir.
5392
53932010-04-13 Basile Starynkevitch <basile@starynkevitch.net>
5394
5395 * doc/plugins.texi (Loading Plugins): Document short
5396 -fplugin=foo option.
5397 (Plugin API): Mention default_plugin_dir_name function.
5398
5399 * gcc.c (find_file_spec_function): Add new declaration.
5400 (static_spec_func): Use it for "find-file".
5401 (find_file_spec_function): Add new function.
5402 (cc1_options): Add -iplugindir option if -fplugin* options found.
5403
5404 * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
5405
5406 * plugin.c (add_new_plugin): Updated comment, and handle short
5407 plugin name.
5408 (default_plugin_dir_name): Added new function.
5409
e4905a25 5410 * common.opt (iplugindir): New option to set the plugin directory.
19bc000d 5411
5bc45119 54122010-04-12 Uros Bizjak <ubizjak@gmail.com>
5413
5414 * config/i386/i386.md (any_rotate): New code iterator.
5415 (rotate_insn): New code attribute.
5416 (rotate): Ditto.
5417 (SWIM124): New mode iterator.
5418 (<rotate_insn>ti3): New expander.
5419 (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
5420 any_rotate code iterator.
5421 (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
5422 using any_rotate code iterator and SWIM124 mode iterator.
5423 (ix86_rotlti3): New insn_and_split pattern.
5424 (ix86_rotrti3): Ditto.
5425 (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
5426 ix86_rotl{di,ti}3 patterns.
5427 (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
5428 (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
5429 and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
5430 *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
5431 code iterator and SWI mode iterator.
5432 (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
5433 Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
5434 code iterator.
5435 (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
5436 Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
5437 (bswap rotatert splitter): Add splitter.
5438 (bswap splitter): Macroize splitter using any_rotate code iterator.
5439 Add insn predicate to split only for TARGET_USE_XCHGB or when
5440 optimizing function for size.
5441
4d41e927 54422010-04-12 Steve Ellcey <sje@cup.hp.com>
5443
5444 * config/pa/pa.c (emit_move_sequence): Remove use of
5445 deleted variable flag_argument_noalias.
5446
efad0fb7 54472010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5448
5449 * config.gcc: Removed *-*-solaris2.7* from list of obsolete
5450 configurations.
5451 Add to unsupported targets list.
5452 * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
5453 sparc*-sun-solaris2.[567]* from target lists.
5454 * configure: Regenerate.
5455 * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
5456 removal.
5457 Remove Solaris 7 patch references.
5458 (Specific, sparc-sun-solaris2.7): Removed.
5459 (sparc-sun-solaris2*): Update Solaris 7 example.
5460 (sparc64-*-solaris2*): Likewise.
5461
ed3e1bbc 54622010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5463
5464 * config.build (alpha*-dec-osf4*): Remove.
5465 * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
5466 of obsolete configurations.
5467 (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
5468 support.
5469 * config/alpha/t-osf4: Renamed to ...
5470 * config/alpha/t-osf5: ... this.
5471 * config/alpha/osf.h: Renamed to ...
5472 * config/alpha/osf5.h: ... this.
5473 Merged old osf5.h contents.
5474 Update comments.
5475 (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
5476 (EXTRA_SPECS): Removed.
5477 * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
5478 reflect removal of Tru64 UNIX V4.0/V5.0 support.
5479 Document that.
5480
edacfc78 54812010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5482
5483 * doc/contrib.texi (Contributors, Rainer Orth): Update.
5484
335c25a2 54852010-04-12 Kai Tietz <kai.tietz@onevision.com>
5486
5487 PR/43702
5488 * config/i386/i386.c (x86_this_parameter): Handle aggregate for
5489 __thiscall convention.
5490
1ce99229 54912010-04-12 Steve Ellcey <sje@cup.hp.com>
5492
5493 * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
5494 orig_base.
5495 * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
5496
132d5071 54972010-04-12 Steve Ellcey <sje@cup.hp.com>
5498
5499 * function.c (assign_parms_initialize_all): Add unused attribute
5500 to fntype.
5501
cb245216 55022010-04-12 Richard Guenther <rguenther@suse.de>
5503
5504 * gsstruct.def (GSS_CALL): New.
5505 * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
5506 * gimple.h: Include tree-ssa-alias.h.
5507 (struct gimple_statement_call): New.
5508 (union gimple_statement_struct_d): Add gimple_call member.
5509 (gimple_call_reset_alias_info): Declare.
5510 (gimple_call_use_set): New function.
5511 (gimple_call_clobber_set): Likewise.
5512 * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
5513 * gimple.c (gimple_call_reset_alias_info): New function.
5514 (gimple_build_call_1): Call it.
5515 * lto-streamer-in.c (input_gimple_stmt): Likewise.
5516 * tree-inline.c (remap_gimple_stmt): Likewise.
5517 (expand_call_inline): Remove callused handling.
5518 * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
5519 * tree-dfa.c (dump_variable): Likewise.
5520 * tree-parloops.c (parallelize_loops): Likewise.
5521 * tree-ssa.c (init_tree_ssa): Likewise.
5522 (delete_tree_ssa): Likewise.
5523 * tree-flow-inline.h (is_call_used): Remove.
5524 * tree-flow.h (struct gimple_df): Remove callused member.
5525 * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
5526 * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
5527 (ref_maybe_used_by_call_p_1): Simplify.
5528 (call_may_clobber_ref_p_1): Likewise.
5529 * tree-ssa-structalias.c (compute_points_to_sets): Set
5530 the call stmt used and clobbered sets.
5531 * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
5532 (find_tail_calls): Verify the tail call.
5533
d160af41 55342010-04-12 Richard Guenther <rguenther@suse.de>
5535
5536 * ipa.c (cgraph_postorder): Adjust postorder to guarantee
5537 single-iteration always-inline inlining.
5538 * ipa-inline.c (cgraph_mark_inline): Do not return anything.
5bc45119 5539 (cgraph_decide_inlining): Do not handle always-inline specially.
d160af41 5540 (try_inline): Remove always-inline cycle detection special case.
5541 Do not recurse on always-inlines.
5542 (cgraph_early_inlining): Do not iterate if not optimizing.
5543 (cgraph_gate_early_inlining): remove.
5544 (pass_early_inline): Run unconditionally.
5545 (gate_cgraph_decide_inlining): New function.
5546 (pass_ipa_inline): Use it. Do not run the IPA inliner if
5547 not inlining or optimizing.
5548 (cgraph_decide_inlining_of_small_functions): Also consider
5549 always-inline functions.
5550 (cgraph_default_inline_p): Return true for nodes which should
5551 disregard inline limits.
5552 (estimate_function_body_sizes): Assume zero size and time for
5553 nodes which are marked as disregarding inline limits.
5554 (cgraph_decide_recursive_inlining): Do not perform recursive
5555 inlining on always-inline nodes.
5556
7cb9c999 55572010-04-12 Jakub Jelinek <jakub@redhat.com>
5558
5559 PR bootstrap/43699
5560 * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
5561 for exprs satisfying handled_component_p.
5562
30d12889 55632010-04-12 Eric Botcazou <ebotcazou@adacore.com>
5564
5565 * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
5566 non-constant aggregate elements.
5567
5568 * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
5569 is a real initialization.
5570
15f85477 55712010-04-12 Shujing Zhao <pearly.zhao@oracle.com>
5572
5573 PR c/36774
5574 * c-decl.c (start_function): Move forward check for nested function.
5575
299fa1f5 55762010-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
5577
5578 * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
5579 * config/sh/sh.c: Include reload.h.
5580 (sh_legitimize_reload_address): New.
5581 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
5582 sh_legitimize_reload_address.
5583
973cd123 55842010-04-11 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
5585
5586 * config/sh/sh.md (*movqi_pop): New insn pattern.
5587 * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
5588
c4c75aaf 55892010-04-11 Uros Bizjak <ubizjak@gmail.com>
5590
5591 * config/i386/i386.md (any_shiftrt): New code iterator.
5592 (shiftrt_insn): New code attribute.
5593 (shiftrt): Ditto.
5bc45119 5594 (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
5595 using any_shiftrt code iterator.
c4c75aaf 5596 (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
5bc45119 5597 *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
c4c75aaf 5598 (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
5599 pattern from corresponding peephole2 patterns.
5bc45119 5600 (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
5601 using any_shiftrt code iterator.
5602 (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
5603 (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
5604 (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
5605 (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
5606 *{ashr,lshr}<mode>3_cmp_zext.
5607 (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
c4c75aaf 5608
191a9198 56092010-04-11 Uros Bizjak <ubizjak@gmail.com>
5610
5611 * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
5612 scratch register.
5613 (*lshr<mode>3_cconly): Ditto.
5614
edd3a37b 56152010-04-11 Uros Bizjak <ubizjak@gmail.com>
5616
5617 * config/i386/i386.md (lshr<mode>3): Macroize expander from
5618 lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
5619 (*lshr<mode>3_doubleword): New insn_and_split_pattern. Macroize
5620 pattern from *lshr{di,ti}3_1 and corresponding splitters using
5621 DWI mode iterator.
5622 (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
5623 from corresponding peephole2 patterns.
5624 (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
5bc45119 5625 *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
5626 and *lshrdi3_1_rex64 using SWI mode iterator.
c4c75aaf 5627 (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
edd3a37b 5628 (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
5629 (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
5630 *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
5631 and *lshrdi3_cmp_rex64 using SWI mode iterator.
5632 (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
5633 (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
5634 *lshrdi3_one_bit_cconly_rex64. Macroize insn from
5635 *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
5636 SWI mode iterator.
5637
01a8a19f 56382010-04-10 Uros Bizjak <ubizjak@gmail.com>
5639
5640 * config/i386/i386.md (ashr<mode>3): Macroize expander from
5641 ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
5642 (*ashr<mode>3_doubleword): New insn_and_split_pattern. Macroize
5643 pattern from *ashr{di,ti}3_1 and corresponding splitters using
5644 DWI mode iterator.
5645 (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
5646 from corresponding peephole2 patterns.
5647 (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
5648 (ashrsi3_cvt): Rename from ashrsi3_31.
5649 (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
5650 (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
5651 and x86_64_shift_adj_3 using SWI48 mode iterator.
5652 (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
5bc45119 5653 *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
5654 and *ashrdi3_1_rex64 using SWI mode iterator.
c4c75aaf 5655 (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
01a8a19f 5656 (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
5657 (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
5658 *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
5659 and *ashrdi3_cmp_rex64 using SWI mode iterator.
5660 (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
5661 (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
5662 *ashrdi3_one_bit_cconly_rex64. Macroize insn from
5663 *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
5664 SWI mode iterator.
191a9198 5665 (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
01a8a19f 5666 * config/i386/i386.c (ix86_split_ashr): Update for renamed
edd3a37b 5667 x86_shift<mode>_adj_3 expanders.
01a8a19f 5668
825ae2ed 56692010-04-10 Wei Guozhi <carrot@google.com>
5670
5671 PR target/42601
5672 * config/arm/arm.c (arm_pic_static_addr): New function.
5673 (legitimize_pic_address): Call arm_pic_static_addr when it detects
5674 a static symbol.
5675 (arm_output_addr_const_extra): Output expression for new pattern.
5676 * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
5677
a8e6c15d 56782010-04-10 Bernd Schmidt <bernds@codesourcery.com>
26f5b5dd 5679
5680 * ira-costs.c (record_reg_classes): Ignore alternatives that are
5681 not enabled.
9a3f5556 5682
5683 * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
5684 * web.c: Include "insn-config.h" and "recog.h".
5685 (union_match_dups): New function.
5686 (web_main): Call it.
5687 (union_defs): Don't try to recognize match_dups.
5688
6b4b0ebb 5689 * reload1.c (eliminate_regs_in_insn): Don't restore an operand
5690 if doing so would replace the entire pattern.
5691
5f880006 56922010-04-09 Uros Bizjak <ubizjak@gmail.com>
5693
5694 PR target/43707
5695 PR target/43709
5696 * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
5697 and splitter pattern. Change splitter operand 1 predicate to
5698 nonmemory_operand.
5699
cb344b0b 57002010-04-09 Martin Jambor <mjambor@suse.cz>
5701
5702 * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
5703 lattices are addresses of CONST_DECLs with the same initial value.
5704 (ipcp_print_all_lattices): Print values of CONST_DECLs.
5705 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
5706
cc6541e2 57072010-04-09 Eric Botcazou <ebotcazou@adacore.com>
a8e6c15d 5708 Bernd Schmidt <bernds@codesourcery.com>
cc6541e2 5709
5710 * loop-invariant.c (replace_uses): New static function.
5711 (move_invariant_reg): Use it to ensure we can replace the uses.
5712
57132010-04-09 Hariharan Sandanagobalane <hariharan@picochip.com>
b6dd0a0d 5714
01a8a19f 5715 * config/picochip/picochip.c (picochip_rtx_costs): Use correct
5716 function template.
cc6541e2 5717 (picochip_override_options): Enable section anchors only above -O1.
b6dd0a0d 5718 (picochip_reorg): Fixed a couple of build warnings.
5719
57587f17 57202010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5721
5722 * configure.ac (plugin -rdynamic test): Log result.
5723 * configure: Regenerate.
5724 * config/sol2.h (LINK_SPEC): Handle -rdynamic.
5725 (RDYNAMIC_SPEC): Define.
5726 * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
5727
dfbfdd90 57282010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5729
5730 * configure.ac: Determine Sun ld version numbers.
5731 (comdat_group): Restrict GNU ld version checks to gld.
5732 (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
5733 (enable_comdat): Support --enable-comdat.
5734 * configure: Regenerate.
5735 * doc/install.texi (Configuration): Document --enable-comdat.
5736
9232c3b6 57372010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5738
5f880006 5739 * config/sparc/sol2-gld.h: Remove SPARC reference. Rename ...
9232c3b6 5740 * config/sol2-gld.h: ... here.
5741 * config.gcc (sparc*-*-solaris2*): Reflect this.
5742 (i[34567]86-*-solaris2*): Use it.
5743
fdf7fc97 57442010-04-09 Steve Ellcey <sje@cup.hp.com>
5745
5746 * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
5747 setup_clocks_p.
5748 (final_emit_insn_group_barriers): Remove unused variable prev_insn.
5749
543725f3 57502010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
5751
5752 PR 42965
5753 * diagnostic.c (diagnostic_initialize): Initialize
5754 some_warnings_are_errors.
5755 (diagnostic_finish): New.
5756 (diagnostic_action_after_output): Call it before exiting.
5757 (diagnostic_report_diagnostic): Do not print message here. Set
5758 some_warnings_are_errors.
5759 * diagnostic.h (diagnostic_context): Delete
5760 issue_warnings_are_errors_message. Add some_warnings_are_errors.
5761 (diagnostic_finish): Declare.
5762 * toplev.c (toplev_main): Call it before exit.
5763
625541cb 57642010-04-09 Jason Merrill <jason@redhat.com>
5765
9c719c74 5766 PR c++/42623
5767 * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
5768 for incomplete type.
5769
625541cb 5770 PR c++/41788
5771 * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
5772 based on a warning flag.
5773
d2d3b1ae 57742010-04-09 Richard Guenther <rguenther@suse.de>
5775
cc6541e2 5776 * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
d2d3b1ae 5777
5fe33912 57782010-04-09 Iain Sandoe <iains@gcc.gnu.org>
5779
5780 PR bootstrap/43684
5f880006 5781 * varasm.c (default_assemble_visibility): Wrap vars that are
5fe33912 5782 set, but unused, by targets without GAS.
5f880006 5783 * config/rs6000/rs6000.c: (paired_emit_vector_compare):
5fe33912 5784 Remove set, but unused, vars.
5785 (rs6000_legitimize_tls_address): Likewise.
5786 (altivec_expand_dst_builtin): Likewise.
5787 * config/darwin.c (machopic_classify_symbol): Likewise.
5788 (machopic_indirection_name): Likewise.
5f880006 5789
f94eb6db 57902010-04-09 Uros Bizjak <ubizjak@gmail.com>
5791
5792 * config/i386/i386.md (DWI): New mode iterator.
5793 (S): New mode attribute.
5794 (shift_operand): Ditto.
5795 (shift_immediate_operand): Ditto.
5796 (ashl_input_operand): Ditto.
5797 (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
5798 using SDWIM mode iterator.
5799 (*ashl<mode>3_doubleword): New insn_and_split_pattern. Macroize
5800 pattern from *ashl{di,ti}3_1 and corresponding splitters using
5801 DWI mode iterator.
5802 (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
5803 from corresponding peephole2 patterns.
5804 (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
5805 and x86_64_shift_adj_1 using SWI48 mode iterator.
5806 (x86_shift<mode>_adj_2): Ditto.
5807 (*ashldi3_1_rex64): Split TYPE_LEA pattern.
5808 (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
5809 using SWI48 mode iterator.
5810 (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
5811 *ashldi3_cmp_rex64 using SWI mode iterator.
5812 (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
5813 *ashldi3_cconly_rex64 using SWI mode iterator.
5814 * config/i386/i386.c (ix86_split_ashl): Update for renamed
5815 x86_shift<mode>_adj_{1,2}.
5816 (ix86_split_ashr): Ditto.
5817 (ix86_split_lshr): Ditto.
5818
011d9d16 58192010-04-09 Richard Guenther <rguenther@suse.de>
5820
5821 * target.h (builtin_conversion): Pass in input and output types.
5822 * targhooks.c (default_builtin_vectorized_conversion): Adjust.
5823 * targhooks.h (default_builtin_vectorized_conversion): Likewise.
5824 * tree-vect-stmts.c (vectorizable_conversion): Adjust.
5825 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
5826
5827 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
5828 Handle AVX modes.
5829 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
5830
da5bfa9f 58312010-04-09 Richard Guenther <rguenther@suse.de>
5832
5833 PR target/43152
5834 * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
5835
b334cbba 58362010-04-09 Richard Guenther <rguenther@suse.de>
5837
5838 * tree-vectorizer.h (struct _stmt_vec_info): Document
5839 that vectype is the type of the LHS.
191a9198 5840 (supportable_widening_operation, supportable_narrowing_operation):
b334cbba 5841 Get both input and output vector types as arguments.
5842 (vect_is_simple_use_1): Declare.
5843 (get_same_sized_vectype): Likewise.
5844 * tree-vect-loop.c (vect_determine_vectorization_factor):
5845 Set STMT_VINFO_VECTYPE to the vector type of the def.
5846 (vectorizable_reduction): Adjust.
5847 * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
5848 Adjust. Specify the output vector type.
5849 (vect_pattern_recog_1): Adjust.
5850 * tree-vect-stmts.c (get_same_sized_vectype): New function.
5851 (vectorizable_call): Adjust.
5852 (vectorizable_conversion): Likewise.
5853 (vectorizable_operation): Likewise.
5854 (vectorizable_type_demotion): Likewise.
5855 (vectorizable_type_promotion): Likewise.
5856 (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
5857 the def.
5858 (vect_is_simple_use_1): New function.
5859 (supportable_widening_operation): Get both input and output
5860 vector types.
5861 (supportable_narrowing_operation): Likewise.
5862 * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
5863
538adab1 58642010-04-09 Kai Tietz <kai.tietz@onevision.com>
5865
5866 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
5867 __thiscall and _thiscall as predefined macros.
5868 * config/i386/i386.c (ix86_handle_cconv_attribute): Add
5869 thiscall attribute handling.
5870 (ix86_comp_type_attributes): Likewise.
5871 (ix86_function_regparm): Likewise.
5872 (ix86_return_pops_args): Likewise.
5873 (init_cumulative_args): Likewise.
5874 (find_drap_reg): Likewise.
5875 (ix86_static_chain): Likewise.
5876 (x86_this_parameter): Likewise.
5877 (x86_output_mi_thunk): Likewise.
5878 (ix86_attribute_table): Add description for thiscall attribute.
f94eb6db 5879 * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
538adab1 5880 * doc/extend.texi: Add documentation for thiscall.
01a8a19f 5881
bbecaa22 58822010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
5883
5884 PR c++/28584
5885 * c.opt (Wint-to-pointer-cast): Available in C++.
5886 * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
5887
4cd5bb61 58882010-04-08 Eric Botcazou <ebotcazou@adacore.com>
5889
5890 * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
5891 * calls.c (expand_call): Pass the function type to aggregate_value_p.
5892 * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
5893 the target function of a CALL_EXPR. Honor TREE_ADDRESSABLE on the
5894 function type instead. Reorder and simplify checks.
5895
5896 * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
5897
fd731bfb 58982010-04-08 Jing Yu <jingyu@google.com>
5899 Zdenek Dvorak <ook@ucw.cz>
5900
5901 PR tree-optimization/42720
5902 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
f94eb6db 5903 loop unswitch conditions here from ...
5904 (tree_unswitch_single_loop): ... here.
fd731bfb 5905
b01e3c9b 59062010-04-08 Sebastian Pop <sebastian.pop@amd.com>
5907
5908 * tree-if-conv.c: Fix comments and simplify logic.
5909
5ead86d3 59102010-04-08 Sebastian Pop <sebastian.pop@amd.com>
5911
5912 * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
5913 (tree_if_conversion): Same. Update call to if_convertible_loop_p.
5914 (main_tree_if_conversion): Update call to tree_if_conversion.
5915
cf93b7e8 59162010-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
5917
5918 PR 42485
5919 * doc/invoke.texi (-b,-V): Delete.
5920 * doc/tm.texi: Do not mention -b.
5921 * gcc.c (display_help): Delete -b and -V.
5922 (process_command): Delete -b and -V.
5923 * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
5ead86d3 5924
9ccaa774 59252010-04-08 Christian Borntraeger <borntraeger@de.ibm.com>
01a8a19f 5926 Wolfgang Gellerich <gellerich@de.ibm.com>
9ccaa774 5927
f94eb6db 5928 Implement target hook for loop unrolling
5929 * target.h (loop_unroll_adjust): Add a new target hook function.
5930 * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
5931 * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
5932 * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
5933 (s390_loop_unroll_adjust): Implement the new target hook for s390.
5934 * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
5935 target hook.
5936 (decide_unroll_stupid): Likewise.
9ccaa774 5937
328a9424 59382010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5939
5940 PR target/43643
5941 * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
5942
ad72c684 59432010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5944
5945 * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
5946 (Specific, *-*-solaris2*): Likewise.
5947 Don't prefer Sun as over GNU as.
5948
a52ee362 59492010-04-08 Wolfgang Gellerich <gellerich@de.ibm.com>
5950
cd2aaa6c 5951 * config/s390/s390.c (override_options): Adjust the z10 defaults
5952 for max-unroll-times, max-completely-peeled-insns
5953 and max-completely-peel-times.
a52ee362 5954
d5de7805 59552010-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5956
5957 * config/s390/s390.c (s390_expand_movmem): Issue prefetch
5958 instructions for z10.
5959 (s390_expand_setmem): Likewise.
5960 (s390_expand_cmpmem): Likewise.
5961
945cbfc1 59622010-04-08 Richard Guenther <rguenther@suse.de>
5963
5964 PR tree-optimization/43679
5965 * tree-ssa-pre.c (eliminate): Only propagate copies.
5966
ac2fdd89 59672010-04-08 Jakub Jelinek <jakub@redhat.com>
5968
5969 PR bootstrap/43681
5970 * expr.c (block_move_libcall_safe_for_call_parm): Avoid
5971 set but not used variable warning.
5972
be8d2599 59732010-04-08 Wei Guozhi <carrot@google.com>
5974
5975 PR target/41653
5976 * config/arm/arm.c (thumb1_size_rtx_costs): New function.
5977 (arm_size_rtx_costs): Call the new function when optimized for size.
5978
f4b490ea 59792010-04-08 Jakub Jelinek <jakub@redhat.com>
5980
5981 PR debug/43670
5982 * cfgexpand.c (expand_debug_expr): If for non-NULL offset
5983 op0 is not a MEM, just return NULL instead of assertion
5984 failure.
5985 (discover_nonconstant_array_refs): Don't walk debug stmts.
5986
c2ce8e07 59872010-04-08 Doug Kwan <dougkwan@google.com>
5988
5989 * configure.ac: Recognize gold and do not use its version number
5990 to test ld features.
5991 * configure: Regenerate.
5992
c2f29260 59932010-04-08 Maxim Kuvyrkov <maxim@codesourcery.com>
5994
5995 PR middle-end/40815
5996 * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
5997 (negate_value): Move code to push elements to broken_up_substracts ...
5998 (eliminate_plus_minus_pair): ... here. Push operands that have no
5999 negative pair to plus_negates.
6000 (repropagate_negates, init_reassoc, fini_reassoc): Update.
6001
24217fad 60022010-04-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6003
6f654217 6004 * doc/install.texi (Configuration): Move description of
6005 --enable-lto, --with-libelf*, --enable-gold from Java section to
6006 general section.
6007
24217fad 6008 * doc/generic.texi (Working with declarations)
6009 (Function Properties, C and C++ Trees): Fix typos.
6010 * doc/sourcebuild.texi (Top Level): Likewise.
6011
4081d362 60122010-04-07 Jakub Jelinek <jakub@redhat.com>
6013
abc6c64f 6014 PR c/18624
6015 * tree.h (DECL_READ_P): Define.
6016 (struct tree_decl_common): Add decl_read_flag.
6017 * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
6018 a set but not used warning.
6019 (merge_decls): Merge DECL_READ_P flag.
6020 (finish_decl, build_compound_literal): Set DECL_READ_P flag.
6021 (finish_function): Issue -Wunused-but-set-parameter diagnostics.
6022 * c-common.c (handle_used_attribute, handle_unused_attribute):
6023 Likewise.
6024 * c-tree.h (default_function_array_read_conversion, mark_exp_read):
6025 New prototypes.
6026 * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
6027 New functions.
6028 (default_conversion, c_process_expr_stmt): Call mark_exp_read.
6029 * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
6030 c_parser_binary_expression, c_parser_cast_expression,
6031 c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
6032 Call default_function_array_read_conversion instead of
6033 default_function_array_conversion where needed.
6034 (c_parser_unary_expression, c_parser_conditional_expression,
6035 c_parser_postfix_expression_after_primary, c_parser_initelt):
6036 Likewise. Call mark_exp_read where needed.
6037 (c_parser_statement_after_labels, c_parser_asm_operands,
6038 c_parser_typeof_specifier, c_parser_sizeof_expression,
6039 c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
6040 where needed.
6041 * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
6042 New.
6043 * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
6044 (warn_unused_but_set_parameter): Default to warn_unused
6045 && extra_warnings.
6046 * doc/invoke.texi: Document -Wunused-but-set-variable and
6047 -Wunused-but-set-parameter.
6048
4081d362 6049 * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
6050 used count variable.
6051 * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
6052 when operandN variables aren't used in the body of the expander
6053 or splitter.
6054 * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
6055 FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
6056 * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
6057 * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
6058 FOR_EACH_IMM_USE_ON_STMT): Likewise.
6059 * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
6060 * tree.c (PROCESS_ARG): Likewise.
6061
3a79f5da 60622010-04-07 Simon Baldwin <simonb@google.com>
6063
6064 * diagnostic.h (diagnostic_override_option_index): New macro to
6065 set a diagnostic's option_index.
6066 * c-tree.h (c_cpp_error): Add warning reason argument.
6067 * opts.c (_warning_as_error_callback): New.
6068 (register_warning_as_error_callback): Store callback for
6069 warnings enabled via enable_warning_as_error.
6070 (enable_warning_as_error): Call callback, minor code tidy.
6071 * opts.h (register_warning_as_error_callback): Declare.
6072 * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
6073 response to -Werror=.
6074 (c_common_init_options): Register warning_as_error_callback in opts.c.
6075 * common.opt: Add -Wno-cpp option.
6076 * c-common.c (struct reason_option_codes_t): Map cpp warning
6077 reason codes to gcc option indexes.
6078 * (c_option_controlling_cpp_error): New function, lookup the gcc
6079 option index for a cpp warning reason code.
6080 * (c_cpp_error): Add warning reason argument, call
6081 c_option_controlling_cpp_error for diagnostic_override_option_index.
6082 * doc/invoke.texi: Document -Wno-cpp.
6083
7f2d9047 60842010-04-07 Richard Guenther <rguenther@suse.de>
6085
6086 * ipa-reference.c (mark_load): Use get_base_address.
6087 (mark_store): Likewise.
6088
6089 * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
6090 inserting GIMPLE_NOPs into the IL.
6091 * tree-ssa-structalias.c (get_constraint_for_component_ref):
6092 Explicitly strip handled components and indirect references.
191a9198 6093
7f2d9047 6094 * fold-const.c (fold_unary_loc): Do not strip qualifiers when
6095 folding address expressions.
6096 * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
6097 * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
6098 operand_equal_p to compare decls.
6099 (ptr_deref_may_alias_decl_p): Likewise.
6100 * tree-ssa-operands.c (get_asm_expr_operands): Simplify
6101 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
6102 Handle reversed comparison ops.
6103 * tree-sra.c (asm_visit_addr): Use get_base_address.
f94eb6db 6104 * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
7f2d9047 6105 * ipa-reference.c (mark_address): Use get_base_address.
6106
ed40c3d0 61072010-04-07 Richard Guenther <rguenther@suse.de>
6108
6109 * tree-ssa-forwprop.c (forward_propagate_addr_expr):
6110 Propagate constants everywhere.
6111
27a1da0a 61122010-04-07 Jakub Jelinek <jakub@redhat.com>
6113
6114 PR debug/43516
6115 * tree.c (MAX_INT_CACHED_PREC): Define.
6116 (nonstandard_integer_type_cache): New array.
6117 (build_nonstandard_integer_type): Cache results for precision
6118 <= MAX_INT_CACHED_PREC.
6119
e190b18a 61202010-04-07 Richard Guenther <rguenther@suse.de>
6121
6122 * doc/invoke.texi (-fargument-alias, -fargument-noalias,
6123 -fargument-noalias-global, -fargument-noalias-anything): Remove.
6124 * common.opt: Likewise.
f94eb6db 6125 * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
6126 * alias.c (base_alias_check): Remove flag_argument_noalias handling.
e190b18a 6127 (nonoverlapping_memrefs_p): Likewise.
6128 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6129 * opts.c (common_handle_option): Handle OPT_fargument_alias,
6130 OPT_fargument_noalias, OPT_fargument_noalias_anything and
6131 OPT_fargument_noalias_global for backward compatibility.
6132
c26ce8a9 61332010-04-07 Richard Guenther <rguenther@suse.de>
6134
6135 PR tree-optimization/43270
f94eb6db 6136 * tree-vrp.c (check_array_ref): Fix flexible array member detection.
c26ce8a9 6137 * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
6138 * tree-ssa-pre.c (phi_translate_1): Adjust.
6139 (fully_constant_expression): Split out vn_reference handling to ...
6140 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
6141 Fold reads from constant strings.
6142 (vn_reference_lookup): Handle fully constant references.
6143 (vn_reference_lookup_pieces): Likewise.
6144 * Makefile.in (expmed.o-warn): Add -Wno-error.
6145
f086d5d6 61462010-04-07 Martin Jambor <mjambor@suse.cz>
6147
6148 * tree-sra.c (find_param_candidates): Allow scalar va_list types.
6149
72b890e7 61502010-04-07 Iain Sandoe <iains@gcc.gnu.org>
6151
6152 PR driver/41594
6153 * gcc.c: Add -static-libstdc++ to list of recognized options.
6154
be67f556 61552010-04-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6156
f94eb6db 6157 * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
be67f556 6158
84626878 61592010-04-07 Richard Guenther <rguenther@suse.de>
6160
6161 PR middle-end/42617
f94eb6db 6162 * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
6163 bases build simple mem attributes to retain points-to information.
84626878 6164
1f1e1860 61652010-04-07 Richard Guenther <rguenther@suse.de>
6166
6167 PR middle-end/42617
6168 * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
6169 preserve points-to related information.
6170
6d72287b 61712010-04-07 Richard Guenther <rguenther@suse.de>
6172
6173 PR middle-end/42617
6174 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
6175 discard plain indirect references.
f94eb6db 6176 * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
6d72287b 6177 * tree.c (tree_nop_conversion): Likewise.
6178
b2e3737c 61792010-04-07 Dodji Seketeli <dodji@redhat.com>
6180
6181 PR debug/43628
6182 * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
6183
9a3865f9 61842010-04-06 Kai Tietz <kai.tietz@onevision.com>
6185
6186 * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
6187 calling convention attributes on METHOD_TYPEs for w64 ABI, too.
6188
9cfdcdb1 61892010-04-07 Sebastian Pop <sebastian.pop@amd.com>
6190
6191 * tree-if-conv.c: Fix indentation and comments.
6192
1055d96a 61932010-04-07 Sebastian Pop <sebastian.pop@amd.com>
6194
6195 * tree-if-conv.c: Sort static functions in topological order.
6196
a1660ced 61972010-04-07 Sebastian Pop <sebastian.pop@amd.com>
6198
6199 * tree-if-conv.c: Fix indentation and comments.
6200
1fc000b2 62012010-04-06 Sebastian Pop <sebastian.pop@amd.com>
6202
6203 PR middle-end/43519
6204 * graphite-clast-to-gimple.c (max_signed_precision_type): Use
f94eb6db 6205 lang_hooks.types.type_for_size instead of
6206 build_nonstandard_integer_type.
1fc000b2 6207 When converting an unsigned type to signed, double its precision.
6208 (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
6209 (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
f94eb6db 6210 (graphite_create_new_loop_guard): When ub + 1 wraps around,
6211 use lb <= ub.
1fc000b2 6212
62132010-04-06 Sebastian Pop <sebastian.pop@amd.com>
6214
6215 PR middle-end/43519
6216 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
6217 POINTER_PLUS_EXPR for pointer types.
6218
62192010-04-06 Sebastian Pop <sebastian.pop@amd.com>
6220
6221 PR middle-end/43519
6222 * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
6223 * graphite-clast-to-gimple.c: Include langhooks.h.
6224 (max_signed_precision_type): New.
6225 (max_precision_type): Takes two types as arguments.
6226 (precision_for_value): New.
6227 (precision_for_interval): New.
6228 (gcc_type_for_interval): New.
6229 (gcc_type_for_value): New.
6230 (gcc_type_for_clast_term): New.
6231 (gcc_type_for_clast_red): New.
6232 (gcc_type_for_clast_bin): New.
6233 (gcc_type_for_clast_expr): Split up into several functions.
6234 (gcc_type_for_clast_eq): Rewritten.
6235 (compute_bounds_for_level): New.
6236 (compute_type_for_level_1): New.
6237 (compute_type_for_level): New.
6238 (gcc_type_for_cloog_iv): Removed.
6239 (gcc_type_for_iv_of_clast_loop): Rewritten.
6240 (graphite_create_new_loop): Compute the lower and upper bound types
6241 with gcc_type_for_clast_expr.
6242 (graphite_create_new_loop_guard): Same.
6243 (find_cloog_iv_in_expr): Removed.
6244 (compute_cloog_iv_types_1): Removed.
6245 (compute_cloog_iv_types): Removed.
6246 (gloog): Do not call compute_cloog_iv_types.
6247 * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
6248 GBB_CLOOG_IV_TYPES.
6249 (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
6250 * sese.h (struct gimple_bb): Removed field cloog_iv_types.
6251 (GBB_CLOOG_IV_TYPES): Removed.
6252
62532010-04-06 Sebastian Pop <sebastian.pop@amd.com>
6254
6255 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
6256 gimple_phi_num_args of the loop close SSA phi node is equal to 1.
6257 (detect_commutative_reduction): Same.
6258
ca77c6ec 62592010-04-06 Sebastian Pop <sebastian.pop@amd.com>
6260
6261 * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
6262 call to verify_ssa. Invoke verify_loop_closed_ssa with an extra
6263 argument.
6264 * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
6265 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
6266 (rewrite_commutative_reductions_out_of_ssa): Same.
6267 * passes.c (execute_function_todo): Call verify_ssa for every pass
6268 in the LNO. Invoke verify_loop_closed_ssa with an extra argument.
6269 * tree-flow.h (verify_loop_closed_ssa): Update declaration.
6270 * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
6271 with an extra argument.
6272 * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same. Call
6273 verify_ssa only when the extra argument is true.
6274 (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
6275 with an extra argument.
6276 (tree_transform_and_unroll_loop): Same.
6277
a29ec3eb 62782010-04-06 Sebastian Pop <sebastian.pop@amd.com>
6279
6280 * passes.c (execute_function_todo): Call verify_loop_closed_ssa
6281 for all the passes of the LNO having LOOP_CLOSED_SSA.
6282 * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
6283 * tree-loop-distribution.c (pass_loop_distribution): Same.
6284 * tree-pass.h (TODO_verify_loops): Removed.
6285 * tree-ssa-loop.c (pass_tree_loop_init): Same.
6286 (pass_lim): Same.
6287 (pass_tree_unswitch): Same.
6288 (pass_predcom): Same.
6289 (pass_vectorize): Same.
6290 (pass_linear_transform): Same.
6291 (pass_graphite_transforms): Same.
6292 (pass_iv_canon): Same.
6293 (pass_complete_unroll): Same.
6294 (pass_complete_unrolli): Same.
6295 (pass_parallelize_loops): Same.
6296 (pass_loop_prefetch): Same.
6297 (pass_iv_optimize): Same.
6298
69f0b410 62992010-04-06 Changpeng Fang <changpeng.fang@amd.com>
6300
6301 PR middle-end/32824
6302 * passes.c (init_optimization_passes): Move pass_lim before
6303 pass_copy_prop and pass_dce_loop.
6304
56bbb355 63052010-04-06 Jakub Jelinek <jakub@redhat.com>
6306
6307 PR target/43667
6308 * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
6309 instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
6310 (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
6311 MULTI_* defines for 4 argument vpermil2p* builtins.
6312
c356ea4c 63132010-04-06 Uros Bizjak <ubizjak@gmail.com>
6314
6315 * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
6316 * config/i386/i386.c (x86_maybe_negate_const_int): New.
6317 (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
6318 * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
6319 *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
6320 *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
6321 *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
6322 Use x86_maybe_negate_const_int to output insn mnemonic.
6323 (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto. Remove overflow
6324 check from instruction predicate. Update comments.
6325 * config/i386/sync.md (sync_add<mode>): Use
6326 x86_maybe_negate_const_int to output insn mnemonic.
9adc5680 6327
c356ea4c 63282010-04-06 Jan Hubicka <jh@suse.cz>
6329
6330 PR tree-optimization/42906
6331 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
6332 IGNORE_SELF argument. Set visited_control_parents for fully
6333 processed BBs.
9adc5680 6334 (find_obviously_necessary_stmts): Update call of
6335 mark_control_dependent_edges_necessary.
c356ea4c 6336 (propagate_necessity): Likewise. Handle PHI edges more curefully.
9adc5680 6337
32293f26 63382010-04-06 Uros Bizjak <ubizjak@gmail.com>
6339
6340 * config/i386/i386.md: Remove comment about 'e' and 'E'
6341 operand modifier.
6342
33731620 63432010-04-06 Richard Guenther <rguenther@suse.de>
6344
6345 PR tree-optimization/43627
6346 * tree-vrp.c (extract_range_from_unary_expr): Widenings
6347 of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
6348 not varying.
6349
2fdc28c4 63502010-04-06 Jakub Jelinek <jakub@redhat.com>
6351
2fb69c7a 6352 * BASE-VER: Change to 4.6.0.
6353
2fdc28c4 6354 PR target/43638
6355 * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
6356 handling.
6357
30806cf1 63582010-04-06 Richard Guenther <rguenther@suse.de>
6359
6360 PR middle-end/43661
6361 * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
6362
a0440ffb 63632010-04-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6364
6365 * doc/invoke.texi (Optimize Options): Document that LTO
6366 won't remove object access purely due to incompatible
6367 declarations.
6368
8e19aa33 63692010-04-04 Matthias Klose <doko@ubuntu.com>
6370
6371 * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
6372 Initialize variable.
6373
c6b80e5d 63742010-04-03 Richard Guenther <rguenther@suse.de>
6375
6376 PR middle-end/42509
6377 * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
6378 require a non-NULL MEM_OFFSET.
6379
7cf0dbf3 63802010-04-02 Steven Bosscher <steven@gcc.gnu.org>
6381
c356ea4c 6382 * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
7cf0dbf3 6383 basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
6384 collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
6385 config/alpha/predicates.md, config/arm/arm.md,
6386 config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
6387 config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
6388 config/darwin9.h, config/darwin.c, config/darwin.h,
6389 config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
6390 config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
6391 config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
6392 config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
6393 config/mips/mips.md, config/mn10300/mn10300.c,
6394 config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
6395 config/rs6000/aix.h, config/rs6000/dfp.md,
6396 config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
6397 config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
6398 config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
6399 config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
6400 config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
6401 config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
6402 c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
6403 diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
6404 doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
6405 doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
6406 fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
6407 gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
6408 graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
6409 graphite-dependences.c, graphite-poly.c, graphite-poly.h,
6410 graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
6411 graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
6412 intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
6413 ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
6414 ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
6415 loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
6416 objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
6417 opt-functions.awk, opth-gen.awk, params.def, passes.c,
6418 postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
6419 rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
6420 store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
6421 tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
6422 tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
6423 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
6424 tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
6425 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
6426 tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
6427 tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
6428 tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
6429 tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
6430 tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
6431 unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
6432
e0934084 64332010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6434
6435 PR other/43620
6436 * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
6437 * aclocal.m4: Regenerate.
6438
87c0a9fc 64392010-04-02 Richard Guenther <rguenther@suse.de>
6440
6441 PR tree-optimization/43629
6442 * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
6443 if we have seen a constant value.
6444
ed99630c 64452010-04-02 Joseph Myers <joseph@codesourcery.com>
6446
f94eb6db 6447 * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
ed99630c 6448
ae6c5ae5 64492010-04-02 Richard Earnshaw <rearnsha@arm.com>
6450
6451 PR target/43469
c356ea4c 6452 * arm.c (legitimize_tls_address): Adjust call to
ae6c5ae5 6453 gen_tls_load_dot_plus_four.
6454 (arm_note_pic_base): New function.
6455 (arm_cannot_copy_insn_p): Use it.
6456 * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
6457 constraint.
6458
fbd8fb2d 64592010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6460
6461 PR bootstrap/43531
6462
6463 Revert:
6464 2009-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6465
6466 * Makefile.in ($(out_object_file)): Depend on
6467 gt-$(basename $(notdir $(out_file))).h.
6468
4345bfd0 64692010-04-01 Ralf Corsépius <ralf.corsepius@rtems.org>
6470
f94eb6db 6471 * config.gcc (lm32-*-rtems*): Add t-lm32.
4345bfd0 6472
64732010-04-01 Joel Sherrill <joel.sherrill@oarcorp.com>
6474
f94eb6db 6475 * config.gcc: Add lm32-*-rtems*.
6476 * config/lm32/rtems.h: New file.
4345bfd0 6477
19cd9266 64782010-04-01 Dave Korn <dave.korn.cygwin@gmail.com>
6479
6480 PR target/42609
6481 * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
6482
938dd628 64832010-04-01 Jakub Jelinek <jakub@redhat.com>
6484
6485 * dwarf2out.c (output_compilation_unit_header): For
6486 -gdwarf-4 use version 4 instead of version 3.
6487 (output_line_info): For version 4 and above emit additional
6488 maximum ops per insn header field.
6489 (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
6490
6491 * dwarf2out.c (is_c_family, is_java): Remove.
6492 (lower_bound_default): New function.
6493 (add_bound_info, gen_descr_array_type_die): Use it.
6494
9be13539 64952010-04-01 Dodji Seketeli <dodji@redhat.com>
6496
6497 PR debug/43325
6498 * dwarf2out.c (gen_variable_die): Allow debug info for variable
6499 re-declaration when it happens in a function.
6500
1359ee7a 65012010-04-01 Aldy Hernandez <aldyh@redhat.com>
6502
6503 * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
6504 (cgraph_remove_function_insertion_hook): Same.
6505 (cgraph_call_function_insertion_hooks): Same.
6506
9c44b395 65072010-04-01 Richard Guenther <rguenther@suse.de>
6508
6509 PR middle-end/43614
6510 * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
6511 and TREE_THIS_VOLATILE.
6512 (copy_ref_info): Likewise.
6513 * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
6514 * tree.c (build6_stat): Ignore side-effects of all but arg5
6515 for TARGET_MEM_REF. Set TREE_THIS_VOLATILE from arg5 of
6516 TARGET_MEM_REF.
6517
0369b84f 65182010-04-01 Richard Guenther <rguenther@suse.de>
6519
6520 PR tree-optimization/43607
6521 * ipa-type-escape.c (check_call): Do not access non-existing
6522 arguments.
6523
6831e9b9 65242010-04-01 Richard Guenther <rguenther@suse.de>
6525
6526 PR middle-end/43602
6527 Revert
6528 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
f94eb6db 6529 Jack Howarth <howarth@bromo.med.uc.edu>
6831e9b9 6530
6531 * tree-profile.c (tree_init_ic_make_global_vars): Make static
6532 variables TLS.
6533
3882b9ba 65342010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6535
6536 * doc/install.texi (Prerequisites): Document libelf usability on
6537 IRIX 5/6 and Solaris 2.
6538 (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
6539 Update GNU as, GNU ld requirements.
6540 (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
6541 Document Sun Studio compiler download.
6542 Update and simplify as, ld recommendations.
6543 (Specific, *-*-solaris2.7): Note obsoletion, removal.
6544
2c22525d 65452010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6546
be67f556 6547 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
2c22525d 6548 with_tune_32 to pentium4.
6549
684548b1 65502010-04-01 Uros Bizjak <ubizjak@gmail.com>
6551
6552 * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
6553
20d2f530 65542010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6555
6556 * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
6557 obsoletion, removal.
6558 Update IDO URL.
6559 Document GNU as requirement.
6560 Update configure requirements.
f94eb6db 6561 (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
20d2f530 6562 Recomment IRIX 6.5.18+.
6563 Document IDF/IDL requirement.
6564 Document GNU as requirement.
6565 Document GNU ld bootstrap failure.
6566 Remove freeware.sgi.com reference.
6567
ac8c2728 65682010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6569
6570 * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
6571 UNIX V4.0, V5.0 obsoletion, removal.
6572 Remove --with-gc=simple reference.
6573 Update VM requirements during bootstrap.
6574 Remove -oldas bootstrap description.
6575 Update binutils reference.
6576 Remove comparison failure note.
6577
ed2517f6 65782010-03-31 Richard Guenther <rguenther@suse.de>
6579 Zdenek Dvorak <ook@ucw.cz>
6580 Sebastian Pop <sebastian.pop@amd.com>
6581
6582 PR middle-end/43464
6583 * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
6584 with multiple arguments.
6585 (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
6586
65872010-03-31 Sebastian Pop <sebastian.pop@amd.com>
6588
6589 * graphite-dependences.c (print_pddr): Call print_pdr with an
6590 extra argument.
6591 * graphite-poly.c (debug_pdr): Add an extra argument for the
6592 verbosity level.
6593 (print_pdr): Same.
6594 (print_pbb_domain): Same.
6595 (print_pbb): Same.
6596 (print_scop_context): Same.
6597 (print_scop): Same.
6598 (print_cloog): Same.
6599 (debug_pbb_domain): Same.
6600 (debug_pbb): Same.
6601 (print_pdrs): Same.
6602 (debug_pdrs): Same.
6603 (debug_scop_context): Same.
6604 (debug_scop): Same.
6605 (debug_cloog): Same.
6606 (print_scop_params): Same.
6607 (debug_scop_params): Same.
6608 (print_iteration_domain): Same.
6609 (print_iteration_domains): Same.
6610 (debug_iteration_domain): Same.
6611 (debug_iteration_domains): Same.
6612 (print_scattering_function): Same.
6613 (print_scattering_functions): Same.
6614 (debug_scattering_function): Same.
6615 (debug_scattering_functions): Same.
6616 * graphite-poly.h (debug_pdr): Update declaration.
6617 (print_pdr): Same.
6618 (print_pbb_domain): Same.
6619 (print_pbb): Same.
6620 (print_scop_context): Same.
6621 (print_scop): Same.
6622 (print_cloog): Same.
6623 (debug_pbb_domain): Same.
6624 (debug_pbb): Same.
6625 (print_pdrs): Same.
6626 (debug_pdrs): Same.
6627 (debug_scop_context): Same.
6628 (debug_scop): Same.
6629 (debug_cloog): Same.
6630 (print_scop_params): Same.
6631 (debug_scop_params): Same.
6632 (print_iteration_domain): Same.
6633 (print_iteration_domains): Same.
6634 (debug_iteration_domain): Same.
6635 (debug_iteration_domains): Same.
6636 (print_scattering_function): Same.
6637 (print_scattering_functions): Same.
6638 (debug_scattering_function): Same.
6639 (debug_scattering_functions): Same.
6640
66412010-03-31 Sebastian Pop <sebastian.pop@amd.com>
6642
6643 * graphite-poly.c (print_scattering_function_1): New.
6644 (print_scattering_function): Call it.
6645 (print_scop_params): Remove spaces at the end of lines.
6646 (print_cloog): New.
6647 (debug_cloog): New.
6648 * graphite-poly.h (print_cloog): Declared.
6649 (debug_cloog): Declared.
6650
66512010-03-31 Sebastian Pop <sebastian.pop@amd.com>
6652
6653 * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
6654 in loop->header.
6655 * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
6656 * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
6657 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
6658 to switch between adding the IV bump in loop->latch or in loop->header.
6659
66602010-03-31 Sebastian Pop <sebastian.pop@amd.com>
6661
6662 * graphite-poly.c (print_scattering_function): Pretty print following
6663 the scoplib format.
6664 (print_pdr): Same.
6665 (print_pbb_domain): Same.
6666 (dump_gbb_cases): Same.
6667 (dump_gbb_conditions): Same.
6668 (print_pdrs): Same.
6669 (print_pbb): Same.
6670 (print_scop_params): Same.
6671 (print_scop_context): Same.
6672 (print_scop): Same.
6673 (print_pbb_body): New.
6674 (lst_indent_to): New.
6675 (print_lst): Start new lines with a #.
6676 * graphite-poly.h (pbb_bb): New.
6677 (pbb_index): Use pbb_bb.
6678 * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
6679 disjuncts.
6680 * tree-data-ref.c (dump_data_reference): Start new lines with a #.
6681
833de58a 66822010-03-31 Jakub Jelinek <jakub@redhat.com>
6683
2769d34f 6684 * dwarf2out.c (size_of_die): For -gdwarf-4 use
6685 uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
6686 and 0 instead of 1 for dw_val_class_flag.
6687 (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
6688 dw_val_class_range_list, dw_val_class_loc_list,
6689 dw_val_class_lineptr and dw_val_class_macptr, use
6690 DW_FORM_flag_present for dw_val_class_flag and
6691 DW_FORM_exprloc for dw_val_class_loc.
6692 (output_die): For -gdwarf-4 print dw_val_class_loc
6693 size as uleb128 instead of 1 or 2 bytes and don't print
6694 anything for dw_val_class_flag.
6695
c2becbaf 6696 * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
6697 instead of cselib_lookup following by tweaking locs->setting_insn.
6698
833de58a 6699 PR bootstrap/43596
6700 * cselib.c (cselib_process_insn): Clear cselib_current_insn
6701 even before returning from label, setjmp call or volatile asm
6702 handling.
6703
3e1cde87 67042010-03-31 Richard Guenther <rguenther@suse.de>
6705
6706 PR middle-end/43600
6707 * cgraphunit.c (cgraph_output_in_order): Do not allocate
6708 temporary data on stack.
6709
64920f70 67102010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6711
6712 * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
6713 (PUSHSECTION_ASM_OP): Remove.
6714 (POPSECTION_ASM_OP): Remove.
6715 (PUSHSECTION_FORMAT): Remove.
6716 * config/sol2.h (PUSHSECTION_FORMAT): Define.
6717 * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
6718 * config/sol2.c (solaris_output_init_fini): Use it.
6719
9d2a6747 67202010-03-31 Jie Zhang <jie@codesourcery.com>
6721
6722 PR 43574
6723 * opt-functions.awk (var_type_struct): Use signed char type
6724 for simple variables.
6725
dc2059b5 67262010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6727
6728 * config/sol2.c: Include output.h.
6729 (solaris_assemble_visibility): New function.
6730 * config/t-sol2 (sol2.o): Add output.h dependency.
6731 * config/sol2-protos.h (solaris_assemble_visibility): Declare.
6732 * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
6733 Redefine.
6734
0f18e023 67352010-03-31 Jakub Jelinek <jakub@redhat.com>
6736
3fdcdf72 6737 PR target/43580
6738 * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
6739 V2SImode or XFmode on PRE_DEC.
6740
0f18e023 6741 PR debug/43557
6742 * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
6743 BLKmode.
6744
4e4c89ec 67452010-03-31 Jie Zhang <jie@codesourcery.com>
6746
6747 PR 43562
6748 * reload.h (caller_save_initialized_p): Declare.
6749 * toplev.c (backend_init_target): Don't call
684548b1 6750 init_caller_save but set caller_save_initialized_p to false.
4e4c89ec 6751 * caller-save.c (caller_save_initialized_p): Define.
6752 (init_caller_save): Check caller_save_initialized_p.
6753 * ira.c (ira): Call init_caller_save if flag_caller_saves.
6754
55738a74 67552010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6756
6757 PR target/39048
6758 * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
6759 and soft-fp/t-softfp to tmake_file.
6760 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
6761 (LIBGCC2_TF_CEXT): Define.
6762 (TF_SIZE): Define.
6763
ba981716 67642010-03-30 Alexandre Oliva <aoliva@redhat.com>
6765
6766 PR debug/42977
6767 * cselib.c (n_useless_values): Document handling of debug locs.
6768 (n_useless_debug_values, n_debug_values): New variables.
6769 (new_elt_loc_list): Don't add to debug values, keep count.
6770 (promote_debug_loc): New.
6771 (cselib_reset_table): Zero new variables.
6772 (entry_and_rtx_equal_p): Promote debug locs.
6773 (discard_useless_locs): Increment n_useless_debug_values for
6774 debug values.
6775 (remove_useless_values): Adjust n_useless_values and n_debug_values
6776 with n_useless_debug_values.
6777 (add_mem_for_addr): Promote debug locs.
6778 (cselib_lookup_mem): Likewise.
6779 (cselib_lookup_addr): Renamed to...
684548b1 6780 (cselib_lookup_addr_1): ... this. Promote debug locs. Don't call...
ba981716 6781 (cselib_log_lookup): ... this. Turn into...
6782 (cselib_lookup_addr): ... new wrapper.
6783 (cselib_lookup_from_insn): New.
6784 (cselib_invalidate_regno): Increment n_useless_debug_values for
6785 debug values.
6786 (cselib_invalidate_mem): Likewise.
6787 (cselib_process_insn): Take n_deleted and n_debug_values into
6788 account to guard remove_useless_value call.
6789 (cselib_finish): Zero n_useless_debug_values.
6790 * cselib.h (cselib_lookup_from_insn): Declare.
6791 * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
6792 (sched_analyze_2): Likewise.
6793
54f4c5d9 67942010-03-30 Jakub Jelinek <jakub@redhat.com>
6795
910193a5 6796 * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
6797 functions.
6798 (adjust_mems): Replace narrowing SUBREG of expression containing
6799 just PLUS, MINUS, MULT and ASHIFT of registers and constants
6800 with operations in the narrower mode.
6801
54f4c5d9 6802 PR debug/43593
684548b1 6803 * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
6804 regs_invalidated_by_call instead all call_used_reg_set registers.
54f4c5d9 6805
8d5cb2fa 68062010-03-30 Sebastian Pop <sebastian.pop@amd.com>
6807
6808 PR middle-end/43430
6809 * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
6810 pointer comparisons with types_compatible_p.
6811 * tree-vect-stmts.c (vectorizable_call): Same.
6812 (vectorizable_condition): Same.
6813
b437383e 68142010-03-30 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6815
6816 * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
6817 stack check if the mask would be zero.
6818
72aa8cd5 68192010-03-30 Seongbae Park <seongbae.park@gmail.com>
6820 Jack Howarth <howarth@bromo.med.uc.edu>
6821
6822 * tree-profile.c (tree_init_ic_make_global_vars): Make static
6823 variables TLS.
6824
b6d771b1 68252010-03-30 Joseph Myers <joseph@codesourcery.com>
6826
6827 PR other/25232
6828 * libgcc-std.ver (GCC_4.5.0): Define version. Include __unordxf2
6829 and __unordtf2.
6830 * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
6831 Include ___unordxf2 and ___unordtf2.
6832 * config/i386/libgcc-glibc.ver: Do not define inheritance from
6833 GCC_4.4.0 here.
6834
cf842d6a 68352010-03-30 Tarik Graba <tarik.graba@telecom-paristech.fr>
6836
6837 * config/lm32/t-lm32: New file.
6838 * config.gcc: Use the above file when targetting lm32.
6839
7893460c 68402010-03-28 Duncan Sands <baldrick@free.fr>
6841
684548b1 6842 * Makefile.in (PLUGIN_HEADERS): Add except.h.
7893460c 6843
ff0bcc09 68442010-03-29 Sebastian Pop <sebastian.pop@amd.com>
6845
6846 PR middle-end/43431
6847 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
6848 Improve vectorization cost model diagnostic.
6849
590a32b6 68502010-03-29 Sebastian Pop <sebastian.pop@amd.com>
6851
6852 PR middle-end/43436
6853 * tree-vect-data-refs.c (vect_analyze_data_refs): When
6854 compute_data_dependences_for_loop returns false, early exit
6855 and output an extra diagnostic for the failed data reference
6856 analysis.
6857
307f7fda 68582010-03-29 Richard Guenther <rguenther@suse.de>
6859
6860 PR tree-optimization/43560
684548b1 6861 * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
6862 (can_sm_ref_p): Treat stores to readonly locations as trapping.
307f7fda 6863
1da23459 68642010-03-29 Jie Zhang <jie@codesourcery.com>
6865
6866 PR 43564
6867 * toplev.c (process_options): Set optimization_default_node
6868 and optimization_current_node.
6869 * opts.c (decode_options): Don't set optimization_default_node
6870 and optimization_current_node.
6871
76ba288e 68722010-03-29 Ralf Corsépius <ralf.corsepius@rtems.org>
6873
6874 * config/rtems.h: Abandon -qrtems_debug.
6875
0ab636bf 68762010-03-28 Jan Hubicka <jh@suse.cz>
6877
6878 PR tree-optimization/43505
6879 * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
6880 map should not be copied.
6881
b1be8e04 68822010-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6883
6884 PR middle-end/41674
6885 * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
6886 cdtors, set DECL_PRESERVE_P.
6887 * ipa.c (cgraph_externally_visible_p): Return true if declaration
6888 should be preseved.
6889
c7e8d0da 68902010-03-27 Uros Bizjak <ubizjak@gmail.com>
6891
6892 PR tree-optimization/43528
6893 * stor-layout.c (place_field): Check that constant fits into
6894 unsigned HWI when skipping calculation of MS bitfield layout.
6895
29755059 68962010-03-27 Jan Hubicka <jh@suse.cz>
6897
6898 PR middle-end/43391
6899 * varasm.c (make_decl_rtl): Deal with COMMON flag to make
6900 notice_global_symbol work.
6901
9a21467c 69022010-03-27 Jakub Jelinek <jakub@redhat.com>
6903
6904 * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
6905 instead of dwarf2out_decl.
6906 (struct var_loc_node): Remove section_label field.
6907 (dwarf2out_function_decl): New function.
6908 (dwarf2out_var_location): Don't set section_label field.
6909 (dwarf2out_begin_function): Don't empty decl_loc_table here.
6910
31ac7341 69112010-03-26 Michael Meissner <meissner@linux.vnet.ibm.com>
6912
6913 PR tree-optimization/43544
6914 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
6915 First argument for builtin vectorized function hook is now a
6916 tree to be able to distinguish between machine specific and
6917 standard builtins.
6918 * targhooks.c (default_builtin_vectorized_function): Ditto.
6919 * targhooks.h (default_builtin_vectorized_function): Ditto.
6920 * target.h (struct gcc_target): Ditto.
6921 * tree-vect-stmts.c (vectorizable_function): Ditto.
6922 * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
6923 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
6924 Ditto.
6925
1799fbab 69262010-03-26 Joseph Myers <joseph@codesourcery.com>
6927
6928 PR c/43381
6929 * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
6930 nested binding iff it is a FUNCTION_DECL.
6931 (store_parm_decls_newstyle): Pass nested=true to bind for
6932 FUNCTION_DECLs amongst parameters.
6933
f6c38a60 69342010-03-26 Jakub Jelinek <jakub@redhat.com>
6935
ee8f7e14 6936 * var-tracking.c (vt_expand_loc_callback): Don't run
6937 cselib_expand_value_rtx_cb in dummy mode if
6938 cselib_dummy_expand_value_rtx_cb returned false.
6939
de4798ba 6940 * var-tracking.c (emit_note_insn_var_location): For one part
6941 notes with offset 0, don't add EXPR_LIST around the location.
6942 * dwarf2out.c (loc_descriptor, dw_loc_list_1,
6943 add_location_or_const_value_attribute): Adjust for that change.
6944
f6c38a60 6945 PR debug/43540
6946 * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
6947 into first operand and location into second.
6948 (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
6949 dw_cfi_oprnd_loc for DW_CFA_expression.
6950 (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
6951 (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
6952 assume first argument is regnum and second argument is location.
6953
6f666469 69542010-03-26 Uros Bizjak <ubizjak@gmail.com>
6955
6956 PR target/42113
6957 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
6958 of scratch register to DImode. Split to DImode comparison operator.
6959 Use SImode subreg of scratch register in the multiplication.
6960 (*cmp_sadd_sidi): Ditto.
6961 (*cmp_ssub_si): Ditto.
6962 (*cmp_ssub_sidi): Ditto.
6963
b3a206ed 69642010-03-26 Uros Bizjak <ubizjak@gmail.com>
6965
6966 PR target/43524
6967 * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
6968 Remove invalid assert and wrong comment.
6969
090bd40b 69702010-03-26 Jakub Jelinek <jakub@redhat.com>
6971
6972 PR debug/43516
6973 * flags.h (final_insns_dump_p): New extern.
6974 * final.c (final_insns_dump_p): New variable.
6975 (rest_of_clean_state): Set it before -fdump-final-insns=
6976 dumping, clear afterwards.
6977 * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
6978 MEM_ALIAS_SET on MEMs.
6979
dd84455f 69802010-03-26 David S. Miller <davem@davemloft.net>
6981
6982 * configure.ac: Fix sparc GOTDATA_OP bug check.
6983 * configure: Rebuild.
6984
5b5886ef 69852010-03-26 Alan Modra <amodra@gmail.com>
6986
6987 * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
6988
7d167d36 69892010-03-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6990
6991 * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
6992 TLS_SECTION_ASM_FLAG.
6993
26043330 69942010-03-25 Jakub Jelinek <jakub@redhat.com>
6995
daacc721 6996 PR bootstrap/43511
6997 * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
6998 Clear first_function_block_is_cold.
6999
26043330 7000 PR c/43385
7001 * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
7002 argument if the argument is truth_value_p.
7003
6e4da586 70042010-03-24 Michael Meissner <meissner@linux.vnet.ibm.com>
7005
b3a206ed 7006 * config/rs6000/constraints.md: Update copyright year for my changes.
dd75063e 7007
6e4da586 7008 PR target/43484
7009 * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
7010 used in reg+reg addressing, swap registers.
7011
21a38800 70122010-03-24 Jakub Jelinek <jakub@redhat.com>
7013
5cbd74a3 7014 PR debug/43293
7015 * target.h (struct gcc_target): Add code_end hook.
7016 * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
7017 if not yet defined.
7018 (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
7019 * toplev.c (compile_file): Call targetm.asm_out.code_end
7020 hook before unwind info/debug info output.
7021 * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
7022 * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
7023 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7024 * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
7025 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7026 * config/i386/i386.c (ix86_file_end): Renamed to...
7027 (ix86_code_end): ... this. Make static. Don't call
7028 file_end_indicate_exec_stack. Emit unwind info using
7029 final_start_function/final_end_function.
7030 (darwin_x86_file_end): Remove.
7031 (TARGET_ASM_CODE_END): Define.
7032 * config/i386/i386.h (TARGET_ASM_FILE_END,
7033 NEED_INDICATE_EXEC_STACK): Don't define.
7034 * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
7035 (TARGET_ASM_FILE_END): Define to darwin_file_end.
7036 * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
7037 * doc/tm.texi (TARGET_ASM_CODE_END): Document.
7038
21a38800 7039 PR target/43498
7040 * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
7041 at the beginning and final_end_function at the end.
7042 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
7043
7d070520 70442010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7045
7046 * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
7047 and Sun as TLS syntax.
7048 (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
7049 * configure: Regenerate.
7050 * config.in: Regenerate.
7051 * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
7052 (default_elf_asm_named_section): Use it.
7053 * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
7054 (i386_output_dwarf_dtprel): Likewise.
7055 (output_addr_const_extra): Likewise.
7056 (output_pic_addr_const): Lowercase @GOTTPOFF.
7057 (output_addr_const_extra): Likewise.
7058 (output_pic_addr_const): Lowercase @GOTNTPOFF.
7059 (output_addr_const_extra): Likewise.
7060 (output_pic_addr_const): Lowercase @INDNTPOFF.
7061 (output_addr_const_extra): Likewise.
7062 (output_pic_addr_const): Lowercase @NTPOFF.
7063 (output_addr_const_extra): Likewise.
7064 (output_pic_addr_const): Lowercase @TPOFF.
7065 (output_addr_const_extra): Likewise.
b3a206ed 7066 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
7d070520 7067 (*tls_global_dynamic_64): Likewise.
7068 (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
7069 (*tls_local_dynamic_base_64): Lowercase @TLSLD.
7070
7071 * defaults.h (TLS_COMMON_ASM_OP): Provide default.
7072 (ASM_OUTPUT_TLS_COMMON): Use it.
7073 * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
7074
7075 PR target/38118
b3a206ed 7076 * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
7d070520 7077 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
7078 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
7079 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
7080 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7081 (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
7082
cf4f27b5 70832010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7084
7085 * config/i386/i386.c (override_options): Don't accept
7086 -mtls-dialect=sun any longer.
7087 * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
7088 * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
7089 (*tls_local_dynamic_base_32_sun): Likewise.
7090 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7091
dfecf957 70922010-03-24 Jakub Jelinek <jakub@redhat.com>
7093
3a8605c1 7094 PR debug/43508
7095 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7096 VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
7097
586b67ff 7098 PR debug/43479
7099 * ira.c (adjust_cleared_regs): New function.
7100 (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
7101
dfecf957 7102 PR debug/19192
7103 PR debug/43479
7104 * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
7105 from gimple_block.
7106 * expr.c (expand_expr_real): Restore previous
7107 curr_insn_source_location and curr_insn_block after
7108 expand_expr_real_1 call.
7109 (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
7110 instead of expand_expr_real_1.
7111
e3c4abfb 71122010-03-23 Vladimir Makarov <vmakarov@redhat.com>
7113
7114 PR rtl-optimization/43413
7115 * ira-color.c (setup_allocno_available_regs_num): Count prohibited
7116 hard regs too.
7117
e4f53c6a 71182010-03-22 James E. Wilson <wilson@codesourcery.com>
7119
7120 PR target/43348
7121 * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
b3a206ed 7122 call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
e4f53c6a 7123
7765fb05 71242010-03-22 H.J. Lu <hongjiu.lu@intel.com>
7125
b3a206ed 7126 * config/i386/i386.c (ix86_target_string): Add -mfma.
7127 Fix a typo in comment.
7765fb05 7128
b9b018b5 71292010-03-22 Mike Stump <mikestump@comcast.net>
7130
7131 PR target/23071
7132 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
7133 Don't overly align based upon packed packed fields.
7134
2c69eb5f 71352010-03-22 Jason Merrill <jason@redhat.com>
7136
7137 * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
7138 Use () rather than [], and move before the element type.
7139
f48f25b9 71402010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7141
7142 * doc/configfiles.texi (Configuration Files): Removed
7143 fixinc/Makefile*, intl/Makefile.*.
b3a206ed 7144 * doc/makefile.texi: Fixed markup. Abstract from version
7145 control system used.
f48f25b9 7146 (Makefile): Removed obsolete gcc/java/parse.y example.
7147 * doc/sourcebuild.texi: Likewise.
7148 (Top Level): Added config, gnattools, libdecnumber, libgcc,
b3a206ed 7149 libgomp, libssp. Removed fastjar.
f48f25b9 7150 (Miscellaneous Docs): Clarify location.
7151 Added COPYING3, COPYING3.LIB.
b3a206ed 7152 (Front End Directory): Moved Make-lang.in entry to new subsubsection.
f48f25b9 7153
4dcd7ab3 71542010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7155
7156 PR target/38085
7157 * config/i386/i386.c (x86_function_profiler)
7158 [!NO_PROFILE_COUNTERS]: Fix typo.
7159 * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
7160 instead of callq.
7161
b51dea67 71622010-03-22 Janis Johnson <janis187@us.ibm.com>
7163 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7164
7165 * doc/sourcebuild.texi (Test Directives): Split into six
7166 subsections, with most of the current text in new subsections
7167 Directives, Selectors, and Final Actions.
7168 (Directives): Split list of test directives into multiple
7169 subsubsections.
7170 (Selectors): Describe use and syntax of selectors.
7171 (Effective-Target Keywords): Describe all existing keywords.
7172 (Add Options): Describe features for dg-add-options.
7173 (Require Support): Describe variants of dg-require-support.
7174 (Final Actions): Describe commands to use in dg-final.
7175
70bb3c91 71762010-03-22 Michael Matz <matz@suse.de>
7177
7178 PR middle-end/43475
7179 * recog.c (validate_replace_rtx_group): Replace also in
7180 REG_EQUAL and REG_EQUIV notes.
7181
1538bf19 71822010-03-22 Richard Guenther <rguenther@suse.de>
7183
7184 PR tree-optimization/43390
7185 * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
7186 sure vector extracts are type correct.
7187
ae8b73b1 71882010-03-22 Richard Guenther <rguenther@suse.de>
7189
7190 PR middle-end/40106
7191 * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
7192 x * sqrt (x) even when optimizing for size if the target
7193 has native support for sqrt.
7194
787928ac 71952010-03-22 Jakub Jelinek <jakub@redhat.com>
7196
103d49ba 7197 * varasm.c (make_decl_rtl_for_debug): Also clear
7198 flag_mudflap for the duration of make_decl_rtl call.
7199
787928ac 7200 PR debug/43443
7201 * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
7202 locs from preserved VALUEs.
7203
0453d31f 72042010-03-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7205
7206 PR middle-end/42718
7207 * pa.md (movmemsi): Set align to one if zero.
7208 (movmemdi): Likewise.
7209
721da1d4 72102010-03-21 Richard Earnshaw <rearnsha@arm.com>
7211
7212 PR target/42321
7213 * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
7214 with their corresponding prologue pushes.
7215
dcb2e3d9 72162010-03-20 Andrew Pinski <pinskia@gmail.com>
7217
7218 PR target/43156
7219 * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
7220 at the begining or end.
7221 (spu_expand_epilogue): Likewise.
7222
0895c53c 72232010-03-20 Richard Guenther <rguenther@suse.de>
7224
7225 PR rtl-optimization/43438
7226 * combine.c (make_extraction): Properly zero-/sign-extend an
7227 extraction of the low part of a CONST_INT. Also handle
7228 CONST_DOUBLE.
7229
9d33046c 72302010-03-19 Mike Stump <mikestump@comcast.net>
7231
7232 * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
7233 * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
7234 (override_options): Use SUBTARGET32_DEFAULT_CPU.
7235
25910510 72362010-03-19 Andrew Pinski <andrew_pinski@caviumnetworks.com>
7237
c82cccda 7238 PR c/43211
b3a206ed 7239 * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
7240 an error.
25910510 7241
a8e6c15d 72422010-03-19 Bernd Schmidt <bernds@codesourcery.com>
d09294c0 7243
7244 PR rtl-optimization/42258
7245 * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
7246 use that may match DEF.
7247
076b670d 7248 PR target/40697
7249 * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
7250 the cost of loading the constant rather than assuming
7251 COSTS_N_INSNS (1).
7252 * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
7253 outer code is AND, do the same tests as the andsi3 expander and
7254 return COSTS_N_INSNS (1) if and is cheap.
898ff9cb 7255
7256 * optabs.c (avoid_expensive_constant): Fix formatting.
7257
ce6dcb60 72582010-03-19 Michael Matz <matz@suse.de>
7259
7260 PR c++/43116
7261 * attribs.c (decl_attributes): When rebuilding a function pointer
7262 type use the same qualifiers as the original pointer type.
7263
f2fd3837 72642010-03-19 Martin Jambor <mjambor@suse.cz>
7265
7266 * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
7267 and is_gimple_ip_invariant_address.
7268
9c21bf9c 72692010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7270
7271 Revert
7272 2009-10-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7273
7274 * config/arm/arm.c (arm_override_options): Turn off
7275 flag_dwarf2_cfi_asm for AAPCS variants.
7276
c3ae3152 72772010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7278
7279 PR target/43399
7280 * config/arm/arm.c (emit_multi_reg_push): Update comments.
7281 Use PRE_MODIFY instead of PRE_DEC.
7282 (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
7283 (vfp_emit_fstmd): Likewise.
7284
4e2a2fb4 72852010-03-19 Michael Matz <matz@suse.de>
7286
7287 PR target/43305
7288 * builtins.c (expand_builtin_interclass_mathfn,
7289 expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
7290 if that fails.
7291
2ef0cded 72922010-03-19 Richard Guenther <rguenther@suse.de>
7293
7294 PR tree-optimization/43415
7295 * tree-ssa-pre.c (phi_translate): Split out worker to ...
7296 (phi_translate_1): ... this.
7297 (phi_translate): Move all caching here. Cache all NARY
7298 and REFERENCE translations.
7299
22d1ff91 73002010-03-19 David S. Miller <davem@davemloft.net>
7301
7302 With help from Eric Botcazou.
7303 * config/sparc/sparc.c: Include dwarf2out.h.
7304 (emit_pic_helper): Delete.
7305 (pic_helper_symbol_name): Delete.
7306 (pic_helper_emitted_p): Delete.
7307 (pic_helper_needed): New.
7308 (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
7309 (get_pc_thunk_name): New.
7310 (load_pic_register): Remove 'delay_pic_helper' arg. Use
7311 get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
7312 Set pic_helper_needed to true. Don't call emit_pic_helper.
7313 (sparc_expand_prologue): Update load_pic_register call.
7314 (sparc_output_mi_thunk): Likewise.
7315 (sparc_file_end): Emit a hidden comdat symbol for the PIC
7316 thunk if possible. Output CFI information as needed.
7317
e1fb042d 73182010-03-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
16f043b0 7319 Jack Howarth <howarth@bromo.med.uc.edu>
7320
7321 PR target/36399
7fc237ba 7322 * config/i386/i386.h: Fix ABI on darwin x86-32.
16f043b0 7323
e6db644e 73242010-03-18 Aldy Hernandez <aldyh@redhat.com>
7325
7326 * tree.h: Declare make_decl_rtl_for_debug.
7327 * varasm.c (make_decl_rtl_for_debug): New.
7328 * dwarf2out.c (rtl_for_decl_location): Call it.
7329 * cfgexpand.c (expand_debug_expr): Call it.
7330
dc9d10b1 73312010-03-18 Jakub Jelinek <jakub@redhat.com>
7332
967370ed 7333 PR bootstrap/43399
7334 * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
7335 mem_mode.
7336
dc9d10b1 7337 PR bootstrap/43403
7338 * var-tracking.c (vt_init_cfa_base): Do nothing if
b3a206ed 7339 cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
dc9d10b1 7340
ed5ab8eb 73412010-03-18 Alexandre Oliva <aoliva@redhat.com>
7342
7343 PR debug/42873
7344 * var-tracking.c (canonicalize_vars_star): New.
7345 (dataflow_post_merge_adjust): Use it.
7346
1197d3d7 73472010-03-18 Jakub Jelinek <jakub@redhat.com>
7348
7349 PR debug/43058
7350 * var-tracking.c (non_suitable_const): New function.
7351 (add_uses): For DEBUG_INSNs with constants, don't record any
7352 value, instead just the constant value itself.
7353 (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
7354 is not VAR_LOC_UNKNOWN_P, set var to the constant.
7355 (emit_notes_in_bb): Likewise.
7356 (emit_note_insn_var_location): For onepart variables if
7357 cur_loc is a VOIDmode constant, use DECL_MODE.
7358
c596d830 73592010-03-18 Martin Jambor <mjambor@suse.cz>
7360
7361 PR middle-end/42450
7362 * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
7363 * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
7364 all non-clones. Moved call redirection...
b3a206ed 7365 (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
c596d830 7366 (cgraph_materialize_all_clones): Dispose of all
7367 combined_args_to_skip bitmaps.
7368 (verify_cgraph_node): Do not check for edges pointing to wrong
7369 nodes in inline clones.
7370 * tree-inline.c (copy_bb): Call
7371 cgraph_redirect_edge_call_stmt_to_callee.
7372 * ipa.c (cgraph_remove_unreachable_nodes): Call
7373 cgraph_node_remove_callees even when there are used clones.
7374
dd5c72c2 73752010-03-18 H.J. Lu <hongjiu.lu@intel.com>
7376
7377 * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
7378
784bd4a8 73792010-03-18 H.J. Lu <hongjiu.lu@intel.com>
7380
7381 PR target/43383
7382 * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
7383 for 32bit.
7384
c8a73456 73852010-03-18 Michael Matz <matz@suse.de>
7386
7387 PR middle-end/43419
7388 * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
7389 into sqrt(x) if we need to preserve signed zeros.
7390
2521c084 73912010-03-18 Steven Bosscher <steven@gcc.gnu.org>
7392 Eric Botcazou <ebotcazou@adacore.com>
7393
7394 PR rtl-optimization/43360
7395 * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
7396 note if we don't know its invariant status.
7397
5d8d76f6 73982010-03-18 Michael Matz <matz@suse.de>
7399
7400 PR tree-optimization/43402
7401 * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
7402 PHI chains of ssa names registered for update.
7403
300cc04f 74042010-03-17 Peter Bergner <bergner@vnet.ibm.com>
7405
7406 PR target/42427
7407 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
7408 non-offsettable and pre_modify update addressing.
7409 * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
7410 and "2" alternatives "#".
7411 (*movdd_softfloat32): Make all alternatives "#";
7412 * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
7413 (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
7414 (*movdf_softfloat32): Make all alternatives "#";
7415 (movdi): Use the new DIFD mode iterator to create a common splitter
7416 for movdi, movdf and movdd patterns.
7417
eb21bbd2 74182010-03-18 Shujing Zhao <pearly.zhao@oracle.com>
7419
7420 * common.opt (dumpdir): Remove redundant tab.
7421
0410d4cf 74222010-03-17 Martin Jambor <mjambor@suse.cz>
7423
7424 PR tree-optimization/43347
7425 * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
7426 original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
7427
17db414f 74282010-03-17 Bernd Schmidt <bernd.schmidt@analog.com>
7429
7430 PR rtl-optimization/42216
7431 * regrename.c (create_new_chain): New function, broken out from...
7432 (scan_rtx_reg): ... here. Call it. Handle the case where we are
7433 appending a use to an empty chain.
7434 (build_def_use): Remove previous changes that convert OP_INOUT to
7435 OP_OUT operands; instead detect the case where an OP_INOUT operand
b3a206ed 7436 uses a previously untracked register and create an empty chain for it.
17db414f 7437
71e7d894 74382010-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7439
7440 * doc/extend.texi (Function Attributes): Rewrite unfinished
7441 sentence in ms_abi documentation.
7442
2fe6297a 74432010-03-17 Alan Modra <amodra@gmail.com>
7444
7445 * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
7446 * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
7447 (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
7448 * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
7449
fa5d8988 74502010-03-16 Richard Henderson <rth@redhat.com>
7451
7452 PR middle-end/43365
7453 * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
7454 (lower_try_finally): Save and restore eh_seq around the expansion
7455 of the try-finally.
7456
fce0a911 74572010-03-16 Aldy Hernandez <aldyh@redhat.com>
7458
7459 * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
7460 statements before splitting block.
7461
afaba4e9 74622010-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7463
7464 * doc/sourcebuild.texi (Testsuites): Fix markup.
7465 Use pathnames relative to gcc/testsuite.
7466 (Test Directives): Move description of how timeout is determined.
7467 (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
7468 (C Tests): Correct gcc.misc-tests directory.
7469 Framework tests now live in gcc.test-framework.
7470
ef6748ff 74712010-03-16 Richard Guenther <rguenther@suse.de>
7472
7473 PR middle-end/43379
b3a206ed 7474 * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
7475 operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
ef6748ff 7476
9ec77f4d 74772010-03-16 Aldy Hernandez <aldyh@redhat.com>
7478 Alexandre Oliva <aoliva@redhat.com>
7479
7480 PR tree-optimization/42917
7481 * lambda-code.c (remove_iv): Skip debug statements.
7482 (lambda_loopnest_to_gcc_loopnest): Likewise.
7483 (not_interesting_stmt): Debug statements are not interesting.
7484
35af0188 74852010-03-16 Jakub Jelinek <jakub@redhat.com>
7486
7487 PR debug/43051
7488 PR debug/43092
7489 * cselib.c (cselib_preserve_constants,
7490 cfa_base_preserved_val): New static variables.
7491 (preserve_only_constants): New function.
7492 (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
b3a206ed 7493 clear its REG_VALUES. If cselib_preserve_constants, don't
35af0188 7494 empty the whole hash table, but preserve there VALUEs with constants,
7495 cfa_base_preserved_val and cfa_base_preserved_val plus constant.
7496 (cselib_preserve_cfa_base_value): New function.
7497 (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
7498 (cselib_init): Change argument to int bitfield. Set
7499 cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
7500 is in it.
7501 (cselib_finish): Clear cselib_preserve_constants and
7502 cfa_base_preserved_val.
7503 * cselib.h (enum cselib_record_what): New enum.
7504 (cselib_init): Change argument to int.
7505 (cselib_preserve_cfa_base_value): New prototype.
7506 * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
7507 * dse.c (dse_step1): Likewise.
7508 * cfgcleanup.c (thread_jump): Likewise.
7509 * sched-deps.c (sched_analyze): Likewise.
7510 * gcse.c (local_cprop_pass): Likewise.
7511 * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
7512 If FN is non-NULL, call the callback always and whenever it returns
7513 non-NULL just return that. Only do rtx_equal_p if FN is NULL.
7514 * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
7515 * combine.c (propagate_for_debug_subst): Add old_rtx argument,
7516 compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
7517 * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
7518 * var-tracking.c: Include recog.h.
7519 (bb_stack_adjust_offset): Remove.
7520 (vt_stack_adjustments): Don't call it, instead just gather the
7521 adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
7522 (adjust_stack_reference): Remove.
7523 (compute_cfa_pointer): New function.
7524 (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
7525 (struct adjust_mem_data): New type.
7526 (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
7527 functions.
7528 (get_address_mode): New function.
7529 (replace_expr_with_values): Use it.
7530 (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
7531 Use get_address_mode. For cfa_base_rtx return MO_CLOBBER.
7532 (adjust_sets): Remove.
7533 (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
7534 Use get_address_mode.
7535 (get_adjusted_src): Remove.
7536 (add_stores): Don't call it. Never reuse expr SET. Don't add extra
7537 MO_VAL_USE for cfa_base_rtx plus constant. Use get_address_mode.
7538 (add_with_sets): Don't call adjust_sets.
7539 (fp_setter, vt_init_cfa_base): New functions.
7540 (vt_initialize): Change return type to bool. Move most of pool etc.
7541 initialization to the beginning of the function from end. Pass
7542 CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
7543 If !frame_pointer_needed, call vt_stack_adjustment before mos
7544 vector is filled, call vt_init_cfa_base if argp/framep has been
7545 eliminated to sp. If frame_pointer_needed and argp/framep has
7546 been eliminated to hard frame pointer, set
7547 hard_frame_pointer_adjustment and call vt_init_cfa_base after
7548 encountering fp setter in the prologue. For MO_ADJUST, call
7549 log_op_type before pusing the op into mos vector, not afterwards.
7550 Call adjust_insn before cselib_process_insn/add_with_sets,
7551 call cancel_changes (0) afterwards.
7552 (variable_tracking_main_1): Adjust for vt_initialize calling
7553 vt_stack_adjustments and returning whether it succeeded or not.
7554
c29d64f7 75552010-03-15 Aldy Hernandez <aldyh@redhat.com>
7556
7557 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
7558 debug statements.
7559
95a52374 75602010-03-15 Jakub Jelinek <jakub@redhat.com>
7561
7562 * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
7563 has been set.
7564 (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
7565 drap_reg has not been set.
7566
5b6554fe 75672010-03-15 Michael Matz <matz@suse.de>
7568
7569 PR middle-end/43300
7570 * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
7571 use it to expand block copies.
7572 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
7573 insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
7574 (insert_value_copy_on_edge): Use store_expr for BLKmode values.
7575
b0903654 75762010-03-15 Richard Guenther <rguenther@suse.de>
7577
7578 PR tree-optimization/43367
7579 * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
7580 elimination check.
7581
c7a8b92f 75822010-03-15 Richard Guenther <rguenther@suse.de>
7583
7584 PR tree-optimization/43317
7585 * ipa-struct-reorg.c (create_new_general_access): Update stmt.
7586
f8cf2235 75872010-03-15 Martin Jambor <mjambor@suse.cz>
7588
c7a8b92f 7589 PR tree-optimization/43141
f8cf2235 7590 * tree-sra.c (create_abstract_origin): New function.
7591 (modify_function): Call create_abstract_origin.
7592
3564f003 75932010-03-15 Chris Demetriou <cgd@google.com>
7594
7595 * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
7596 wasn't copied.
7597
6c814203 75982010-03-13 Sebastian Pop <sebastian.pop@amd.com>
7599
7600 PR middle-end/43354
7601 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
7602 call insert_out_of_ssa_copy for default definitions.
7603
76042010-03-13 Sebastian Pop <sebastian.pop@amd.com>
7605
7606 * graphite-clast-to-gimple.c (my_long_long): Defined.
7607 (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
7608 * graphite-sese-to-poly.c (my_long_long): Defined.
7609 (scop_ivs_can_be_represented): Use it.
7610
76112010-03-13 Sebastian Pop <sebastian.pop@amd.com>
7612
7613 * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
7614 graphite-max-bbs-per-function, and loop-block-tile-size.
7615 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
7616 with "maximum".
7617 (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
7618
76192010-03-13 Sebastian Pop <sebastian.pop@amd.com>
7620
7621 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
7622 forward declaration.
7623 * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
7624 (add_upper_bounds_from_estimated_nit): New.
7625 (build_loop_iteration_domains): Use it.
7626
76272010-03-13 Sebastian Pop <sebastian.pop@amd.com>
7628
7629 * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
7630
76312010-03-13 Sebastian Pop <sebastian.pop@amd.com>
7632
7633 PR middle-end/43306
7634 * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
7635 should be an INTEGER_CST. Also handle CASE_CONVERT.
7636
76372010-03-13 Sebastian Pop <sebastian.pop@amd.com>
7638
7639 * graphite.c (graphite_initialize): To bound the number of bbs per
7640 function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
7641 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
7642 * doc/invoke.texi: Document it.
7643
76442010-03-13 Sebastian Pop <sebastian.pop@amd.com>
7645
7646 * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
7647 * graphite-sese-to-poly.h (build_poly_scop): Same.
7648
76492010-03-13 Sebastian Pop <sebastian.pop@amd.com>
7650
7651 * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
7652 the number of parameters in the scop. Use as an upper bound
7653 PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
7654 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
7655 * doc/invoke.texi: Document it.
7656
84ccaae3 76572010-03-13 Jerry Quinn <jlquinn@optonline.net>
7658
7659 * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
7660 * doc/c-tree.texi: Remove.
7661 * doc/generic.texi: Merge c-tree.texi here.
7662 * doc/gccint.texi (Trees): Remove menu entry.
7663 (c-tree.texi): Remove @include.
7664 * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
7665 * doc/languages.texi (Reading RTL): Ditto.
7666
54468f76 76672010-03-12 Steve Ellcey <sje@cup.hp.com>
7668
7669 PR target/42869
7670 * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
7671
0d155c07 76722010-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
7673
7674 PR middle-end/42431
7675 * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
7676 code added to work around reload clobbering CONST insns.
7677
f24c0e3a 76782010-03-12 Jakub Jelinek <jakub@redhat.com>
7679
c77c64d8 7680 * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
7681 (cselib_preserve_definitely, cselib_clear_preserve): Remove.
7682 (cselib_preserve_only_values): Remove retain argument, don't
7683 traverse hash table with cselib_{preserve_definitely,clear_preserve}.
7684 * cselib.h (cselib_preserve_only_values): Remove retain argument.
7685 * var-tracking.c (micro_operation): Move insn field before union.
7686 Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
7687 (struct variable_tracking_info_def): Remove n_mos field, change
7688 mos into a vector of micro_operations.
7689 (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
7690 (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
7691 compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
7692 changing into a vector.
7693 (add_with_sets): Likewise. Ensure MO_VAL_USE uops from add_stores
7694 come before all other uops generated by add_stores.
7695 (vt_add_function_parameters): Adjust for cselib_preserve_only_values
7696 argument removal.
7697 (vt_initialize): Likewise. Adjust for VTI (bb)->mos changing into
7698 a vector. Run just one pass over the bbs instead of separate counting
7699 and computation phase.
7700 (vt_finalize): Free VTI (bb)->mos vector instead of array.
7701
f24c0e3a 7702 PR debug/43329
7703 * tree-inline.c (remap_decls): Put old_var rather than origin_var
7704 into *nonlocalized_list vector.
7705 * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
7706 even if origin is non-NULL.
7707 (gen_variable_die): Likewise.
7708 (process_scope_var): Don't change origin.
7709 (gen_decl_die): Likewise.
7710 * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
7711 before adding new edges instead of after it, fix moving over
7712 debug stmts.
7713
1bf24b5f 77142010-03-11 David S. Miller <davem@davemloft.net>
7715
3a1b51b8 7716 * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
7717 of four.
1bf24b5f 7718 * configure: Rebuild.
7719
6816d0c4 77202010-03-11 Martin Jambor <mjambor@suse.cz>
7721
7722 PR tree-optimization/43257
7723 * tree.c (assign_assembler_name_if_neeeded): New function.
7724 (free_lang_data_in_cgraph): Assembler name assignment moved to the
7725 above new function.
7726 * tree.h (assign_assembler_name_if_neeeded): Declare.
7727 * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
7728 the function if needed.
7729
ca4b7618 77302010-03-11 Chris Demetriou <cgd@google.com>
7731
7732 * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
7733 include/stdint-gcc.h, and include/stdint.h world-readable.
7734
4fac6da9 77352010-03-11 Richard Guenther <rguenther@suse.de>
7736
7737 PR tree-optimization/43255
7738 * tree-vrp.c (process_assert_insertions_for): Do not insert
7739 asserts for trivial conditions.
7740
f9a210c9 77412010-03-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7742
7743 PR tree-optimization/43280
3a1b51b8 7744 * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
7745 generation. Move calculation of size out of the if branch.
f9a210c9 7746 (find_bswap): Modify compare number generation.
7747
794d250a 77482010-03-11 Richard Guenther <rguenther@suse.de>
7749
7750 PR lto/43200
7751 * lto-streamer-in.c (maybe_fixup_decls): Simplify.
7752 (input_gimple_stmt): Fixup handled component types during
7753 operand read. Also fix up decls in ADDR_EXPRs.
7754
794a8888 77552010-03-10 Eric Botcazou <ebotcazou@adacore.com>
7756
7757 * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
7758 * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
7759
930cff67 77602010-03-10 Jan Hubicka <jh@suse.cz>
7761
7762 PR c/43288
7763 * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
7764 * varasm.c (get_variable_section): Don't do that here...
7765 (make_decl_rtl): ... and here.
7766 (do_assemble_alias): Produce decl RTL.
7767 (assemble_alias): Likewise.
7768
22dd154b 77692010-03-10 Jakub Jelinek <jakub@redhat.com>
7770
7771 PR debug/43290
7772 * reg-notes.def (REG_CFA_SET_VDRAP): New note.
7773 * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
7774 of fde->vdrap_reg.
7775 (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
7776 (based_loc_descr): Only express drap or vdrap regno based expressions
7777 using DW_OP_fbreg when not optimizing.
7778 * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
7779 make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
7780 REG_CFA_SET_VDRAP note.
7781
bfa5edba 77822010-03-10 Alexander Monakov <amonakov@ispras.ru>
7783
7784 PR tree-optimization/43236
7785 * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
7786 error in calculation of base address in reverse iteration case.
7787 (generate_builtin): Take number of latch executions if the statement
7788 is in the latch.
7789
778f5bdd 77902010-03-10 Andrey Belevantsev <abel@ispras.ru>
7791
7792 PR middle-end/42859
7793 * tree-eh.c: Include pointer-set.h.
7794 (lower_eh_dispatch): Filter out duplicate case labels and
7795 remove the unneeded edge when the label is unused. Return
7796 true when some edges are removed.
7797 (execute_lower_eh_dispatch): When any lowering resulted in
7798 removing an edge, also delete unreachable blocks.
7799
53d33717 78002010-03-10 Jakub Jelinek <jakub@redhat.com>
7801
7802 PR bootstrap/43287
7803 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
7804 UNSPEC_MACHOPIC_OFFSET.
7805
1a1a6f69 78062010-03-09 Andreas Schwab <schwab@linux-m68k.org>
7807
7808 PR target/43294
7809 * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
7810 (m68k_delegitimize_address): New function.
7811
aaca5048 78122010-03-09 Jakub Jelinek <jakub@redhat.com>
7813
2c28e71b 7814 PR debug/43299
7815 * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
7816
a5ce8dff 7817 PR debug/43299
7818 * var-tracking.c (adjust_sets): New function.
7819 (count_with_sets, add_with_sets): Use it.
7820 (get_adjusted_src): New inline function.
7821 (add_stores): Use it.
7822
aaca5048 7823 PR debug/43304
7824 * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
7825 call cselib_dummy_expand_value_rtx_cb instead of
7826 cselib_expand_value_rtx_cb.
a1787782 7827
7828 PR debug/43293
7829 * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
7830 * config/i386/i386.c: Include debug.h and dwarf2out.h.
7831 (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
7832 and .cfi_endproc around the pic thunks.
7833 (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
7834 all queued unwind info register saves are saved before the call.
7835 For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
7836 considered as sp-=4 for unwind info and the pop as sp+=4 which
7837 also clobbers dest, but doesn't actually restore it.
3e53b90e 7838
7839 PR debug/43290
7840 * config/i386/i386.c (ix86_get_drap_rtx): Don't set
7841 RTX_FRAME_RELATED_P.
7842
1490694c 78432010-03-09 Jie Zhang <jie@codesourcery.com>
7844
7845 * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
7846 whitespaces in output template.
7847
e91a9c3f 78482010-03-09 Jie Zhang <jie@codesourcery.com>
7849
7850 * ira-lives.c (check_and_make_def_use_conflict): Don't fall
7851 out array boundary.
7852
fbd13ddb 78532010-03-08 Jakub Jelinek <jakub@redhat.com>
7854
7855 * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
7856 builtins.exp in a separate job.
7857
4a6097ab 78582010-03-08 Sebastian Pop <sebastian.pop@amd.com>
7859
7860 * graphite-sese-to-poly.c (add_param_constraints): Use
7861 lower_bound_in_type and upper_bound_in_type.
7862
78632010-03-08 Sebastian Pop <sebastian.pop@amd.com>
7864
7865 * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
7866 instead of unsigned_type_node.
7867
78682010-03-08 Sebastian Pop <sebastian.pop@amd.com>
7869 Reza Yazdani <reza.yazdani@amd.com>
7870
7871 PR middle-end/43065
7872 * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
7873 on pointer type parameters.
7874
78752010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
7876
7877 PR middle-end/42644
7878 PR middle-end/42130
7879 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
7880 handle conversions from pointer to integers.
7881 (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
3a1b51b8 7882 induction variable, to be able to work with code generated by CLooG.
4a6097ab 7883 * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
7884 (build_poly_scop): Bail out if we cannot codegen a loop.
7885
78862010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
7887
7888 * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
7889 code generation with gloog_error.
7890
78912010-03-08 Sebastian Pop <sebastian.pop@amd.com>
7892
7893 * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
7894 Call fold_convert on all the returned values.
3a1b51b8 7895 (expand_scalar_variables_expr): Pass to
7896 expand_scalar_variables_ssa_name the type of the resulting expression.
4a6097ab 7897
78982010-03-08 Sebastian Pop <sebastian.pop@amd.com>
7899
7900 * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
3a1b51b8 7901 ppl_min_for_le_pointset.
7902 Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
4a6097ab 7903 * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
7904
79052010-03-08 Sebastian Pop <sebastian.pop@amd.com>
7906
7907 * graphite-dependences.c (map_into_dep_poly): Removed.
7908 (dependence_polyhedron_1): Use combine_context_id_scat.
7909
79102010-03-08 Sebastian Pop <sebastian.pop@amd.com>
7911
7912 * graphite-poly.h (struct poly_scattering): Add layout documentation.
7913 (struct poly_bb): Same.
7914 (combine_context_id_scat): New.
7915
79162010-03-08 Sebastian Pop <sebastian.pop@amd.com>
7917
7918 PR middle-end/42326
7919 * sese.c (name_defined_in_loop_p): Return false for default
7920 definitions.
7921
79222010-03-08 Sebastian Pop <sebastian.pop@amd.com>
7923
7924 * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
7925 and clean up the logic.
7926
79272010-03-08 Sebastian Pop <sebastian.pop@amd.com>
7928
7929 * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
7930 early return.
7931
ace62c8c 79322010-03-08 Jakub Jelinek <jakub@redhat.com>
7933
7934 * var-tracking.c (remove_cselib_value_chains): Define only for
7935 ENABLE_CHECKING.
7936 (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
7937 delete_slot_part, emit_notes_for_differences_1): Don't call
7938 remove_cselib_value_chains here.
7939 (set_slot_part, emit_notes_for_differences_2): Don't call
7940 add_cselib_value_chains here.
7941 (preserved_values): New vector.
7942 (preserve_value): New function.
7943 (add_uses, add_stores, vt_add_function_parameters): Use it
7944 instead of cselib_preserve_value.
7945 (changed_values_stack): New vector.
7946 (check_changed_vars_0): New function.
7947 (check_changed_vars_1, check_changed_vars_2): Use it.
7948 (emit_notes_for_changes): Call set_dv_changed (*, false) on all
7949 changed_values_stack VALUEs.
7950 (vt_emit_notes): For all preserved_values call
7951 add_cselib_value_chains. If ENABLE_CHECKING call
7952 remove_cselib_value_chains before verifying value_chains is empty.
7953 Initialize and free changed_values_stack.
7954 (vt_initialize): Initialize preserved_values.
7955 (vt_finalize): Free preserved_values.
7956
43e2b34d 79572010-03-08 Richard Guenther <rguenther@suse.de>
7958
7959 PR tree-optimization/43269
7960 * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
7961 region detection.
7962
ab576610 79632010-03-08 Martin Jambor <mjambor@suse.cz>
7964
7965 * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
7966 (ipa_is_param_called): Removed.
7967 * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
7968 (ipa_print_node_params): Do not print the called flag.
7969 (ipa_write_node_info): Do not stream the called flag.
7970 (ipa_read_node_info): Likewise.
7971
bc95df68 79722010-03-07 Jakub Jelinek <jakub@redhat.com>
7973
7974 PR debug/43176
7975 * Makefile.in (var-tracking.o): Depend on pointer-set.h.
7976 * cselib.c (struct expand_value_data): Add dummy field.
7977 (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
7978 dummy to false.
7979 (cselib_dummy_expand_value_rtx_cb): New function.
7980 (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
7981 any rtl.
7982 * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
7983 * var-tracking.c: Include pointer-set.h.
7984 (variable): Change n_var_parts to char from int. Add
7985 cur_loc_changed and in_changed_variables fields.
7986 (variable_canonicalize): Remove.
7987 (shared_var_p): New inline function.
7988 (unshare_variable): Maintain cur_loc_changed and
7989 in_changed_variables fields. If var was in changed_variables,
7990 replace it there with new_var. Just copy cur_loc instead of
7991 resetting it to something else.
7992 (variable_union): Don't recompute cur_loc. Use shared_var_p.
7993 (dataflow_set_union): Don't call variable_canonicalize.
7994 (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
7995 of their DEBUG_EXPR_TREE_DECLs.
7996 (canonicalize_loc_order_check): Verify that cur_loc is NULL
7997 and in_changed_variables and cur_loc_changed is false.
7998 (variable_merge_over_cur): Clear cur_loc, in_changed_variables
7999 and cur_loc_changed. Don't update cur_loc here.
8000 (variable_merge_over_src): Don't call variable_canonicalize.
8001 (dataflow_set_preserve_mem_locs): Use shared_var_p. When
8002 removing loc that is equal to cur_loc, clear cur_loc,
8003 set cur_loc_changed and ensure variable_was_changed is called.
8004 (dataflow_set_remove_mem_locs): Use shared_var_p. Only
8005 compare pointers in cur_loc check, if it is equal to loc,
8006 clear cur_loc and set cur_loc_changed. Don't recompute cur_loc here.
8007 (variable_different_p): Remove compare_current_location argument,
8008 don't compare cur_loc.
8009 (dataflow_set_different_1): Adjust variable_different_p caller.
8010 (variable_was_changed): If dv had some var in changed_variables
8011 already, reset in_changed_variables flag for it and propagate
8012 cur_loc_changed over to the new variable. On empty var
8013 always set cur_loc_changed. Set in_changed_variables on whatever
8014 var is added to changed_variables.
8015 (set_slot_part): Clear cur_loc_changed and in_changed_variables.
8016 Use shared_var_p. When removing loc that is equal to cur_loc,
8017 clear cur_loc and set cur_loc_changed. If cur_loc is NULL at the
8018 end, don't set it to something else, just call variable_was_changed.
8019 (delete_slot_part): Use shared_var_p. When cur_loc equals to
8020 loc being removed, clear cur_loc and set cur_loc_changed.
8021 Set cur_loc_changed if all locations have been removed.
8022 (struct expand_loc_callback_data): New type.
8023 (vt_expand_loc_callback): Add dummy mode in which no rtxes are
8024 allocated. Always create SUBREGs if simplify_subreg failed.
8025 Prefer to use cur_loc, when that fails and still in
8026 changed_variables (and seen first time) recompute it. Set
8027 cur_loc_changed of variables which had to change cur_loc and
8028 compute elcd->cur_loc_changed if any of the subexpressions used
8029 had to change cur_loc.
8030 (vt_expand_loc): Adjust to pass arguments in
8031 expand_loc_callback_data structure.
8032 (vt_expand_loc_dummy): New function.
8033 (emitted_notes): New variable.
8034 (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
8035 that weren't used for any other decl in current
8036 emit_notes_for_changes call call vt_expand_loc_dummy to update
8037 cur_loc. For -fno-var-tracking-assignments, set cur_loc to
8038 first loc_chain location if NULL before. Always use just
8039 cur_loc instead of first loc_chain location. When cur_loc_changed
8040 is false, when not --enable-checking=rtl just don't emit any note.
8041 When rtl checking, compute the note and assert it is the same
8042 as previous note. Clear cur_loc_changed and in_changed_variables
8043 at the end before removing from changed_variables.
8044 (check_changed_vars_3): New function.
8045 (emit_notes_for_changes): Traverse changed_vars to call
8046 check_changed_vars_3 on each changed var.
8047 (emit_notes_for_differences_1): Clear cur_loc_changed and
8048 in_changed_variables. Recompute cur_loc of new_var.
3a1b51b8 8049 (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
bc95df68 8050 (vt_emit_notes): Initialize and destroy emitted_notes.
8051
6581d87d 80522010-03-07 Bernd Schmidt <bernd.schmidt@analog.com>
8053
8054 PR rtl-optimization/42220
8055 * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
8056 Use verify_reg_tracked to determine if we should use OP_OUT rather
8057 than OP_INOUT.
8058 (build_def_use): If we see an in-out operand for a register that we
8059 know nothing about, treat is an output if possible, fail the block if
8060 not.
8061
41ad616d 80622010-03-06 Alexandre Oliva <aoliva@redhat.com>
8063
8064 PR debug/42897
8065 * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
8066 permanently.
8067
12e7ff4f 80682010-03-06 Alexandre Oliva <aoliva@redhat.com>
8069
8070 PR debug/42897
8071 * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
8072 uses of relevant DEFs that are dead outside the loop too.
8073
493a60c8 80742010-03-06 Alexandre Oliva <aoliva@redhat.com>
8075
8076 * var-tracking.c (dataflow_set_merge): Swap src and src2.
8077 Reverted:
8078 2010-01-13 Jakub Jelinek <jakub@redhat.com>
8079 PR debug/41371
8080 * var-tracking.c (values_to_unmark): New variable.
8081 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
8082 values_to_unmark vector. Moved body to...
8083 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
8084 instead queue it into values_to_unmark vector.
8085 (vt_find_locations): Free values_to_unmark vector.
8086
9d58ff65 80872010-03-05 Eric Botcazou <ebotcazou@adacore.com>
8088
8089 * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
8090 (site.exp): Export them when plugins are enabled.
8091
f2a8ffd0 80922010-03-05 Sebastian Pop <sebastian.pop@amd.com>
8093
8094 PR middle-end/42326
8095 * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
8096 that contain scevs.
8097 (chrec_fold_multiply): Same.
8098
47321b26 80992010-03-04 Andrew Pinski <andrew_pinski@caviumnetworks.com>
8100
8101 PR c/43248
8102 * c-decl.c (build_compound_literal): Return early if init is
8103 an error_mark_node.
8104
c335007a 81052010-03-04 Martin Jambor <mjambor@suse.cz>
8106
8107 PR tree-optimization/43164
8108 PR tree-optimization/43191
8109 * tree-sra.c (type_consists_of_records_p): Reject records with
8110 zero-size bit-fields at the end.
8111
6e941747 81122010-03-04 Mike Stump <mikestump@comcast.net>
8113
8114 * Makefile.in (TAGS): Remove *.y.
8115
9d2a7d3a 81162010-03-04 Richard Guenther <rguenther@suse.de>
8117
8118 PR tree-optimization/40761
8119 * tree-ssa-pre.c (compute_antic): Walk reverse postorder
8120 in reverse order.
8121 (my_rev_post_order_compute): New function.
8122 (init_pre): Call it.
8123
0a5fa2b7 81242010-03-04 Changpeng Fang <changpeng.fang@amd.com>
8125
e63747a3 8126 PR middle-end/43209
9d2a7d3a 8127 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
8128 decrease the cost of an IV candidate when the cost is infinite.
0a5fa2b7 8129
4f0fcaad 81302010-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8131
8132 * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
8133 Use '3DNow!' for the extension of that name, ensure normal space
8134 after the string.
8135 * doc/invoke.texi (i386 and x86-64 Options): Likewise.
8136
42b8780a 81372010-03-03 Jeff Law <law@redhat.com>
8138
8139 * PR middle-end/32693
8140 * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
8141 than gen_rtx_SUBREG.
8142 (extract_bit_field_1): Likewise.
8143
6f49fb50 81442010-03-03 Janis Johnson <janis187@us.ibm.com>
8145
8146 * doc/sourcebuild.texi (Test directives): Document that arguments
8147 include-opts and exclude-opts are now optional for dg-skip-if,
8148 dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
8149
f7496db6 81502010-03-03 Jason Merrill <jason@redhat.com>
8151
8152 PR c++/12909
8153 * cgraph.h (varpool_node): Add extra_name field.
8154 * varpool.c (varpool_extra_name_alias): New.
8155 (varpool_assemble_decl): Emit extra name aliases.
8156 (varpool_mark_needed_node): Look past an extra name alias.
dfe4eda7 8157 * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
8158 * lto-streamer-in.c (lto_input_tree): Read it.
8159 * lto-streamer-out.c (output_unreferenced_globals): Write it.
f7496db6 8160
8acfe9c6 81612010-03-03 Eric Botcazou <ebotcazou@adacore.com>
8162
8163 * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
8164 (sparc*-*-solaris2*): ...this.
8165
77df5c7b 81662010-03-03 Jakub Jelinek <jakub@redhat.com>
8167
b54ee9da 8168 PR debug/43229
8169 * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
8170 WIDEN_MULT_EXPR and WIDEN_SUM_EXPR. Return NULL without
8171 ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
8172 FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
8173
73b2bc9e 8174 PR debug/43237
8175 * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
8176 fallthrough to default handling, just with want_address 0 instead of 2.
8177 For single element lists, add_AT_loc directly, otherwise create an
8178 artificial variable DIE and stick location list to it.
8179
77df5c7b 8180 PR debug/43177
8181 * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
8182 (VAL_EXPR_HAS_REVERSE): Define.
8183 (reverse_op): New function.
8184 (add_stores): For reversible operations add an extra MO_VAL_USE.
8185
a5be0e14 81862010-03-02 Jason Merrill <jason@redhat.com>
8187
8188 * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
8189
16528046 81902010-03-02 Eric Botcazou <ebotcazou@adacore.com>
8191
8192 * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
8193 (sparc64-*-linux*): Likewise.
8194 (sparc64-*-solaris2*): Include assembler files before linker ones.
8195 (sparc-*-solaris2*): Simplify and reorder to match previous case.
8196 * config/sparc/gas.h: Delete.
8197 * config/sparc/sol2-64.h: Add copyright notice.
8198 * config/sparc/sol2-gas-bi.h: Likewise.
8199 * config/sparc/sol2-gld.h: Likewise.
8200 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
8201 * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
8202 * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
8203 * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
8204 (sparc_elf_asm_named_section): Rename into...
8205 (sparc_solaris_elf_asm_named_section): ...this. Always define.
8206
89b3c92a 82072010-03-02 Uros Bizjak <ubizjak@gmail.com>
8208
8209 * config/alpha/alpha.c (override_options): Fix -mtune error message.
8210
3bacfdb6 82112010-03-02 Jeff Law <law@redhat.com>
8212
05404283 8213 PR middle-end/42431
3bacfdb6 8214 * reload1.c (rtx_p, substitute_stack): Declare.
8215 (substitute): Record addresses of changed rtxs.
8216 (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
8217 Restore the original rtx when complete.
8218 (reload): Free subsitute_stack when complete.
8219
caa81816 82202010-03-02 Janis Johnson <janis187@us.ibm.com>
8221
8222 * doc/gccint.texi (menu): Add Testsuites as a chapter.
8223 * doc/sourcebuild.texi (Testsuites): Move up a level to be a
8224 new chapter.
8225 (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
8226 LTO Testing, gcov Testing, profopt Testing, compat Testing,
8227 Torture Tests): Change from subsection to section.
8228
348893f5 82292010-03-02 Jakub Jelinek <jakub@redhat.com>
8230 Steven Bosscher <steven@gcc.gnu.org>
8231
89b3c92a 8232 * var-tracking.c (vt_initialize): Scan insns in ebb chunks
8233 instead of bb.
348893f5 8234
44f1d7db 82352010-03-02 Reza Yazdani <reza.yazdani@amd.com>
8236
8237 PR middle-end/42640
8238 * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
8239 the assignment from the new induction variable to the assignment
8240 of the value from the original loop PHI function.
8241
32bef869 82422010-03-01 Janis Johnson <janis187@us.ibm.com>
8243 Daniel Jacobowitz <dan@codesourcery.com>
8244
8245 * doc/sourcebuild.texi (Test directives): Clarify options to
8246 dg-skip-if.
8247
ce72f712 82482010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8249
8250 * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
8251 Disable cfi directives unless GCC and gas agree on using read-only
8252 .eh_frame sections for 64-bit.
8253 * configure: Regenerate.
8254
c40a6f90 82552010-03-01 Richard Guenther <rguenther@suse.de>
8256
8257 PR tree-optimization/43220
8258 * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
8259 BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
8260
4847708a 82612010-03-01 Richard Guenther <rguenther@suse.de>
89b3c92a 8262 Martin Jambor <mjambor@suse.cz>
4847708a 8263
8264 PR middle-end/41250
8265 * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
8266 gimplified parameters.
8267
c242f3f7 82682010-03-01 Christian Bruel <christian.bruel@st.com>
8269
8270 * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
44f1d7db 8271
941a7344 82722010-03-01 H.J. Lu <hongjiu.lu@intel.com>
8273
8274 * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
8275
865c8a7e 82762010-03-01 Richard Guenther <rguenther@suse.de>
8277
8278 PR middle-end/43213
8279 * expr.c (expand_assignment): Use the alias-oracle to tell
8280 if the rhs aliases the result decl.
8281
edee5220 82822010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8283
8284 PR pch/14940
8285 * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
8286 to sol_gt_pch_get_address.
8287 (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
8288 64-bit, SPARC and x86.
8289 (sol_gt_pch_get_address): New function.
8290
44f1d7db 82912010-03-01 Marco Poletti <poletti.marco@gmail.com>
c0ddc4f8 8292
8293 * toplev.h (inform_n, error_n): Declare.
8294 * diagnostic.c (inform_n, error_n): New function.
8295
257b4da1 82962010-03-01 Jakub Jelinek <jakub@redhat.com>
8297
8298 * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
8299 has no rtl yet when processing local_decls, queue it and recheck
8300 if deferred stack allocation hasn't assigned it rtl.
8301
4c4854c8 83022010-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
8303
8304 * config/sh/sh.c (unspec_bbr_uid): New.
8305 (gen_block_redirect): Use it instead of INSN_UID.
8306 (gen_far_branch): Likewise.
8307
f23eeaa8 83082010-02-28 H.J. Lu <hongjiu.lu@intel.com>
8309
8310 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
8311 it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
8312
882f66bc 83132010-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8314
8315 * doc/invoke.texi (Warning Options, RX Options): Fix typos.
8316 (Warning Options): -Wno-conversion-null is valid for
8317 Objective-C++ as well.
8318 * doc/tm.texi (Named Address Spaces): Likewise.
8319 * doc/plugins.texi (Plugins): Replace TABs with spaces.
8320 * doc/tree-ssa.texi (Tree SSA): Likewise.
8321
ffcf29bf 83222010-02-27 H.J. Lu <hongjiu.lu@intel.com>
8323
8324 PR bootstrap/43202
8325 * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
8326 by default. Don't set the default arch for
8327 i[34567]86-*-darwin*|x86_64-*-darwin*.
8328
525b174b 83292010-02-27 H.J. Lu <hongjiu.lu@intel.com>
8330
8331 PR bootstrap/43202
8332 * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
8333 default. Set the default 32bit/64bit archs with $with_arch
8334 instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
8335
793a0ab5 83362010-02-27 Richard Guenther <rguenther@suse.de>
8337
8338 PR tree-optimization/43186
8339 * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
8340 * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
8341 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
8342 unroller iterations.
8343
ed2b8f56 83442010-02-27 H.J. Lu <hongjiu.lu@intel.com>
8345
8346 * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
8347 required and i[34567]86-*-* targets don't support 64bit ISA.
8348
102bfc9c 83492010-02-26 Eric Botcazou <ebotcazou@adacore.com>
8350
8351 PR ada/43096
8352 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
8353 the same alias set.
8354
05b38372 83552010-02-26 H.J. Lu <hongjiu.lu@intel.com>
8356
8357 * config.gcc: Set the default arch at least to Prescott for
8358 i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
8359 if SSE math is enabled.
8360
16b4d5bb 83612010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
8362
8363 * diagnostic.c (diagnostic_initialize): Update.
8364 (diagnostic_report_diagnostic): Test inhibit_notes_p for
8365 informative notes.
8366 * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
8367 (diagnostic_inhibit_notes): New.
8368 * toplev.c (process_options): inhibit notes with -fcompare-debug.
8369
32f1f35b 83702010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
8371
8372 PR c/20631
8373 * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
8374 * doc/standards.texi: Likewise.
8375 * doc/extend.texi: Likewise.
8376 * doc/trouble.texi: Likewise.
44f1d7db 8377 * doc/cppopts.texi: Likewise.
32f1f35b 8378 * doc/install.texi: Likewise.
8379 * c.opt (std=c90,std=gnu90): New options.
8380 * c-opts.c (c_common_handle_option): Handle them.
8381
83d93c3b 83822010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
8383
8384 PR c/24577
8385 * c-decl.c (undeclared_variable): Use an informative note.
8386
db2cc26b 83872010-02-26 Richard Guenther <rguenther@suse.de>
8388
8389 PR tree-optimization/43186
8390 * gimple.h (gimple_fold): Remove.
8391 * gimple.c (gimple_fold): Remove. Inline into single user ...
8392 * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
8393 Try harder for conditions.
8394
bd564c29 83952010-02-26 Jakub Jelinek <jakub@redhat.com>
8396
8397 PR debug/43190
8398 * function.c (used_types_insert): Don't skip through named pointer
8399 types. Don't use TYPE_MAIN_VARIANT if the original type has a name
8400 and it is different from the main variant's type.
8401
1ebdc03a 84022010-02-26 Nick Clifton <nickc@redhat.com>
8403
8404 * config/rx/rx.md (sminsi3): Remove bogus alternative.
8405
2d2e1f85 84062010-02-26 H.J. Lu <hongjiu.lu@intel.com>
8407
8408 * config.gcc: Support --with-fpmath=sse for x86.
8409
8410 * config/i386/ssemath.h: New.
8411
8412 * doc/install.texi (--with-fpmath=sse): Documented.
8413
d3791b80 84142010-02-26 Richard Guenther <rguenther@suse.de>
8415
8416 PR tree-optimization/43188
8417 * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
8418 vector types of over-aligned element type.
8419
4066b651 84202010-02-26 Uros Bizjak <ubizjak@gmail.com>
8421
8422 PR target/43175
8423 * config/i386/i386.c (expand_vec_perm_blend): Use correct
89b3c92a 8424 operands in V8HImode subregs. Fix operand order in VEC_MERGE rtx.
4066b651 8425
a77fcbe0 84262010-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
8427
8428 * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
8429
2058ec71 84302010-02-26 Jakub Jelinek <jakub@redhat.com>
8431
b4d01854 8432 * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
8433 * var-tracking.c: Include diagnostic.h.
8434 (debug_dv): New function.
8435 (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
8436
e55f862a 8437 PR debug/43160
8438 * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
8439 (add_value_chain, add_value_chains, remove_value_chain,
8440 remove_value_chains): Handle DEBUG_EXPRs.
8441 (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
8442
2058ec71 8443 PR debug/43161
8444 * regcprop.c (struct queued_debug_insn_change): New type.
8445 (struct value_data_entry): Add debug_insn_changes field.
8446 (struct value_data): Add n_debug_insn_changes field.
8447 (debug_insn_changes_pool): New variable.
8448 (free_debug_insn_changes, apply_debug_insn_changes,
8449 cprop_find_used_regs_1, cprop_find_used_regs): New functions.
8450 (kill_value_one_regno): Call free_debug_insn_changes if needed.
8451 (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
8452 fields.
8453 (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
8454 changes for them.
8455 (copyprop_hardreg_forward_1): Don't call apply_change_group for
8456 DEBUG_INSNs. For a real insn, if there are queued DEBUG_INSN
8457 changes, call cprop_find_used_regs via note_stores.
8458 (copyprop_hardreg_forward): When copying vd from predecessor
8459 which has any queued DEBUG_INSN changes, make sure the pointers are
8460 cleared. At the end call df_analyze and then if there are any
8461 DEBUG_INSN changes queued at the end of some basic block for still
8462 live registers, apply them.
8463 (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
8464
414f0dcb 84652010-02-25 Uros Bizjak <ubizjak@gmail.com>
8466
8467 * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
8468 (arm*-*-*): Ditto.
8469
1f64ad21 84702010-02-25 H.J. Lu <hongjiu.lu@intel.com>
8471
8472 * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
8473 targets. Set the default with_cpu/with_arch from arch/cpu.
8474 Allow x86-64 and native for with_cpu/with_arch.
8475
e3e1f14f 84762010-02-25 Nicolas Benoit <nbenoit@tuxfamily.org>
8477
8478 * ebitmap.c: Change calls to verify_popcount with calls to
8479 sbitmap_verify_popcount.
8480 (ebitmap_clear_bit): Fixed map->cacheindex test and
8481 map>cache update when bit clearing results in an empty
8482 element.
8483
e3e1b729 84842010-02-25 Michael Meissner <meissner@linux.vnet.ibm.com>
8485
8486 PR target/43154
8487 * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
8488 (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
8489 and support both V2DF and V2DI modes.
8490 (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
8491 support both V2DF and V2DI modes.
8492 (general): Delete trailing whitespace from a few patterns.
8493
8494 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8495 V2DF/V2DI interleave high/low builtins.
8496
8497 * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
8498 new VSX builtins.
8499
8500 * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
8501 interleave high/low functions.
8502
a2d7f267 85032010-02-25 Gerald Pfeifer <gerald@pfeifer.com>
8504
8505 * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
8506 #pragma extern_prefix.
8507
406aed5d 85082010-02-25 Jakub Jelinek <jakub@redhat.com>
8509
5d713e67 8510 PR debug/43166
8511 * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
8512 BLKmode, assert op0 is a MEM and just adjust its mode.
8513
406aed5d 8514 PR debug/43165
8515 * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
8516 if bitpos isn't multiple of mode's bitsize.
8517
5084b26f 85182010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
8519
8520 * c.opt (-ftemplate-depth=): New.
8521 (-ftemplate-depth-): Deprecate.
8522 * optc-gen.awk: Handle -ftemplate-depth=.
8523 * opth-gen.awk: Likewise.
8524 * c-opts.c (c_common_handle_option): Likewise.
89b3c92a 8525 * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
5084b26f 8526
f08153ef 85272010-02-24 Jason Merrill <jason@redhat.com>
8528
8529 * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
8530
0c9b3045 85312010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8532
8533 * cfg.c (alloc_aux_for_block): Remove inline.
8534 (alloc_aux_for_edge): Likewise.
8535
89afcdc0 85362010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8537
8538 * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
8539
0adf6b09 85402010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8541
8542 * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
8543 * config/i386/sol2-gas.h: New file.
8544 * config.gcc (i[34567]86-*-solaris2*): Use it.
8545
8f45ab4d 85462010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
8547
8548 PR c/43128
8549 * c-typeck.c (ep_convert_and_check): New.
8550 (build_conditional_expr): Use it.
8551 (build_binary_op): Likewise.
8552
60d11eb6 85532010-02-24 Jakub Jelinek <jakub@redhat.com>
8554
02bbc669 8555 * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
8556
60d11eb6 8557 PR debug/43150
8558 * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
8559 bounds even for -O+.
8560 * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
8561 expr needs to have DECL_NAME set.
8562
260f365f 85632010-02-24 Nick Clifton <nickc@redhat.com>
8564
8565 * config/mep/mep.c: Include gimple.h.
8566 (mep_function_uses_sp): Delete unused function.
8567 (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
8568 parameters. Use unsigned integers to count args. Return a
8569 NULL_RTX instead of an error_mark_node. Toidy up formatting.
8570
bd5ea428 85712010-02-23 Jakub Jelinek <jakub@redhat.com>
8572
8573 PR target/43107
8574 * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
8575 greater or equal to nelt instead of 2 * nelt.
8576 (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
8577 with nelt - 1.
8578
acca8c42 85792010-02-23 Jason Merrill <jason@redhat.com>
8580
a45d3ce3 8581 PR debug/42800
8582 * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
8583 in cfun->local_decls even if they have register types.
8584
acca8c42 8585 PR c++/42837
8586 * stor-layout.c (place_field): Don't warn about unnecessary
8587 DECL_PACKED if the type is packed.
8588
a17fc359 85892010-02-23 Jakub Jelinek <jakub@redhat.com>
8590
8591 PR target/43139
8592 * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
8593 GOTOFF relocs, even when the base reg isn't pic pointer.
8594
3c800ea7 85952010-02-23 Michael Matz <matz@suse.de>
8596
8597 PR debug/43077
8598 * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
8599 (expand_gimple_basic_block): Generate and use debug temps if there
8600 are debug uses left after the last real use of TERed ssa names.
8601 Unlink debug immediate uses when they are expanded.
8602
f6865cc1 86032010-02-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
8604
8605 PR 43123
8606 * config/i386/i386.c (override_options): Reorganise to provide
8607 better error messages.
8608
d96f9313 86092010-02-22 Sebastian Pop <sebastian.pop@amd.com>
8610
8611 PR middle-end/43083
8612 * graphite-scop-detection.c (create_single_exit_edge): Move
8613 the call to find_single_exit_edge to....
8614 (create_sese_edges): ...here. Don't handle multiple edges
8615 exiting the function.
8616 (build_graphite_scops): Don't handle multiple edges
8617 exiting the function.
8618
86192010-02-22 Sebastian Pop <sebastian.pop@amd.com>
8620
8621 PR middle-end/43097
8622 * sese.c (get_rename): Assert that old_name is an SSA_NAME.
8623 (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
8624
86252010-02-22 Sebastian Pop <sebastian.pop@amd.com>
8626
8627 PR middle-end/43026
8628 * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
8629
60cce472 86302010-02-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
8631
8632 PR c++/43126
8633 * c-typeck.c (convert_arguments): Print declaration location.
8634 * c-common.c (validate_nargs): Rename as
8635 builtin_function_validate_nargs.
8636 (check_builtin_function_arguments): Update.
8637
c21cf15c 86382010-02-22 Richard Guenther <rguenther@suse.de>
8639
8640 PR lto/43045
8641 * tree-inline.c (declare_return_variable): Use the type of
8642 the call stmt lhs if available.
8643
c21d7f23 86442010-02-22 Duncan Sands <baldrick@free.fr>
8645
8646 * passes.c (register_pass): Always consider all pass lists when
8647 ref_pass_instance_number is zero.
8648
bc56c183 86492010-02-22 Richard Guenther <rguenther@suse.de>
8650
8651 PR tree-optimization/42749
8652 * tree-tailcall.c (adjust_return_value_with_ops): Drop update
8653 parameter. Do arithmetic in the original type.
8654 (update_accumulator_with_ops): Likewise.
8655 (adjust_accumulator_values): Adjust.
8656
baa9ba0c 86572010-02-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8658
8659 * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
8660 (QI to BLKmode splitter): New splitter.
8661
84de5c11 86622010-02-22 H.J. Lu <hongjiu.lu@intel.com>
8663
8664 * config/i386/i386.c (initial_ix86_tune_features): Turn on
8665 X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
8666
47a26dc5 86672010-02-22 Richard Guenther <rguenther@suse.de>
8668
8669 * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
84de5c11 8670
7f0ef684 86712010-02-22 Hans-Peter Nilsson <hp@bitrange.com>
8672
8673 Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
8674 * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
8675 ($(T)crti.o, $(T)crtn.o): Remove rules.
8676
54564d01 86772010-02-21 Tobias Burnus <burnus@net-b.de>
8678
8679 PR fortran/35259
8680 * doc/invoke.texi (-fassociative-math): Document that this
8681 option is automatically enabled for Fortran.
8682
2f1e7d0b 86832010-02-20 David S. Miller <davem@davemloft.net>
8684
8685 * configure.ac: Test if linker and assembler properly support
8686 GOTDATA_OP relocations.
8687 * configure: Rebuild.
8688 * config.in: Likewise.
8689 * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
8690 (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
8691 (movsi_high_pic): Likewise.
8692 (movdi_lo_sum_pic): Likewise.
8693 (movdi_high_pic): Likewise.
8694 (movsi_pic_gotdata_op): New pattern.
8695 (movdi_pic_gotdata_op): Likewise.
8696 * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
8697 emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
89b3c92a 8698
bcb496f4 86992010-02-20 Uros Bizjak <ubizjak@gmail.com>
8700
8701 PR target/43067
8702 * config/i386/sse.md (xop_mulv2div2di3_low): Change type
8703 attribute to ssemul.
8704 (xop_mulv2div2di3_high): Ditto.
8705
8296fdaa 87062010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
8707
8708 PR c++/35669
8709 * c.opt (Wconversion-null): New option.
8710 * doc/invoke.texi (Wconversion-null): Document.
8711
f00fc6e6 87122010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
8713
8714 * common.opt (Wlarger-than-): Add Undocumented.
bcb496f4 8715
2448493c 87162010-02-19 Mike Stump <mikestump@comcast.net>
8717
8718 * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
8719
1cdcaa36 87202010-02-19 Jason Merrill <jason@redhat.com>
8721
8722 PR target/40332
8723 * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
8724 * configure: Likewise.
8725
6137cc9f 87262010-02-20 Alan Modra <amodra@gmail.com>
8727
8728 PR middle-end/42344
8729 * cgraph.h (cgraph_make_decl_local): Declare.
8730 * cgraph.c (cgraph_make_decl_local): New function.
8731 (cgraph_make_node_local): Use it.
8732 * cgraphunit.c (cgraph_function_versioning): Likewise.
8733 * ipa.c (function_and_variable_visibility): Likewise.
8734
d78f9811 87352010-02-19 Jakub Jelinek <jakub@redhat.com>
8736
8737 PR bootstrap/43121
8738 * except.c (sjlj_emit_function_enter): Don't call
8739 add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
8740 directly.
8741 * rtl.h (add_reg_br_prob_note): Remove prototype.
8742
4c2cfa81 87432010-02-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
8744
8745 PR 41779
8746 * c-common.c (conversion_warning): Remove widening conversions
8747 before checking the conversion of integers to reals.
8748
83a23b05 87492010-02-19 Mike Stump <mikestump@comcast.net>
8750
5b5632f7 8751 PR middle-end/43125
8752 * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
8753
83a23b05 8754 PR objc/43061
8755 * cgraphunit.c (process_function_and_variable_attributes): Check
8756 DECL_PRESERVE_P instead of looking up attribute "used".
8757 * ipa-pure-const.c (check_decl): Likewise.
8758 * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
8759 * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
8760 * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
8761 instead of attribute "used".
8762 * config/sol2-c.c (solaris_pragma_init): Likewise.
8763 (solaris_pragma_fini): Likewise.
8764
efa5aca5 87652010-02-19 Jakub Jelinek <jakub@redhat.com>
8766
ec214612 8767 * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
8768 Use XCNEW instead of xcalloc.
8769 (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
8770 XNEW instead of xmalloc.
8771 (get_fields): Use XNEWVEC instead of xmalloc.
8772
ceae0726 8773 PR debug/43084
8774 * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
8775 populate vars array.
8776 (create_new_general_access): For debug stmts just reset value.
8777 (get_stmt_accesses): For accesses within debug stmts just record them
8778 using add_access_to_acc_sites instead of preventing the peeling or
8779 counting them as accesses.
8780
efa5aca5 8781 PR middle-end/42233
8782 * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
8783
dd693891 87842010-02-19 Richard Guenther <rguenther@suse.de>
8785
8786 PR tree-optimization/42916
8787 * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
8788 instructions.
8789
a6b57da2 87902010-02-19 Andreas Schwab <schwab@linux-m68k.org>
8791
8792 * configure.ac: Replace all uses of changequote in macro arguments
8793 with proper quoting.
8794
c368b03d 87952010-02-19 Jakub Jelinek <jakub@redhat.com>
8796
8797 PR middle-end/42233
8798 * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
8799
a29c5f9c 88002010-02-19 Richard Guenther <rguenther@suse.de>
8801
8802 PR tree-optimization/42944
8803 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
8804 test for aliasing with errno.
8805
2527d57b 88062010-02-19 Jakub Jelinek <jakub@redhat.com>
8807
79ab74cc 8808 PR middle-end/42233
8809 * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
8810 do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
8811 * dojump.c: Include output.h.
8812 (inv): New inline function.
8813 (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
8814 do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
8815 do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
8816 do_jump_by_parts_equality, do_compare_and_jump): Add PROB
8817 argument, pass it down to other calls.
8818 (do_compare_rtx_and_jump): Likewise. If PROB is not -1,
8819 add REG_BR_PROB note to the conditional jump.
8820 * cfgexpand.c (add_reg_br_prob_note): Removed.
8821 (expand_gimple_cond): Don't call it, add the probability
8822 as last argument to jumpif_1/jumpifnot_1.
8823 * Makefile.in (dojump.o): Depend on output.h.
8824 * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
8825 callers.
8826 * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
8827 * stmt.c (do_jump_if_equal): Likewise.
8828 * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
8829 * loop-unswitch.c (compare_and_jump_seq): Likewise.
8830 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
8831 Likewise.
8832 * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
8833 * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
8834 jumpifnot_1 callers.
8835 (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
8836 callers.
8837 (store_expr): Adjust jumpifnot caller.
8838 (store_constructor): Adjust jumpif caller.
8839
2527d57b 8840 PR middle-end/42233
8841 * gimplify.c (gimple_boolify): For __builtin_expect call
8842 gimple_boolify also on its first argument.
8843
47cbc7da 88442010-02-18 Uros Bizjak <ubizjak@gmail.com>
8845
8846 * configure.ac (gnu-unique-object): Wrap regexps using [] in
8847 changequote block.
8848 (__stack_chk_fail): Ditto. Remove quadrigraphs.
8849 * configure: Regenerated.
8850
e8a6252b 88512010-02-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8852
8853 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
8854 lang_hooks.types_compatible_p instead of comptypes.
8855
8e247962 88562010-02-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
8857
8858 * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
8859 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
8860 if __prefer_thumb__ is defined.
8861
f847b4c8 88622010-02-18 Martin Jambor <mjambor@suse.cz>
8863
8864 PR tree-optimization/43066
8865 * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
8866 array with zero-sized element type.
8867
1ea90fbb 88682010-02-18 Jakub Jelinek <jakub@redhat.com>
8869
8870 * dwarf2out.c (add_var_loc_to_decl): Change last argument to
8871 rtx, allocate struct var_loc_node here and return it to the
8872 caller, and only if it is actually needed.
8873 (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
8874 move it earlier and return immediately if it returns NULL.
8875
7f9966d5 88762010-02-17 Mikael Pettersson <mikpe@it.uu.se>
8877
8878 * config/sparc/gas.h: New file. Restore
8879 TARGET_ASM_NAMED_SECTION to its ELF default.
8880 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
8881 check !HAVE_GNU_AS.
8882 * config/sparc/sparc.c (sparc_elf_asm_named_section):
8883 Likewise. Add ATTRIBUTE_UNUSED to prototype.
8884 * config.gcc (sparc*-*-linux*): Include sparc/gas.h
8885 after sparc/sysv4.h.
8886
97ec048d 88872010-02-17 Dave Korn <dave.korn.cygwin@gmail.com>
8888
8889 * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
8890
5bc0532c 88912010-02-17 Steven Bosscher <steven@gcc.gnu.org>
8892
8893 * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
8894 patterns from predicated pattern.
8895
8072d92a 88962010-02-17 Uros Bizjak <ubizjak@gmail.com>
8897
8898 PR target/43103
8899 * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
8900 for insn mnemonic suffix.
8901
484ae26c 89022010-02-17 Richard Guenther <rguenther@suse.de>
8903
8904 * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
8905 to loop PHI nodes.
8906
4812f6d0 89072010-02-17 Jakub Jelinek <jakub@redhat.com>
8908
8909 PR debug/42918
8910 * caller-save.c (save_call_clobbered_regs): If BB ends with
8911 a DEBUG_INSN, move any notes in between last real insn and the last
8912 DEBUG_INSN after the last DEBUG_INSN.
8913
c010e011 89142010-02-16 Joern Rennecke <joern.rennecke@embecosm.com>
8915
8916 * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
8917 Fix return type. Fix argument type. Explain meaning of return value.
8918
ff486875 89192010-02-16 Richard Guenther <rguenther@suse.de>
8920
8921 PR tree-optimization/41043
8072d92a 8922 * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
ff486875 8923 (vrp_visit_assignment_or_call): Do not ask SCEV for regular
8924 statements ...
8925 (vrp_visit_phi_node): ... but only for loop PHI nodes.
8926
82f5958d 89272010-02-16 Ira Rosen <irar@il.ibm.com>
07be02da 8928
8929 PR tree-optimization/43074
8930 * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
8931 * tree-vect-loop.c (vect_analyze_loop_operations): Add
8932 vectorizable cycles in hybrid SLP check.
8933 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
8934
40f9e245 89352010-02-16 Richard Guenther <rguenther@suse.de>
8936
8072d92a 8937 * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
40f9e245 8938 (true_dependence): If memrefs_conflict_p computes must-alias
8939 trust it. Move TBAA check after offset-based disambiguation.
8940 (canon_true_dependence): Likewise.
8941
76f4ab1c 89422010-02-16 Alexandre Oliva <aoliva@redhat.com>
8943
8944 * params.def (PARAM_MAX_VARTRACK_SIZE): New.
8945 * doc/invoke.texi: Document it.
8946 * var-tracking.c: Include toplev.h and params.h.
8947 (vt_find_locations): Return bool indicating success. Compute
8948 hash sizes unconditionally. Check new parameter, report.
8949 (variable_tracking_main_1): Check vt_find_locations results and
8950 retry. Renamed from...
8951 (variable_tracking_main): ... this. New wrapper to preserve
8952 flag_var_tracking_assignments.
8953 * Makefile.in (var-tracking.o): Adjust dependencies.
8954
df2068ee 89552010-02-16 Jack Howarth <howarth@bromo.med.uc.edu>
8072d92a 8956 Jakub Jelinek <jakub@redhat.com>
df2068ee 8957
8958 PR target/42854
8959 * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
8960 if weak_import attribute is present.
8961 * config/darwin.c (machopic_select_section): Likewise.
8962
7c5f74ee 89632010-02-15 Joern Rennecke <joern.rennecke@embecosm.com>
8964
8965 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
8966 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
8967 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
8968 (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
8969
77204665 8970 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
8971 types.
7c5f74ee 8972
8973 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
8974 Fix argument types.
8975
8976 * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
8977 Rewrite text to refer to the names.
8978
46fd9685 89792010-02-15 Sebastian Pop <sebastian.pop@amd.com>
8980
8981 * config/i386/i386-builtin-types.def
8982 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
8983 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
8984 (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
8985 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
8986 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
8987 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
8988 IX86_BUILTIN_VPERMIL2PS256.
8989 (MULTI_ARG_4_DF2_DI_I): Defined.
8990 (MULTI_ARG_4_DF2_DI_I1): Defined.
8991 (MULTI_ARG_4_SF2_SI_I): Defined.
8992 (MULTI_ARG_4_SF2_SI_I1): Defined.
8993 (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
8994 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
8995 __builtin_ia32_vpermil2ps256.
8996 (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
8997 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
8998 MULTI_ARG_4_SF2_SI_I1. Handle builtins with 4 arguments.
8999 (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9000 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9001 MULTI_ARG_4_SF2_SI_I1. Handle CODE_FOR_xop_vpermil2v2df3,
9002 CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
9003 CODE_FOR_xop_vpermil2v8sf3.
9004 * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
9005 * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
9006 * config/i386/xopintrin.h (_mm_permute2_pd): New.
9007 (_mm256_permute2_pd): New.
9008 (_mm_permute2_ps): New.
9009 (_mm256_permute2_ps): New.
9010
5a23ee68 90112010-02-15 Nick Clifton <nickc@redhat.com>
9012
c356ea4c 9013 * config/h8300/h8300.c (h8300_push_pop): Use bool type for
5a23ee68 9014 boolean parameters. Use emit_jump_insn when emitting a pop
9015 instruction containing a return insn.
8072d92a 9016 (push): Use 'true' rather than '1' as second parameter to F.
9017 (h8300_expand_prologue): Likewise.
9018 Use 'true' and 'false' for boolean parameters to h8300_push_pop.
9019 (h8300_expand_epilogue): Likewise.
5a23ee68 9020
55d6cb23 90212010-02-15 Richard Guenther <rguenther@suse.de>
9022
9023 PR middle-end/43068
9024 * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
9025 if that is zero.
9026
90eb0bdc 90272010-02-15 Nick Clifton <nickc@redhat.com>
9028
9029 * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
9030 delta.
9031
70da6ffe 90322010-02-14 Marco Poletti <poletti.marco@gmail.com>
9033
9034 * intl.c (fake_ngettext): New function.
9035 * intl.h (fake_ngettext): Declare.
9036 (ngettext): Define macro.
9037 * collect2.c (notice_translated): New function.
9038 (main): Use notice_translated and ngettext.
9039 * collect2.h (notice_translated): Declare.
9040
72c0c58f 90412010-02-14 Steven Bosscher <steven@gcc.gnu.org>
9042
9043 * reorg.c (delete_computation): Comment fixes.
9044 * caller-save.c (setup_save_areas): Idem.
9045 * sel-sched-dump.c (dump_lv_set): Idem.
9046 * rtl.def: Idem.
9047
494d0169 90482010-02-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9049
9050 * config/s390/s390.c (s390_sched_init): New function.
9051 (TARGET_SCHED_INIT): Target hook defined.
9052
93230de2 90532010-02-12 Dave Korn <dave.korn.cygwin@gmail.com>
9054 Jack Howarth <howarth@bromo.med.uc.edu>
9055 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9056
9057 PR target/42982
9058 Partial revert of unintended change in fix for PR41605.
9059 * config/darwin.h: Fix typo.
9060 * config/darwin9.h: Same.
9061
b2c1582f 90622010-02-11 Jakub Jelinek <jakub@redhat.com>
9063
9064 * c-pch.c (pch_init): Clear v.
9065
e93793b1 90662010-02-11 Sebastian Pop <sebastian.pop@amd.com>
9067
9068 PR middle-end/42930
9069 * graphite-scop-detection.c (graphite_can_represent_scev): Call
9070 graphite_can_represent_init for MULT_EXPR.
9071
90722010-02-11 Sebastian Pop <sebastian.pop@amd.com>
9073
9074 PR middle-end/42914
9075 PR middle-end/42530
9076 * graphite-sese-to-poly.c (remove_phi): New.
9077 (translate_scalar_reduction_to_array): Call remove_phi.
9078
90792010-02-11 Sebastian Pop <sebastian.pop@amd.com>
9080
9081 PR middle-end/42771
9082 * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
9083 * graphite-clast-to-gimple.h (gloog): Update declaration.
9084 * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
9085 * graphite-poly.h (struct poly_bb): Add missing comments.
9086 (struct scop): Add poly_scop_p field.
9087 (POLY_SCOP_P): New.
9088 * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
9089 * graphite.c (graphite_transform_loops): Build the polyhedral
9090 representation for each scop before code generation.
9091 * sese.c (rename_variables_in_operand): Removed.
9092 (rename_variables_in_expr): Return the renamed expression.
9093 (rename_sese_parameters): New.
9094 * sese.h (rename_sese_parameters): Declared.
9095
50b9db1a 90962010-02-11 Richard Guenther <rguenther@suse.de>
9097
9098 PR tree-optimization/42998
9099 * tree-ssa-pre.c (create_expression_by_pieces): Treat
9100 POINTER_PLUS_EXPR properly.
9101
168561ef 91022010-02-11 Sebastian Pop <sebastian.pop@amd.com>
9103 Changpeng Fang <changpeng.fang@amd.com>
9104
9105 PR middle-end/40886
9106 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
9107 the cost of an IV candidate when the IV is used in a test against zero.
9108
9109 * gcc.dg/tree-ssa/ivopts-3.c: New.
9110
67817f0f 91112010-02-11 Richard Guenther <rguenther@suse.de>
9112
9113 PR lto/41664
9114 * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
9115 pointer-vs-decl case by swapping refs. Handle some cases
9116 of pointer-vs-decl disambiguations more conservatively.
9117 * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
9118 to false after expanding.
9119
2bd888dc 91202010-02-11 Richard Guenther <rguenther@suse.de>
9121
9122 PR driver/43021
9123 * gcc.c (process_command): Handle LTO file@offset case more
9124 appropriately.
9125
80d92ba3 91262010-02-11 Jakub Jelinek <jakub@redhat.com>
9127
39e30dc7 9128 * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
9129 modifications outside of the DEBUG_INSN. Accept CLOBBERs inside
9130 of DEBUG_INSNs.
9131 (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
9132
80d92ba3 9133 * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
9134 if MEM's mode size isn't DWARF2_ADDR_SIZE.
9135 (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
9136 Optimize eq/ne comparisons when both arguments are known to be
9137 zero-extended.
9138 (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
9139 Don't mask operands unnecessarily if they are known to be already
9140 zero-extended.
9141
4e51a669 91422010-02-10 Vladimir Makarov <vmakarov@redhat.com>
9143
9144 * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
9145 instead of loop.
9146
e1b11b05 91472010-02-10 Richard Guenther <rguenther@suse.de>
9148
9149 PR tree-optimization/43017
9150 * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
9151 for wrapping signed arithmetic.
9152
8a78840b 91532010-02-10 Jakub Jelinek <jakub@redhat.com>
9154
9155 PR debug/43010
9156 * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
9157 if no debug info should be emitted for it.
9158
c299b39c 91592010-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
9160
9161 * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
9162 note when flag_exceptions is set.
9163
8e923666 91642010-02-10 Duncan Sands <baldrick@free.fr>
9165
9166 * Makefile.in (PLUGIN_HEADERS): Add debug.h.
9167
4d307e1f 91682010-02-10 Richard Guenther <rguenther@suse.de>
9169
9170 PR c/43007
9171 * tree.c (get_unwidened): Handle constants.
9172 * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
9173
ccca436c 91742010-02-10 Martin Jambor <mjambor@suse.cz>
9175
9176 PR lto/42985
9177 * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
9178 check for variable argument counts independently.
9179
160c147c 91802010-02-10 Christian Bruel <christian.bruel@st.com>
9181
9182 PR target/42841
9183 * config/sh/sh.c (find_barrier): Increase length for non delayed
9184 conditional branches.
080ee75e 9185
0bbf4d59 91862010-02-10 Christian Bruel <christian.bruel@st.com>
9187
9188 * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
080ee75e 9189
5a80a58b 91902010-02-10 Jakub Jelinek <jakub@redhat.com>
9191
9192 * builtins.c (set_builtin_user_assembler_name): Also handle
9193 ffs if int is smaller than word.
9194
106453cc 91952010-02-09 Vladimir Makarov <vmakarov@redhat.com>
9196
9197 PR middle-end/42973
9198 * ira-conflicts.c (get_dup): Remove.
9199 (process_reg_shuffles): Add new parameter. Use it as an
9200 additional guard for copy generation.
9201 (add_insn_allocno_copies): Rewrite.
9202
fda153ea 92032010-02-09 Alexander Monakov <amonakov@ispras.ru>
9204
9205 * common.opt (fsched2-use-traces): Preserved for backward
9206 compatibility.
9207 * doc/invoke.texi: Remove the documentation about option
9208 -fsched2-use-traces.
9209 * sched-rgn.c (rest_of_handle_sched2): Remove usage of
9210 flag_sched2_use_traces.
9211 * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
9212 the backward compatibility flag section.
9213
a4d2f616 92142010-02-09 Richard Guenther <rguenther@suse.de>
9215
9216 PR tree-optimization/43008
9217 * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
9218 make HEAP variables initialized from global memory if they
9219 are not known builtin functions.
9220 (find_func_aliases): Adjust.
9221
0da2010b 92222010-02-09 Richard Guenther <rguenther@suse.de>
9223
9224 PR tree-optimization/43000
9225 * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
9226 arithmetic manually.
9227
2b63cc36 92282010-02-08 Jakub Jelinek <jakub@redhat.com>
9229
9230 PR tree-optimization/42931
9231 * tree-loop-linear.c (try_interchange_loops): Don't call
9232 double_int_mul if estimated_loop_iterations failed.
9233
20dbc0a7 92342010-02-08 Martin Jambor <mjambor@suse.cz>
9235
9236 PR middle-end/42898
9237 * tree-sra.c (build_accesses_from_assign): Do not mark in
9238 should_scalarize_away_bitmap if stmt has volatile ops.
9239 (sra_modify_assign): Do not process assigns piecemeal if if stmt
9240 has volatile ops.
9241
141a2500 92422010-02-08 Joern Rennecke <joern.rennecke@embecosm.com>
9243
9244 * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
9245
c3556ed8 92462010-02-07 Adam Nemet <adambnmet@gmail.com>
9247
9248 * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
9249 before the pattern.
9250
744b32fe 92512010-02-07 Andrew Pinski <pinskia@gmail.com>
9252
9253 PR middle-end/42946
9254 * df-core.c (df_finish_pass): Change type of saved_flags to int.
9255
09637510 92562010-02-07 Sebastian Pop <sebastian.pop@amd.com>
9257
9258 PR middle-end/42988
9259 * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
9260 to unknown_dependence.
9261 (graphite_legal_transform_dr): Handle the unknown_dependence.
9262 (graphite_carried_dependence_level_k): Same.
9263
92642010-02-07 Sebastian Pop <sebastian.pop@amd.com>
9265
9266 * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
9267
b21392bb 92682010-02-07 Richard Guenther <rguenther@suse.de>
9269
9270 PR middle-end/42991
9271 * expr.c (get_inner_reference): Always initialize *pbitsize.
9272
0d9f1189 92732010-02-07 Richard Guenther <rguenther@suse.de>
9274
9275 PR middle-end/42956
9276 * gimplify.c (gimple_fold_indirect_ref): Avoid generating
9277 new ARRAY_REFs on variable size element or minimal index arrays.
9278 Complete.
9279 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
9280 gimple_fold_indirect_ref.
9281
b649e510 92822010-02-06 Richard Earnshaw <rearnsha@arm.com>
9283
9284 PR target/42957
9285 * arm.c (arm_override_options): Just return if the user has specified
9286 an invalid fpu name.
9287
9c7fad6d 92882010-02-03 Jason Merrill <jason@redhat.com>
9289
9290 PR c++/42870
9291 * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
9292 i386_pe_maybe_record_exported_symbol.
9293
c731c4f5 92942010-02-05 Steve Ellcey <sje@cup.hp.com>
9295
9296 PR target/42924
9297 * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
9298 (pa_delegitimize_address): New function.
9299
69f4897c 93002010-02-05 Ozkan Sezer <sezeroz@gmail.com>
9301
9302 * config/i386/msformat-c.c (ms_printf_length_specs): Set the
9303 scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
9304
7c974441 93052010-02-05 Richard Guenther <rguenther@suse.de>
9306
9307 PR lto/42762
9308 * lto-streamer-in.c (get_resolution): Deal with references
9309 to undefined functions.
9310
6872bf3c 93112010-02-05 Richard Guenther <rguenther@suse.de>
9312
8072d92a 9313 * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
6872bf3c 9314 (fold_const_aggregate_ref): Likewise.
9315 (ccp_fold_stmt): Substitute loads.
9316 (maybe_fold_reference): Verify types before substituting.
9317 Unshare properly.
9318 (fold_gimple_assign): Unshare properly.
8072d92a 9319 (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
6872bf3c 9320
1697bcd2 93212010-02-05 Nathan Froyd <froydnj@codesourcery.com>
9322
9323 * config/rs6000/rs6000.c (rs6000_override_options): Invert check
9324 for rs6000_gen_cell_microcode.
9325
76e2bdc6 93262010-02-04 Richard Guenther <rguenther@suse.de>
9327
9328 PR rtl-optimization/42952
9329 * dse.c (const_or_frame_p): Remove MEM handling.
9330
e5924da4 93312010-02-04 Nick Clifton <nickc@redhat.com>
9332
9333 * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
9334 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
9335 (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
9336 (mn10300_asm_output_mi_thunk): New function.
9337 (mn10300_can_output_mu_thunk): New function.
9338 * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
9339 (FUNCTION_ARG_REGNO_P): Fix comment. Accept d0 and d1.
9340 (FUNCTION_ARG): Delete incorrect comment.
9341
767a8a1c 93422010-02-03 Jason Merrill <jason@redhat.com>
9343
9344 PR c++/40138
9345 * fold-const.c (operand_equal_p): Handle erroneous types.
9346
dfa584f5 93472010-02-03 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
1b4b4eee 9348
9349 * config/h8300/h8300.md (can_delay): Fix attibute condition.
9350
1e622bfc 93512010-02-03 Vladimir Makarov <vmakarov@redhat.com>
9352
dfa584f5 9353 PR rtl-optimization/42941
1e622bfc 9354 * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
9355 of xmalloc.
9356
da136652 93572010-02-03 Jason Merrill <jason@redhat.com>
9358
9359 PR c++/35652
9360 * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
9361
01df1184 93622010-02-03 Alexandre Oliva <aoliva@redhat.com>
9363
9364 PR debug/42896
89b3c92a 9365 * cselib.h (struct cselib_val_struct): Add uid. Rename value to hash.
01df1184 9366 (cselib_reset_table): Renamed from...
9367 (cselib_reset_table_with_next_value): ... this.
9368 (cselib_get_next_uid): Renamed from...
9369 (cselib_get_next_unknown_value): ... this.
9370 * cselib.c (next_uid): Renamed from...
9371 (next_unknown_value): ... this.
9372 (cselib_clear_table): Adjust.
9373 (cselib_reset_table): Adjust. Renamed from...
9374 (cselib_reset_table_with_next_value): ... this.
9375 (cselib_get_next_uid): Adjust. Renamed from...
9376 (cselib_get_next_unknown_value): ... this.
9377 (get_value_hash): Use hash.
9378 (cselib_hash_rtx): Likewise.
9379 (new_cselib_val): Adjust. Set and dump uid.
9380 (cselib_lookup_mem): Pass next_uid as hash.
9381 (cselib_subst_to_values): Likewise.
9382 (cselib_log_lookup): Dump uid.
9383 (cselib_lookup): Pass next_uid as hash. Adjust.
9384 (cselib_process_insn): Adjust.
9385 (cselib_init): Initialize next_uid.
9386 (cselib_finish): Adjust.
9387 (dump_cselib_table): Likewise.
9388 * dse.c (canon_address): Dump value uid.
9389 * print-rtl.c (print_rtx): Print value uid.
9390 * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
9391 (dvuid): New type.
9392 (dv_uid): New function, sort of renamed from...
9393 (dv_htab_hash): ... this, reimplemented in terms of it and...
9394 (dv_uid2hash): ... this. New.
9395 (variable_htab_eq): Drop excess assertions.
9396 (tie_break_pointers): Removed.
9397 (canon_value_cmp): Compare uids.
9398 (variable_post_merge_New_vals): Print uids.
9399 (vt_add_function_parameters): Adjust.
9400 (vt_initialize): Reset table. Adjust.
9401
4ef43bbd 94022010-02-03 Richard Guenther <rguenther@suse.de>
9403
9404 PR tree-optimization/42944
8072d92a 9405 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
4ef43bbd 9406 (call_may_clobber_ref_p_1): Likewise. Properly handle
9407 malloc and calloc clobbering errno.
9408
05476866 94092010-02-03 Steven Bosscher <steven@gcc.gnu.org>
9410
9411 * doc/invoke.texi: Fix name of sched1 dump.
9412
9413 * opts.c (decode_options): Set flag_tree_switch_conversion
9414 only conditionally on optimize >= 2.
9415
9416 * gcse.c: Assorted comment fixes in pass description.
9417
5cf6bd40 94182010-02-03 Anthony Green <green@moxielogic.com>
9419
9420 * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
9421 nop padding in order to maintain alignment of storage location of
9422 target function address.
9423 (moxie_trampoline_init): Store target function address at newly
9424 aligned location.
9425 * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
9426 to 32.
9427 (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
9428
9e1eb6c1 94292010-02-03 Richard Guenther <rguenther@suse.de>
9430
9431 PR middle-end/42927
9432 * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
9433
b138ccdd 94342010-02-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9435
9436 * config.gcc: Reenable check for obsolete targets.
9437 Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
9438 mips-sgi-irix6.[0-4]*.
9439
09bb92cc 94402010-02-02 Nick Clifton <nickc@redhat.com>
9441
9442 * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
9443 constant size of 4 as being the same as 0.
9444 * doc/invoke.texi (RX Options): Document that -mmax-constant-size
9445 can take values in the range 0..4.
9446
d00113a8 94472010-02-02 Jack Howarth <howarth@bromo.med.uc.edu>
9448
9449 PR java/41991
9450 * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
9451 as _darwin10_Unwind_FindEnclosingFunction().
9452 * libgcc-libsystem.ver: New.
9453
9dab02d9 94542010-02-01 Vladimir Makarov <vmakarov@redhat.com>
9455
9456 PR target/41399
9457 * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
9458 implicitly set registers.
9459
b3cd5f55 94602010-02-01 Richard Earnshaw <rearnsha@arm.com>
9461
9462 * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
9463 (arm_override_options): Allow automatic selection of the thread
9464 pointer register if thumb2.
9465 (legitimize_pic_address): Improve code sequences for Thumb2.
9466 (arm_call_tls_get_addr): Likewise.
9467 (legitimize_tls_address): Likewise.
9468 * arm.md (pic_load_addr_arm): Delete. Replace with ...
9469 (pic_load_addr_32bit): ... this. New named pattern.
9470 * thumb2.md (pic_load_addr_thumb2): Delete.
9471 (pic_load_dot_plus_four): Delete.
9472 (tls_load_dot_plus_four): New named pattern.
9473
e707a9ba 94742010-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9475
9476 PR libgomp/29986
9477 * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
9478 Document fix for TLS bug.
9479
b744201e 94802010-01-31 Richard Guenther <rguenther@suse.de>
9481
9482 * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
9483 conservatively correct.
9484
a24fb5c4 94852010-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9486
9487 PR target/42850
9488 Revert:
9489 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9490
9491 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
9492
17b6993a 94932010-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9494
9495 * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
9496
0767c2a8 94972010-01-31 Kai Tietz <kai.tietz@onevision.com>
9498
9499 * config.gcc: Adjust order of makefile fragments for mingw targets.
9500
ff5d4405 95012010-01-31 Richard Guenther <rguenther@suse.de>
9502
9503 PR middle-end/42898
9504 * gimplify.c (gimplify_init_constructor): For volatile LHS
9505 initialize a temporary.
9506
8b94bf70 95072010-01-31 Matthias Klose <doko@ubuntu.com>
9508
9509 * configure.ac: Fix __stack_chk_fail check for cross builds configured
9510 --with-headers
9511 * configure: Regenerate.
9512
4b4d1513 95132010-01-29 Eric Botcazou <ebotcazou@adacore.com>
9514
9515 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
9516 the same alias set and their sizes different constantness.
9517 (aliasing_component_refs_p): Revert 2009-10-24 change.
9518
e882a286 95192010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9520
9521 * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
9522 unused.
9523
338cce8f 95242010-01-29 Richard Guenther <rguenther@suse.de>
9525
9526 * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
9527 Assert we successfully updated the call.
9528
86fc6921 95292010-01-29 Jakub Jelinek <jakub@redhat.com>
9530
9531 PR rtl-optimization/42889
9532 * df.h (df_set_bb_dirty_nonlr): New prototype.
9533 * df-core.c (df_set_bb_dirty_nonlr): New function.
9534 * df-scan.c (df_insn_rescan): Call it instead of
9535 df_set_bb_dirty for DEBUG_INSNs.
9536
00efe249 95372010-01-29 Richard Guenther <rguenther@suse.de>
9538
9539 PR middle-end/37448
9540 * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
9541 quadratic behavior in most cases.
9542
f9319fa7 95432010-01-28 Uros Bizjak <ubizjak@gmail.com>
9544
9545 PR target/42891
9546 * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
9547 in the call to gen_x86_movsicc_0_m1.
9548
8341e6d9 95492010-01-28 Richard Guenther <rguenther@suse.de>
9550
9551 PR tree-optimization/42871
080ee75e 9552 * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
8341e6d9 9553
94144e68 95542010-01-28 Richard Guenther <rguenther@suse.de>
9555
9556 * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
9557 into call arguments.
9558
11d28f28 95592010-01-28 Richard Guenther <rguenther@suse.de>
9560
9561 PR middle-end/42883
9562 * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
9563 the forwarder if the destination is an EH landing pad.
9564
95652010-01-28 Razya Ladelsky <razya@il.ibm.com>
fbbe5b51 9566
f9319fa7 9567 * tree-parloops.c (transform_to_exit_first_loop): Update the basic
fbbe5b51 9568 block list passed to gimple_duplicate_sese_tail.
9569 (parallelize_loops): Avoid parallelization when the function
9570 has_nonlocal_label.
9571 Avoid parallelization when the preheader is IRREDUCIBLE.
9572 Try to optimize when estimated_loop_iterations_int is unresolved.
9573 Add the loop's location to the dump file.
11d28f28 9574 * tree-cfg.c (add_phi_args_after_redirect): Remove.
fbbe5b51 9575 (gimple_duplicate_sese_tail): Remove the check for the latch.
9576 Redirect nexits to the exit block.
9577 Remove handling of the incoming edges to the latch.
9578 Redirect the backedge from the copied latch to the exit bb.
9579
080980d0 95802010-01-28 Michael Matz <matz@suse.de>
9581
9582 PR target/42881
9583 * config/i386/i386.c (ix86_expand_vector_init_duplicate):
9584 Wrap force_reg into a sequence, emit it before user.
9585
ff82f757 95862010-01-28 Stephen Thomas <stephen.thomas@arm.com>
9587
9588 * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
9589 (arm_rev): New.
9590 (arm_legacy_rev): Likewise.
9591 (thumb_legacy_rev): Likewise.
9592
8331aacd 95932010-01-27 Jakub Jelinek <jakub@redhat.com>
9594
9595 * dwarf2out.c (mem_loc_descriptor): Remove special casing of
9596 CONSTANT_POOL_ADDRESS_P SYMBOL_REFs. If for MEM recursive call
9597 on MEM's address failed, try avoid_constant_pool_reference and
9598 recurse if it returned something different.
9599 (loc_descriptor): If for MEM mem_loc_descriptor failed on the
9600 address, try avoid_constant_pool_reference and recurse if it
9601 returned something different.
9602 (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
9603 address and avoid_constant_pool_reference returned something
9604 different, don't set have_address.
9605
bf262632 96062010-01-27 Alexandre Oliva <aoliva@redhat.com>
9607
9608 PR debug/42861
9609 * var-tracking.c (val_store): Add modified argument, obey it.
9610 Adjust callers.
9611 (count_uses): Move down logging of main.
9612 (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
9613 don't need resolution.
9614 (emit_notes_in_bb): Likewise.
9615
7547883d 96162010-01-27 Richard Guenther <rguenther@suse.de>
9617
9618 PR middle-end/42878
9619 * tree-inline.c (remap_decl): Delay remapping of SSA name
9620 default definitions until we need them.
9621
efcca74a 96222010-01-27 Jakub Jelinek <jakub@redhat.com>
9623
5711f254 9624 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
9625 (rs6000_delegitimize_address): New function.
9626
3b6b647c 9627 * config/s390/s390.c (s390_delegitimize_address): Call
9628 delegitimize_mem_from_attrs.
9629
efcca74a 9630 PR middle-end/42874
9631 * tree-inline.c (cannot_copy_type_1): Removed.
9632 (copy_forbidden): Don't forbid copying of functions containing
9633 records/unions with variable length fields.
9634
8b8c291d 96352010-01-27 Christian Bruel <christian.bruel@st.com>
9636
9637 Revert:
9638 PR target/42841
9639 * config/sh/sh.c (find_barrier): Increase length for non delayed
9640 conditional branches.
f9319fa7 9641
14940535 96422010-01-27 Matthias Klose <doko@ubuntu.com>
9643
9644 * configure.ac (gnu-unique-object): Fix ldd version check.
9645 * configure: Regenerate.
9646
b17559bc 96472010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9648
9649 * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
9650 HAVE_GNU_AS value.
9651 * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
9652 Test for HAVE_GNU_AS value.
9653
e2fb821c 96542010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9655
9656 * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
9657 * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
9658 INT64_TYPE): Define.
9659 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
9660 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9661 INT_LEAST64_TYPE): Define.
9662 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
9663 UINT_LEAST64_TYPE): Define.
9664 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
9665 INT_FAST64_TYPE): Define.
9666 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9667 UINT_FAST64_TYPE): Define.
9668 (INTMAX_TYPE, UINTMAX_TYPE): Define.
9669 (INTPTR_TYPE, UINTPTR_TYPE): Define.
9670 (SIG_ATOMIC_TYPE): Define.
9671
76d2e170 96722010-01-26 Richard Guenther <rguenther@suse.de>
9673
9674 * df-scan.c (df_scan_set_bb_info): Remove assert.
9675 (df_insn_rescan_debug_internal): Merge asserts.
9676 (df_install_ref): Likewise.
9677 (df_mark_reg): Use bitmap_set_range.
9678 (df_hard_reg_used_p): Remove assert.
9679 (df_hard_reg_used_count): Likewise.
9680
41ceca3d 96812010-01-26 Richard Guenther <rguenther@suse.de>
9682
9683 PR rtl-optimization/42685
9684 * web.c (web_main): Ignore DEBUG_INSNs.
9685
78d39c62 96862010-01-26 Joern Rennecke <amylaar@spamcop.net>
9687
9688 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
9689
9690 (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
9691 Fix types of fndecl and arglist parameters.
9692
0b76e49c 96932010-01-26 Richard Guenther <rguenther@suse.de>
9694
9695 PR middle-end/42806
9696 * tree-eh.c (unsplit_eh): Skip debug insns.
9697
997f78fd 96982010-01-26 Richard Guenther <rguenther@suse.de>
9699
9700 PR tree-optimization/42250
9701 * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
9702
295e9e85 97032010-01-26 Jakub Jelinek <jakub@redhat.com>
9704
9705 PR fortran/42866
9706 * omp-low.c (expand_omp_sections): Only use single_pred if
9707 l2_bb is single_pred_p.
9708
db46fcd4 97092010-01-25 Christian Bruel <christian.bruel@st.com>
9710
9711 PR target/42841
9712 * config/sh/sh.c (find_barrier): Increase length for non delayed
9713 conditional branches.
9714 (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
9715
fcc74387 97162010-01-24 David S. Miller <davem@davemloft.net>
9717
b17559bc 9718 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
fcc74387 9719 define if not using GAS.
b17559bc 9720 * config/sparc/sparc.c (sparc_elf_asm_named_section):
fcc74387 9721 Likewise. Delete SECTION_MERGE code, which is only applicable
9722 when using GAS.
9723
70caa883 97242010-01-24 Mark Mitchell <mark@codesourcery.com>
9725
9726 PR c++/42748
9727 * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
9728 mangling of va_list in system headers.
9729
c84b1d32 97302010-01-23 Toon Moene <toon@moene.org>
9731
9732 * tree-predcom.c (combine_chains): Return NULL, not false.
9733
eeb74f9f 97342010-01-23 Joern Rennecke <amylaar@spamcop.net>
9735
9736 * tree-loop-distribution.c (distribute_loop): Fix declaration and
9737 initialization of variable res to agree with return type.
9738
ab5fa7d3 97392010-01-22 Steve Ellcey <sje@cup.hp.com>
9740
9741 * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
9742 * tree-sra.c: Add include of expr.h.
9743
8d7f27c3 97442010-01-22 Jakub Jelinek <jakub@redhat.com>
9745
9746 * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
9747 insert the debug stmt on the single non-EH edge from the stmt.
9748
fd9864aa 97492010-01-22 Richard Henderson <rth@redhat.com>
9750
9751 PR tree-opt/42833
9752 * tree-sra.c (sra_modify_assign): Delay re-gimplification of
9753 the RHS until after generate_subtree_copies has insertted its
9754 code before the current statement.
9755
2171e626 97562010-01-22 Joern Rennecke <amylaar@spamcop.net>
9757
9758 * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
9759
c77752e7 9760 * gcc-plugin.h (plugin_init): Use "C" likage for c++.
9761
27490d00 97622010-01-21 Martin Jambor <mjambor@suse.cz>
9763
9764 PR tree-optimization/42585
9765 * tree-sra.c (struct access): New field grp_total_scalarization.
9766 (dump_access): Dump the new field.
9767 (should_scalarize_away_bitmap): New variable.
9768 (cannot_scalarize_away_bitmap): Likewise.
9769 (sra_initialize): Allocate new bitmaps.
9770 (sra_deinitialize): Free new bitmaps.
9771 (create_access_1): New function.
9772 (create_access): Parts moved to create_access_1.
9773 (type_consists_of_records_p): New function.
9774 (completely_scalarize_record): Likewise.
9775 (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
9776 (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
9777 (sort_and_splice_var_accesses): Hint groups with a total_scalarization
9778 access.
9779 (analyze_all_variable_accesses): Completely scalarize small eligible
9780 records.
9781
00bba8d6 97822010-01-21 Martin Jambor <mjambor@suse.cz>
9783
9784 * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
9785
15b28e16 97862010-01-21 Andrew Haley <aph@redhat.com>
9787
f9319fa7 9788 * gcc.c (process_command): Move lang_specific_driver before
9789 setting cc_libexec_prefix.
15b28e16 9790
53293165 97912010-01-21 Richard Guenther <rguenther@suse.de>
9792
9793 PR middle-end/19988
9794 * fold-const.c (negate_expr_p): Pretend only negative
9795 real constants are easily negatable.
9796
8df5a43d 97972010-01-20 Janis Johnson <janis187@us.ibm.com>
9798 Jason Merrill <jason@redhat.com>
9799
9800 * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
9801 (TYPE_TRANSPARENT_AGGR): this, for union and record.
9802 * calls.c (initialize argument_information): Handle it.
9803 * c-common.c (handle_transparent_union_attribute): Use new name.
9804 * c-decl.c (finish_struct): Ditto.
9805 * c-typeck.c (type_lists_compatible_p): Ditto.
9806 (convert_for_assignment): Use new name and also handle record.
9807 * function.c (aggregate_value_p): Handle it.
9808 (pass_by_reference): Ditto.
9809 (assign_parm_data_types): Ditto.
9810 * print-tree.c (print_node): Ditto.
9811 * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
9812 * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
9813 * tree.c (first_field): New fn.
9814
7b2c73ad 98152010-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
9816
9817 PR target/42818
9818 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
9819 even when linking statically, for now.
9820
3af97df7 98212010-01-20 Alexandre Oliva <aoliva@redhat.com>
9822
9823 PR debug/42715
9824 * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
9825 without a cselib val.
9826 (count_uses): Accept MO_VAL_SET with no val on stores.
9827 (add_stores): Likewise.
9828
65683f79 98292010-01-20 Jakub Jelinek <jakub@redhat.com>
9830
9831 * var-tracking.c (check_value_val): Add a compile time assertion.
9832 (dv_is_decl_p): Simplify.
9833 (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
9834 gcc_assert if ENABLE_CHECKING.
9835
0358713f 98362010-01-20 Alexandre Oliva <aoliva@redhat.com>
9837
9838 PR debug/42782
9839 * var-tracking.c: Include tree-flow.h.
9840 (mem_dies_at_call): New.
9841 (dataflow_set_preserve_mem_locs): Use it.
9842 (dataflow_set_remove_mem_locs): Likewise.
9843 (dump_var): Renamed from dump_variable. Adjust all callers.
9844 (dump_var_slot): Renamed from dump_variable_slot. Likewise.
9845 * Makefile.in (var-tracking.o): Adjust deps.
9846
20beac72 98472010-01-20 Joern Rennecke <amylaar@spamcop.net>
9848
9849 * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
9850
0672b268 98512010-01-20 Richard Guenther <rguenther@suse.de>
9852
9853 PR tree-optimization/42717
9854 * tree-ssa-dce.c (get_live_post_dom): Remove.
9855 (forward_edge_to_pdom): Take an arbitrary edge to copy
9856 degenerate PHI args from.
9857 (remove_dead_stmt): Use the first post-dominator even if it
9858 does not contain live statements as redirection destination.
9859
e6a18807 98602010-01-20 Richard Guenther <rguenther@suse.de>
9861
9862 * tree-inline.c (estimate_num_insns): Handle EH builtins.
9863
57ab8ec3 98642010-01-20 Jakub Jelinek <jakub@redhat.com>
9865
9866 * sel-sched.c (create_speculation_check): Remove set but not used
9867 variable twin.
9868 (try_transformation_cache): Remove set but not used variable ds.
9869 (calculate_privileged_insns): Remove set but not used variables
9870 cur_insn and min_spec_insn.
9871 (find_best_expr): Remove set but not used variable avail_n.
9872 * tree-predcom.c (base_names_in_chain_on): Remove set but not used
9873 variable e.
9874 * cgraphunit.c (assemble_thunk): Remove set but not used variable
9875 false_label.
9876 * haifa-sched.c (remove_notes): Remove set but not used variable prev.
9877 * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
9878 new_scop_exit_edge.
9879
2144cc85 98802010-01-20 Felyza Wishbringer <fwishbringer@gmail.com>
9881
9882 PR bootstrap/42786
9883 * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
9884 cpu types. Add support for *-sse3 cpu types.
9885 (x86_64-*-*): Ditto.
9886
13ceb2c0 98872010-01-20 Jakub Jelinek <jakub@redhat.com>
9888
9889 PR middle-end/42803
9890 * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
9891 argument, call initializer_constant_valid_p_1 instead of
9892 initializer_constant_valid_p, pass CACHE to it, return NULL
9893 immediately if first call returns NULL.
9894 (initializer_constant_valid_p_1): New function.
9895 (initializer_constant_valid_p): Use it.
9896
7f634222 98972010-01-20 Thomas Quinot <quinot@adacore.com>
9898
9899 * tree.def (PLACEHOLDER_EXPR): Fix comment.
9900
ab84c349 99012010-01-20 Jakub Jelinek <jakub@redhat.com>
9902
9903 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
9904 of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
9905 (loc_list_from_tree): Don't handle unsigned division. Handle
9906 signed modulo using DW_OP_{over,over,div,mul,minus}.
9907 * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
9908 modulo instead of signed.
9909
5da0dad2 99102010-01-20 DJ Delorie <dj@redhat.com>
9911
9912 * config/h8300/h8300.c (F): Add "in_epilogue" flag.
9913 (Fpa): Pass it
9914 (h8300_emit_stack_adjustment): Propogate it.
9915 (push): Pass it.
9916 (h8300_expand_prologue): Likewise.
9917 (h8300_expand_epilogue): Likewise.
9918
be2e5c02 99192010-01-19 Michael Matz <matz@suse.de>
9920
9921 PR tree-optimization/41783
9922 * tree-data-ref.c (toplevel): Include flags.h.
9923 (dump_data_dependence_relation): Also dump the inputs if the
9924 result will be unknown.
9925 (split_constant_offset_1): Look through some conversions.
9926 * tree-predcom.c (determine_roots_comp): Restart a new chain if
9927 the offset from last element is too large.
9928 (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
9929 (reassociate_to_the_same_stmt): Handle vector registers.
9930 * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
9931 (e.g. conversions).
b17559bc 9932 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
be2e5c02 9933 wide_prolog_niters argument, emit widening instructions.
9934 (vect_do_peeling_for_alignment): Adjust caller, use widened
9935 variant of the iteration cound.
9936 * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
9937
a7d2b4f1 99382010-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9939
be2e5c02 9940 PR target/38697
9941 * config/arm/neon-testgen.m (emit_automatics): New parameter
a7d2b4f1 9942 features. Adjust for Fixed_return_reg feature.
9943 (test_intrinsic): Call emit_automatics with new feature.
be2e5c02 9944 * config/arm/neon.ml: Update copyright years.
a7d2b4f1 9945 (features): New Fixed_return_reg feature.
9946 (ops): Update feature for Vget_low.
9947
c4b594c1 99482010-01-19 Jakub Jelinek <jakub@redhat.com>
9949
270a54d2 9950 PR tree-optimization/42719
9951 * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
9952 stmt uses.
9953
c4b594c1 9954 PR debug/42728
9955 * fwprop.c (all_uses_available_at): Return false if def_set dest
9956 is a REG that is used in def_insn.
9957
35c16056 99582010-01-19 Joern Rennecke <amylaar@spamcop.net>
9959
9960 * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
9961
9962 (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
9963 Add argument names.
9964
9965 (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
9966
657ad95d 9967 * target.h (struct gcc_target) <secondary_reload>: Change type
9968 of last argument to secondary_reload_info *.
9969
05191abd 99702010-01-18 Uros Bizjak <ubizjak@gmail.com>
9971
9972 PR target/42774
9973 * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
9974 memory references with unaligned offsets. Remove CQImode handling.
9975 (unaligned_memory_operand): Return 1 for memory references with
9976 unaligned offsets. Remove CQImode handling.
9977
facbb5c4 99782010-01-18 Richard Guenther <rguenther@suse.de>
9979
9980 PR middle-end/39954
9981 * cfgexpand.c (expand_call_stmt): TER pointer arguments in
9982 builtin calls.
9983
048f1033 99842010-01-18 Richard Guenther <rguenther@suse.de>
9985
9986 PR tree-optimization/42781
9987 * tree-ssa-structalias.c (find_what_var_points_to): Skip
8072d92a 9988 restrict processing only if the original variable was artificial.
048f1033 9989
f2779bd1 99902010-01-18 Joern Rennecke <amylaar@spamcop.net>
9991
9992 * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
9993 find number of popped argument bytes.
9994
9995 (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
9996 Fix the text that describes the return value for invalid insns.
9997
9998 (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type. Fix argument list.
9999
10000 (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
10001 Clarify what 'cost of the -dependence' is. Fix quoting.
10002
836c5cf2 10003 * toplev.c (default_get_pch_validity): Rename argument to "sz".
10004 * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
10005
bf8d938e 100062010-01-17 Jakub Jelinek <jakub@redhat.com>
10007
10008 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
10009 {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
10010
3e992c41 100112010-01-17 Richard Guenther <rguenther@suse.de>
10012
10013 PR middle-end/42248
10014 * function.c (split_complex_args): Take a VEC to modify.
10015 (assign_parms_augmented_arg_list): Build a VEC instead of
10016 a chain of PARM_DECLs.
10017 (assign_parms_unsplit_complex): Take a VEC of arguments.
10018 Do not fixup unmodified parms.
10019 (assign_parms): Deal with the VEC.
10020 (gimplify_parameters): Likewise.
10021
be2517f5 100222010-01-17 Richard Guenther <rguenther@suse.de>
10023
10024 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
10025 node existence check.
10026 * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
10027 * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
10028 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
10029 * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
10030 (gimple_execute_on_growing_pred): Likewise.
10031
40d1d8b9 100322010-01-17 Richard Guenther <rguenther@suse.de>
10033
10034 PR tree-optimization/42773
10035 * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
10036 (compute_antic_aux): Likewise.
10037 (compute_partial_antic_aux): Likewise.
10038
40dbcb16 100392010-01-17 Jie Zhang <jie.zhang@analog.com>
10040
10041 PR debug/42767
10042 * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
10043 and US_TRUNCATE.
10044
5f77f12a 100452010-01-17 Joern Rennecke <amylaar@spamcop.net>
10046
10047 * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
10048 appearance.
10049
10050 (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
10051 Fix markup for strict argument.
10052
10053 (TARGET_SCHED_REORDER2): Fix argument types.
10054
10055 (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
10056 (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
10057
10058 (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
10059 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
10060
10061 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
10062 Add argument name.
10063
10064 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
10065 (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
10066 (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
10067 (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
10068 (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
10069
10070 (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
10071
10072 (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
10073
10074 (TARGET_ASM_RELOC_RW_MASK): Add return type.
10075 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
10076
10077 (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
10078
10079 (TARGET_ASM_FILE_START): Put @findex before paragraph start.
10080 Use prototype.
10081
10082 (TARGET_ASM_NAMED_SECTION): Fix argument list.
10083
10084 (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
10085 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
10086
10087 (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
10088
10089 (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
10090
10091 (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
10092 referring to it. Fix language.
10093
10094 (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
10095
10096 (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
10097
10098 (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
10099
10100 (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
10101
10102 (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
10103 '@var{stream}. Remove stray 'and'.
10104
10105 (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
10106
10107 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
10108
10109 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
10110
b17559bc 10111 (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
5f77f12a 10112 misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
10113
10114 (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
10115 Fix description of return value.
10116 Rename argument "sz" to "len."
10117
10118 (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
10119 Clarify meaning of 'true' return value.
10120
10121 (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
10122
10123 (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
10124 rep_mode versus mode_rep.
10125
10126 (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
10127
10128 (TARGET_BUILTIN_DECL): Fix name.
10129
10130 (TARGET_COMMUTATIVE_P): Fix type of first argument.
10131
10132 (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
10133
10134 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
10135
10136 (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
10137
10138 (TARGET_RELAXED_ORDERING): Use @deftypevr.
10139
10140 (TARGET_GET_DRAP_RTX): Note that this is a hook.
10141 Clarify language.
10142
c3d15dba 10143 (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
10144 Rename argument tm_fn to md_fn.
10145
294f8d57 10146 (TARGET_OPTION_PRINT): Fix argument list.
10147
a72f3239 101482010-01-16 Harsha Jagasia <harsha.jagasia@amd.com>
10149
10150 PR target/42664
10151 * config/i386/i386.c (ix86_fixup_binary_operands):
10152 Revert FMA4 fixup of operands.
10153
f5763863 101542010-01-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10155
10156 PR gcc/42525
10157 * Makefile.in (write_entries_to_file, install-plugin):
10158 Use \012 instead of \n with tr.
10159
1a9c54a3 101602010-01-16 Richard Sandiford <r.sandiford@uk.ibm.com>
10161
10162 * configure.ac (HAVE_AS_REF): New C macro.
10163 * configure: Regenerate.
10164 * config.in: Likewise.
10165 * collect2.c (main): Only postpone SCAN_DWEH to the second pass
10166 if HAVE_AS_REF.
10167 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
10168 if HAVE_AS_REF.
10169
ddc6a57f 101702010-01-16 Joern Rennecke <amylaar@spamcop.net>
10171
10172 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
10173
10174 (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
10175
10176 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
10177
10178 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
10179
10180 (TARGET_IN_SMALL_DATA_P): Fix argument type.
10181
10182 (TARGET_BINDS_LOCAL_P): Fix argument type.
10183
10184 (TARGET_ASM_FILE_END): Use prototype.
10185
10186 (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
10187
10188 (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
10189
10190 (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
10191
10192 (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
10193
10194 (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
10195 (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
10196
10197 (TARGET_PCH_VALID_P): Put 'const char *' in braces.
10198 (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
10199
10200 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
10201 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
10202 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
10203 (TARGET_ADDR_SPACE_CONVERT): Likewise.
10204
10205 (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
10206
10207 (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
10208
10209 (TARGET_INIT_BUILTINS): Use prototype.
10210
10211 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
10212 Put 'const char *' in braces. Fix parameter types.
10213 (TARGET_INVALID_CONVERSION): Fix parameter types.
10214 (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
10215 (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
10216
10217 (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
10218 Fix argument type.
10219
10220 (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
10221
10222 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
10223
53edaaf2 102242010-01-15 Joern Rennecke <amylaar@spamcop.net>
10225
10226 * doc/tm.texi (TARGET_HELP): Fix return type.
10227
10228 (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
10229 in braces. Fix argument types.
10230
10231 (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
10232
10233 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
10234
10235 (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
10236
10237 (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
10238 (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
10239
10240 (TARGET_MANGLE_TYPE): Fix argument types.
10241
10242 (TARGET_IRA_COVER_CLASSES): Use prototype.
10243
10244 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type. Use prototype.
10245
10246 (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
10247
10248 (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
10249
10250 (TARGET_MUST_PASS_IN_STACK): Fix argument type.
10251
10252 (TARGET_CALLEE_COPIES): Fix argument types.
10253
10254 (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
10255
10256 (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
10257
10258 (TARGET_FUNCTION_VALUE): Fix argument types.
10259
10260 (TARGET_RETURN_IN_MSB): Fix argument type.
10261
10262 (TARGET_RETURN_IN_MEMORY): Fix argument types.
10263
10264 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
10265
10266 (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
10267
10268 (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
10269 agree with return type.
10270
10271 (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
10272
92c624a3 102732010-01-15 Jing Yu <jingyu@google.com>
10274
10275 PR rtl-optimization/42691
10276 * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
10277 a pseudo to a constant and are merged, and adjust comments.
10278
172d9cbe 102792010-01-15 Eric Botcazou <ebotcazou@adacore.com>
10280
10281 * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
10282
7b960d37 102832010-01-15 Richard Guenther <rguenther@suse.de>
10284
10285 PR middle-end/42739
10286 * tree-cfgcleanup.c (remove_forwarder_block): Move destination
10287 labels of computed or non-local gotos to the destination.
10288 * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
10289 landing pad label is the first label.
10290
70d42340 102912010-01-15 Richard Guenther <rguenther@suse.de>
10292
10293 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
10294
79cd32e0 102952010-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
10296
10297 PR target/42747
10298 * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
10299 to allow generation of the xssqrtdp instruction on power7.
10300 (sqrtdf2_fpr): Ditto.
10301
56b91f02 103022010-01-14 Jakub Jelinek <jakub@redhat.com>
10303
578d2695 10304 PR middle-end/42674
10305 * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
10306 functions with noreturn attribute.
10307
56b91f02 10308 PR c++/42608
10309 * varasm.c (declare_weak): Add weak attribute to decl if it
10310 doesn't have one already.
10311 (assemble_external): Only add decls to weak_decls if they also
10312 have weak attribute.
10313
e25fd798 103142010-01-14 Alexandre Oliva <aoliva@redhat.com>
10315
10316 * var-tracking.c (var_reg_delete): Don't delete the association
10317 between REGs and values or one-part variables if the register
10318 isn't clobbered.
10319
e0667160 103202010-01-14 Jakub Jelinek <jakub@redhat.com>
10321
10322 PR debug/42657
10323 * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
10324 because its first operand is a non-localized variable.
10325
f097734a 103262010-01-14 Martin Jambor <mjambor@suse.cz>
10327
10328 PR tree-optimization/42706
10329 * tree-sra.c (encountered_recursive_call): New variable.
10330 (encountered_unchangable_recursive_call): Likewise.
10331 (sra_initialize): Initialize both new variables.
10332 (callsite_has_enough_arguments_p): New function.
10333 (scan_function): Call decl and flags check only for IPA-SRA, check
10334 whether there is a recursive call and whether it has enough arguments.
10335 (all_callers_have_enough_arguments_p): New function.
10336 (convert_callers): Look for recursive calls only when
10337 encountered_recursive_call is set.
10338 (ipa_early_sra): Bail out either if
10339 !all_callers_have_enough_arguments_p or
10340 encountered_unchangable_recursive_call.
10341
ce9c1a64 103422010-01-14 Alexander Monakov <amonakov@ispras.ru>
10343
10344 * sel-sched.c: Add 2010 to copyright years.
10345 * sel-sched-ir.c: Likewise.
10346 * sel-sched-ir.h: Likewise.
10347
d23efcf8 103482010-01-14 Martin Jambor <mjambor@suse.cz>
10349
10350 PR tree-optimization/42714
10351 * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
10352 constructors specially.
10353
3ba7ca5c 103542010-01-14 Andi Kleen <ak@linux.intel.com>
10355
10356 * config/i386/drivers-i386.c (detect_caches_intel):
10357 Add l2sizekb parameter and fill in.
10358 (host_detect_local_cpu): Add l2sizekb, fill in.
10359 Add Atom small cache heuristic.
10360
103612010-01-14 Andi Kleen <ak@linux.intel.com>
10362
10363 * config/i386/drivers-i386.c (detect_caches_cpuid4):
10364 Add level3 parameter and fill in.
10365 (detect_caches_intel): Handle level3 cache.
10366
103672010-01-14 Andi Kleen <ak@linux.intel.com>
10368
10369 * config/i386/drivers-i386.c (host_detect_local_cpu):
10370 Fix core duo detection.
10371
103722010-01-14 Andi Kleen <ak@linux.intel.com>
10373
10374 * config/i386/drivers-i386.c (host_detect_local_cpu):
10375 Fix Atom detection.
10376
3e0a0b33 103772010-01-14 Alexander Monakov <amonakov@ispras.ru>
10378
10379 * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
10380 (rs6000_variable_issue_1): this. Use...
10381 (rs6000_variable_issue): here. Reimplement. Print debug info.
10382
3baa98a0 103832010-01-14 Alexander Monakov <amonakov@ispras.ru>
10384
3ba7ca5c 10385 * sel-sched-ir.c (sel_restore_other_notes): Rename to
10386 sel_restore_notes. Update all callers. Call reemit_notes
10387 for all insns.
3baa98a0 10388
6a6a03b4 103892010-01-14 Andrey Belevantsev <abel@ispras.ru>
10390
10391 PR rtl-optimization/42246
10392 * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
10393 loops.
10394
fd23e508 103952010-01-14 Andrey Belevantsev <abel@ispras.ru>
10396
10397 * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
10398 all successors is the same as number of successors in current region.
10399
f7d03b30 104002010-01-14 Alexander Monakov <amonakov@ispras.ru>
10401
10402 * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
10403 to rename is not separable. Otherwise check that its LHS is not NULL.
10404
936f065e 104052010-01-14 Alexander Monakov <amonakov@ispras.ru>
10406
10407 * sel-sched.c (choose_best_reg_1): Loop over all regs for mode.
10408
ba1fc759 104092010-01-14 Alexander Monakov <amonakov@ispras.ru>
10410
10411 * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
10412 available registers when failed to discover LHS register class.
10413 Fix indentation. Update comment.
10414
abb9c563 104152010-01-14 Andrey Belevantsev <abel@ispras.ru>
10416 Alexander Monakov <amonakov@ispras.ru>
10417
10418 PR rtl-optimization/42389
10419 * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
10420 to can_issue_more.
10421 (advance_state_on_fence): Likewise.
10422 (sel_target_adjust_priority): Print debug output only when
10423 sched_verbose >= 4, not 2.
10424 (get_expr_cost): Do not issue all unique insns on the next cycle.
10425 (fill_insns): Initialize can_issue_more from the value saved
10426 with the fence.
10427 * sel-sched-ir.c (flist_add): New parameter issue_more.
10428 Init FENCE_ISSUE_MORE with it.
10429 (merge_fences): Likewise.
10430 (init_fences): Update call to flist_add.
10431 (add_to_fences, add_clean_fence_to_fences)
10432 (add_dirty_fence_to_fences): Likewise.
10433 (move_fence_to_fences): Update call to merge_fences.
10434 (invoke_reorder_hooks): Do not reset can_issue_more on insns from
10435 sched groups.
10436 * sel-sched-ir.h (struct _fence): New field issue_more.
10437 (FENCE_ISSUE_MORE): New accessor macro.
10438
61e213e2 104392010-01-14 Andrey Belevantsev <abel@ispras.ru>
10440
10441 PR rtl-optimization/42388
10442 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
10443 that have no predecessors nor successors. Do not call move_bb_info
10444 for empty blocks outside of current region.
10445
dca13bd7 104462010-01-14 Alexander Monakov <amonakov@ispras.ru>
10447
10448 PR rtl-optimization/42294
10449 * sel-sched-ir.h (struct _sel_insn_data): Update comment.
10450 * sel-sched.c (move_exprs_to_boundary): Transitively add all
10451 originators' originators.
10452
a2d56a0e 104532010-01-14 Alexander Monakov <amonakov@ispras.ru>
10454
10455 PR rtl-optimization/39453
10456 PR rtl-optimization/42246
10457 * sel-sched-ir.c (considered_for_pipelining_p): Do not test
10458 for pipelining_p.
10459 (sel_add_loop_preheaders): Add preheader to last_added_blocks.
10460
93919afc 104612010-01-14 Andrey Belevantsev <abel@ispras.ru>
10462 Alexander Monakov <amonakov@ispras.ru>
10463
10464 PR middle-end/42245
10465 * sel-sched-ir.c (sel_recompute_toporder): New. Use it...
10466 (maybe_tidy_empty_bb): ... here. Make static. Add new
10467 argument. Update all callers.
10468 (tidy_control_flow): ... and here. Recompute topological order
10469 of basic blocks in region if necessary.
10470 (sel_redirect_edge_and_branch): Change return type. Return true
10471 if topological order might have been invalidated.
10472 (purge_empty_blocks): Export and move from...
10473 * sel-sched.c (purge_empty_blocks): ... here.
10474 * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
ce9c1a64 10475 (maybe_tidy_empty_bb): Delete prototype.
93919afc 10476 (purge_empty_blocks): Declare.
10477
28abb7ee 104782010-01-14 Andrey Belevantsev <abel@ispras.ru>
10479
93919afc 10480 PR rtl-optimization/42249
28abb7ee 10481 * sel-sched.c (try_replace_dest_reg): When chosen register
10482 and original register is the same, do not bail out early, but
10483 still check all original insns for validity of replacing destination
10484 register. Set EXPR_TARGET_AVAILABLE to 1 before leaving function
10485 in this case.
10486
7fa61d41 104872010-01-14 Jakub Jelinek <jakub@redhat.com>
10488
10489 PR c/42721
3ba7ca5c 10490 Port from no-undefined-overflow branch:
7fa61d41 10491 2009-03-09 Richard Guenther <rguenther@suse.de>
10492
3ba7ca5c 10493 * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
7fa61d41 10494
20b3ad9e 104952010-01-14 Richard Guenther <rguenther@suse.de>
10496
10497 PR lto/42665
8072d92a 10498 * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
20b3ad9e 10499
ece0be9d 105002010-01-14 Ira Rosen <irar@il.ibm.com>
10501
10502 PR tree-optimization/42709
10503 * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
10504 as scalar type in creation of constant vector operand.
10505
1b374b02 105062010-01-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10507
10508 PR testsuite/42414
10509 * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
10510 (check-parallel-%): Match `testsuite' directory component only
10511 at the end.
10512
5a3530cb 105132010-01-14 Shujing Zhao <pearly.zhao@oracle.com>
10514
10515 PR translation/39521
10516 * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
10517 strings with _().
10518
d8fd6ef9 105192010-01-13 Richard Guenther <rguenther@suse.de>
10520
10521 PR tree-optimization/42730
10522 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
10523 offset zero.
10524
549f381b 105252010-01-13 Steve Ellcey <sje@cup.hp.com>
10526
10527 PR target/pr42542
10528 * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
10529 for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
10530 them signed.
10531
5e6b7db7 105322010-01-13 Bernd Schmidt <bernd.schmidt@analog.com>
10533
10534 * config/bfin/libgcc-bfin.ver: Regenerate based on current
10535 libgcc-std.ver. Add entries for ___smulsi3_highpart and
10536 ___umulsi3_highpart.
10537
f5a15437 10538 * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
10539 rather than schedule_insns if the pass is enabled.
10540
a3c82987 105412010-01-13 Martin Jambor <mjambor@suse.cz>
10542
10543 PR tree-optimization/42704
10544 * tree-sra.c (sra_modify_assign): Do not delete assignments to
10545 SSA_NAMEs.
10546
471403d4 105472010-01-13 Martin Jambor <mjambor@suse.cz>
10548
10549 PR tree-optimization/42703
10550 * tree-sra.c (analyze_access_subtree): Check that we can build a
10551 reference to the original data within the aggregate.
10552
eb4bdd4d 105532010-01-13 Richard Guenther <rguenther@suse.de>
10554
10555 PR tree-optimization/42705
8072d92a 10556 * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
eb4bdd4d 10557
a9b39de8 105582010-01-13 Richard Guenther <rguenther@suse.de>
10559
10560 PR middle-end/42716
10561 * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
10562
c63fbb8a 105632010-01-13 Jakub Jelinek <jakub@redhat.com>
10564
10565 PR debug/41371
10566 * var-tracking.c (values_to_unmark): New variable.
10567 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
10568 values_to_unmark vector. Moved body to...
10569 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
10570 instead queue it into values_to_unmark vector.
10571 (vt_find_locations): Free values_to_unmark vector.
10572
8aca5068 105732010-01-13 Wolfgang Gellerich <gellerich@de.ibm.com>
10574
10575 * config/s390/s390.c (override_options): Set
10576 default of max-pending-list-length to 256
10577
7b76dcb9 105782010-01-13 Richard Guenther <rguenther@suse.de>
10579
10580 PR lto/42678
10581 * tree-pass.h (PROP_gimple_lcx): New.
10582 * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
10583 * passes.c (init_optimization_passes): Move pass_lower_complex_O0
10584 before the final cleanup_eh.
10585 (dump_properties): Dump PROP_gimple_lcx.
10586 * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
10587 (tree_lower_complex_O0): Remove.
10588 (gate_no_optimization): Run if PROP_gimple_lcx is not set.
10589 (pass_lower_complex_O0): Provide PROP_gimple_lcx. Run
10590 tree_lower_complex, schedule TODO_update_ssa.
10591 * lto-streamer-out.c (output_function): Stream the functions
10592 properties.
10593 * lto-streamer-in.c (input_function): Likewise.
10594 (lto_read_body): Do not override them here.
10595
8c212779 105962010-01-12 Joseph Myers <joseph@codesourcery.com>
10597
10598 PR c/42708
10599 * c-typeck.c (build_c_cast): Fold value cast to union type before
10600 wrapping it in a CONSTRUCTOR.
10601
a49d9163 106022010-01-12 Jakub Jelinek <jakub@redhat.com>
10603
10604 PR rtl-optimization/42699
10605 * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
10606 involved.
10607
5c33bb7e 106082010-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10609
10610 * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
10611 SUBTARGET_WARN_UNUSED_SPEC): Move ...
10612 config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
10613 SUBTARGET_WARN_UNUSED_SPEC): ... here
10614 * config/mips/iris5.h (LIBGCC_SPEC): Define.
10615
09532613 106162010-01-12 Julian Brown <julian@codesourcery.com>
10617
3ba7ca5c 10618 * config/arm/neon-schedgen.ml (Utils): Don't try to
09532613 10619 open missing module.
3ba7ca5c 10620 (find_with_result): New.
09532613 10621
9f28a7ee 106222010-01-12 Jakub Jelinek <jakub@redhat.com>
10623
fe8274f8 10624 PR debug/42662
10625 * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
10626 sharing when canonicalizing ({lt,ge}u (plus a b) b).
10627
9f28a7ee 10628 PR tree-optimization/42645
10629 * tree-inline.c (processing_debug_stmt): Move earlier. Make static.
10630 (remap_ssa_name): If processing_debug_stmt and name wasn't found in
10631 decl_map, set processing_debug_stmt to -1 and return name without
10632 any remapping.
10633
bd01eeb1 106342010-01-11 Dave Korn <dave.korn.cygwin@gmail.com>
10635
10636 * doc/install.texi (Specific#x-x-cygwin): Document minimum required
10637 binutils version, and reword target configuration description.
10638
bfbd30e1 106392010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
10640
3ba7ca5c 10641 * config/avr/avr.h (LINKER_NAME): Remove.
bfbd30e1 10642
359b445a 106432010-01-11 Janis Johnson <janis187@us.ibm.com>
10644
10645 PR target/42416
10646 * config/rs6000/rs6000.c (rs6000_override_options): On targets
10647 that support VSX, warn for -mno-altivec if vsx is not disabled,
10648 and disable vsx.
10649
cf210371 106502010-01-11 Joseph Myers <joseph@codesourcery.com>
10651 Shujing Zhao <pearly.zhao@oracle.com>
3ba7ca5c 10652
cf210371 10653 PR translation/42469
10654 * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
10655 fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
10656 character between option name and help text.
10657 * c.opt (imultilib): Likewise.
10658
1d4cb226 106592010-01-10 Rafael Avila de Espindola <espindola@google.com>
10660
10661 * lto-streamer-out.c (output_unreferenced_globals): Output static
10662 variables.
10663
065ffc72 106642010-01-10 Steven Bosscher <steven@gcc.gnu.org>
10665
10666 PR rtl-optimization/42621
10667 * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
10668 optimizing for size.
10669 (duplicate_computed_gotos): Remove now-redundant check.
10670
3ba1a8b2 106712010-01-10 Steve Ellcey <sje@cup.hp.com>
10672
10673 PR target/37454
10674 * configure.ac: Save and restore LDFLAGS and LIBS
10675 * configure: Regenerate.
10676
c7cbde74 106772010-01-10 Richard Guenther <rguenther@suse.de>
10678
10679 PR middle-end/42667
10680 * builtins.c (fold_builtin_strlen): Add type argument and
10681 convert the resulting length to it.
10682 (fold_builtin_1): Adjust.
10683
d3e6bf4e 106842010-01-09 Jakub Jelinek <jakub@redhat.com>
10685
10686 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
10687 sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
10688 1 insn.
10689 (num_insns_constant_wide): Adjust for that change.
10690
388bf4a2 106912010-01-09 Alexandre Oliva <aoliva@redhat.com>
10692
10693 PR debug/42631
10694 * web.c (union_defs): Add used argument, to combine uses of
10695 uninitialized regs.
10696 (entry_register): Adjust type and tests of used argument.
10697 (web_main): Widen used for new use. Pass it to union_defs.
10698 * df.h (union_defs): Adjust prototype.
10699
3b3940d7 107002010-01-09 Alexandre Oliva <aoliva@redhat.com>
10701
10702 PR debug/42630
10703 * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
10704 uses in new incoming argument. Free body.
10705 (reset_debug_uses_in_loop): New.
10706 (analyze_insn_to_expand_var): Call the latter if the former found
10707 anything. Fix whitespace. Reject invalid dest overlaps before
10708 going through all insns in the loop.
10709
08f2a34b 107102010-01-09 Alexandre Oliva <aoliva@redhat.com>
10711
10712 PR debug/42629
10713 * haifa-sched.c (dying_use_p): Debug insns don't count.
10714
4569d18c 107152010-01-09 Alexandre Oliva <aoliva@redhat.com>
10716
10717 PR middle-end/42363
10718 * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
10719 * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
10720 (verify_gimple_call): Reject LHS in noreturn calls.
10721
b123eaab 107222010-01-09 Alexandre Oliva <aoliva@redhat.com>
10723
10724 PR debug/42604
10725 PR debug/42395
10726 * tree-vect-loop-manip.c (adjust_info): New type.
10727 (adjust_vec): New pointer to vector.
10728 (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
10729 (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
10730 (slpeel_update_phis_for_duplicate_loop): Use them.
10731 (slpeel_update_phi_nodes_for_guard1): Likewise.
10732 (slpeel_update_phi_nodes_for_guard2): Likewise.
10733 (slpeel_tree_peel_loop_to_edge): Likewise.
10734 (vect_update_ivs_after_vectorizer): Likewise.
10735
d3ab9b67 107362010-01-09 Alexandre Oliva <aoliva@redhat.com>
10737
10738 * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
10739 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
10740
753631e2 107412010-01-09 Alexandre Oliva <aoliva@redhat.com>
10742
10743 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
10744 bogus uninitialized warning.
10745
ce00c150 107462010-01-09 Richard Guenther <rguenther@suse.de>
10747
10748 PR middle-end/42512
10749 * tree-scalar-evolution.c (interpret_loop_phi): Make sure
10750 the evolution is compatible with the initial condition.
10751
60d645bb 107522010-01-09 Jakub Jelinek <jakub@redhat.com>
10753
10754 * gcc.c (process_command): Update copyright notice dates.
10755 * gcov.c (print_version): Likewise.
10756 * gcov-dump.c (print_version): Likewise.
10757 * mips-tfile.c (main): Likewise.
10758 * mips-tdump.c (main): Likewise.
10759
9643da7d 107602010-01-08 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
10761
10762 PR target/41885
bfbd30e1 10763 * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
9643da7d 10764 (rotlhi3): Delete.
10765 (rotlhi3_8): Delete.
10766 (rotlsi3): Delete.
10767 (rotlsi3_8): Delete.
10768 (rotlsi3_16): Delete.
10769 (rotlsi3_24): Delete.
10770 (rotl<mode>3): New.
10771 (*rotw<mode>3): New.
10772 (*rotb<mode>3): New.
bfbd30e1 10773 * config/avr/avr.c (avr_rotate_bytes): New function.
3ba7ca5c 10774 * config/avr/avr-proto.h (avr_rotate_bytes): New function.
9643da7d 10775
2a156579 107762010-01-08 Steve Ellcey <sje@cup.hp.com>
10777
10778 PR target/37454
10779 * configure.ac: Modify -rdynamic check.
10780 * configure: Regenerate.
10781
c90c8b4e 107822010-01-08 DJ Delorie <dj@redhat.com>
10783
10784 * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
10785 register popping order.
10786
3bfd70ae 107872010-01-08 Richard Guenther <rguenther@suse.de>
10788
10789 PR lto/42528
10790 * c.opt (fsigned-char): Also let LTO handle this option.
10791 (funsigned-char): Likewise.
10792
2727c872 107932010-01-07 Richard Guenther <rguenther@suse.de>
10794
10795 * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
10796 (gimple_op): Likewise.
10797 (gimple_op_ptr): Likewise.
10798 (gimple_assign_set_lhs): Remove gcc_assert.
10799 (gimple_assign_set_rhs1): Likewise.
10800 (gimple_assign_set_rhs2): Likewise.
10801 (gimple_call_set_lhs): Likewise.
10802 (gimple_call_set_fn): Likewise.
10803 (gimple_call_set_fndecl): Likewise.
10804 (gimple_call_fndecl): Likewise.
10805 (gimple_call_return_type): Likewise.
10806 (gimple_call_set_chain): Likewise.
10807 (gimple_call_num_args): Likewise.
10808 (gimple_call_set_arg): Likewise.
10809 (gimple_cond_set_code): Likewise.
10810 (gimple_cond_set_lhs): Likewise.
10811 (gimple_cond_set_rhs): Likewise.
10812 (gimple_cond_set_true_label): Likewise.
10813 (gimple_cond_set_false_label): Likewise.
10814 (gimple_label_set_label): Likewise.
10815 (gimple_goto_set_dest): Likewise.
10816 (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
10817 (gimple_debug_bind_get_value): Likewise.
10818 (gimple_debug_bind_get_value_ptr): Likewise.
10819 (gimple_debug_bind_set_var): Likewise.
10820 (gimple_debug_bind_set_value): Likewise.
10821 (gimple_debug_bind_reset_value): Likewise.
10822 (gimple_debug_bind_has_value_p): Likewise.
10823 (gimple_return_retval_ptr): Remove gcc_assert.
10824 (gimple_return_retval): Likewise.
10825 (gimple_return_set_retval): Likewise.
10826 * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
10827 (safe_referenced_var_iterator): Remove.
10828 (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
10829 * tree-flow-inline.h (gimple_nonlocal_all): Remove.
10830 (fill_referenced_var_vec): Remove.
10831 (first_readonly_imm_use): Remove redundant gcc_assert.
10832 (phi_arg_index_from_use): Combine gcc_asserts.
10833 (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
10834 (first_imm_use_stmt): Remove redundant gcc_assert.
10835 * tree-cfg.c (verify_gimple_call): Verify function and chain
10836 operands. Verify arguments.
10837 (verify_types_in_gimple_stmt): Verify condition code and labels.
10838
35cc69f6 108392010-01-07 Richard Guenther <rguenther@suse.de>
10840
10841 PR tree-optimization/42641
10842 * sese.c (rename_map_elt_info): Use the SSA name version, do
10843 not hash pointers.
10844
93fbbbcc 108452010-01-07 Jakub Jelinek <jakub@redhat.com>
10846
10847 PR tree-optimization/42625
10848 * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
8072d92a 10849 TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
93fbbbcc 10850
c48c273e 108512010-01-07 Duncan Sands <baldrick@free.fr>
10852
10853 * Makefile.in (PLUGIN_HEADERS): Add version.h.
10854
eaf4321b 108552010-01-07 Uros Bizjak <ubizjak@gmail.com>
10856
10857 PR target/42511
10858 * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
10859 note itself is not function_invariant_p.
10860
3a89e5aa 108612009-01-07 Steven Bosscher <steven@gcc.gnu.org>
10862
10863 * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
10864 Do not add the DF_NOTE problem.
10865 * store-motion.c (execute_rtl_store_motion): Likewise.
10866
54c0af3a 108672010-01-07 Martin Jambor <mjambor@suse.cz>
10868
10869 PR tree-optimization/42157
10870 * tree-sra.c (compare_access_positions): Stabilize sort if both
10871 accesses have integer types, return zero immediately if they are the
10872 same.
10873
15a03e56 108742010-01-06 Richard Henderson <rth@redhat.com>
10875
10876 PR middle-end/41883
10877 * haifa-sched.c (add_to_note_list): Merge into ...
10878 (concat_note_lists): ... here, and ...
10879 (unlink_other_notes, rm_other_notes): Merge into...
10880 (remove_notes): ... here. Create REG_SAVE_NOTEs for
3ba7ca5c 10881 NOTE_INSN_EPILOGUE_BEG.
15a03e56 10882
9bc627ae 108832010-01-06 Richard Guenther <rguenther@suse.de>
10884
10885 * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
10886 not inline regular functions into always-inline functions.
10887
98cb9b5b 108882010-01-06 Nick Clifton <nickc@redhat.com>
10889
10890 * config/rx/rx.h (enum rx_cpu_type): Add RX200.
10891 (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
10892 used together.
10893 (OVERRIDE_OPTIONS): Delete.
10894 (OPTIMIZATION_OPTIONS): Define.
10895 (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
10896 * config/rx/rx.c (rx_handle_option): Issue an error message if
10897 -mcpu=rx200 and -fpu are used together.
10898 (rx_set_optimization_options): New function. Issue an error
10899 message if an optimization attribute attempts to reset the FPU/
10900 math optimization pairing.
10901 * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
10902 * config/rx/rx.opt: Set the default to 32-bit doubles.
10903 * config/rx/t-rx: Add multilibs for -nofpu option.
10904 * doc/invoke.texi: Update documentation of RX options.
10905
562ae2d5 109062010-01-06 Richard Guenther <rguenther@suse.de>
10907
10908 * tree-ssa-pre.c (name_to_id): New global.
10909 (alloc_expression_id): Simplify SSA name handling.
10910 (lookup_expression_id): Likewise.
10911 (init_pre): Zero name_to_id.
10912 (fini_pre): Free it.
10913
523ab962 109142010-01-06 Uros Bizjak <ubizjak@gmail.com>
10915
10916 * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
10917
ea386dba 109182010-01-05 H.J. Lu <hongjiu.lu@intel.com>
10919
10920 PR target/42542
10921 * config/i386/sse.md (smaxv2di3): New.
10922 (umaxv2di3): Likewise.
10923 (sminv2di3): Likewise.
10924 (uminv2di3): Likewise.
10925
c310dc53 109262010-01-05 Eric Botcazou <ebotcazou@adacore.com>
10927
10928 PR target/42564
10929 * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
10930 * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
10931 (legitimize_tls_address): Likewise.
10932 (sparc_tls_referenced_p): Likewise.
10933 * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
10934 and adjust calls to legitimize_pic_address.
10935 (legitimate_constant_p) Use sparc_tls_referenced_p.
10936 (legitimate_pic_operand_p): Likewise.
10937 (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
10938 (sparc_tls_symbol_ref_1): Delete.
10939 (sparc_tls_referenced_p): Make static, recognize specific patterns.
10940 (legitimize_tls_address): Make static, handle CONST patterns.
10941 (legitimize_pic_address): Make static, remove unused parameter and
10942 adjust recursive calls.
10943 (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
10944 and adjust call to legitimize_pic_address.
10945 (sparc_output_mi_thunk): Likewise.
10946
eaf4321b 109472010-01-05 Paolo Bonzini <bonzini@gnu.rg>
41188d4b 10948 H.J. Lu <hongjiu.lu@intel.com>
10949
10950 PR target/42542
10951 * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
10952 for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
10953 operands to make them signed.
10954
ef130dc6 10955 Revert:
10956 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
10957
10958 PR target/42542
10959 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
10960 GTU to GT for V4SI and V2DI.
10961
10962 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
10963 (umin<mode>3): Removed.
10964 (uminv8hi3): New.
41188d4b 10965 (uminv4si3): Likewise.
10966
526a5cd9 109672010-01-05 Martin Jambor <mjambor@suse.cz>
10968
10969 PR tree-optimization/42462
10970 * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
10971 current_function_decl to helper functions and macros.
10972
1eb1b33f 109732010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10974
10975 PR bootstrap/41771
10976 * flags.h: Don't include real.h.
10977 (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
10978 HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
10979 * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
10980 HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
10981 * dominance.c: Update copyright.
10982 * gimple.c (walk_gimple_op): Remove inline.
10983 * tree-ssa-reassoc.c: Include real.h.
10984 * Makefile.in (FLAGS_H): Remove $(REAL_H).
10985 (tree-ssa-reassoc.o): Depend on $(REAL_H).
10986
bc9bb967 109872010-01-05 Nick Clifton <nickc@redhat.com>
10988
10989 * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
10990 register to push into the stack frame when the accumulator has to
10991 be saved during interrupts.
10992
cc029bec 109932010-01-05 Eric Fisher <joefoxreal@gmail.com>
10994
10995 * doc/invoke.texi: Remove the documentation about option
10996 -Wunreachable-code.
10997 * common.opt (Wunreachable-code): Preserved for backward
10998 compatibility.
10999 * tree-cfg.c: Remove the implementation of -Wunreachable-code.
11000 * opts.c (common_handle_option): Add OPT_Wunreachable_code to
11001 the backward compatibility flag section.
11002
b3e973fc 110032010-01-05 Richard Guenther <rguenther@suse.de>
11004
11005 * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
11006
028a99ef 110072010-01-05 Jakub Jelinek <jakub@redhat.com>
11008
ce0afe34 11009 PR other/42611
11010 * cfgexpand.c (expand_one_var): Diagnose too large variables.
11011
028a99ef 11012 PR tree-optimization/42508
11013 * tree-sra.c (convert_callers): Check for recursive call
11014 by comparing cgraph nodes instead of decls.
11015 (modify_function): Call ipa_modify_formal_parameters also
11016 on all same_body aliases.
11017
11018 * cgraphunit.c (cgraph_materialize_all_clones): Compare
11019 cgraph nodes when checking for same_body aliases.
11020
59de85de 110212010-01-05 Richard Guenther <rguenther@suse.de>
11022
11023 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
11024 allocation and lookup.
11025 (get_or_alloc_expr_for_constant): Likewise.
11026 (phi_translate): Sink allocation.
11027
88006128 110282010-01-04 Richard Guenther <rguenther@suse.de>
11029
11030 * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
11031 a new entry only if needed.
11032 * tree-ssa-dom.c (lookup_avail_expr): Likewise.
11033 * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
11034 hashtable lookup.
11035 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
11036 the result array.
11037 (phi_translate): Handle CONSTANTs early.
11038
95feb4d6 110392010-01-04 Martin Jambor <mjambor@suse.cz>
11040
11041 PR tree-optimization/42398
11042 * tree-sra.c (struct access): Removed flag grp_different_types.
11043 (dump_access): Do not dump the removed flag.
11044 (sort_and_splice_var_accesses): Do not set the removed flag.
11045 (sra_modify_expr): Check for type compatibility directly.
11046
7103fda3 110472010-01-04 Martin Jambor <mjambor@suse.cz>
11048
11049 PR tree-optimization/42366
11050 * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
11051 edges with variable number of parameters.
11052 * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
11053 flag instead of asserting it.
11054 (ipa_read_node_info): Read uses_analysis_done flag.
11055
84cd88b5 110562010-01-04 Richard Guenther <rguenther@suse.de>
11057
11058 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
11059 iterative_hash_* as intended.
11060 (vn_reference_compute_hash): Likewise. Simplify hashing
11061 SSA names.
11062 (vn_reference_lookup_2): Likewise.
11063 (vn_nary_op_compute_hash): Likewise.
11064 (vn_phi_compute_hash): Likewise.
11065 (expressions_equal_p): Remove strange code.
11066 * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
11067 (pre_expr_hash): Likewise. Simplify hashing SSA names.
11068 (bitmap_insert_into_set_1): Take value-id as parameter.
11069 (add_to_value): Pass it.
11070 (bitmap_insert_into_set): Likewise.
11071 (bitmap_value_insert_into_set): Likewise. Remove redundant check.
11072
87a6a1b5 110732010-01-04 Jakub Jelinek <jakub@redhat.com>
11074
11075 PR driver/42442
11076 * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
11077 (do_self_spec): For switches with SWITCH_IGNORE set set also
11078 SWITCH_IGNORE_PERMANENTLY.
11079 (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
11080 of SWITCH_IGNORE.
11081
27ec1c76 110822010-01-04 Rafael Avila de Espindola <espindola@google.com>
11083
11084 * lto-streamer-out.c (output_unreferenced_globals): Output the full
11085 tree of an unreferenced global var.
11086
ca7ed81e 110872010-01-04 H.J. Lu <hongjiu.lu@intel.com>
11088
11089 PR target/42542
11090 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11091 GTU to GT for V4SI and V2DI.
11092
11093 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11094 (umin<mode>3): Removed.
11095 (uminv8hi3): New.
11096 (uminv4si3): Likewise.
11097
c575c7e4 110982010-01-04 H.J. Lu <hongjiu.lu@intel.com>
11099
11100 PR lto/42581
11101 * collect2.c (main): Turn on trace in collect2 if -v is passed
11102 to gcc with LTO.
11103
7c772cea 111042010-01-03 Jerry Quinn <jlquinn@optonline.net>
11105
11106 * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR. Update
11107 description of expression operand.
11108
fb433b0b 111092010-01-03 Andrew Jenner <andrew@codesourcery.com>
11110
11111 * configure.ac: Add install-html to target_list for Make-hooks.
11112 * configure: Regenerate.
11113 * fortran/Make-lang.in (F95_HTMLFILES): New.
11114 (fortran.html): Use it.
11115 (fortran.install-html): New.
11116 * Makefile.in (install-html): Add lang.install-html.
11117 * java/Make-lang.in (JAVA_HTMLFILES): New.
11118 (java.html): Use it.
11119 (java.install-html): New.
11120 * objc/Make-lang.in (objc.install-html): New.
11121 * objcp/Make-lang.in (obj-c++.install-html): New.
11122 * cp/Make-lang.in (c++.install-html): New.
11123 * ada/gcc-interface/Make-lang.in (ada.install-html): New.
11124 * lto/Make-lang.in (lto.install-html): New.
11125
971080f2 111262010-01-03 H.J. Lu <hongjiu.lu@intel.com>
11127
11128 PR lto/42520
11129 * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
11130
9a5bb191 111312009-01-03 Steven Bosscher <steven@gcc.gnu.org>
11132
11133 PR rtl-optimization/41862
11134 * store-motion.c (store_killed_in_insn, compute_store_table,
11135 remove_reachable_equiv_notes, replace_store_insn,
11136 build_store_vectors): Ignore all DEBUG_INSNs.
11137
50ca7c37 111382010-01-03 H.J. Lu <hongjiu.lu@intel.com>
11139
11140 PR lto/41564
11141 * common.opt: Add dumpdir.
11142
11143 * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
11144 isn't specified.
11145 (option_map): Add --dumpdir.
11146
11147 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
11148
11149 * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
11150
11151 * opts.c (decode_options): Try dump_dir_name first if
11152 dump_base_name isn't an absolute path.
11153 (common_handle_option): Handle OPT_dumpdir.
11154
11155 * toplev.c (dump_dir_name): New.
11156 (print_switch_values): Also ignore -dumpdir.
11157
11158 * toplev.h (dump_dir_name): New.
11159
3328b1fb 111602010-01-03 Richard Guenther <rguenther@suse.de>
11161
11162 PR tree-optimization/42589
11163 * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
11164 double-word expansion of bswap32.
11165
90bd219d 111662010-01-03 Steven Bosscher <steven@gcc.gnu.org>
11167
11168 * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
11169 with BLOCK_FOR_INSN.
11170 * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
11171 * ifcvt.c (noce_get_alt_condition, noce_try_abs,
11172 noce_process_if_block): Likewise.
11173 * gcse.c (compute_local_properties, insert_expr_in_table,
11174 insert_set_in_table, canon_list_insert, find_avail_set,
11175 pre_insert_copy_insn): Likewise.
11176
11177 * basic-block.h (BLOCK_NUM): Move from here...
11178 * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
11179
0460ab00 111802010-01-03 Richard Guenther <rguenther@suse.de>
11181
11182 PR tree-optimization/42438
11183 * tree-ssa-pre.c (struct bb_bitmap_sets): Add
11184 contains_may_not_return_call flag.
11185 (BB_MAY_NOTRETURN): New.
11186 (valid_in_sets): Trapping nary operations are not valid
11187 in blocks that may not return.
8072d92a 11188 (insert_into_preds_of_block): Remove check for trapping expressions.
0460ab00 11189 (compute_avail): Compute also BB_MAY_NOTRETURN.
11190
bc815360 111912010-01-03 Gerald Pfeifer <gerald@pfeifer.com>
11192
11193 * doc/invoke.texi: Add 2010 to copyright years.
11194
6cd8247b 111952010-01-03 Eric Botcazou <ebotcazou@adacore.com>
11196
11197 * config/sparc/sparc.c: Fix formatting nits.
11198
21113174 111992010-01-02 Gerald Pfeifer <gerald@pfeifer.com>
854e880b 11200 Alexander Monakov <amonakov@ispras.ru>
21113174 11201
11202 * doc/invoke.texi (Optimize Options): Reword introduction a bit.
11203
8b938617 112042010-01-02 Richard Guenther <rguenther@suse.de>
11205
11206 PR middle-end/42577
11207 * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
11208 (simplify_switch_using_ranges): Mark to be removed edges
11209 as non-executable.
11210
18d8a00d 112112010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11212
64ad90ab 11213 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
11214
18d8a00d 11215 * collect2.c (scan_libraries): Add missing argument in call to
11216 scan_prog_file.
11217
112182010-01-02 Uros Bizjak <ubizjak@gmail.com>
11219
11220 PR target/42448
11221 * config/alpha/predicates.md (aligned_memory_operand): Return false
11222 for CQImode.
11223 (unaligned_memory_operand): Return true for CQImode.
11224 * config/alpha/alpha.c (get_aligned_mem): Assert that location
11225 doesn not cross aligned SImode word boundary.
11226
112272010-01-02 Anatoly Sokolov <aesok@post.ru>
11228
11229 * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
11230 Remove.
11231 * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
11232 avr_change_section, avr_reg_class_from_letter) : Remove declaration.
11233
112342010-01-02 Richard Guenther <rguenther@suse.de>
11235
11236 PR lto/41597
11237 * toplev.c (compile_file): Emit LTO marker properly. Change
11238 it to __gnu_lto_v1.
11239 * collect2.c (scan_prog_file): Adjust for changed LTO marker.
51eafa60 11240
6b25c196 112412010-01-01 Richard Guenther <rguenther@suse.de>
11242
11243 PR debug/42455
5e46378b 11244 * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
6b25c196 11245
f54ef8b6 112462010-01-01 Richard Guenther <rguenther@suse.de>
11247
11248 PR c/42570
11249 * c-decl.c (grokdeclarator): For zero-size arrays force
11250 structural equality checks as layout_type does.
11251
50d268b3 112522010-01-01 H.J. Lu <hongjiu.lu@intel.com>
11253
11254 * builtins.c: Update copyright to 2010.
11255
151a56e7 112562010-01-01 H.J. Lu <hongjiu.lu@intel.com>
b21341a3 11257
11258 PR lto/42531
151a56e7 11259 * lto-streamer-out.c (produce_asm): Revert the last change.
b21341a3 11260 (copy_function): Likewise.
11261
151a56e7 11262 * lto-streamer.c (lto_get_section_name): Skip any leading
11263 asterisk in name.
16fcf0f4 11264
151a56e7 112652010-01-01 Richard Guenther <rguenther@suse.de>
4ff97393 11266
151a56e7 11267 PR middle-end/42559
11268 * builtins.c (get_object_alignment): Do not use DECL_ALIGN
11269 for LABEL_DECLs.
7dfbd804 11270
11271\f
151a56e7 11272Copyright (C) 2010 Free Software Foundation, Inc.
7dfbd804 11273
11274Copying and distribution of this file, with or without modification,
11275are permitted in any medium without royalty provided the copyright
11276notice and this notice are preserved.