OSDN Git Service

libiberty/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-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
43 2010-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
53 2010-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
58 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
59
60         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic):
61         Remove.
62
63 2010-05-26  Richard Guenther  <rguenther@suse.de>
64
65         * opts.c (common_handle_option): Handle OPT_Ofast.
66
67 2010-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
103 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
104
105         * config/picochip/picochip.md (movsi): Split a movsi from a
106         const after reload.
107
108 2010-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
115 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
116
117         * ggc-common.c (ggc_free_overhead): Allow empty slot.
118
119 2010-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
128 2010-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
137 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
138
139         * c-typeck.c: Do not include expr.h.
140
141 2010-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
155 2010-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
163 2010-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
204 2010-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
209 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
210
211         * attribs.c: Do not include rtl.h.
212         * Makefile.in: Update dependencies.
213
214 2010-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
220 2010-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
226 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
227
228         * Makefile.in (EXCEPT_H): Fix typo.
229
230 2010-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
235 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
236
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
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
252 2010-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
258 2010-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
264 2010-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
270 2010-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
284 2010-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
291 2010-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
299 2010-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
309 2010-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
314 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
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
322 2010-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
329 2010-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
335 2010-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
340 2010-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
347 2010-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
355 2010-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
384 2010-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
389 2010-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
402 2010-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
407 2010-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
416 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
417
418         * doc/makefile.texi (Makefile): Mention stages 'profile'
419         and 'feedback' for profiledbootstrap.
420
421 2010-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
427 2010-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
441 2010-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.
453         * Makefile.in: Update dependencies.
454
455 2010-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
461 2010-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
470 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
471
472         PR target/43869
473         * config/i386/i386.c: Make sure that the correct regparm is passed.
474
475 2010-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
484 2010-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
524 2010-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
538 2010-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
547 2010-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
556 2010-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
564 2010-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
570 2010-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
579 2010-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
770 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
771
772         * tree-ssa-structalias.c: Remove tm_p.h from include.
773
774 2010-05-21  Jeff Law  <law@redhat.com>
775
776         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
777
778 2010-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
784 2010-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
790 2010-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
818 2010-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
823 2010-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
838 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
839
840         * config.gcc (sparc64-*-rtems*): New target.
841
842 2010-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
847 2010-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
895 2010-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
901 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
902
903         PR/44139
904         * varasm.c (emutls_decl): Merge attributes to new decl.
905
906 2010-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
912 2010-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
920 2009-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
928 2010-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
945 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
946
947         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail
948         out if !cond.
949
950 2010-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
959 2010-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
965 2010-05-20  Jan Hubicka  <jh@suse.cz>
966
967         PR middle-end/44197
968         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
969
970 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
971
972         PR bootstrap/43870
973         * df-scan.c (df_ref_compare): Stabilize sort.
974
975 2010-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
983 2010-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
989 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
990
991         * config/mips/mips-dsp.md (add<DSPV:mode>3,
992         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
993
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
999 2010-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
1006 2010-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
1014 2010-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
1025 2010-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
1041 2010-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
1063 2010-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
1070 2010-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
1075 2010-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
1085 2010-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
1096 2010-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
1113 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
1114
1115         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
1116         to tree.
1117         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
1118         also checks for a constant int vs.  non-constant but
1119         loop-invariant steps.
1120         (find_or_create_group): Change the sort algorithm to only consider
1121         steps that are constant ints.
1122         (idx_analyze_ref): Adopt code to handle a tree instead of a
1123         HOST_WIDE_INT for step.
1124         (gather_memory_references_ref): Handle tree instead of int and be
1125         prepared to see a NULL_TREE.
1126         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
1127         prefetches if the step cannot be calculated at compile time.
1128         (issue_prefetch_ref): Issue prefetches for non-constant but
1129         loop-invariant steps.
1130
1131 2010-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
1139 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1140
1141         * tree.h (build_call_list): Remove.
1142         * tree.c (build_call_list): Remove.
1143
1144 2010-05-18  Jan Hubicka  <jh@suse.cz>
1145
1146         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
1147
1148 2010-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
1153 2010-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
1160 2010-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
1174 2010-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
1179 2010-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
1187 2010-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
1193 2010-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
1201 2010-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
1208 2010-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
1222 2010-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
1228 2010-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
1234 2010-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
1251 2010-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.
1257         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
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
1285 2010-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
1334 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1335
1336         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
1337
1338 2010-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
1364 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1365
1366         PR bootstrap/42347
1367         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
1368         to have no fallthru edge.
1369
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
1376 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1377
1378         * tree.c (build_function_type_list_1): Remove bogus assert condition.
1379
1380 2010-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
1390 2010-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
1401 2010-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
1413 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
1414
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.
1418
1419 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1420
1421         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
1422         build.
1423
1424 2010-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
1429 2010-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
1438 2010-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.
1447         (lto_cgraph_encoder_encode_body_p,
1448         lto_set_cgraph_encoder_encode_body): New.
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
1467 2010-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
1476 2010-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
1482 2010-05-16  Jan Hubicka  <jh@suse.cz>
1483
1484         * ipa.c (function_and_variable_visibility): Also bring local all
1485         aliases.
1486
1487 2010-05-16  Richard Guenther  <rguenther@suse.de>
1488
1489         * alias.c (nonoverlapping_memrefs_p): Remove use of
1490         IPA type-escape information.
1491
1492 2010-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
1513 2010-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
1526 2010-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
1531 2010-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
1549 2010-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
1555 2010-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
1560 2010-05-15  Jason Merrill  <jason@redhat.com>
1561
1562         * c.opt: Add -fnothrow-opt.
1563
1564 2010-05-15  Jan Hubicka  <jh@suse.cz>
1565
1566         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
1567         analyzed.
1568         * passes.c (ipa_write_summaries): Write all analyzed nodes.
1569
1570 2010-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
1613 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
1614
1615         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
1616
1617 2010-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
1629 2010-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
1640 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
1641
1642         * tree.h (ctor_to_list): Delete.
1643         * tree.c (ctor_to_list): Delete.
1644
1645 2010-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.
1655         * lto-cgraph.c (referenced_from_this_partition_p,
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
1664 2010-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
1670 2010-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
1714 2010-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
1720 2010-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
1741 2010-05-14  Jan Hubicka  <jh@suse.cz>
1742
1743         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
1744
1745 2010-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
1751 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
1752
1753         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
1754
1755 2010-05-14  Jason Merrill  <jason@redhat.com>
1756
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
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
1768 2010-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.
1772         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
1773         re-enqueueing node.
1774
1775 2010-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
1781 2010-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.
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.
1806         * config/i386/i386-c.c (ix86_target_macros_internal):
1807         Add PROCESSOR_BDVER1.
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,
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):
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.
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.
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
1841 2010-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
1846 2010-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
1851 2010-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
1861 2010-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
1866 2010-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
1874 2010-05-13  Jan Hubicka  <jh@suse.cz>
1875
1876         * varpool.c (decide_is_variable_needed): Drop code checking
1877         TREE_SYMBOL_REFERENCED.
1878
1879 2010-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
1886 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
1887
1888         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
1889
1890 2010-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
1896 2010-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
1902 2010-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.
1908
1909 2010-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
1922 2010-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
1930 2010-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
1937         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
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
1959 2010-05-12  Jan Hubicka  <jh@suse.cz>
1960
1961         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
1962         flag.
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
1969         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
1970         flags.
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
1975 2010-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
1985 2010-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
2018 2010-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
2029 2010-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
2034 2010-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
2047 2010-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
2054 2010-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
2062 2010-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
2069 2010-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
2082 2010-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
2087 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
2088
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
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
2108 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
2109
2110         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
2111         for __stack_chk_guard.
2112
2113 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2114
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
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
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
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
2144 2010-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
2149 2010-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
2157 2010-05-11  Jan Hubicka  <jh@suse.cz>
2158
2159         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
2160         Mark as used.
2161
2162 2010-05-11  Jan Hubicka  <jh@suse.cz>
2163
2164         PR tree-optimize/44063
2165         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
2166         queue.
2167         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
2168         limits.
2169         (estimate_function_body_sizes): Compute sizes even when disregarding.
2170
2171 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
2172
2173         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
2174
2175 2010-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
2180 2010-05-11  Jan Hubicka  <jh@suse.cz>
2181
2182         * matrix-reorg.c (matrix_reorg): Rebuild edges.
2183
2184 2010-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.
2188         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
2189         heap.
2190
2191 2010-05-11  Jan Hubicka  <jh@suse.cz>
2192
2193         * cgraphbuild.c (cgraph_rebuild_references): New.
2194         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
2195         out extern inlines.
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
2200 2010-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
2206 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2207
2208         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
2209         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
2210         cache size.
2211
2212 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2213
2214         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
2215
2216 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2217
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
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
2232 2010-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
2238 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2239
2240         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
2241
2242 2010-05-10  Jan Hubicka  <jh@suse.cz>
2243
2244         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
2245         commited change.
2246
2247 2010-05-10  Jan Hubicka  <jh@suse.cz>
2248
2249         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
2250         Allocate encoders.
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
2259 2010-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
2266 2010-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
2272 2010-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.
2278         * tree-parloops.c (gather_scalar_reductions): Use
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
2287 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2288             Vladimir Makarov  <vmakarov@redhat.com>
2289
2290         PR rtl-optimization/44012
2291         * ira-build.c (remove_unnecessary_allocnos): Nullify
2292         regno_allocno_map of the removed allocno.
2293
2294 2010-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
2300 2010-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
2309 2010-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
2314 2010-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
2334 2010-05-10  Richard Guenther  <rguenther@suse.de>
2335
2336         PR tree-optimization/44050
2337         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
2338
2339 2010-05-10  Wei Guozhi  <carrot@google.com>
2340
2341         PR target/42879
2342         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
2343
2344 2010-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
2353 2010-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
2359 2010-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
2370 2010-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
2376 2010-05-09  Richard Guenther  <rguenther@suse.de>
2377
2378         * gcc.c (store_arg): Handle temporary file deletion for
2379         joined arguments.
2380
2381 2010-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
2387 2010-05-09  Richard Guenther  <rguenther@suse.de>
2388
2389         * gcc.c (store_arg): Revert last change.
2390
2391 2010-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
2397 2010-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
2403 2010-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
2408 2010-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
2413 2010-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
2448 2010-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
2455 2010-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
2461 2010-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
2467 2010-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
2474 2010-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
2481 2010-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
2486 2010-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
2493 2010-05-07  Richard Guenther  <rguenther@suse.de>
2494
2495         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
2496         (run_gcc): Handle LTRANS phase invocation.
2497         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
2498
2499 2010-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
2504 2010-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
2508 2010-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
2514 2010-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
2519 2010-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
2525 2010-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
2574 2010-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
2618 2010-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
2628 2010-05-06  Jason Merrill  <jason@redhat.com>
2629
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
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
2640 2010-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.
2669         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
2670         (Specific, mips-sgi-irix5): Document removal.
2671         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
2672         Remove references to older IRIX 6 releases and the O32 ABI.
2673
2674 2010-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
2680 2010-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
2686 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
2687
2688         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
2689
2690 2010-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
2696 2010-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.
2705         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
2706         (init_pre, fini_pre): Allocate and free bitmaps.
2707         (execute_pre): Insert insns on edges before elimination.
2708
2709 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
2710
2711         * tree.c (initializer_zerop): Handle STRING_CST.
2712
2713 2010-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.
2727         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
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
2740 2010-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
2746 2010-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.
2757         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
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
2762 2010-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
2773 2010-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.
2796         (output_cgraph): Compute boundary based on references; output refs.
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
2813 2010-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.
2819         (vectorizable_conversion, vectorizable_operation,
2820         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
2821
2822 2010-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
2831 2010-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
2841 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
2842
2843         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
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
2851 2010-05-05  Jason Merrill  <jason@redhat.com>
2852
2853         PR debug/43370
2854         * c-common.c (handle_aligned_attribute): Respect
2855         ATTR_FLAG_TYPE_IN_PLACE.
2856
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
2866 2010-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
2872 2010-05-05  Jan Hubicka  <jh@suse.cz>
2873
2874         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
2875         handle aliases.
2876
2877 2010-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
2882 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
2883
2884         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
2885
2886 2010-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
2893 2010-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
2906 2010-05-05  Jan Hubicka  <jh@suse.cz>
2907
2908         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
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,
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.
2927         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
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
2935 2010-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
2940 2010-05-05  Jan Hubicka  <jh@suse.cz>
2941
2942         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
2943         size.
2944
2945 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2946
2947         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
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
2970 2010-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
2976 2010-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.
2986
2987 2010-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
2993 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2994
2995         PR target/43799
2996         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
2997         (*sse_prologue_save_insn1): Likewise.
2998         (SSE prologue save splitter): Likewise.
2999
3000 2010-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
3010 2010-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
3038 2010-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
3045 2010-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
3058 2010-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
3068 2010-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
3077 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
3078
3079         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
3080
3081 2010-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
3087 2010-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
3093 2010-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
3098 2010-05-03  David Ung <davidu@mips.com>
3099             James E. Wilson  <wilson@codesourcery.com>
3100
3101         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
3102         emit the trap instruction before the divide for TUNE_74K.
3103
3104 2010-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
3170 2010-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
3180 2010-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
3186 2010-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
3192 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
3193
3194         PR target/43888
3195         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
3196
3197 2010-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
3202 2010-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
3209 2010-05-02  Richard Guenther  <rguenther@suse.de>
3210
3211         PR tree-optimization/43879
3212         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
3213
3214 2010-05-02  Bruno Haible  <bruno@clisp.org>
3215
3216         * doc/extend.texi (Function Attributes): Fix a typo.
3217
3218 2010-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.
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.
3229         * config/i386/i386.c (output_pic_addr_const): Ditto.
3230         (print_operand): Ditto.
3231
3232 2010-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.
3246
3247 2010-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
3269 2010-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
3276 2010-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
3285 2010-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
3291 2010-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
3297 2010-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
3303 2010-04-30  Jan Hubicka  <jh@suse.cz>
3304
3305         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
3306         varpool.
3307         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
3308
3309 2010-04-30  Jan Hubicka  <jh@suse.cz>
3310
3311         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
3312         New.
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
3318 2010-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
3331 2010-04-30  Jan Hubicka  <jh@suse.cz>
3332
3333         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
3334         references.
3335
3336 2010-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
3341 2010-04-30  Richard Guenther  <rguenther@suse.de>
3342
3343         * tree-ssa-structalias.c (get_constraint_for_1): Generate
3344         constraints for CONSTRUCTOR.
3345
3346 2010-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
3352 2010-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
3367 2010-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
3372 2010-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
3387 2010-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,
3397         for_functions_valid, global info, process and output flags.
3398         (input_overwrite_node): Initialize estimated stack size and
3399         estimated growth.  Do not read flags we no longer store.
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
3404 2010-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
3410 2010-04-30  Richard Guenther  <rguenther@suse.de>
3411
3412         * builtins.c (fold_builtin_1): Delete free (0).
3413
3414 2010-04-29  Jan Hubicka  <jh@suse.cz>
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.
3426         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
3427         Collect.
3428
3429 2010-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.
3440
3441 2010-04-29  Jon Grant  <04@jguk.org>
3442
3443         * collect2.c (vflag): Change type from int to bool.
3444         (debug): Likewise.
3445         (helpflag): New global bool.
3446         (main): Set vflag and debug with boolean, not integer truth values.
3447         Accept new "--help" option and output usage text if found.
3448         * collect2.h (vflag): Update prototype.
3449         (debug): Likewise.
3450
3451 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3452
3453         PR bootstrap/43936
3454         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
3455
3456 2010-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
3462 2010-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
3470 2010-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
3477 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
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
3485 2010-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.
3525         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
3526         cgraph.
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
3555 2010-04-28  Mike Stump  <mikestump@comcast.net>
3556
3557         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
3558
3559 2010-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
3567 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3568
3569         Uniquization of constants at the Tree level
3570         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
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.
3574         * gimplify.c (gimplify_init_constructor): When using block copy, first
3575         uniquize the constant constructor on the RHS.
3576         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
3577         DECL_IN_CONSTANT_POOL flag.
3578         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
3579         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
3580         constant pool.
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.
3589         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
3590         its expression.
3591         (output_object_block): Likewise and assemble the expression.
3592
3593 2010-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
3601 2010-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
3647 2010-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
3652 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3653
3654         PR target/22224
3655         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
3656
3657 2010-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
3713         ipa_free_all_structures_after_iinln.
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.
3735         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
3736         of indirect edges.
3737
3738 2010-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.
3745         (create_function_info_for): Do not increment stats.total_vars here.
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
3754 2010-04-28  Richard Guenther  <rguenther@suse.de>
3755
3756         PR c++/43880
3757         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
3758
3759 2010-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
3777 2010-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
3783 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
3784
3785         * tree.h: Fix truncated long macros.
3786
3787 2010-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.
3798         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
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
3809 2010-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.
3815         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
3816         flag for clones.
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
3826 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
3827
3828         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
3829
3830 2010-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
3840 2010-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
3848 2010-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
3855 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
3856
3857         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
3858
3859 2010-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
3866 2010-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
3872 2010-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
3877 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
3878
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
3883 2010-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
3910 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
3911
3912         PR target/43889
3913         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
3914         Add missing earlyclobber for second alternative.
3915
3916 2010-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
3922 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
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
3930 2010-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
3935 2010-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
3943 2010-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
3954 2010-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
3962 2010-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
3968 2010-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.
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.
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.
3985         (compute_function_frequency): Set noreturn functions to be executed
3986         once.
3987         (choose_function_section): Update.
3988         * lto-streamer-in.c (input_function): Do not input function frequency.
3989         * function.c (allocate_struct_function): Do not initialize function
3990         frequency.
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
4000 2010-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
4009 2010-04-26  Jan Hubicka  <jh@suse.cz>
4010
4011         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
4012
4013 2010-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
4019 2010-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
4026 2010-04-26  Ira Rosen  <irar@il.ibm.com>
4027
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.
4033         (vect_compute_data_refs_alignment): Likewise.
4034         (vect_verify_datarefs_alignment): Skip statements marked as
4035         unvectorizable. Add print.
4036         (vect_analyze_group_access): Skip statements that can't be
4037         vectorized. If the analysis fails, mark the statement as
4038         unvectorizable if vectorizing basic block.
4039         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
4040         * tree-vect-stmts.c (vectorizable_store): Fix the number of
4041         generated stmts for SLP.
4042         (new_stmt_vec_info): Initialize the new field.
4043         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
4044         statements marked as unvectorizable.
4045
4046 2010-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
4068 2010-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
4080 2010-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
4086 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
4087
4088         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
4089
4090 2010-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
4096 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4097
4098         * toplev.c (general_init): Set default for fdiagnostics-show-option.
4099         * opts.c (common_handle_option): Allow disabling it.
4100         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
4101
4102 2010-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
4107 2010-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
4112 2010-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
4118 2010-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
4128 2010-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
4134 2010-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
4140 2010-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
4153 2010-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
4159 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
4160
4161         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
4162
4163 2010-04-22  Ira Rosen  <irar@il.ibm.com>
4164
4165         PR tree-optimization/43842
4166         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
4167         loop unrolling in update of exit phis. Fix comment.
4168         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
4169         least two reduction statements in the loop before starting SLP
4170         analysis.
4171
4172 2010-04-22  Nick Clifton  <nickc@redhat.com>
4173
4174         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
4175
4176 2010-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
4181 2010-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
4224 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4225
4226         * optabs.h (expand_widening_mult): Declare.
4227
4228 2010-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
4234 2010-04-22  Nick Clifton  <nickc@redhat.com>
4235
4236         * config/stormy16/stormy16.c
4237         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
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
4247 2010-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
4258 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
4259
4260         * config/i386/i386.md: Use {} around multi-line preparation statements.
4261
4262 2010-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
4281 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4282
4283         PR middle-end/29274
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.
4288         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
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
4298 2010-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
4308 2010-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
4330 2010-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
4336 2010-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
4342 2010-04-21  Jan Hubicka  <jh@suse.cz>
4343
4344         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
4345
4346 2010-04-21  Jan Hubicka  <jh@suse.cz>
4347
4348         * varpool.c (decide_is_variable_needed): Variable is always needed
4349         during ltrans.
4350
4351 2010-04-21  Jan Hubicka  <jh@suse.cz>
4352
4353         * opts.c (decode_options): Enable pure-const pass for whopr.
4354
4355 2010-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
4363 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
4364
4365         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
4366
4367 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
4368
4369         * config/i386/i386.md (x86_shrd): Add athlon_decode and
4370         amdfam10_decode attributes.
4371
4372 2010-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
4381 2010-04-21  Richard Guenther  <rguenther@suse.de>
4382
4383         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
4384         to non-pointer objects.
4385
4386 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4387
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
4391         loc_list->first->next is NULL instead of comparing ->first with ->last.
4392         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
4393         to add_var_loc_to_decl.
4394
4395         * dwarf2out.c (output_call_frame_info): For dw_cie_version
4396         >= 4 add also address size and segment size fields into CIE header.
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
4408 2010-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
4419 2010-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
4425 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4426
4427         * builtins.c (fold_builtin_cproj): Fold more cases.
4428
4429 2010-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
4436 2010-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
4451 2010-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
4460 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
4461
4462         PR middle-end/41952
4463         * fold-const.c (fold_comparison): New folding rule.
4464
4465 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
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
4482 2010-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.
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.
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.
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.
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
4510 2010-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
4516 2010-04-20  Richard Guenther  <rguenther@suse.de>
4517
4518         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
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
4523 2010-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
4533 2010-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
4539 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
4540
4541         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
4542         ar.lc fixed and call-used.
4543
4544         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
4545
4546 2010-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
4554 2010-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
4559 2010-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
4573 2010-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
4582 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
4583
4584         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
4585         for -gdwarf-4.
4586
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
4591 2010-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
4596 2010-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
4615 2010-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
4621 2010-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
4628 2010-04-19  Richard Guenther  <rguenther@suse.de>
4629
4630         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
4631         * configure: Re-generated.
4632
4633 2010-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
4639 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
4640
4641         PR target/43766
4642         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
4643
4644 2010-04-19  Jie Zhang  <jie@codesourcery.com>
4645
4646         PR target/43662
4647         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
4648
4649 2010-04-19  Ira Rosen  <irar@il.ibm.com>
4650
4651         PR tree-optimization/37027
4652         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
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.
4663         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
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.
4673         (vect_supported_load_permutation_p): Allow load permutations for
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.
4682         (vect_get_slp_defs): Add new argument, pass it to
4683         vect_get_constant_vectors.
4684         (vect_schedule_slp_instance): Remove SLP tree root statements.
4685
4686 2010-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
4692 2010-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
4710 2010-04-18  Matthias Klose  <doko@ubuntu.com>
4711
4712         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
4713
4714 2010-04-18  Ira Rosen  <irar@il.ibm.com>
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
4720 2010-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.
4727         * i386.c (setup_incoming_varargs_64): Do not compute jump
4728         destination here.
4729         (ix86_gimplify_va_arg): Update alignment needed.
4730         (ix86_local_alignment): Do not align all local arrays to 128bit.
4731
4732 2010-04-17  Jan Hubicka  <jh@suse.cz>
4733
4734         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
4735
4736 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
4737
4738         * arm.md (negdi2): Remove redundant code to force values into a
4739         register.
4740
4741 2010-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
4750 2010-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
4769 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4770
4771         * config/arm/arm.c (arm_gen_constant): Remove unused variable
4772         can_shift.
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
4777 2010-04-16  Jeff Law  <law@redhat.com>
4778
4779         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
4780         needing assignment rather than doing a two-phase assignment.  Remove
4781         unused variable 'm'.
4782
4783 2010-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
4788 2010-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
4799 2010-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.
4803
4804 2010-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
4812 2010-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
4817 2010-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
4824 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
4825
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
4833         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
4834
4835         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
4836         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
4837         #xx:3 and #xx:4 mode.
4838
4839         * config/h8300/h8300.md (inverted load with HImode dest): Add
4840         support for H8300SX.
4841
4842         * config/h8300/predicate.md (bit_operand): Allow immediate values that
4843         satisfy 'U' constraint.
4844
4845 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4846
4847         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
4848         * configure: Regenerate.
4849         * config.in: Regenerate.
4850         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
4851         works.
4852
4853 2010-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
4861 2010-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
4876 2010-04-16  Diego Novillo  <dnovillo@google.com>
4877
4878         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
4879
4880 2010-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
4887 2010-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
4892 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
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
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
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
4911 2010-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
4917 2010-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
4931 2010-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
4938 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
4939
4940         * configure: Regenerated.
4941
4942 2010-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
4947 2010-04-15  Richard Guenther  <rguenther@suse.de>
4948
4949         * alias.c (alias_set_subset_of): Handle alias-set zero
4950         child properly.
4951
4952 2010-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
4961 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
4962
4963         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
4964
4965 2010-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.
5008         (remap_gimple_stmt): Reset call clobber/use information if necessary.
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
5029 2010-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
5053 2010-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
5066 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
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
5072 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5073
5074         PR target/43742
5075         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
5076         in an input-only operand.
5077
5078 2010-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.
5083         * double-int.c (double_int_lshift, double_int_lshift): New functions.
5084         (double_int_negative_p): Remove.
5085         * tree.h (lshift_double, rshift_double):
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
5094 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
5095
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
5107 2010-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
5113 2010-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
5119 2010-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,
5127         maxminfprefix and logicprefix for rename.
5128         * config/i386/sse.md: Ditto.
5129         * config/i386/sync.md (sync_<code><mode>): Update for
5130         logicprefix rename.
5131
5132 2010-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
5138 2010-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
5145 2010-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
5159 2010-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
5167 2010-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
5178 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5179
5180         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
5181         from insn template.
5182
5183 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5184
5185         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
5186
5187 2010-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
5202 2010-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
5217 2010-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
5224 2010-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
5231 2010-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
5237 2010-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.
5242         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
5243         * ggc-common.c: Include timevar.h.
5244         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
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
5252 2010-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
5259 2010-04-13  Richard Guenther  <rguenther@suse.de>
5260
5261         PR bootstrap/43737
5262         * builtins.c (c_readstr): Fix assert.
5263
5264 2010-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
5282 2010-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
5301 2010-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
5322 2010-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
5327 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5328             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5329
5330         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
5331         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
5332         UNITS_PER_LONG where it is ABI relevant.
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
5363         deal with 64 bit registers.
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
5370 2010-04-13  Simon Baldwin  <simonb@google.com>
5371
5372         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
5373
5374 2010-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
5380 2010-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
5393 2010-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
5410         * common.opt (iplugindir): New option to set the plugin directory.
5411
5412 2010-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
5442 2010-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
5447 2010-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
5462 2010-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
5481 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5482
5483         * doc/contrib.texi (Contributors, Rainer Orth): Update.
5484
5485 2010-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
5491 2010-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
5497 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5498
5499         * function.c (assign_parms_initialize_all): Add unused attribute
5500         to fntype.
5501
5502 2010-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
5534 2010-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.
5539         (cgraph_decide_inlining): Do not handle always-inline specially.
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
5557 2010-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
5563 2010-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
5571 2010-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
5576 2010-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
5584 2010-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
5589 2010-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.
5594         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
5595         using any_shiftrt code iterator.
5596         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
5597         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
5598         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
5599         pattern from corresponding peephole2 patterns.
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.
5608
5609 2010-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
5615 2010-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
5625         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
5626         and *lshrdi3_1_rex64 using SWI mode iterator.
5627         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
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
5638 2010-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
5653         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
5654         and *ashrdi3_1_rex64 using SWI mode iterator.
5655         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
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.
5665         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
5666         * config/i386/i386.c (ix86_split_ashr): Update for renamed
5667         x86_shift<mode>_adj_3 expanders.
5668
5669 2010-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
5678 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
5679
5680         * ira-costs.c (record_reg_classes): Ignore alternatives that are
5681         not enabled.
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
5689         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
5690         if doing so would replace the entire pattern.
5691
5692 2010-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
5700 2010-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
5707 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
5708             Bernd Schmidt  <bernds@codesourcery.com>
5709
5710         * loop-invariant.c (replace_uses): New static function.
5711         (move_invariant_reg): Use it to ensure we can replace the uses.
5712
5713 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
5714
5715         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
5716         function template.
5717         (picochip_override_options): Enable section anchors only above -O1.
5718         (picochip_reorg): Fixed a couple of build warnings.
5719
5720 2010-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
5728 2010-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
5737 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5738
5739         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
5740         * config/sol2-gld.h: ... here.
5741         * config.gcc (sparc*-*-solaris2*): Reflect this.
5742         (i[34567]86-*-solaris2*): Use it.
5743
5744 2010-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
5750 2010-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
5764 2010-04-09  Jason Merrill  <jason@redhat.com>
5765
5766         PR c++/42623
5767         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
5768         for incomplete type.
5769
5770         PR c++/41788
5771         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
5772         based on a warning flag.
5773
5774 2010-04-09  Richard Guenther  <rguenther@suse.de>
5775
5776         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
5777
5778 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
5779
5780         PR bootstrap/43684
5781         * varasm.c (default_assemble_visibility): Wrap vars that are
5782         set, but unused, by targets without GAS.
5783         * config/rs6000/rs6000.c: (paired_emit_vector_compare):
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.
5789
5790 2010-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
5819 2010-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
5831 2010-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
5836 2010-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.
5840         (supportable_widening_operation, supportable_narrowing_operation):
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
5864 2010-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.
5879         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
5880         * doc/extend.texi: Add documentation for thiscall.
5881
5882 2010-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
5888 2010-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
5898 2010-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
5903         loop unswitch conditions here from ...
5904         (tree_unswitch_single_loop): ... here.
5905
5906 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
5907
5908         * tree-if-conv.c: Fix comments and simplify logic.
5909
5910 2010-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
5916 2010-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.
5924
5925 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
5926             Wolfgang Gellerich  <gellerich@de.ibm.com>
5927
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.
5937
5938 2010-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
5943 2010-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
5949 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
5950
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.
5954
5955 2010-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
5962 2010-04-08  Richard Guenther  <rguenther@suse.de>
5963
5964         PR tree-optimization/43679
5965         * tree-ssa-pre.c (eliminate): Only propagate copies.
5966
5967 2010-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
5973 2010-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
5979 2010-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
5987 2010-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
5993 2010-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
6002 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6003
6004         * doc/install.texi (Configuration): Move description of
6005         --enable-lto, --with-libelf*, --enable-gold from Java section to
6006         general section.
6007
6008         * doc/generic.texi (Working with declarations)
6009         (Function Properties, C and C++ Trees): Fix typos.
6010         * doc/sourcebuild.texi (Top Level): Likewise.
6011
6012 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6013
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
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
6062 2010-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
6084 2010-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.
6093
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.
6104         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
6105         * ipa-reference.c (mark_address): Use get_base_address.
6106
6107 2010-04-07  Richard Guenther  <rguenther@suse.de>
6108
6109         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
6110         Propagate constants everywhere.
6111
6112 2010-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
6120 2010-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.
6125         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
6126         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
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
6133 2010-04-07  Richard Guenther  <rguenther@suse.de>
6134
6135         PR tree-optimization/43270
6136         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
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
6146 2010-04-07  Martin Jambor  <mjambor@suse.cz>
6147
6148         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
6149
6150 2010-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
6155 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6156
6157         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
6158
6159 2010-04-07  Richard Guenther  <rguenther@suse.de>
6160
6161         PR middle-end/42617
6162         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
6163         bases build simple mem attributes to retain points-to information.
6164
6165 2010-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
6171 2010-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.
6176         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
6177         * tree.c (tree_nop_conversion): Likewise.
6178
6179 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
6180
6181         PR debug/43628
6182         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
6183
6184 2010-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
6189 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6190
6191         * tree-if-conv.c: Fix indentation and comments.
6192
6193 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6194
6195         * tree-if-conv.c: Sort static functions in topological order.
6196
6197 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6198
6199         * tree-if-conv.c: Fix indentation and comments.
6200
6201 2010-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
6205         lang_hooks.types.type_for_size instead of
6206         build_nonstandard_integer_type.
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.
6210         (graphite_create_new_loop_guard): When ub + 1 wraps around,
6211         use lb <= ub.
6212
6213 2010-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
6219 2010-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
6253 2010-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
6259 2010-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
6278 2010-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
6299 2010-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
6305 2010-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
6313 2010-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.
6327
6328 2010-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.
6334         (find_obviously_necessary_stmts): Update call of
6335         mark_control_dependent_edges_necessary.
6336         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
6337
6338 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
6339
6340         * config/i386/i386.md: Remove comment about 'e' and 'E'
6341         operand modifier.
6342
6343 2010-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
6350 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
6351
6352         * BASE-VER: Change to 4.6.0.
6353
6354         PR target/43638
6355         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
6356         handling.
6357
6358 2010-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
6363 2010-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
6369 2010-04-04  Matthias Klose  <doko@ubuntu.com>
6370
6371         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
6372         Initialize variable.
6373
6374 2010-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
6380 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
6381
6382         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
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
6433 2010-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
6439 2010-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
6445 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
6446
6447         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
6448
6449 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
6450
6451         PR target/43469
6452         * arm.c (legitimize_tls_address): Adjust call to
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
6459 2010-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
6469 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
6470
6471         * config.gcc (lm32-*-rtems*): Add t-lm32.
6472
6473 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
6474
6475         * config.gcc: Add lm32-*-rtems*.
6476         * config/lm32/rtems.h: New file.
6477
6478 2010-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
6483 2010-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
6495 2010-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
6501 2010-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
6507 2010-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
6518 2010-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
6524 2010-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>
6529                     Jack Howarth <howarth@bromo.med.uc.edu>
6530
6531         * tree-profile.c (tree_init_ic_make_global_vars): Make static
6532         variables TLS.
6533
6534 2010-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
6545 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6546
6547         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
6548         with_tune_32 to pentium4.
6549
6550 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
6551
6552         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
6553
6554 2010-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.
6561         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
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
6568 2010-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
6578 2010-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
6587 2010-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
6641 2010-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
6651 2010-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
6660 2010-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
6682 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
6683
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
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
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
6704 2010-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
6710 2010-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
6720 2010-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
6726 2010-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
6735 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
6736
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
6741         PR debug/43557
6742         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
6743         BLKmode.
6744
6745 2010-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
6750         init_caller_save but set caller_save_initialized_p to false.
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
6755 2010-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
6764 2010-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...
6780         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
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
6794 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
6795
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
6802         PR debug/43593
6803         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
6804         regs_invalidated_by_call instead all call_used_reg_set registers.
6805
6806 2010-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
6814 2010-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
6819 2010-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
6825 2010-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
6835 2010-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
6840 2010-03-28  Duncan Sands  <baldrick@free.fr>
6841
6842         * Makefile.in (PLUGIN_HEADERS): Add except.h.
6843
6844 2010-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
6850 2010-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
6858 2010-03-29  Richard Guenther  <rguenther@suse.de>
6859
6860         PR tree-optimization/43560
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.
6863
6864 2010-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
6872 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
6873
6874         * config/rtems.h: Abandon -qrtems_debug.
6875
6876 2010-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
6882 2010-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
6890 2010-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
6896 2010-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
6902 2010-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
6911 2010-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
6926 2010-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
6934 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
6935
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
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
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
6954 2010-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
6964 2010-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
6970 2010-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
6980 2010-03-26  David S. Miller  <davem@davemloft.net>
6981
6982         * configure.ac: Fix sparc GOTDATA_OP bug check.
6983         * configure: Rebuild.
6984
6985 2010-03-26  Alan Modra  <amodra@gmail.com>
6986
6987         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
6988
6989 2010-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
6994 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
6995
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
7000         PR c/43385
7001         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
7002         argument if the argument is truth_value_p.
7003
7004 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7005
7006         * config/rs6000/constraints.md: Update copyright year for my changes.
7007
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
7012 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7013
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
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
7044 2010-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.
7066         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
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
7076         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
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
7083 2010-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
7092 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7093
7094         PR debug/43508
7095         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7096         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
7097
7098         PR debug/43479
7099         * ira.c (adjust_cleared_regs): New function.
7100         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
7101
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
7112 2010-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
7118 2010-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,
7122         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
7123
7124 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
7125
7126         * config/i386/i386.c (ix86_target_string): Add -mfma.
7127         Fix a typo in comment.
7128
7129 2010-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
7135 2010-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
7140 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7141
7142         * doc/configfiles.texi (Configuration Files): Removed
7143         fixinc/Makefile*, intl/Makefile.*.
7144         * doc/makefile.texi: Fixed markup. Abstract from version
7145         control system used.
7146         (Makefile): Removed obsolete gcc/java/parse.y example.
7147         * doc/sourcebuild.texi: Likewise.
7148         (Top Level): Added config, gnattools, libdecnumber, libgcc,
7149         libgomp, libssp.  Removed fastjar.
7150         (Miscellaneous Docs): Clarify location.
7151         Added COPYING3, COPYING3.LIB.
7152         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
7153
7154 2010-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
7162 2010-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
7176 2010-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
7182 2010-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
7188 2010-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
7195 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
7196
7197         * varasm.c (make_decl_rtl_for_debug): Also clear
7198         flag_mudflap for the duration of make_decl_rtl call.
7199
7200         PR debug/43443
7201         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
7202         locs from preserved VALUEs.
7203
7204 2010-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
7210 2010-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
7216 2010-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
7223 2010-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
7230 2010-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
7236 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
7237
7238         PR c/43211
7239         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
7240         an error.
7241
7242 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
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
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.
7255
7256         * optabs.c (avoid_expensive_constant): Fix formatting.
7257
7258 2010-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
7264 2010-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
7269 2010-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
7277 2010-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
7285 2010-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
7292 2010-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
7300 2010-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
7318 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7319             Jack Howarth <howarth@bromo.med.uc.edu>
7320
7321         PR target/36399
7322         * config/i386/i386.h: Fix ABI on darwin x86-32.
7323
7324 2010-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
7331 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
7332
7333         PR bootstrap/43399
7334         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
7335         mem_mode.
7336
7337         PR bootstrap/43403
7338         * var-tracking.c (vt_init_cfa_base): Do nothing if
7339         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
7340
7341 2010-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
7347 2010-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
7359 2010-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...
7365         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
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
7375 2010-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
7379 2010-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
7385 2010-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
7391 2010-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
7398 2010-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
7404 2010-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
7418 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
7419
7420         * common.opt (dumpdir): Remove redundant tab.
7421
7422 2010-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
7428 2010-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
7436         uses a previously untracked register and create an empty chain for it.
7437
7438 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7439
7440         * doc/extend.texi (Function Attributes): Rewrite unfinished
7441         sentence in ms_abi documentation.
7442
7443 2010-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
7450 2010-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
7457 2010-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
7462 2010-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
7471 2010-03-16  Richard Guenther  <rguenther@suse.de>
7472
7473         PR middle-end/43379
7474         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
7475         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
7476
7477 2010-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
7485 2010-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
7493         clear its REG_VALUES.  If cselib_preserve_constants, don't
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
7555 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
7556
7557         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
7558         debug statements.
7559
7560 2010-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
7567 2010-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
7576 2010-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
7582 2010-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
7587 2010-03-15  Martin Jambor  <mjambor@suse.cz>
7588
7589         PR tree-optimization/43141
7590         * tree-sra.c (create_abstract_origin): New function.
7591         (modify_function): Call create_abstract_origin.
7592
7593 2010-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
7598 2010-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
7604 2010-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
7611 2010-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
7619 2010-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
7627 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7628
7629         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
7630
7631 2010-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
7637 2010-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
7644 2010-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
7649 2010-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
7657 2010-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
7667 2010-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
7672 2010-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
7678 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
7679
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
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
7714 2010-03-11  David S. Miller  <davem@davemloft.net>
7715
7716         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
7717         of four.
7718         * configure: Rebuild.
7719
7720 2010-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
7730 2010-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
7735 2010-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
7741 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7742
7743         PR tree-optimization/43280
7744         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
7745         generation.  Move calculation of size out of the if branch.
7746         (find_bswap): Modify compare number generation.
7747
7748 2010-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
7755 2010-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
7760 2010-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
7769 2010-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
7782 2010-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
7790 2010-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
7800 2010-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
7806 2010-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
7812 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
7813
7814         PR debug/43299
7815         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
7816
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
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.
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.
7838
7839         PR debug/43290
7840         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
7841         RTX_FRAME_RELATED_P.
7842
7843 2010-03-09  Jie Zhang  <jie@codesourcery.com>
7844
7845         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
7846         whitespaces in output template.
7847
7848 2010-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
7853 2010-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
7858 2010-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
7863 2010-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
7868 2010-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
7875 2010-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
7882         induction variable, to be able to work with code generated by CLooG.
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
7886 2010-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
7891 2010-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.
7895         (expand_scalar_variables_expr): Pass to
7896         expand_scalar_variables_ssa_name the type of the resulting expression.
7897
7898 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7899
7900         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
7901         ppl_min_for_le_pointset.
7902         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
7903         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
7904
7905 2010-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
7910 2010-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
7916 2010-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
7922 2010-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
7927 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7928
7929         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
7930         early return.
7931
7932 2010-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
7957 2010-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
7963 2010-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
7972 2010-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.
8049         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
8050         (vt_emit_notes): Initialize and destroy emitted_notes.
8051
8052 2010-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
8062 2010-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
8068 2010-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
8074 2010-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
8087 2010-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
8092 2010-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
8099 2010-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
8105 2010-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
8112 2010-03-04  Mike Stump  <mikestump@comcast.net>
8113
8114         * Makefile.in (TAGS): Remove *.y.
8115
8116 2010-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
8124 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
8125
8126         PR middle-end/43209
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.
8129
8130 2010-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
8137 2010-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
8144 2010-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
8150 2010-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.
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.
8160
8161 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
8162
8163         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
8164         (sparc*-*-solaris2*): ...this.
8165
8166 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
8167
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
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
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
8186 2010-03-02  Jason Merrill  <jason@redhat.com>
8187
8188         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
8189
8190 2010-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
8207 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
8208
8209         * config/alpha/alpha.c (override_options): Fix -mtune error message.
8210
8211 2010-03-02  Jeff Law  <law@redhat.com>
8212
8213         PR middle-end/42431
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
8220 2010-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
8229 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
8230             Steven Bosscher  <steven@gcc.gnu.org>
8231
8232         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
8233         instead of bb.
8234
8235 2010-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
8242 2010-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
8248 2010-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
8255 2010-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
8261 2010-03-01  Richard Guenther  <rguenther@suse.de>
8262             Martin Jambor  <mjambor@suse.cz>
8263
8264         PR middle-end/41250
8265         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
8266         gimplified parameters.
8267
8268 2010-03-01  Christian Bruel  <christian.bruel@st.com>
8269
8270         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
8271
8272 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
8273
8274         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
8275
8276 2010-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
8282 2010-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
8291 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
8292
8293         * toplev.h (inform_n, error_n): Declare.
8294         * diagnostic.c (inform_n, error_n): New function.
8295
8296 2010-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
8302 2010-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
8308 2010-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
8313 2010-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
8322 2010-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
8329 2010-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
8336 2010-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
8344 2010-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
8349 2010-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
8355 2010-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
8361 2010-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
8370 2010-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.
8377         * doc/cppopts.texi: Likewise.
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
8382 2010-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
8387 2010-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
8395 2010-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
8402 2010-02-26  Nick Clifton  <nickc@redhat.com>
8403
8404         * config/rx/rx.md (sminsi3): Remove bogus alternative.
8405
8406 2010-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
8414 2010-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
8420 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
8421
8422         PR target/43175
8423         * config/i386/i386.c (expand_vec_perm_blend): Use correct
8424         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
8425
8426 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
8427
8428         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
8429
8430 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
8431
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
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
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
8465 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
8466
8467         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
8468         (arm*-*-*): Ditto.
8469
8470 2010-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
8476 2010-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
8484 2010-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
8503 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
8504
8505         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
8506         #pragma extern_prefix.
8507
8508 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
8509
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
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
8518 2010-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.
8525         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
8526
8527 2010-02-24  Jason Merrill  <jason@redhat.com>
8528
8529         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
8530
8531 2010-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
8536 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8537
8538         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
8539
8540 2010-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
8546 2010-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
8553 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
8554
8555         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
8556
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
8563 2010-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
8571 2010-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
8579 2010-02-23  Jason Merrill  <jason@redhat.com>
8580
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
8585         PR c++/42837
8586         * stor-layout.c (place_field): Don't warn about unnecessary
8587         DECL_PACKED if the type is packed.
8588
8589 2010-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
8595 2010-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
8603 2010-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
8609 2010-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
8619 2010-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
8625 2010-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
8630 2010-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
8638 2010-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
8644 2010-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
8649 2010-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
8657 2010-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
8662 2010-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
8667 2010-02-22  Richard Guenther  <rguenther@suse.de>
8668
8669         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
8670
8671 2010-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
8677 2010-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
8683 2010-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.
8698
8699 2010-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
8706 2010-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
8712 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8713
8714         * common.opt (Wlarger-than-): Add Undocumented.
8715
8716 2010-02-19  Mike Stump  <mikestump@comcast.net>
8717
8718         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
8719
8720 2010-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
8726 2010-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
8735 2010-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
8743 2010-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
8749 2010-02-19  Mike Stump  <mikestump@comcast.net>
8750
8751         PR middle-end/43125
8752         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
8753
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
8765 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
8766
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
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
8781         PR middle-end/42233
8782         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
8783
8784 2010-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
8790 2010-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
8795 2010-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
8800 2010-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
8806 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
8807
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
8840         PR middle-end/42233
8841         * gimplify.c (gimple_boolify): For __builtin_expect call
8842         gimple_boolify also on its first argument.
8843
8844 2010-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
8851 2010-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
8856 2010-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
8862 2010-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
8868 2010-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
8876 2010-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
8887 2010-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
8891 2010-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
8896 2010-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
8902 2010-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
8907 2010-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
8914 2010-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
8919 2010-02-16  Richard Guenther  <rguenther@suse.de>
8920
8921         PR tree-optimization/41043
8922         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
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
8927 2010-02-16  Ira Rosen  <irar@il.ibm.com>
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
8935 2010-02-16  Richard Guenther  <rguenther@suse.de>
8936
8937         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
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
8942 2010-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
8955 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
8956             Jakub Jelinek <jakub@redhat.com>
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
8963 2010-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
8970         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
8971         types.
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
8979 2010-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
9011 2010-02-15  Nick Clifton  <nickc@redhat.com>
9012
9013         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
9014         boolean parameters.  Use emit_jump_insn when emitting a pop
9015         instruction containing a return insn.
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.
9020
9021 2010-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
9027 2010-02-15  Nick Clifton  <nickc@redhat.com>
9028
9029         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
9030         delta.
9031
9032 2010-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
9041 2010-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
9048 2010-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
9053 2010-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
9062 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9063
9064         * c-pch.c (pch_init): Clear v.
9065
9066 2010-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
9072 2010-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
9079 2010-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
9096 2010-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
9102 2010-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
9111 2010-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
9120 2010-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
9126 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9127
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
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
9142 2010-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
9147 2010-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
9153 2010-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
9159 2010-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
9164 2010-02-10  Duncan Sands  <baldrick@free.fr>
9165
9166         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
9167
9168 2010-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
9174 2010-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
9180 2010-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.
9185
9186 2010-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.
9189
9190 2010-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
9195 2010-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
9203 2010-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
9214 2010-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
9222 2010-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
9228 2010-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
9234 2010-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
9242 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
9243
9244         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
9245
9246 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
9247
9248         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
9249         before the pattern.
9250
9251 2010-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
9256 2010-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
9264 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9265
9266         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
9267
9268 2010-02-07  Richard Guenther  <rguenther@suse.de>
9269
9270         PR middle-end/42991
9271         * expr.c (get_inner_reference): Always initialize *pbitsize.
9272
9273 2010-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
9282 2010-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
9288 2010-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
9294 2010-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
9300 2010-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
9305 2010-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
9311 2010-02-05  Richard Guenther  <rguenther@suse.de>
9312
9313         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
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.
9319         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
9320
9321 2010-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
9326 2010-02-04  Richard Guenther  <rguenther@suse.de>
9327
9328         PR rtl-optimization/42952
9329         * dse.c (const_or_frame_p): Remove MEM handling.
9330
9331 2010-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
9342 2010-02-03  Jason Merrill  <jason@redhat.com>
9343
9344         PR c++/40138
9345         * fold-const.c (operand_equal_p): Handle erroneous types.
9346
9347 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
9348
9349         * config/h8300/h8300.md (can_delay): Fix attibute condition.
9350
9351 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
9352
9353         PR rtl-optimization/42941
9354         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
9355         of xmalloc.
9356
9357 2010-02-03  Jason Merrill  <jason@redhat.com>
9358
9359         PR c++/35652
9360         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
9361
9362 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
9363
9364         PR debug/42896
9365         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
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
9402 2010-02-03  Richard Guenther  <rguenther@suse.de>
9403
9404         PR tree-optimization/42944
9405         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
9406         (call_may_clobber_ref_p_1): Likewise.  Properly handle
9407         malloc and calloc clobbering errno.
9408
9409 2010-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
9418 2010-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
9429 2010-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
9434 2010-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
9440 2010-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
9447 2010-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
9454 2010-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
9460 2010-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
9474 2010-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
9480 2010-01-31  Richard Guenther  <rguenther@suse.de>
9481
9482         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
9483         conservatively correct.
9484
9485 2010-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
9493 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9494
9495         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
9496
9497 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
9498
9499         * config.gcc: Adjust order of makefile fragments for mingw targets.
9500
9501 2010-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
9507 2010-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
9513 2010-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
9519 2010-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
9524 2010-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
9529 2010-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
9537 2010-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
9543 2010-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
9549 2010-01-28  Richard Guenther  <rguenther@suse.de>
9550
9551         PR tree-optimization/42871
9552         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
9553
9554 2010-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
9559 2010-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
9565 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
9566
9567         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
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.
9574         * tree-cfg.c (add_phi_args_after_redirect): Remove.
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
9580 2010-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
9586 2010-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
9593 2010-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
9606 2010-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
9616 2010-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
9622 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
9623
9624         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
9625         (rs6000_delegitimize_address): New function.
9626
9627         * config/s390/s390.c (s390_delegitimize_address): Call
9628         delegitimize_mem_from_attrs.
9629
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
9635 2010-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.
9641
9642 2010-01-27  Matthias Klose  <doko@ubuntu.com>
9643
9644         * configure.ac (gnu-unique-object): Fix ldd version check.
9645         * configure: Regenerate.
9646
9647 2010-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
9654 2010-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
9672 2010-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
9681 2010-01-26  Richard Guenther  <rguenther@suse.de>
9682
9683         PR rtl-optimization/42685
9684         * web.c (web_main): Ignore DEBUG_INSNs.
9685
9686 2010-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
9693 2010-01-26  Richard Guenther  <rguenther@suse.de>
9694
9695         PR middle-end/42806
9696         * tree-eh.c (unsplit_eh): Skip debug insns.
9697
9698 2010-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
9703 2010-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
9709 2010-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
9716 2010-01-24  David S. Miller  <davem@davemloft.net>
9717
9718         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
9719         define if not using GAS.
9720         * config/sparc/sparc.c (sparc_elf_asm_named_section):
9721         Likewise.  Delete SECTION_MERGE code, which is only applicable
9722         when using GAS.
9723
9724 2010-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
9730 2010-01-23  Toon Moene  <toon@moene.org>
9731
9732         * tree-predcom.c (combine_chains): Return NULL, not false.
9733
9734 2010-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
9739 2010-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
9744 2010-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
9749 2010-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
9756 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
9757
9758         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
9759
9760         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
9761
9762 2010-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
9782 2010-01-21  Martin Jambor  <mjambor@suse.cz>
9783
9784         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
9785
9786 2010-01-21  Andrew Haley  <aph@redhat.com>
9787
9788         * gcc.c (process_command): Move lang_specific_driver before
9789         setting cc_libexec_prefix.
9790
9791 2010-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
9797 2010-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
9815 2010-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
9821 2010-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
9829 2010-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
9836 2010-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
9847 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
9848
9849         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
9850
9851 2010-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
9860 2010-01-20  Richard Guenther  <rguenther@suse.de>
9861
9862         * tree-inline.c (estimate_num_insns): Handle EH builtins.
9863
9864 2010-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
9880 2010-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
9887 2010-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
9897 2010-01-20  Thomas Quinot  <quinot@adacore.com>
9898
9899         * tree.def (PLACEHOLDER_EXPR): Fix comment.
9900
9901 2010-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
9910 2010-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
9919 2010-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).
9932         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
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
9938 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9939
9940         PR target/38697
9941         * config/arm/neon-testgen.m (emit_automatics): New parameter
9942         features. Adjust for Fixed_return_reg feature.
9943         (test_intrinsic): Call emit_automatics with new feature.
9944         * config/arm/neon.ml: Update copyright years.
9945         (features): New Fixed_return_reg feature.
9946         (ops): Update feature for Vget_low.
9947
9948 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
9949
9950         PR tree-optimization/42719
9951         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
9952         stmt uses.
9953
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
9958 2010-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
9967         * target.h (struct gcc_target) <secondary_reload>: Change type
9968         of last argument to secondary_reload_info *.
9969
9970 2010-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
9978 2010-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
9984 2010-01-18  Richard Guenther  <rguenther@suse.de>
9985
9986         PR tree-optimization/42781
9987         * tree-ssa-structalias.c (find_what_var_points_to): Skip
9988         restrict processing only if the original variable was artificial.
9989
9990 2010-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
10003         * toplev.c (default_get_pch_validity): Rename argument to "sz".
10004         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
10005
10006 2010-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
10011 2010-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
10022 2010-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
10032 2010-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
10039 2010-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
10045 2010-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
10111         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
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
10143         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
10144         Rename argument tm_fn to md_fn.
10145
10146         (TARGET_OPTION_PRINT): Fix argument list.
10147
10148 2010-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
10154 2010-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
10160 2010-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
10170 2010-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
10224 2010-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
10273 2010-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
10279 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
10280
10281         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
10282
10283 2010-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
10291 2010-01-15  Richard Guenther  <rguenther@suse.de>
10292
10293         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
10294
10295 2010-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
10302 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10303
10304         PR middle-end/42674
10305         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
10306         functions with noreturn attribute.
10307
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
10314 2010-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
10320 2010-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
10326 2010-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
10342 2010-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
10348 2010-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
10354 2010-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
10361 2010-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
10367 2010-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
10372 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10373
10374         * config/i386/drivers-i386.c (host_detect_local_cpu):
10375         Fix Atom detection.
10376
10377 2010-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
10383 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10384
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.
10388
10389 2010-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
10395 2010-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
10400 2010-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
10405 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10406
10407         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
10408
10409 2010-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
10415 2010-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
10439 2010-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
10446 2010-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
10453 2010-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
10461 2010-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.
10475         (maybe_tidy_empty_bb): Delete prototype.
10476         (purge_empty_blocks): Declare.
10477
10478 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
10479
10480         PR rtl-optimization/42249
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
10487 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10488
10489         PR c/42721
10490         Port from no-undefined-overflow branch:
10491         2009-03-09  Richard Guenther  <rguenther@suse.de>
10492
10493         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
10494
10495 2010-01-14  Richard Guenther  <rguenther@suse.de>
10496
10497         PR lto/42665
10498         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
10499
10500 2010-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
10506 2010-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
10513 2010-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
10519 2010-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
10525 2010-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
10532 2010-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
10538         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
10539         rather than schedule_insns if the pass is enabled.
10540
10541 2010-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
10547 2010-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
10553 2010-01-13  Richard Guenther  <rguenther@suse.de>
10554
10555         PR tree-optimization/42705
10556         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
10557
10558 2010-01-13  Richard Guenther  <rguenther@suse.de>
10559
10560         PR middle-end/42716
10561         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
10562
10563 2010-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
10573 2010-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
10578 2010-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
10596 2010-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
10602 2010-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
10608 2010-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
10616 2010-01-12  Julian Brown  <julian@codesourcery.com>
10617
10618         * config/arm/neon-schedgen.ml (Utils): Don't try to
10619         open missing module.
10620         (find_with_result): New.
10621
10622 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
10623
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
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
10634 2010-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
10639 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
10640
10641         * config/avr/avr.h (LINKER_NAME): Remove.
10642
10643 2010-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
10650 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
10651             Shujing Zhao  <pearly.zhao@oracle.com>
10652
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
10659 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
10660
10661         * lto-streamer-out.c (output_unreferenced_globals): Output static
10662         variables.
10663
10664 2010-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
10671 2010-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
10677 2010-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
10684 2010-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
10691 2010-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
10700 2010-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
10710 2010-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
10715 2010-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
10722 2010-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
10736 2010-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
10741 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10742
10743         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
10744         bogus uninitialized warning.
10745
10746 2010-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
10752 2010-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
10760 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
10761
10762         PR target/41885
10763         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
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.
10773         * config/avr/avr.c (avr_rotate_bytes): New function.
10774         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
10775
10776 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
10777
10778         PR target/37454
10779         * configure.ac: Modify -rdynamic check.
10780         * configure: Regenerate.
10781
10782 2010-01-08  DJ Delorie  <dj@redhat.com>
10783
10784         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
10785         register popping order.
10786
10787 2010-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
10793 2010-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
10839 2010-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
10845 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
10846
10847         PR tree-optimization/42625
10848         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
10849         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
10850
10851 2010-01-07  Duncan Sands  <baldrick@free.fr>
10852
10853         * Makefile.in (PLUGIN_HEADERS): Add version.h.
10854
10855 2010-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
10861 2009-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
10867 2010-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
10874 2010-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
10881         NOTE_INSN_EPILOGUE_BEG.
10882
10883 2010-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
10888 2010-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
10906 2010-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
10914 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
10915
10916         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
10917
10918 2010-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
10926 2010-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
10947 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
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
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.
10965         (uminv4si3): Likewise.
10966
10967 2010-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
10973 2010-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
10987 2010-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
10993 2010-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
11003 2010-01-05  Richard Guenther  <rguenther@suse.de>
11004
11005         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
11006
11007 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
11008
11009         PR other/42611
11010         * cfgexpand.c (expand_one_var): Diagnose too large variables.
11011
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
11021 2010-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
11028 2010-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
11039 2010-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
11047 2010-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
11056 2010-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
11073 2010-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
11082 2010-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
11087 2010-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
11098 2010-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
11104 2010-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
11109 2010-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
11126 2010-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
11131 2009-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
11138 2010-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
11160 2010-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
11166 2010-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
11180 2010-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.
11188         (insert_into_preds_of_block): Remove check for trapping expressions.
11189         (compute_avail): Compute also BB_MAY_NOTRETURN.
11190
11191 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
11192
11193         * doc/invoke.texi: Add 2010 to copyright years.
11194
11195 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
11196
11197         * config/sparc/sparc.c: Fix formatting nits.
11198
11199 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
11200             Alexander Monakov  <amonakov@ispras.ru>
11201
11202         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
11203
11204 2010-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
11211 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11212
11213         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
11214
11215         * collect2.c (scan_libraries): Add missing argument in call to
11216         scan_prog_file.
11217
11218 2010-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
11227 2010-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
11234 2010-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.
11240
11241 2010-01-01  Richard Guenther  <rguenther@suse.de>
11242
11243         PR debug/42455
11244         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
11245
11246 2010-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
11252 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11253
11254         * builtins.c: Update copyright to 2010.
11255
11256 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11257
11258         PR lto/42531
11259         * lto-streamer-out.c (produce_asm): Revert the last change.
11260         (copy_function): Likewise.
11261
11262         * lto-streamer.c (lto_get_section_name): Skip any leading
11263         asterisk in name.
11264
11265 2010-01-01  Richard Guenther  <rguenther@suse.de>
11266
11267         PR middle-end/42559
11268         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
11269         for LABEL_DECLs.
11270
11271 \f
11272 Copyright (C) 2010 Free Software Foundation, Inc.
11273
11274 Copying and distribution of this file, with or without modification,
11275 are permitted in any medium without royalty provided the copyright
11276 notice and this notice are preserved.