3f2e66fdebe77ddc71a9f01b623bb6ed0df65a7c
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-09-23  Alan Modra  <amodra@gmail.com>
2
3         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
4         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
5
6 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
7
8         PR rtl-optimization/44374
9         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
10         * df-core.c (df_set_bb_dirty): Set it.
11         * ifcvt.c (find_memory): Remove function.
12         (dead_or_predicable): Use can_move_insns_across.
13         * df.h (can_move_insns_across): Declare function.
14         * cfgcleanup.c (block_was_dirty): New static variable.
15         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
16         than df_get_bb_dirty.
17         (try_head_merge_bb): New static function.
18         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
19         is set.
20         * df-problems.c: Include "target.h"
21         (df_simulate_find_uses): New static function.
22         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
23         (find_memory, find_memory_store): New static functions.
24         (can_move_insns_across): New function.
25         * Makefile.in (df-problems.o): Update dependencies.
26
27 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
28
29         PR java/44095
30         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
31         is specified and the suffix of the file isn't ".c".
32         * config/sparc/linux64.h (ASM_SPEC): Likewise.
33
34 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35
36         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF
37         output.
38         * doc/cppopts.texi: Fix markup of index entry.
39         * doc/extend.texi (Constructing Calls): Fix markup of
40         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
41         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
42         (Vague Linkage, C++ Attributes): Fix markup of index entries and
43         keywords.
44         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
45         avoid long lines.
46         (C Dialect Options, C++ Dialect Options, Warning Options)
47         (Debugging Options, Spec Files, Darwin Options)
48         (i386 and x86-64 Options, MIPS Options)
49         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
50         index entries, avoid abbreviations, allow URLs to wrap, avoid
51         long lines, avoid overlong pages from long @itemx lists.
52         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
53         * doc/standards.texi (Standards): Likewise.
54         * doc/trouble.texi (Incompatibilities): Fix markup of index
55         entry.
56
57 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
58
59         * opts-common.c (prune_options): Make static.  Work with decoded
60         options.
61         (decode_cmdline_options_to_array): Call prune_options.  Don't
62         resize option array here.
63         * opts.h (prune_options): Remove prototype.
64         * gcc.c (process_command): Take decoded options; don't call
65         decode_cmdline_options_to_array here.  Use decoded options for
66         argv[0].
67         (main): Call decode_cmdline_options_to_array here instead of
68         prune_options.  Update call to process_command.
69         * config/darwin-driver.c: Include opts.h.
70         (darwin_default_min_version): Work with decoded options.  Don't
71         handle -b or -V here.
72         * config/darwin.h (darwin_default_min_version): Update prototype.
73         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
74         darwin_default_min_version.
75         * config/i386/cygwin.h (mingw_scan): Update prototype.
76         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
77         * config/i386/cygwin1.c: Include opts.h.
78         (mingw_scan): Work with decoded options.
79         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
80         * config/t-darwin (darwin-driver.o): Update dependencies.
81
82 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
83
84         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
85         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
86         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
87         -force-link, -force-link=, -language, -language=,
88         -library-directory, -library-directory=, -no-canonical-prefixes,
89         -no-standard-libraries, -no-warnings, -optimize, -output,
90         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
91         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
92         -print-file-name=, -print-libgcc-file-name,
93         -print-multi-directory, -print-multi-lib,
94         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
95         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
96         -profile, -save-temps, -shared, -specs, -specs=, -static,
97         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
98         symbolic): New.
99         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
100         * gcc.c (A Short Introduction to Adding a Command-Line Option):
101         Remove comment.
102         (cc1_options): Correct specs for passing down --help,
103         --target-help and --help=*.  Add spec for passing down --version.
104         (struct option_map, option_map, target_option_translations,
105         translate_options): Remove.
106         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
107         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
108         OPT_fhelp_ and OPT_ftarget_help.
109         (process_command): Don't call translate_options.  Call
110         decode_cmdline_options_to_array before checking for
111         -no-canonical-prefixes using decoded options.
112         * opts-common.c (tm.h): Update comment on #include.
113         (find_opt): Allow abbreviations of long options.
114         (struct option_map, option_map): New.
115         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
116         and -mno handling.
117         (target_option_translations): New.
118         (decode_cmdline_options_to_array): Handle
119         TARGET_OPTION_TRANSLATE_TABLE in driver.
120         * opts.c (common_handle_option): Don't handle OPT_fhelp,
121         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
122
123 2010-09-22  Richard Guenther  <rguenther@suse.de>
124
125         * tree-inline.c (optimize_inline_calls): Schedule cleanups
126         only if we inlined something.  Block compaction and conditional
127         folding are done by cfg cleanup.  Schedule update-address-taken.
128         (tree_function_versioning): Remove redundant call to number_blocks.
129         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
130         folding is done by cfg cleanup.
131         * passes.c (init_optimization_passes): Remove update-address-taken
132         pass after IPA inlining.
133
134 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
135
136         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
137         to update conditions. Fix reg_mode[] check.
138
139 2010-09-22  Hariharan Sandanagobalane <hariharan@picochip.com>
140
141         * config/picochip/picochip.md (movhicc): Use expand to check whether
142         movhicc is available and split it after reload.
143
144 2010-09-22  Richard Guenther  <rguenther@suse.de>
145
146         * tree-ssanames.c (release_dead_ssa_names): Do not remove
147         callee edges here.
148         * passes.c (init_optimization_passes): Remove early CFG cleanup.
149         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
150         (pass_cleanup_cfg): Likewise.
151         (execute_fixup_cfg): Cleanup.
152         * tree-pass.h (pass_cleanup_cfg): Remove.
153
154 2010-09-22  Martin Jambor  <mjambor@suse.cz>
155
156         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
157         builtins if it is true.
158         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
159         parameter.
160
161 2010-09-22  Martin Jambor  <mjambor@suse.cz>
162
163         * tree-sra.c (struct access): New field grp_no_warning.
164         (create_access_replacement): Set TREE_NO_WARNING according to
165          grp_no_warning.
166         (create_artificial_child_access): Use build_ref_for_model and set
167         grp_no_warning if build_user_friendly_ref_for_offset fails.
168         (propagate_subaccesses_across_link): Likewise.
169
170 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
171
172         PR target/35664
173         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
174         ('f'): Likewise.
175
176 2010-09-22  Tristan Gingold  <gingold@adacore.com>
177
178         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
179
180 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
181
182         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
183         * config/i386/i386.c (decide_alg): Update for rename.
184
185 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
186
187         PR rtl-optimization/45739
188         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
189         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
190
191 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
192
193         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
194         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
195         Remove.
196         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
197         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
198
199 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
200
201         PR objc/23710
202         * c-parser.c (c_parser_objc_method_definition): Check the return
203         value of objc_start_method_definition and if false is returned,
204         parse the method definition but emit no code.
205
206 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
207
208         PR objc/25965
209         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
210         call objc_get_interface_ivars ().
211
212 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
213
214         PR target/45694
215         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
216         static chain-register is used for 64-bit.
217
218 2010-09-21  Richard Guenther  <rguenther@suse.de>
219
220         * dwarf2out.c (is_cu_die): New function.
221         (add_pubtype): Use it.
222         (gen_subprogram_die): Likewise.
223         (gen_struct_or_union_type_die): Likewise.
224         (dwarf2out_finish): Likewise.
225         (comp_unit_die): Rename to ...
226         (single_comp_unit_die): ... this.
227         (comp_unit_die): New function lazily constructing and
228         returning single_comp_unit_die.
229         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
230         base_type_die, subrange_type_die, modified_type_die,
231         lower_bound_default, add_bound_info, add_prototyped_attribute,
232         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
233         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
234         force_decl_die, gen_namespace_die, dwarf2out_decl,
235         dwarf2out_start_source_file, dwarf2out_end_source_file,
236         prune_unused_types, dwarf2out_finish): Use it.
237         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
238         the global list of translation-unit decls.
239         (dwarf2out_init): Do not create single_comp_unit_die here.
240         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
241
242 2010-09-21  Richard Guenther  <rguenther@suse.de>
243
244         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
245         for bool for C++.
246
247 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
248
249         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
250         (qhs_extenddi_cstr): Likewise.
251         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
252         them for the source operand.
253
254 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
255
256         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
257         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
258         (ix86_split_ashr): Ditto.
259         (ix86_split_lshr): Ditto.
260
261 2010-09-21  Richard Guenther  <rguenther@suse.de>
262
263         PR tree-optimization/45580
264         * tree-ssa-propagate.c (substitute_and_fold): Always replace
265         regular uses.
266         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
267         virtuals fold the call into a regular indirect one.
268
269 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
270
271         PR rtl-optimization/42775
272         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
273         scheduling is enabled.
274
275 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
276
277         PR rtl-optimization/45728
278         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
279         gen_lowpart_common first and if that fails, force_reg first
280         before calling gen_lowpart.
281
282         PR middle-end/45678
283         * cfgexpand.c (expand_one_stack_var_at): Use
284         crtl->max_used_stack_slot_alignment as max_align, instead
285         of maximum of that and PREFERRED_STACK_BOUNDARY.
286         Don't call update_stack_alignment.
287
288 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
289
290         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
291         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
292         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
293         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
294         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
295         (build_nonstandard_integer_type): Likewise.
296         (build_range_type_1): New function, built from...
297         (build_range_type): ...this.  Call build_range_type_1.
298         (build_nonshared_range_type): New function.
299         (build_array_type_1): New function, built from...
300         (build_array_type: ...this.  Call build_array_type_1.
301         (build_nonshared_array_type): New function.
302         * tree.h (build_nonshared_range_type): Declare.
303         (build_nonshared_array_type): Likewise.
304
305 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
306
307         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
308         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
309         (arm_class_likely_spilled_p): New function.
310
311 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
312
313         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
314         indirect functions.
315         (ix86_split_ashl): Ditto.
316         (ix86_split_ashr): Ditto.
317         (ix86_split_lshr): Ditto.
318         (ix86_adjust_counter): Ditto.
319
320 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
321
322         * c-family/c-common.h (constant_string_class): Documented with
323         comment identical to the one already in c-common.c.
324
325 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
326
327         * dwarf2out.c (any_cfis_emitted): New static variable.
328         (add_fde_cfi): Set it.
329         (dwarf2out_frame_debug): Clear it before processing,
330         if it is set afterwards, flush any queued reg saves.
331
332         PR debug/45124
333         * dwarf2out.c (add_accessibility_attribute): Assume
334         DW_ACCESS_private as the default for dwarf_version > 2
335         and DW_TAG_class_type parent.
336         (gen_inheritance_die): Assume DW_ACCESS_public as the default
337         for dwarf_version > 2 and parent other than DW_TAG_class_type.
338
339 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
340
341         PR target/45726
342         * arm.md (arm_movt): Only enable on machines with MOVT.
343
344 2010-09-20  Jie Zhang  <jie@codesourcery.com>
345
346         * config/arm/arm.c (arm_address_offset_is_imm): New.
347         (arm_early_store_addr_dep): New.
348         (arm_early_load_addr_dep): New.
349         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
350         (arm_early_load_addr_dep): Declare.
351         (arm_address_offset_is_imm): Declare.
352         * config/arm/cortex-m4.md: New file.
353         * config/arm/cortex-m4-fpu.md: New file.
354         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
355         (attr generic_sched): Exclude cortexm4.
356         (attr generic_vfp): Exclude cortexm4.
357
358 2010-09-20  Richard Guenther  <rguenther@suse.de>
359
360         PR middle-end/45704
361         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
362
363 2010-09-20  Jan Hubicka  <jh@suse.cz>
364
365         PR tree-optimize/45605
366         * cgraph.h (const_value_known_p): Declare.
367         (varpool_decide_const_value_known): Remove.
368         * tree-ssa-ccp.c (get_base_constructor): Use it.
369         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
370         * expr.c (string_constant): Likewise.
371         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
372         * ipa.c (ipa_discover_readonly_nonaddressable_var,
373         function_and_variable_visibility): Likewise.
374         * gimplify.c (gimplify_call_expr): Likewise.
375         * gimple-fold.c (get_symbol_constant_value): Likewise.
376         * varpool.c (varpool_decide_const_value_known): Replace by...
377         (const_value_known_p): ... this one; handle other kinds of DECLs
378         too and work for automatic vars.
379         (varpool_finalize_decl): Use const_value_known_p.
380
381 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
382
383         PR target/45726
384         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
385
386 2010-09-20  Richard Guenther  <rguenther@suse.de>
387
388         PR tree-optimization/45705
389         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
390
391 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
392
393         PR rtl-optimization/45695
394         * combine.c (try_combine): When splitting a two set pattern,
395         make sure the pattern which will be put into i2 doesn't use REGs
396         or MEMs set by insns in between i2 and i3.
397
398 2010-09-19  Jan Hubicka  <jh@suse.cz>
399
400         PR lto/44246
401         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
402         processing same node twice.
403
404 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
405
406         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
407         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
408         (bfin_class_likely_spilled_p): New function
409
410 2010-09-19  Ira Rosen  <irar@il.ibm.com>
411
412         PR tree-optimization/45714
413         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
414         created in vectorizable_call instead of the original statement in
415         def stmt updates.
416
417 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
418
419         * config/i386/i386-protos.h (split_double_mode): New prototype.
420         (split_di, split_ti): Remove prototypes.
421         * config/i386/i386.c (split_double_mode): New function.
422         (split_di, split_ti): Remove.
423         (ix86_expand_branch): Use split_double_mode.
424         (ix86_split_to_parts): Ditto.
425         (ix86_split_ashl): Ditto.
426         (ix86_split_ashr): Ditto.
427         (ix86_split_lshr): Ditto.
428         (ix86_force_to_memory): Ditto.
429         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
430
431 2010-09-18  Jan Hubicka  <jh@suse.cz>
432
433         PR tree-optimization/45453
434         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
435         virtual functions are reachable.
436         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
437         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
438         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
439         when modifying function.
440
441 2010-09-18  Jan Hubicka  <jh@suse.cz>
442
443         PR tree-optimization/45605
444         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
445         * gimple-fold.c (static_object_in_other_unit_p): New function.
446         (canonicalize_constructor_val): Use it.
447         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
448         returning NULL.
449         (gimple_fold_obj_type_ref_known_binfo): Use
450         static_object_in_other_unit_p.
451
452 2010-09-18  Richard Guenther  <rguenther@suse.de>
453
454         PR tree-optimization/45709
455         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
456         insertions until after all PHI nodes of the block are processed.
457
458 2010-09-18  Tijl Coosemans <tijl@coosemans.org>
459
460         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
461
462 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
463
464         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
465
466 2010-09-18  Richard Guenther  <rguenther@suse.de>
467
468         PR tree-optimization/45709
469         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
470
471 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
472
473         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
474         (dot_deps_stmt): Same.
475         * graphite-poly.c (dot_lst): Same.
476         * graphite-scop-detection.c (dot_all_scops): Same.
477         (dot_scop): Same.
478
479 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
480
481         Revert:
482         2009-12-16  Ben Elliston  <bje@au.ibm.com>
483
484         * tree-data-ref.c (dot_rdg_1): Added back.
485         (dot_rdg): Same.  Added "#if 0" around system call.
486
487 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
488             Richard Henderson  <rth@redhat.com>
489
490         * config/i386/i386.c (initial_ix86_tune_features): Add
491         X86_TUNE_PAD_SHORT_FUNCTION.
492         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
493         (ix86_count_insn): New.
494         (ix86_pad_short_function): Likewise.
495         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
496
497         * config/i386/i386.h (ix86_tune_indices): Add
498         X86_TUNE_PAD_SHORT_FUNCTION.
499         (TARGET_PAD_SHORT_FUNCTION): New.
500
501         * config/i386/i386.md (UNSPEC_NOPS): New.
502         (nops): Likewise.
503
504 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
505
506         PR middle-end/45234
507         * calls.c (expand_call): Make sure that all variable sized
508         adjustments are multiple of preferred stack boundary after
509         stack alignment.
510
511 2010-09-17  DJ Delorie  <dj@redhat.com>
512
513         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
514         passed an invalid value, print an error instead of ICEing.
515         (valid_psw_flag): New.
516         (rx_expand_builtin): Call it for setpsw/clrpsw.
517         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
518
519         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
520         (bitclr_in_memory): Likewise.
521         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
522
523 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
524
525         PR middle-end/45678
526         * cfgexpand.c (update_stack_alignment): New.
527         (get_decl_align_unit): Use it.
528         (expand_one_stack_var_at): Call update_stack_alignment.
529
530 2010-09-17  Richard Guenther  <rguenther@suse.de>
531
532         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
533         Properly copy the read string.
534
535 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
536
537         * doc/options.texi (Variable): Document.
538         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
539         generate target_flags declarations explicitly.  Don't define
540         VarExists variables for the driver.
541         * common.opt (target_flags): New Variable record.
542         (flag_dump_unnumbered, flag_dump_unnumbered_links,
543         flag_var_tracking, flag_var_tracking_assignments,
544         flag_var_tracking_assignments_toggle): Don't mark variables with
545         VarExists.
546         * config/i386/i386.c (ix86_isa_flags): Don't define here.
547         * config/i386/i386.opt (ix86_isa_flags): Define here.
548         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
549         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
550         VarExists.
551         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
552         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
553         Only define for generator programs.
554         * rtlanal.c (target_flags): Remove.
555         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
556         flag_var_tracking_assignments_toggle): Remove.
557
558 2010-09-17  Michael Matz  <matz@suse.de>
559
560         PR tree-optimization/43432
561         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
562         Accept backwards consecutive accesses.
563         (vect_create_data_ref_ptr): If step is negative generate
564         decreasing IVs.
565         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
566         (perm_mask_for_reverse, reverse_vec_elements): New functions.
567         (vectorizable_load): Handle loads with negative steps when easily
568         possible.
569
570 2010-09-03  Jan Hubicka  <jh@suse.cz>
571
572         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
573
574 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
575
576         * config/v850/v850.c (v850_function_value_regno_p): Make static.
577         Adjust comments. Declare.
578         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
579         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
580
581 2010-09-17  Richard Guenther  <rguenther@suse.de>
582
583         * common.opt (combine): Remove.
584         * gcc.c (default_compilers): Remove specs testing combine.
585         The C compilers no longer can combine.
586         (option_map): Remove -combine.
587         (display_help): Remove -combine.
588         (driver_handle_option): Remove OPT_combine handling.
589         (compile_input_file_p): Remove.
590         (do_spec): Remove code concerning combine.
591         (main): Likewise.
592         * doc/invoke.texi: Remove traces of -combine.
593         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
594
595 2010-09-17  Richard Guenther  <rguenther@suse.de>
596
597         PR middle-end/45678
598         * builtins.c (fold_builtin_memory_op): Always properly adjust
599         alignment of memory accesses.
600
601 2010-09-16  Jan Hubicka  <jh@suse.cz>
602
603         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
604         processing clone.
605
606 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
607
608         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
609
610         * config/i386/i386.c (predict_jump): Add prototype.
611         (flag_opts): Add -m8bit-idiv.
612         (ix86_split_idivmod): New.
613
614         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
615         Add 2 splitters for SI/DI mode divide.
616         (divmod<mode>4_1): New pattern.
617         (udivmod<mode>4_1): Likewise.
618         (testdi_ccno_1): Likewise.
619
620         * config/i386/i386.opt (m8bit-idiv): New.
621
622         * doc/invoke.texi: Document -m8bit-idiv.
623
624 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
625
626         PR bootstrap/45680
627         * config/i386/i386.c (min_insn_size): Moved out of the
628         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
629
630 2010-09-16  Jan Hubicka  <jh@suse.cz>
631
632         * lto-cgraph.c (lto_output_node): Fix handling of clones.
633         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
634         unreachable clones with reachable clones.
635         * tree-inline.c (copy_bb): Fix sanity checking when producing
636         unreachable clone.
637
638 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
639
640         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
641         (TARGET_MEMORY_MOVE_COST): Define.
642         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
643
644 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
645
646         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
647         maybe_tidy_empty_bb.
648
649         Revert:
650         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
651         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
652
653 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
654
655         * target.def (target_option.optimization): New hook.
656         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
657         TARGET_OPTION_OPTIMIZATION hook.
658         * doc/tm.texi: Regenerate.
659         * hooks.c (hook_void_int_int): New.
660         * hooks.h (hook_void_int_int): Declare.
661         * opts.c: Don't include tm_p.h.
662         (decode_options): Use targetm.target_option.optimization instead
663         of OPTIMIZATION_OPTIONS.
664         * system.h (OPTIMIZATION_OPTIONS): Poison.
665         * config/arm/arm-protos.h (arm_optimization_options): Remove.
666         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
667         (arm_optimization_options): Rename to arm_option_optimization.
668         Make static.
669         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
670         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
671         (cris_option_optimization): New.
672         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
673         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
674         (crx_option_optimization): New.
675         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
676         * config/frv/frv-protos.h (frv_optimization_options): Remove.
677         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
678         (frv_optimization_options): Rename to frv_option_optimization.
679         Make static.
680         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
681         * config/h8300/h8300.c (h8300_option_optimization): New.
682         (TARGET_OPTION_OPTIMIZATION): Define.
683         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
684         * config/i386/i386-protos.h (optimization_options): Remove.
685         * config/i386/i386.c (optimization_options): Rename to
686         ix86_option_optimization.  Make static.
687         (TARGET_OPTION_OPTIMIZATION): Define.
688         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
689         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
690         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
691         (ia64_optimization_options): Rename to ia64_option_optimization.
692         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
693         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
694         commented-out definition.
695         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
696         instead of OPTIMIZATION_OPTIONS.
697         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
698         (m32r_option_optimization): New.
699         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
700         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
701         Remove.
702         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
703         (mcore_option_optimization): New.
704         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
705         * config/mep/mep-protos.h (mep_optimization_options): Remove.
706         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
707         (mep_optimization_options): Rename to mep_option_optimization.
708         Make static.  Take unused level and size parameters.
709         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
710         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
711         (mmix_option_optimization): New.
712         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
713         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
714         (pdp11_option_optimization): New.
715         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
716         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
717         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
718         (optimization_options): Rename to rs6000_option_optimization.
719         Make static.
720         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
721         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
722         * config/rx/rx.c (rx_set_optimization_options): Rename to
723         rx_option_optimization.  Make static.  Take unused level and size
724         parameters.
725         (TARGET_OPTION_OPTIMIZATION): Define.
726         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
727         * config/s390/s390-protos.h (optimization_options): Remove.
728         * config/s390/s390.c (optimization_options): Rename to
729         s390_option_optimization.  Make static.  Don't mark size parameter
730         unused.
731         (TARGET_OPTION_OPTIMIZATION): Define.
732         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
733         * config/sh/sh-protos.h (sh_optimization_options): Remove.
734         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
735         (sh_optimization_options): Rename to sh_option_optimization.  Make
736         static.  Don't mark parameters unused.
737         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
738         * config/spu/spu-protos.h (spu_optimization_options): Remove.
739         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
740         (spu_optimization_options): Rename to spu_option_optimization.
741         Make static.
742         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
743         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
744         (v850_option_optimization): New.
745         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
746         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
747         (xtensa_option_optimization): New.
748         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
749
750 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
751
752         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
753         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
754         * doc/tm.texi: Regenerate.
755         * system.h (OVERRIDE_OPTIONS): Poison.
756         * target.def (override): Default to hook_void_void.
757         * targhooks.c (default_target_option_override): Remove.
758         * genmodes.c, machmode.def: Update comments mentioning
759         OVERRIDE_OPTIONS.
760         * config/alpha/alpha-modes.def: Update comment mentioning
761         alpha_override_options.
762         * config/alpha/alpha-protos.h (override_options): Remove.
763         * config/alpha/alpha.c (override_options): Rename to
764         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
765         (TARGET_OPTION_OVERRIDE): Define.
766         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
767         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
768         of OVERRIDE_OPTIONS.
769         * config/arc/arc-protos.h (arc_init): Remove.
770         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
771         (arc_init): Rename to arc_option_override.  Make static.
772         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
773         (OVERRIDE_OPTIONS): Remove.
774         * config/arm/arm-protos.h (arm_override_options): Remove.
775         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
776         (arm_override_options): Rename to arm_option_override.  Make
777         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
778         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
779         * config/arm/arm.md: Update comment referring to arm_override_options.
780         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
781         instead of OVERRIDE_OPTIONS.
782         * config/avr/avr-protos.h (avr_override_options): Remove.
783         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
784         (avr_override_options): Rename to avr_option_override.  Make static.
785         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
786         * config/bfin/bfin-protos.h (override_options): Remove (twice).
787         * config/bfin/bfin.c (override_options): Rename to
788         bfin_option_override.  Make static.
789         (TARGET_OPTION_OVERRIDE): Define.
790         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
791         * config/cris/cris-protos.h (cris_override_options): Remove.
792         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
793         (cris_override_options): Rename to cris_option_override.  Make static.
794         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
795         * config/frv/frv-protos.h (frv_override_options): Remove.
796         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
797         (frv_override_options): Rename to frv_option_override.  Make static.
798         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
799         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
800         * config/h8300/h8300.c (h8300_init_once): Rename to
801         h8300_option_override.  Make static.
802         (TARGET_OPTION_OVERRIDE): Define.
803         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
804         * config/i386/i386-protos.h (override_options): Remove.
805         * config/i386/i386.c (override_options): Rename to
806         ix86_option_override_internal.  Make static.  Comments referring
807         to this function and callers changed.
808         (ix86_option_override): New.
809         (TARGET_OPTION_OVERRIDE): Define.
810         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
811         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
812         * config/ia64/ia64.c (ia64_file_start): Update comment referring
813         to ia64_override_options.
814         * config/iq2000/iq2000-protos.h (override_options): Remove.
815         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
816         (override_options): Rename to iq2000_option_override.  Make static.
817         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
818         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
819         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
820         (lm32_override_options): Rename to lm32_option_override.  Make static.
821         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
822         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
823         (m32r_option_override): New.
824         (m32r_init): Update comment.
825         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
826         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
827         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
828         (m68hc11_override_options): Rename to m68hc11_option_override.
829         Make static.  Return void.
830         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
831         * config/m68k/m68k-protos.h (override_options): Remove.
832         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
833         (override_options): Rename to m68k_option_override.  Make static.
834         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
835         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
836         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
837         (mcore_override_options): Rename to mcore_option_override.  Make
838         static.
839         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
840         * config/mep/mep-protos.h (mep_override_options): Remove.
841         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
842         (mep_override_options): Rename to mep_option_override.  Make static.
843         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
844         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
845         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
846         (mmix_override_options): Rename to mmix_option_override.  Make static.
847         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
848         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
849         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
850         (mn10300_override_options): Rename to mn10300_option_override.
851         Make static.
852         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
853         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
854         * config/moxie/moxie.c (moxie_override_options): Rename to
855         moxie_option_override.  Make static.
856         (TARGET_OPTION_OVERRIDE): Define.
857         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
858         * config/picochip/picochip-protos.h (picochip_override_options):
859         Remove.  Update comment referring to picochip_override_options.
860         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
861         (picochip_override_options): Rename to picochip_option_override.
862         Make static.  Update comment and definition of
863         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
864         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
865         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
866         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
867         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
868         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
869         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
870         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
871         instead of OVERRIDE_OPTIONS.
872         * config/rs6000/rs6000-modes.def: Update comment referring to
873         rs6000_override_options.
874         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
875         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
876         (rs6000_override_options): Rename to
877         rs6000_option_override_internal.  Make static.  Commented
878         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
879         (rs6000_option_override): New.
880         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
881         instead of OVERRIDE_OPTIONS.
882         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
883         * config/s390/s390-protos.h (override_options): Remove.
884         * config/s390/s390.c (override_options): Rename to
885         s390_option_override.  Make static.
886         (TARGET_OPTION_OVERRIDE): Define.
887         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
888         * config/score/score-protos.h (score_override_options): Remove.
889         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
890         (score_override_options): Rename to score_option_override.  Make
891         static.
892         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
893         Update comment referring to override_options.
894         * config/score/score3.c (score3_override_options): Rename to
895         score3_option_override.
896         * config/score/score3.h (score3_override_options): Rename to
897         score3_option_override.
898         * config/score/score7.c (score7_override_options): Rename to
899         score7_option_override.
900         * config/score/score7.h (score7_override_options): Rename to
901         score7_option_override.
902         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
903         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
904         (sparc_override_options): Rename to sparc_option_override.  Make
905         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
906         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
907         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
908         instead of OVERRIDE_OPTIONS.
909         * config/spu/spu-protos.h (spu_override_options): Remove.
910         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
911         (spu_override_options): Rename to spu_option_override.  Make
912         static.
913         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
914         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
915         OVERRIDE_OPTIONS.
916         * config/vax/vax-protos.h (override_options): Remove.
917         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
918         (override_options): Rename to vax_option_override.  Make static.
919         Call SUBTARGET_OVERRIDE_OPTIONS.
920         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
921         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
922         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
923         * config/xtensa/xtensa-protos.h (override_options): Remove.
924         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
925         (override_options): Rename to xtensa_option_override.  Make static.
926         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
927
928 2010-09-16  Richard Guenther  <rguenther@suse.de>
929
930         PR tree-optimization/45623
931         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
932         (get_constraint_for_component_ref): If computing a constraint
933         for the rhs handle type punning through unions.
934         (get_constraint_for_address_of): Adjust.
935         (get_constraint_for_1): Likewise.
936         (get_constraint_for): Likewise.
937         (get_constraint_for_rhs): New function.
938         (do_structure_copy): Adjust.
939         (make_constraint_to): Likewise.
940         (handle_const_call): Likewise.
941         (find_func_aliases): Likewise.
942         (process_ipa_clobber): Likewise.
943         (create_variable_info_for): Likewise.
944
945 2010-09-16  Ira Rosen  <irar@il.ibm.com>
946
947         * tree-vectorizer.c: Fix documentation.
948         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
949         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
950         is_pattern_stmt_p, is_loop_header_bb_p,
951         stmt_vinfo_set_inside_of_loop_cost,
952         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
953         known_alignment_for_access_p): Likewise.
954         * tree-vect-loop.c: Fix documentation.
955         (vect_get_cost): Start function name from new line.
956         * tree-vect-data-refs.c: Fix documentation.
957         * tree-vect_stmts.c: Likewise.
958         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
959         (vectorizable_store): Free vec_oprnds if allocated.
960         (vectorizable_condition): Initialize several variables to avoid
961         warnings.
962         * tree-vect-slp.c: Fix documentation.
963
964 2010-09-16  Richard Guenther  <rguenther@suse.de>
965
966         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
967         is TS_TRANSLATION_UNIT_DECL.
968         (initialize_tree_contains_struct): Adjust.
969         (all_translation_units): New global vector.
970         (build_translation_unit_decl): New function.
971         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
972         (struct tree_translation_unit_decl): New.
973         (all_translation_units): Declare.
974         (union tree_node): Add translation_unit_decl member.
975         (build_translation_unit_decl): Declare.
976         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
977         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
978         New function.
979         (pack_value_fields): Call it.
980         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
981         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
982         (lto_output_tree_pointers): Call it.
983         * lto-streamer-in.c (lto_input_tree_ref): Handle references
984         to TRANSLATION_UNIT_DECL.
985         (unpack_ts_translation_unit_decl_value_fields): New function.
986         (unpack_value_fields): Call it.
987         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
988         (lto_input_tree_pointers): Call it.
989         * lto-streamer.c (check_handled_ts_structures): Adjust.
990         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
991         * c-decl.c (all_translation_units): Remove.
992         (pop_scope): Use build_translation_unit_decl.
993         (collect_all_refs): Adjust.
994         (for_each_global_decl): Likewise.
995         (c_write_global_declarations): Likewise.
996
997 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
998
999         PR bootstrap/45686
1000         * fold-const.c (fold_checksum_tree): Change slot from const void **
1001         to void **, use CONST_CAST_TREE to store into *slot.
1002
1003 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
1004
1005         * config/i386/i386.md: Remove unneeded empty conditions and
1006         preparation statements from expanders.
1007         * config/i386/mmx.md: Ditto.
1008         * config/i386/sse.md: Ditto.
1009
1010 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
1011
1012         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
1013
1014 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
1015
1016         PR rtl-optimization/45593
1017         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
1018         insns that were in delay slots as stand-alone insns.
1019
1020 2010-09-15  Ian Lance Taylor  <iant@google.com>
1021
1022         * incpath.c (remove_duplicates): If name is not a directory, issue
1023         a warning rather than an error.
1024
1025 2010-09-15  Martin Jambor  <mjambor@suse.cz>
1026
1027         PR middle-end/45644
1028         * tree-sra.c (create_access): Check for bit-fields directly.
1029
1030 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
1031
1032         PR tree-optimization/45633
1033         * tree-cfg.c (verify_gimple_assign_binary): Allow
1034         MINUS_EXPR with lhs and rhs1 pointer vector and
1035         rhs2 sizetype vector.
1036         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
1037         or vector pointer use TER to optimize pointer subtraction.
1038
1039 2010-09-15  Jie Zhang  <jie@codesourcery.com>
1040
1041         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
1042         fcmpd to fcmps.
1043
1044 2010-09-15  Ian Lance Taylor  <iant@google.com>
1045
1046         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
1047
1048 2010-09-15  Ian Lance Taylor  <iant@google.com>
1049
1050         * function.c (get_arg_pointer_save_area): Set
1051         arg_pointer_save_area_init to true.
1052
1053 2010-09-15  Martin Jambor  <mjambor@suse.cz>
1054
1055         * tree-sra.c (generate_subtree_copies): Updated comment.
1056         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
1057         obtained from the statement iterator instead.
1058         (load_assign_lhs_subreplacements): Removed parameters lhs and
1059         right_offset, which is obtained from top_racc instead.  Parameter lacc
1060         is now expected to be the root of the processed tree rather than root's
1061         first child.  Updated all callers.
1062
1063 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
1064
1065         * config/pdp11/pdp11.c (register_move_cost): Rename to
1066         pdp11_register_move_cost.
1067         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
1068         pdp11_register_move_cost.
1069         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
1070         pdp11_register_move_cost instead of register_move_cost.
1071
1072 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
1073
1074         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
1075         pattern for vmovn. Expansion in case of non 
1076         -mvectorize-with-neon-quad.
1077         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
1078         non- -mvectorize-with-neon-quad case.
1079         (move_lo_quad_<mode>): New expansion to vmov into low part.
1080         (move_hi_quad_<mode>): New expansion to vmov into high part.
1081         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
1082         (move_lo_quad_v4sf): Likewise.
1083         (move_lo_quad_v8hi): Likewise.
1084         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
1085         low part.
1086         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
1087         high part.
1088         * config/arm/iterators.md (ANY128): New mode iterator.
1089         (V_narrow_pack): New mode attribute.
1090         (V_HALF): Add attribute.
1091         (V_DOUBLE): Add attribute.
1092         (V_mode_nunits): Add attribute.
1093
1094 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
1095
1096         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
1097         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
1098
1099 2010-09-15  Olivier Hainque  <hainque@adacore.com>
1100             Jose Ruiz  <ruiz@adacore.com>
1101
1102         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
1103         * config/alpha/osf5-unwind.h: New file.
1104
1105 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
1106
1107         PR bootstrap/45672
1108         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
1109         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
1110         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
1111
1112 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1113
1114         * c-lang.h (struct lang_type): Add variable_size GTY option.
1115
1116 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
1117
1118         PR bootstrap/45672
1119         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
1120
1121 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
1122
1123         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
1124         result isn't used in memory address.
1125
1126 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
1127
1128         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
1129         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
1130         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
1131         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
1132         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
1133         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
1134
1135         * target.def: Add units_per_simd_word to vectorize.
1136
1137         * targhooks.c (default_units_per_simd_word): New.
1138         * targhooks.h (default_units_per_simd_word): Likewise.
1139         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
1140         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
1141         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
1142         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
1143         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
1144         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
1145         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
1146         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
1147
1148         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
1149         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
1150
1151         * tree-vect-stmts.c: Don't include "tm_p.h".
1152         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
1153         with targetm.vectorize.units_per_simd_word.
1154
1155         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
1156
1157         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
1158
1159         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
1160         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
1161
1162         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
1163         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
1164
1165         * doc/tm.texi: Regenerated.
1166
1167 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
1168
1169         * tree-vect-stmts.c: Include "tm_p.h".
1170
1171         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
1172         out of RTX_CODE.
1173
1174 2010-09-14  Martin Jambor  <mjambor@suse.cz>
1175
1176         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
1177         location of generated statement.  Changed all callers.
1178         (build_ref_for_model): New parameter loc which used to set location of
1179         all generated expressions.  Changed all callers.
1180         (generate_subtree_copies): Likewise.
1181         (init_subtree_with_zero): Likewise.
1182         (sra_modify_expr): Set locations of all generated statements and
1183         expressions to the location the original statement.
1184         (handle_unscalarized_data_in_subtree): Likewise.
1185         (load_assign_lhs_subreplacements): Likewise.
1186         (sra_modify_constructor_assign): Likewise.
1187         (sra_modify_assign): Likewise.
1188
1189 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
1190
1191         PR target/45277
1192         PR target/45363
1193         PR target/45407
1194         * doc/install.texi (sparc*-*-*): New section.
1195         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
1196
1197 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
1198
1199         PR middle-end/45567
1200         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
1201         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
1202         (expand_builtin): Adjust caller.
1203         (expand_builtin_unop): Only use subtarget if it has the right mode.
1204
1205 2010-09-14  Tristan Gingold  <gingold@adacore.com>
1206
1207         * configure.ac (plugins): Fix typos.
1208         * configure: Regenerate.
1209
1210 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
1211
1212         PR debug/45660
1213         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
1214         gen_type_die for function/method return type.
1215
1216 2010-09-14  Ira Rosen  <irar@il.ibm.com>
1217
1218         PR tree-optimization/45470
1219         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
1220         can throw an exception.
1221         * tree-vect-stmts.c (vectorizable_call): Likewise.
1222
1223 2010-09-14  DJ Delorie  <dj@redhat.com>
1224
1225         PR target/44749
1226         * config/mep/mep-protos.h (mep_save_register_info,
1227         mep_reinit_regs, mep_init_regs): Declare.
1228
1229         * config/mep/mep.c: Move all target definitions to the end of the
1230         file to avoid the need for duplicate declarations.
1231         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
1232         (mep_reorg_erepeat): Remove unused variables.
1233         (mep_expand_builtin): Likewise.
1234
1235         * config/mep/mep-pragma.c: Don't include rtl.h.
1236         (INVALID_REGNUM): New.
1237         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
1238         functions.
1239         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
1240         Avoid enum/integer math.
1241
1242 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
1243
1244         PR target/44749
1245         * config/mep/t-mep (GTM_H): Add insn-constants.h.
1246         * config/mep/mep.c (mep_conditional_register_usage): Take no
1247         parameters.
1248         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
1249         prototype.
1250         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
1251         call to mep_conditional_register_usage.
1252
1253 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
1254
1255         PR debug/43937
1256         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
1257         the DECL as well.
1258
1259 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
1260
1261         PR rtl-optimization/45617
1262         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
1263         even if low N bits of X aren't known to be zero.
1264
1265 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
1266
1267         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
1268
1269         * config/i386/i386.c (initial_ix86_tune_features): Add
1270         X86_TUNE_VECTORIZE_DOUBLE.
1271         (ix86_units_per_simd_word): New.
1272
1273         * config/i386/i386.h (ix86_tune_indices): Add
1274         X86_TUNE_VECTORIZE_DOUBLE.
1275         (TARGET_VECTORIZE_DOUBLE): New.
1276         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
1277
1278 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
1279
1280         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
1281         (new_temp_expr_table): Allocate call_cnt vector.
1282         (free_temp_expr_table): Free it.
1283         (process_replaceable): Add call_cnt parm and set in vector.
1284         (find_replaceable_in_bb): Skip replacement if def/use span a call.
1285         (debug_ter): Dump call_cnt value, remove stderr uses.
1286
1287 2010-09-13  Jan Hubicka  <jh@suse.cz>
1288
1289         * tree.c (build_zero_cst): New.
1290         * tree.h (build_zero_cst): Declare.
1291         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
1292         (get_base_constructor): Break out from ...
1293         (fold_const_aggregate_ref): Here; handle empty constructors.
1294
1295 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1296
1297         * config/arm/arm.md: (define_attr "conds"): Update comment.
1298         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
1299         conds attribute to clob.
1300         (arm_sync_compare_and_swapsi): Likewise.
1301         (arm_sync_compare_and_swap<mode>): Likewise.
1302         (arm_sync_lock_test_and_setsi): Likewise.
1303         (arm_sync_lock_test_and_set<mode>): Likewise.
1304         (arm_sync_new_<sync_optab>si): Likewise.
1305         (arm_sync_new_nandsi): Likewise.
1306         (arm_sync_new_<sync_optab><mode>): Likewise.
1307         (arm_sync_new_nand<mode>): Likewise.
1308         (arm_sync_old_<sync_optab>si): Likewise.
1309         (arm_sync_old_nandsi): Likewise.
1310         (arm_sync_old_<sync_optab><mode>): Likewise.
1311         (arm_sync_old_nand<mode>): Likewise.
1312
1313 2010-09-13  Olivier Hainque  <hainque@adacore.com>
1314
1315         * fwprop.c (forward_propagate_and_simplify): Only attach a
1316         REG_EQUAL note to an insn if the destination is a register.
1317         * gcse.c (try_replace_reg): Likewise.
1318
1319 2010-09-13  Richard Guenther  <rguenther@suse.de>
1320
1321         PR tree-optimization/45611
1322         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
1323         (copy_ref_info): Likewise.
1324
1325 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
1326
1327         PR debug/45604
1328         PR debug/45419
1329         PR debug/45408
1330         * tree-pretty-print.c (dump_generic_node): Disregard top-level
1331         types of MEM_REF pointer types to the same type.
1332
1333 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
1334
1335         PR rtl-optimization/41087
1336         * ifcvt.c (noce_get_condition): Don't allow conditions with
1337         side-effects.
1338
1339 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
1340
1341         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
1342         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
1343         * config/frv/frv.c (frv_register_move_cost): Make static. Change
1344         arguments type to reg_class_t. Add mode argument.
1345         (frv_memory_move_cost): New.
1346         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
1347
1348 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
1349
1350         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
1351         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
1352
1353 2010-09-10  Jan Hubicka  <jh@suse.cz>
1354
1355         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
1356
1357 2010-09-10  Richard Guenther  <rguenther@suse.de>
1358
1359         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
1360         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
1361         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
1362         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
1363         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
1364
1365 2010-09-10  Richard Guenther  <rguenther@suse.de>
1366
1367         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
1368         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
1369         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
1370         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
1371
1372 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
1373
1374         PR middle-end/45634
1375         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
1376         of string folding is of integral type.
1377
1378 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
1379
1380         * doc/invoke.texi (-x): Fix typo.
1381
1382 2010-09-10  Richard Guenther  <rguenther@suse.de>
1383
1384         PR debug/44115
1385         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
1386         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
1387         Output DECL_DEBUG_EXPR.
1388         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
1389         Input DECL_DEBUG_EXPR.
1390
1391 2010-09-10  Richard Guenther  <rguenther@suse.de>
1392
1393         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
1394         (build_index_type): Implement in terms of build_range_type.
1395         (build_range_type): Do not allow NULL_TREE type, improve
1396         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
1397         if we didn't hash.
1398         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
1399         create a distinct copy of the type.
1400
1401 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
1402
1403         * configure: Regenerated.
1404         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
1405
1406 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1407
1408         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
1409         * config/arm/cortex-a9-neon.md: New and partially generated.
1410         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
1411
1412 2010-09-10  Richard Guenther  <rguenther@suse.de>
1413
1414         * tree.h (build_index_2_type): Remove.
1415         * tree.c (build_index_2_type): Remove.
1416
1417 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
1418
1419         PR bootstrap/45630
1420         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
1421         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
1422         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
1423
1424 2010-09-10  Martin Jambor  <mjambor@suse.cz>
1425
1426         PR tree-optimization/44972
1427         * tree-sra.c: Include toplev.h.
1428         (build_ref_for_offset): Entirely reimplemented.
1429         (build_ref_for_model): New function.
1430         (build_user_friendly_ref_for_offset): New function.
1431         (analyze_access_subtree): Removed build_ref_for_offset check.
1432         (propagate_subaccesses_across_link): Likewise.
1433         (create_artificial_child_access): Use
1434         build_user_friendly_ref_for_offset.
1435         (propagate_subaccesses_across_link): Likewise.
1436         (ref_expr_for_all_replacements_p): Removed.
1437         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
1438         (sra_modify_expr): Use build_ref_for_model.
1439         (load_assign_lhs_subreplacements): Likewise.
1440         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
1441         checks for return values of build_ref_for_offset.
1442         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
1443         build_ref_for_offset.
1444         * ipa-prop.h: Include gimple.h
1445         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
1446         (ipa_analyze_indirect_call_uses): Update comment.
1447         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
1448         (IPA_PROP_H): Likewise.
1449
1450 2010-09-10  Martin Jambor  <mjambor@suse.cz>
1451
1452         PR tree-optimization/44972
1453         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
1454         calling build_ref_for_offset.
1455
1456 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1457
1458         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
1459         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
1460         * config/arm/arm-tune.md: Regenerate.
1461         * doc/invoke.texi (ARM Options): Document it.
1462
1463 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
1464
1465         * config/i386/i386.c: Include sched-int.h.
1466         (TARGET_SCHED_DISPATCH): Defined.
1467         (TARGET_SCHED_DISPATCH_DO): Defined.
1468         (DISPATCH_WINDOW_SIZE): Defined.
1469         (MAX_DISPATCH_WINDOWS): Defined.
1470         (MAX_INSN): Defined.
1471         (MAX_IMM): Defined.
1472         (MAX_IMM_SIZE): Defined.
1473         (MAX_IMM_32): Defined.
1474         (MAX_IMM_64): Defined.
1475         (MAX_LOAD): Defined.
1476         (MAX_STORE): Defined.
1477         (BIG): Defined.
1478         (dispatch_group): New.
1479         (num_allowable_groups): New.
1480         (group_name): New.
1481         (sched_insn_info_s): New.
1482         (dispatch_windows_s): New.
1483         (imm_info_s): New.
1484         (dispatch_window_list): New.
1485         (dispatch_window_list1): New.
1486         (get_mem_group): New.
1487         (is_cmp): New.
1488         (dispatch_violation): New.
1489         (is_branch): New.
1490         (is_prefetch): New.
1491         (init_window): New.
1492         (allocate_window): New.
1493         (init_dispatch_sched): New.
1494         (is_end_basic_block): New.
1495         (process_end_window): New.
1496         (allocate_next_window): New.
1497         (find_constant_1): New.
1498         (find_constant): New.
1499         (get_num_immediates): New.
1500         (has_immediate): New.
1501         (get_insn_path): New.
1502         (get_insn_group): New.
1503         (count_num_restricted): New.
1504         (fits_dispatch_window): New.
1505         (add_insn_window): New.
1506         (add_to_dispatch_window): New.
1507         (debug_dispatch_window_file): New.
1508         (debug_dispatch_window): New.
1509         (debug_insn_dispatch_info_file): New.
1510         (debug_ready_dispatch): New.
1511         (do_dispatch): New.
1512         (has_dispatch): New.
1513         * config/i386/i386.h (debug_ready_dispatch): Declared.
1514         (debug_dispatch_window): Declared.
1515         * config/i386/i386.opt (mdispatch-scheduler): New flag.
1516         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
1517         (TARGET_SCHED_DISPATCH_DO): New.
1518         * doc/tm.texi: Regererated.
1519         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
1520         ready_remove_first_dispatch
1521         (schedule_block): Call targetm.sched.dispatch and
1522         targetm.sched.dispatch_do.
1523         (sched_init): Call targetm.sched.dispatch and
1524         targetm.sched.dispatch_do.
1525         (ready_remove_first_dispatch): New.
1526         (number_in_ready): New.
1527         (get_ready_element): New.
1528         * hooks.c (hook_bool_rtx_int_false): New.
1529         (hook_void_rtx_int): New.
1530         * hooks.h (hook_bool_rtx_int_false): Declared.
1531         (hook_void_rtx_int): Declared.
1532         * sched-int.h (IS_DISPATCH_ON): Defined.
1533         (IS_CMP): Defined.
1534         (DISPATCH_VIOLATION): Defined.
1535         (FITS_DISPATCH_WINDOW): Defined.
1536         (DISPATCH_INIT): Defined.
1537         (ADD_TO_DISPATCH_WINDOW): Defined.
1538         (get_ready_element): Declared.
1539         (number_in_ready): Declared.
1540         * target.def (dispatch): Defined.
1541         (dispatch_do): Defined.
1542
1543 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
1544
1545         PR middle-end/45312
1546         * reload1.c (merge_assigned_reloads): Remove.
1547         (reload_as_needed): Don't call it.
1548
1549 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
1550
1551         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
1552         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1553         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1554
1555 2010-09-09  Matthias Klose  <doko@ubuntu.com>
1556
1557         PR bootstrap/43847
1558         * configure.ac (--enable-plugin): Enhance for cross builds.
1559         * configure: Regenerate.
1560
1561 2010-09-09  Jan Hubicka  <jh@suse.cz>
1562
1563         PR tree-optimization/45598
1564         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
1565         string folding is of integral type.
1566
1567 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
1568
1569         * configure.ac (gnu_indirect_function): New test.
1570         * configure: Rebuilt.
1571         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
1572         * defaults.h (IFUNC_ASM_TYPE): Provide default.
1573
1574         * doc/extend.texi (Function Attributes): Document ifunc.
1575         * varasm.c (do_assemble_alias): Deal with ifuncs too.
1576
1577 2010-09-09  Hariharan Sandanagobalane <hariharan@picochip.com>
1578
1579         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
1580         epilogue instruction move.
1581
1582 2010-09-09  Jan Hubicka  <jh@suse.cz>
1583
1584         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
1585         command line to allow more partitions than input files.
1586
1587 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
1588
1589         PR middle-end/44554
1590         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
1591
1592 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
1593
1594         PR middle-end/40386
1595         * ira.c (pseudo_for_reload_consideration_p): Don't use
1596         flag_ira_share_spill_slots.
1597
1598 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1599
1600         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
1601         point zero operands that fit into a single GPR.
1602         (s390_preferred_reload_class): Ensure we only return general-purpose
1603         register classes.
1604         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
1605         floating-point zero operands into GPRs.
1606         ("*mov<mode>_64"): Likewise.
1607         ("mov<mode>"): Likewise using lhi.
1608
1609 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1610
1611         * config/s390/s390.c (s390_symref_operand_p): Return false for
1612         literal pool references.
1613         (s390_check_qrst_address): Update caller.
1614
1615 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
1616
1617         * config/i386/predicates.md (ext_register_operand): Check that
1618         SUBREG_REG is really a register before looking for REGNO.
1619         (reg_not_xmm0_operand): Handle SUBREGs correctly.
1620         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
1621
1622 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
1623
1624         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
1625         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
1626         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
1627         * print-rtl.c (print_rtx): Likewise.
1628         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
1629         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
1630         for ADDR_EXPR with non-addressable object.
1631         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
1632         (struct dw_val_struct): Add v.val_decl_ref.
1633         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
1634         Handle DW_OP_GNU_implicit_pointer.
1635         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
1636         (get_ref_die_offset_label): New function.
1637         (implicit_ptr_descriptor): New function.
1638         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
1639         (loc_descriptor): Likewise.
1640         (gen_variable_die): Put even definitions into decl_die_table.
1641         (resolve_addr_in_expr): Resolve still unresolved
1642         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
1643         return false.
1644         (dwarf2out_finish): Call output_location_lists after outputting
1645         .debug_info and .debug_abbrev instead of before.
1646
1647 2010-09-09  Roland McGrath  <roland@redhat.com>
1648
1649         * dwarf2out.c (DWARF_REF_SIZE): Define.
1650         (size_of_loc_descr): Use it for DW_OP_call_ref.
1651
1652 2010-09-09  Alan Modra  <amodra@gmail.com>
1653
1654         * doc/invoke.text: Reinstate mcmodel=medium.
1655         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
1656         CMODEL_MEDIUM as default.
1657         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
1658         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
1659         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
1660         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
1661
1662 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1663
1664         PR target/45250
1665         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
1666         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
1667         (builtin_longjmp): Likewise.
1668         (allocate_stack): Use hard_frame_pointer_rtx instead of
1669         frame_pointer_rtx.
1670         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
1671         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
1672         (pa_can_eliminate): Likewise.
1673         (TARGET_INTERNAL_ARG_POINTER): Define.
1674         (TARGET_CAN_ELIMINATE): Define.
1675         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
1676         pointer.
1677         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
1678         (pa_internal_arg_pointer, pa_can_eliminate,
1679         pa_initial_elimination_offset): New.
1680         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
1681         (HARD_FRAME_POINTER_REGNUM): Set to register three.
1682         (INITIAL_FRAME_POINTER_OFFSET): Delete.
1683         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
1684         Define.
1685         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
1686         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
1687         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
1688         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
1689         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
1690         new soft frame pointer.
1691         * config/pa/pa64-regs.h: Likewise.
1692
1693 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
1694
1695         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
1696         numerical constant.
1697         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
1698
1699 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
1700
1701         PR debug/45531
1702         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
1703
1704 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
1705
1706         PR debug/45419
1707         PR debug/45408
1708         * tree-pretty-print.c (dump_generic_node): Disregard top-level
1709         qualifiers in otherwise equal MEM_REF pointer types.
1710         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
1711         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
1712
1713 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1714
1715         PR target/44392
1716         * config/arm/arm.md (bswapsi2): Handle condition correctly
1717         for armv6 and optimize_size.
1718
1719 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1720
1721         PR other/18555
1722         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
1723
1724 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
1725
1726         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
1727         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
1728         ix86_expand_strlen, legitimate_pic_address_disp_p,
1729         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
1730         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
1731         ix86_check_movabs, ix86_secondary_memory_needed): Change function
1732         prototype to bool.
1733         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
1734         return_in_memory_ms_64, ix86_check_movabs,
1735         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
1736         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
1737         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
1738         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
1739         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
1740         ix86_secondary_memory_needed): Change to bool.  Return
1741         "true" and "false" values.
1742         * config/i386/i386.md: Return "true" and "false" values.
1743
1744 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1745
1746         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1747         run_expensive_tests.
1748
1749 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1750
1751         * toplev.c (output_stack_usage): Use lbasename instead of basename.
1752
1753 2010-09-08  Martin Jambor  <mjambor@suse.cz>
1754
1755         PR other/45443
1756         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
1757         at -O3.
1758
1759 2010-09-08  Richard Guenther  <rguenther@suse.de>
1760
1761         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
1762         (visit): Adjust.
1763         (iterative_hash_gimple_type): Likewise.
1764         (gimple_type_hash): Likewise.
1765         (gimple_register_type): Likewise.
1766         (print_gimple_types_stats): Likewise.
1767         (free_gimple_type_tables): Likewise.
1768
1769 2010-09-08  Michael Matz  <matz@suse.de>
1770
1771         PR tree-optimization/43430
1772         * tree-vect-stmts.c (vectorizable_condition): Support multiple
1773         copies for conditional statements if it's not part of a reduction.
1774
1775 2010-09-08  Michael Matz  <matz@suse.de>
1776
1777         PR tree-optimization/33244
1778         * tree-ssa-sink.c (statement_sink_location): Don't sink into
1779         empty loop latches.
1780
1781 2010-09-08  Richard Guenther  <rguenther@suse.de>
1782
1783         PR tree-optimization/45578
1784         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
1785         Be more careful when transfering alignment information to
1786         the new induction variable.
1787         (copy_ref_info): Likewise.
1788
1789 2010-09-08  Richard Guenther  <rguenther@suse.de>
1790
1791         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
1792         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
1793
1794 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
1795
1796         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
1797         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
1798
1799 2010-09-08  Kenneth Zadeck <zadeck@naturalbridge.com>
1800
1801         PR doc/45587
1802         * doc/md.texi: Fixed modes on several standard pattern names.
1803
1804 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
1805
1806         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
1807         (ashl<mode>3): ...this.
1808         (loongson_psra<V_suffix>): Rename to...
1809         (ashr<mode>3): ...this.
1810         (loongson_psrl<V_suffix>): Rename to...
1811         (lshr<mode>3): ...this.
1812         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
1813         (CODE_FOR_loongson_psllw): Define.
1814         (CODE_FOR_loongson_psrlh): Define.
1815         (CODE_FOR_loongson_psrlw): Define.
1816         (CODE_FOR_loongson_psrah): Define.
1817         (CODE_FOR_loongson_psraw): Define.
1818
1819 2010-09-07  Richard Henderson  <rth@redhat.com>
1820
1821         * tree-vect-data-refs.c: Include tm_p.h.
1822         * Makefile.in (tree-vect-data-refs.o): Update deps.
1823         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
1824         Move delarations outside #ifdef RTX_CODE.
1825
1826 2010-09-07  Richard Henderson  <rth@redhat.com>
1827
1828         * final.c (rest_of_handle_final): Unconditionally do
1829         output_function_exception_table before assemble_end_function.
1830
1831 2010-09-07  Jan Hubicka  <jh@suse.cz>
1832
1833         * tree-inline.c (tree_inlinable_function_p): Do not test
1834         DECL_REPLACEABLE_P.
1835         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
1836         update_callee_keys, cgraph_decide_inlining): Test function availability.
1837         * cif-code.def (OVERWRITABLE): New code.
1838
1839 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
1840             Jack Howarth <howarth@bromo.med.uc.edu>
1841
1842         PR target/36502
1843         PR target/42313
1844         PR target/44651
1845         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
1846         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
1847         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
1848         MAX macro.
1849
1850 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1851
1852         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
1853         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
1854
1855 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1856
1857         * config.gcc: Don't append t-android for Android targets.
1858
1859         * config/t-android: Removed.
1860
1861 2010-09-07  Richard Henderson  <rth@redhat.com>
1862
1863         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
1864         * doc/tm.texi.in: Add doc marker.
1865         * doc/tm.texi: Rebuild.
1866         * except.c (switch_to_exception_section): Always build.
1867         (output_one_function_exception_table): Move section switch,
1868         personality output, and label output ...
1869         (output_function_exception_table): ... here.  Use the new
1870         personality hook.
1871
1872         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
1873         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
1874         TARGET_ASM_INIT_SECTIONS): New.
1875         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
1876         make static.
1877         (TARGET_ASM_UNWIND_EMIT): Update to match.
1878         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
1879
1880         * config/arm/arm.c (arm_asm_emit_except_personality): New.
1881         (arm_asm_init_sections): New.
1882         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
1883
1884 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1885
1886         * config/arm/arm.md: Remove unused variable.
1887
1888 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
1889
1890         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
1891         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
1892         (m32r_memory_move_cost): New function.
1893
1894 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1895
1896         * config.gcc: Append t-android for Android targets.
1897
1898         * config/t-android: New.
1899
1900 2010-09-07  Richard Henderson  <rth@redhat.com>
1901
1902         * target.def (unwind_emit_before_insn): New hook.
1903         * doc/tm.texi.in: Add @hook marker for it.
1904         * doc/tm.texi: Rebuild.
1905         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
1906
1907 2010-09-07  Martin Jambor  <mjambor@suse.cz>
1908
1909         PR fortran/43665
1910         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
1911         are any type attributes.
1912
1913 2010-09-07  Jan Hubicka  <jh@suse.cz>
1914
1915         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
1916         array_ref_low_bound in string access folding.
1917
1918 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
1919
1920         PR target/45206
1921         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
1922         eh_return fixup sequence.
1923
1924 2010-09-07  Jan Hubicka  <jh@suse.cz>
1925
1926         * gimple-fold.c (maybe_fold_reference): Verify that operand is
1927         gimple_min_invariant.
1928
1929 2010-09-07  Richard Guenther  <rguenther@suse.de>
1930
1931         PR middle-end/45569
1932         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
1933         nor CONSTRUCTOR can trap.
1934         * tree-complex.c (update_complex_assignment): Update EH info.
1935
1936 2010-09-07  Richard Guenther  <rguenther@suse.de>
1937
1938         PR middle-end/45569
1939         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
1940         * passes.c (execute_function_todo): Do not verify anything if
1941         we saw errors.
1942
1943 2010-09-07  Richard Guenther  <rguenther@suse.de>
1944
1945         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
1946
1947 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
1948
1949         PR target/43137
1950         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
1951         New define_mode_attrs.
1952         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
1953         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
1954         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
1955         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
1956         Remove pool_range attribute.
1957         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
1958         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
1959         pool_range and neg_pool_range attributes.
1960         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
1961         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
1962         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
1963
1964 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
1965
1966         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
1967         check glibc.
1968
1969 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
1970
1971         PR target/22152
1972         * config/i386/mmx.md (*mov<mode>_internal_rex64,
1973         *mov<mode>_internal_avx, *mov<mode>_internal,
1974         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
1975         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
1976
1977 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
1978
1979         * c-typeck.c (do_warn_double_promotion): Remove.
1980         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
1981         Objective-C++ too.
1982
1983 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
1984
1985         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
1986         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
1987         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
1988         argument type to reg_class_t. Change result type to bool.
1989         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1990
1991 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1992
1993         PR libobjc/19850
1994         * gthr-posix.h (__gthread_objc_thread_detach): Use
1995         _objc_thread_attribs when detaching a thread.
1996         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
1997
1998 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
1999
2000         PR target/45524
2001         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
2002         * configure: Regenerated.
2003
2004 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2005
2006         * combine.c (try_combine): Set subst_low_luid to i0.
2007
2008 2010-09-06  Richard Guenther  <rguenther@suse.de>
2009
2010         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
2011         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
2012         (build_aligned_type): Declare.
2013         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
2014         (check_aligned_type): New function.
2015         (build_aligned_type): Likewise.
2016         * expr.c (expand_assignment): Handle misaligned stores via
2017         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
2018         (expand_expr_real_1): Likewise.
2019         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
2020         * tree-vect-stmts.c (vectorizable_store): Do not build
2021         MISALIGNED_INDIRECT_REF but initialize alignment information.
2022         (vectorizable_load): Likewise.
2023         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
2024         handling.
2025         * cfgexpand.c (expand_debug_expr): Likewise.
2026         * dwarf2out.c (loc_list_from_tree): Likewise.
2027         * fold-const.c (maybe_lvalue_p): Likewise.
2028         (operand_equal_p): Likewise.
2029         (build_fold_addr_expr_with_type_loc): Likewise.
2030         * gimplify.c (gimplify_addr_expr): Likewise.
2031         (gimplify_expr): Likewise.
2032         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
2033         (verify_gimple_assign_single): Likewise.
2034         * tree-dump.c (dequeue_and_dump): Likewise.
2035         (tree_could_trap_p): Likewise.
2036         * tree-predcom.c (ref_at_iteration): Likewise.
2037         * tree-pretty-print.c (dump_generic_node): Likewise.
2038         (op_code_prio): Likewise.
2039         (op_symbol_code): Likewise.
2040         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
2041         * tree-ssa-loop-im.c (for_each_index): Likewise.
2042         (gen_lsm_tmp_name): Likewise.
2043         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
2044         (find_interesting_uses_address): Likewise.
2045         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
2046         * tree-ssa-operands.c (get_expr_operands): Likewise.
2047         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
2048         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
2049         (ao_ref_init_from_vn_reference): Likewise.
2050         * tree.c (staticp): Likewise.
2051         (build1_stat): Likewise.
2052         (reference_alias_ptr_type): Likewise.
2053         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2054         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
2055         MISALIGNED_INDIRECT_REF handling.
2056
2057 2010-09-06  Richard Guenther  <rguenther@suse.de>
2058
2059         PR tree-optimization/45534
2060         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
2061         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
2062         on the target.
2063         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
2064         valid on the target.
2065
2066 2010-09-06  Andreas Schwab  <schwab@redhat.com>
2067
2068         * configure.ac: Quote argument of AC_MSG_WARN.
2069         * configure: Regenerate.
2070
2071 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
2072
2073         * sel-sched.c (move_cond_jump): Correct arguments to
2074         maybe_tidy_empty_bb.
2075         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
2076
2077 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
2078
2079         PR rtl-optimization/44919
2080         * sel-sched.c (move_cond_jump): Remove assert, check that
2081         the several blocks case can only happen with mutually exclusive
2082         insns instead.  Rewrite the movement code to support moving through
2083         several basic blocks.
2084
2085 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
2086
2087         * config/i386/i386.md (iptrsize): New mode attribute.
2088         (tp_seg): Ditto.
2089         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
2090         mode iterator.
2091         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
2092         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
2093         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
2094         (stack_tls_protect_set_<mode>): Ditto from
2095         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
2096         of thread base pointer load.
2097         (stack_tls_protect_test_<mode>): Ditto from
2098         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
2099         of thread base pointer load.
2100         (stack_protect_set): Rewrite using indirect functions.
2101         (stack_protect_test): Ditto.
2102         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
2103         (ix86_print_operand): Handle '@'.
2104
2105 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
2106
2107         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
2108         MINUS_EXPR.
2109
2110 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
2111
2112         * doc/invoke.texi: Document -Wdouble-promotion.
2113         * c-typeck.c (convert_arguments): Check for implicit conversions
2114         from float to double.
2115         (do_warn_double_promotion): New function.
2116         (build_conditional_expr): Use it.
2117         (build_binary_op): Likewise.
2118
2119 2010-09-05  Richard Guenther  <rguenther@suse.de>
2120
2121         PR tree-optimization/45535
2122         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
2123         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
2124         dereferencing it.
2125         (indirect_refs_may_alias_p): Likewise.
2126
2127 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
2128
2129         * config/sh/sh.c (sh_option_override): Make static.
2130         Adjust comments.  Declare.
2131         (sh_function_value_regno_p): Likewise.
2132         (sh_register_move_cost): Modify the arguments, make static.
2133         Adjust comments.  Declare.
2134         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
2135         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2136         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
2137         REGISTER_MOVE_COST): Delete.
2138         * config/sh/sh-protos.h (sh_override_options): Delete.
2139         (sh_register_move_cost): Delete.
2140         (sh_function_value_regno_p): Delete.
2141
2142 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
2143
2144         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
2145         m32r_function_value_regno_p): New functions.
2146         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2147         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
2148         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
2149         FUNCTION_VALUE_REGNO_P): Remove.
2150
2151 2010-09-04  Jan Hubicka  <jh@suse.cz>
2152
2153         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
2154         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
2155         fold_read_from_constant_string.
2156
2157         * gimple.h (canonicalize_constructor_val): Declare.
2158         * gimple-fold.c (canonicalize_constructor_val): New function.
2159         (get_symbol_constant_value):Use it.
2160         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
2161
2162 2010-09-04  Jan Hubicka  <jh@suse.cz>
2163
2164         * tree-switch-conversion.c (build_one_array): Set constructor to be
2165         static.
2166         * varpool.c (varpool_finalize_decl): Compute const_value_known.
2167
2168 2010-09-04  Richard Guenther  <rguenther@suse.de>
2169
2170         PR bootstrap/45519
2171         * tree-flow.h (force_gimple_operand_1): Declare.
2172         (force_gimple_operand_gsi_1): Likewise.
2173         * gimplify.c (force_gimple_operand_1): New worker taking a
2174         gimple predicate for ...
2175         (force_gimple_operand): ... which now wraps it.
2176         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
2177         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
2178         last change.
2179         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
2180         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
2181         (create_mem_ref): Likewise.
2182
2183 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
2184
2185         * config/i386/predicates.md (sse_reg_operand): New predicate.
2186         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
2187         predicate for operand 1.
2188         (XFmode push splitter): Use fp_register_operand predicate
2189         for operand 1.
2190         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
2191         (SF-DF float_extend push splitter): Add reload_completed insn
2192         predicate.
2193         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
2194         MODEF mode macro.  Add reload_completed insn predicate.
2195
2196 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
2197
2198         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
2199         (struct df_extract_ref): Remove.
2200         (union df_ref_d): Remove extract_ref member.
2201         (df_ref_create): Remove last three arguments.
2202         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
2203         * df-scan.c (df_ref_record): Remove last three arguments, do not
2204         pass them to df_ref_create_structure.
2205         (df_uses_record): Remove first and last three arguments.  Replace
2206         first argument with DF_REF_REGULAR, adjust calls to remove the
2207         width, offset and mode.  Always call recursively on the second
2208         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
2209         (df_ref_create_structure): Remove first argument.
2210         (struct df_scan_problem_data): Remove ref_extract_pool.
2211         (df_scan_free_internal): Do not free it.
2212         (df_scan_alloc): Do not allocate it.
2213         (df_ref_create): Remove last three arguments, do not pass them to
2214         df_ref_create_structure.
2215         (df_free_ref): Remove DF_REF_EXTRACT case.
2216         (df_notes_rescan): Adjust call to df_uses_record.
2217         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
2218         Remove DF_REF_EXTRACT case.
2219         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
2220         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
2221         and SUBREG definitions.
2222         (df_get_conditional_uses): Remove references to width/offset/mode,
2223         adjust call to df_ref_create_structure.
2224         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
2225         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
2226         calls to df_uses_record and df_ref_record.
2227         * fwprop.c (update_df): Remove references to width/offset/mode,
2228         adjust call to df_ref_create.
2229
2230 2010-09-03  Jan Hubicka  <jh@suse.cz>
2231
2232         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
2233         (build_cdtor_fns): Update use of build_cdtor.
2234
2235 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
2236
2237         * doc/options.texi (SeparateAlias): Document.
2238         * opt-functions.awk (switch_flags): Handle SeparateAlias.
2239         * opth-gen.awk: Generate enumeration names for options marked
2240         SeparateAlias, but not for those marked Ignore.
2241         * opts-common.c (generate_canonical_option): Don't output separate
2242         argument for options marked CL_SEPARATE_ALIAS.
2243         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
2244         * opts.h (CL_SEPARATE_ALIAS): New.
2245         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
2246         CL_COMMON): Adjust definitions.
2247         * config/i386/darwin.opt, config/mips/sde.opt: New.
2248         * common.opt (fdump-final-insns): New.
2249         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2250         i386/darwin.opt.
2251         (mips*-sde-elf*): Add mips/sde.opt.
2252         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
2253         -mno-data-in-code and -mcode-xonly here.
2254         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
2255         * gcc.c (option_map): Add "j" to --dump entry.
2256         (translate_options): Don't translate -d to -foutput-class-dir= here.
2257
2258 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
2259
2260         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
2261         DR_IS_WRITE.
2262         (compute_all_dependences): Same.
2263         (create_rdg_edge_for_ddr): Same.
2264         * tree-data-ref.h (DR_IS_WRITE): New.
2265         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
2266         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
2267         (write_memrefs_written_at_least_once): Same.
2268         * tree-predcom.c (suitable_component_p): Same.
2269         (determine_roots_comp): Same.
2270         (execute_load_motion): Same.
2271         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
2272         (vect_enhance_data_refs_alignment): Same.
2273         (vect_analyze_group_access): Same.
2274
2275 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
2276
2277         PR testsuite/42843
2278         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
2279         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
2280
2281 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
2282
2283         * dwarf2out.c (file scope): Remove #if0'd code.
2284         (gen_subprogram_die): Same.
2285
2286 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
2287
2288         PR middle-end/45484
2289         * dwarf2out.c (flush_queued_reg_saves): Rename to...
2290         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
2291         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
2292         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
2293         * config/i386/i386.c (output_set_got): Call it.
2294
2295 2010-09-03  Michael Matz  <matz@suse.de>
2296
2297         PR middle-end/45415
2298         * tree-sra.c (sra_modify_assign): If we modify the statement,
2299         say so.
2300
2301         * tree-ssa.c (verify_ssa): Check number of operands and links
2302         per statement to agree.
2303
2304 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
2305             Iain Sandoe  <iains@gcc.gnu.org>
2306
2307         PR target/45476
2308         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
2309         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
2310         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
2311
2312 2010-09-03  Richard Guenther  <rguenther@suse.de>
2313
2314         * lto-streamer-out.c (output_function): Output function
2315         start and end loci.
2316         * lto-streamer-in.c (input_function): Input function start
2317         and end loci.
2318
2319 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2320
2321         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
2322         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
2323         * configure: Regenerate.
2324         * aclocal.m4: Regenerate.
2325
2326 2010-09-03  Jan Hubicka  <jh@suse.cz>
2327
2328         PR lto/44812
2329         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
2330         on functions/variables in other partition.
2331
2332 2010-09-03  Jan Hubicka  <jh@suse.cz>
2333
2334         * cgraph.h (struct varpool_node): Add const_value_known.
2335         (varpool_decide_const_value_known): Declare.
2336         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
2337         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
2338         (input_varpool_node): Restore const_value_known.
2339         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
2340         initializer folding.
2341         * ipa.c (ipa_discover_readonly_nonaddressable_var,
2342         function_and_variable_visibility): Compute const_value_known.
2343         * gimple-fold.c (get_symbol_constant_value): Use varpool for
2344         initializer folding.
2345         * varpool.c (varpool_decide_const_value_known): New function.
2346
2347 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
2348
2349         * config/i386/i386.md: Remove empty preparation statements
2350         from splitters.
2351
2352 2010-09-03  Jan Hubicka  <jh@suse.cz>
2353
2354         * passes.c (rest_of_decl_compilation): Do not add local vars into
2355         varpool.
2356         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
2357         static or extern vars are in varpool.
2358         (varpool_finalize_decl): Sanity check that only static vars are
2359         finalized.
2360
2361 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
2362
2363         PR debug/45500
2364         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
2365         not just generic vectors with BLKmode.
2366
2367 2010-09-03  Richard Guenther  <rguenther@suse.de>
2368
2369         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
2370         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
2371         * tree.h (TMR_SYMBOL): Remove.
2372         (TMR_BASE, TMR_OFFSET): Adjust.
2373         (TMR_INDEX2): New.
2374         * alias.c (ao_ref_from_mem): Use TMR_BASE.
2375         * builtins.c (get_object_alignment): Merge TMR_BASE and
2376         TMR_SYMBOL handling.
2377         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
2378         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
2379         handling.  Also allow TARGET_MEM_REF as base address.
2380         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
2381         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
2382         base.  Gimplify TMR_INDEX2.
2383         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
2384         * tree-dfa.c (get_ref_base_and_extent): Likewise.
2385         (get_addr_base_and_unit_offset): Likewise.
2386         * tree-eh.c (tree_could_trap_p): Likewise.
2387         * tree-pretty-print.c (dump_generic_node): Likewise.
2388         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
2389         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
2390         base to index2.
2391         (get_address_description): Reconstruct addres description
2392         from merged TMR_BASE and TMR_INDEX2.
2393         (maybe_fold_tmr): Fold propagated addresses.
2394         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
2395         MEM_REF and TARGET_MEM_REF paths.
2396         (indirect_refs_may_alias_p): Likewise.
2397         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
2398         instead of TMR_SYMBOL.
2399         * tree-ssa-operands.c (get_tmr_operands): Simplify.
2400         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
2401         according to changes ...
2402         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
2403         Split TARGET_MEM_REF into two fields plus the base.
2404         * tree.c (mem_ref_offset): Simplify.
2405         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
2406         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
2407         Strip NOPs when folding MEM_REF addresses.
2408         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
2409         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
2410         (fold_gimple_assign): ... not here.
2411
2412 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
2413
2414         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
2415         * config/mips/mips.c (mips_shift_truncation_mask): New function.
2416         (TARGET_SHIFT_TRUNCATION_MASK): Define.
2417
2418 2010-09-02  Richard Henderson  <rth@redhat.com>
2419
2420         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
2421         instead of readelf in the test.
2422         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
2423         in the .debug_frame section for coff targets.
2424         * configure: Rebuild.
2425
2426 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
2427
2428         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
2429         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
2430         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2431         (m32c_class_likely_spilled_p): Make static. Change argument type to
2432         reg_class_t. Change result type to bool.
2433
2434 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
2435
2436         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
2437         to convert (double)(long) into a single FRIZ instruction or not
2438         when -ffast-math is used.
2439
2440         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
2441         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
2442         or FRIZ instruction if -ffast-math.
2443         * config/rs6000/rs6000.md (friz): Ditto.
2444
2445         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
2446
2447 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
2448
2449         * opth-gen.awk (quote, comma): Remove unused variables.
2450
2451 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
2452
2453         * arm.c (arm_override_options): Correct fall-back code to use
2454         SUBTARGET_CPU_DEFAULT.
2455
2456 2010-09-02  Julian Brown  <julian@codesourcery.com>
2457
2458         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
2459         unspecs.
2460         (vcond<mode>, vcondu<mode>): New expanders.
2461         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
2462         comparisons with zero.
2463         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
2464         * config/arm/constraints.md (Dz): New constraint.
2465
2466 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
2467
2468         * target.def (class_likely_spilled_p): New hook.
2469         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
2470         * doc/tm.texi: Regenerate.
2471         * targhooks.c (default_class_likely_spilled_p): New function.
2472         * targhooks.h (default_class_likely_spilled_p): Declare.
2473         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
2474         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
2475         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
2476         Use fixed_reg_set instead of fixed_regs.
2477         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
2478         * calls.c (avoid_likely_spilled_reg): Ditto.
2479         * ira-conflicts.c (ira_build_conflicts): Ditto.
2480         * ira.c (update_equiv_regs): Ditto.
2481         * mode-switching.c (create_pre_exit): Ditto.
2482         * regmove.c (find_matches): Ditto.
2483         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
2484         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
2485         (small_register_class_p): New inline function.
2486         (push_secondary_reload, find_reusable_reload, find_reloads): Use
2487         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
2488
2489         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
2490         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
2491         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2492
2493 2010-09-02  Richard Guenther  <rguenther@suse.de>
2494
2495         PR tree-optimization/44937
2496         PR tree-optimization/45412
2497         * ipa-split.c (split_function): Properly remove PHI nodes.
2498
2499 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
2500
2501         * opts.h (struct cl_option): Add warn_message field.
2502         (struct cl_decoded_option): Add warn_message field.
2503         * doc/options.texi (Ignore, Warn): Document.
2504         * opt-functions.awk (needs_state_p): Don't consider aliases or
2505         ignored options to need state saved.
2506         * optc-gen.awk: Handle Warn and Ignore.
2507         * opth-gen.awk: Output OPT_SPECIAL_ignore.
2508         * opts-common.c (decode_cmdline_option): Set warn_message field.
2509         Handle ignored options.
2510         (decode_cmdline_options_to_array, generate_option,
2511         generate_option_input_file): Set warn_message field.
2512         (read_cmdline_option): Generate warnings from warn_message field.
2513         Handle ignored options.
2514         * common.opt (Wunreachable-code, fargument-alias,
2515         fargument-noalias, fargument-noalias-global,
2516         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
2517         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
2518         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
2519         ftree-salias): Mark Ignore.
2520         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
2521         -mintel-syntax and -mno-intel-syntax here.
2522         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
2523         using Warn.
2524         * opts.c (common_handle_option): Don't handle options marked as
2525         ignored.
2526         (enable_warning_as_error): Handle ignored options.
2527
2528 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
2529
2530         PR driver/44076
2531         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
2532         alias_target fields.
2533         * opt-functions.awk (opt_sanitized_name): Don't handle
2534         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
2535         * optc-gen.awk: Generate alias fields.
2536         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
2537         Don't generate such constants for aliases.
2538         * opts-common.c (generate_canonical_option): New.
2539         (decode_cmdline_option): Handle aliases.  Use
2540         generate_canonical_option for known options instead of copying the
2541         input option text.
2542         * doc/options.texi (Alias): Document.
2543         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
2544         fstack-check, specs): Mark as aliases.
2545         * gcc.c (driver_handle_option): Canonicalize -L options to joined
2546         arguments.
2547         (driver_handle_option): Don't handle OPT_specs.
2548         * opts.c (common_handle_option): Don't handle options marked as
2549         aliases.
2550         (enable_warning_as_error): Handle aliases.
2551         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
2552         OPT_Wlarger_than_eq.
2553         * tree-optimize.c (tree_rest_of_compilation): Use
2554         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
2555
2556 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
2557
2558         * config/i386/i386.md (nonmemory_operand): New mode attribute.
2559         (push memory peephole2): Macroize peepholes using SWI mode iterator.
2560         (move immediate to memory peephole2): Macroize peepholes using
2561         SWI124 mode iterator.
2562         (non-pairable NOT peephole2): Macroize peepholes using SWI124
2563         mode iterator.
2564         (simple lea add peephole2): Macroize peepholes using SWI48
2565         mode iterator.
2566         (simple lea mult peephole2): Ditto.
2567         (imul by 3,5,9 to lea peephole2): Ditto.
2568         (mov $-1, reg peephole2): Macroize peepholes using SWI248
2569         mode iterator.
2570         (imul $32bit_imm,mem,reg peephole2): Ditto.
2571         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
2572
2573 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
2574
2575         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
2576
2577 2010-09-02  Olivier Hainque  <hainque@adacore.com>
2578
2579         PR middle-end/44763
2580         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
2581         (allocno_priority_compare_func): Use it instead of a straight
2582         difference computation over priorities.
2583
2584 2010-09-02  Andi Kleen  <ak@linux.intel.com>
2585
2586         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
2587
2588 2010-09-02  Ira Rosen  <irar@il.ibm.com>
2589
2590         * tree-vectorizer.h (get_later_stmt): New function.
2591         (vect_analyze_data_ref_dependences): Add argument.
2592         * tree-vect-loop.c (vect_analyze_loop): Update call to
2593         vect_analyze_data_ref_dependences.
2594         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
2595         New function.
2596         (vect_analyze_data_ref_dependence): Add argument for basic block
2597         dependencies. Check dependencies in basic block vectorization.
2598         (vect_analyze_data_ref_dependences): Add argument and update call to
2599         vect_analyze_data_ref_dependences.
2600         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
2601         (vect_bb_vectorizable_with_dependencies): New.
2602         (vect_slp_analyze_bb): Check dependencies in basic block.
2603         (vect_schedule_slp_instance): Insert stores before the last store in
2604         SLP instance.
2605
2606 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
2607
2608         PR target/45476
2609         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
2610         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
2611
2612 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
2613
2614         PR middle-end/45458
2615         * bb-reorder.c (add_labels_and_missing_jumps): Treat
2616         bbs ending with throwing insns like blocks ending with a call.
2617         (fix_up_fall_thru_edges): Likewise.
2618
2619 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
2620
2621         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
2622         (m32c_function_arg_advance): Delete.
2623         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2624         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
2625         comments.  Take a const_tree and a bool.  Declare.
2626         (m32c_function_arg_advance): Likewise.
2627         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2628
2629 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
2630
2631         PR target/45476
2632         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
2633         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
2634         * config/i386/mingw32.h: ... here.
2635
2636 2010-09-01  Andi Kleen  <ak@linux.intel.com>
2637
2638         PR lto/45475
2639         * lto-streamer-in.c (lto_input_ts_target_option): Add.
2640         (lto_input_tree_pointers): Call lto_input_ts_target_option.
2641         * lto-streamer-out (lto_output_ts_target_option): Add.
2642         (lto_output_tree_pointers): Call lto_output_ts_target_option.
2643
2644 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
2645
2646         PR/target 45452
2647         * config/i386/cygwin.h: Change order of specified import libraries.
2648         * config/i386/mingw32.h: Likewise.
2649         * config/i386/t-cygwin: Likewise.
2650         * config/i386/t-mingw32: Likewise.
2651         * config/i386/t-mingw-w32: Likewise.
2652         * config/i386/t-mingw-w64: Likewise.
2653
2654 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2655
2656         * config/arm/neon-schedgen.ml (core): New type.
2657         (allCores): List of supported cores.
2658         (availability_table): Add supported cores.
2659         (collate_bypasses): Accept core as a parameter.
2660         (worst_case_latencies_and_bypasses): Accept core as a parameter.
2661         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
2662         and coreStr to get tune attribute and prefix for functional units.
2663         (emit_bypasses): Accept core name and use it.
2664         (calculate_per_core_availability_table): New.
2665         (filter_core): New.
2666         (calculate_core_availability_table): New.
2667         (main): Use calculate_core_availablity_table.
2668         * config/arm/cortex-a8-neon.md: Update copyright year.
2669         Regenerated from ml file and merged in.
2670         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
2671         cortex_a8_neon_mrc.
2672
2673 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
2674
2675         * Makefile.in (tree-switch-conversion.o): Update dependencies.
2676
2677 2010-09-01  Richard Guenther  <rguenther@suse.de>
2678
2679         * alias.c (ao_ref_from_mem): Adjust.
2680         * builtins.c (get_object_alignment): Likewise.
2681         * cfgexpand.c (expand_debug_expr): Likewise.
2682         * gimple.c (get_base_address): Likewise.
2683         * tree-dfa.c (get_ref_base_and_extent): Likewise.
2684         (get_addr_base_and_unit_offset): Likewise.  Fix for
2685         both TMR_SYMBOL and TMR_BASE being set.
2686         * tree-eh.c (tree_could_trap_p): Likewise.
2687         * gimplify.c (gimplify_expr): Do not attempt to gimplify
2688         TMR_SYMBOL.  Always gimplify TMR_BASE.
2689         * tree-cfg.c (verify_types_in_gimple_reference): Verify
2690         TMR_BASE if there is a TMR_SYMBOL.
2691         * tree-pretty-print.c (dump_generic_node): Adjust.
2692         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
2693         (tree_mem_ref_addr): Likewise.
2694         (create_mem_ref_raw): Likewise.
2695         (move_fixed_address_to_symbol): Likewise.
2696         (create_mem_ref): Likewise.
2697         (dump_mem_address): Likewise.
2698         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
2699         Fix for both TMR_SYMBOL and TMR_BASE being set.
2700         (indirect_refs_may_alias_p): Likewise.
2701         * tree-ssa-operands.c (get_tmr_operands): Adjust.
2702         * tree.def (TARGET_MEM_REF): Adjust documentation.
2703
2704 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
2705
2706         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
2707         Rename from X86_TUNE_ADD_ESP_4.
2708         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
2709         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
2710         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
2711         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
2712         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
2713         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
2714         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
2715         * config/i386/i386.c (initial_ix86_tune_features)
2716         <X86_TUNE_SINGLE_POP>: Invert members.
2717         <X86_TUNE_DOUBLE_POP>: Ditto.
2718         <X86_TUNE_SINGLE_PUSH>: Ditto.
2719         <X86_TUNE_DOUBLE_PUSH>: Ditto.
2720         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
2721         No longer exported.
2722         (push peephole2 patterns): Macroize peepholes using P mode iterator.
2723         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
2724         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
2725         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
2726
2727 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
2728
2729         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
2730         a volatile LHS if the constructor has only one element.
2731
2732 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
2733
2734         PR bootstrap/45321
2735         * tree.c (stdarg_p): Make fntype parameter const.
2736         * tree.h (stdarg_p): Likewise.
2737         (function_args_iterator): Remove unused fntype field.
2738         (function_args_iter_init): Do not initialize fntype
2739         field.  Make fntype parameter const.
2740
2741 2010-09-01  Richard Guenther  <rguenther@suse.de>
2742
2743         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
2744         estimate.
2745         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
2746         (execute_vrp): Compute number of iteration estimates.
2747         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
2748         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
2749         * tree-data-ref.c (estimated_loop_iterations): Adjust.
2750         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
2751         Infer loop bounds from undefined behavior based on a new parameter.
2752         (estimate_numbers_of_iterations): Likewise.
2753         (scev_probably_wraps_p): Adjust.
2754         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
2755
2756 2010-09-01  Nick Clifton  <nickc@redhat.com>
2757
2758         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
2759         where appropriate.
2760         (xstormy16_legitimate_address_p): Use true and false instead of 1
2761         and 0.
2762         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
2763         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
2764         magic constant 2.
2765         (xstormy16_expand_call): Fix comment at start of function.
2766
2767 2010-09-01  Nick Clifton  <nickc@redhat.com>
2768
2769         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
2770         when pushing accumulator register.
2771         (rx_get_stack_layout): Always save call clobbered registers inside
2772         interrupt handlers.
2773         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
2774
2775 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
2776
2777         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
2778         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
2779
2780         * libgcc-std.ver (GCC_4.6.0): Define version.
2781
2782 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
2783
2784         * tree-nested.c (convert_all_function_calls): Iterate until after the
2785         sum of static chains in the nest doesn't change.
2786
2787 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
2788
2789         * config/m32c/m32c.c (classes_intersect): Remove.
2790         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
2791         reg_classes_intersect_p instead of classes_intersect.
2792         (class_can_hold_mode): Change arguments type from enum reg_class to
2793         reg_class_t.  Use reg_class_contents instead of class_contents.
2794         (m32c_register_move_cost): Make static. Change arguments type from
2795         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
2796         classes_intersect. Use reg_class_contents instead of class_contents.
2797         (m32c_memory_move_cost): Make static. Change arguments type from
2798         enum reg_class to reg_class_t.
2799         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
2800         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2801         * config/m32c/m32c-protos.h (m32c_register_move_cost,
2802         m32c_memory_move_cost): Remove.
2803
2804 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2805
2806         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
2807         (arm_function_arg): Delete.
2808         (arm_needs_doubleword_align): Take a const_tree.
2809         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2810         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
2811         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
2812         (arm_function_arg): Make static.  Take a const_tree and a bool.
2813         (arm_function_arg_advance): Likewise.
2814         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2815
2816 2010-08-31  Andi Kleen  <ak@linux.intel.com>
2817
2818         * common.opt (fwhopr=): Update for -fwhopr=jobserver
2819         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
2820         * lto-wrapper.c (run_gcc): Add jobserver mode.
2821         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
2822         argument.
2823
2824 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
2825
2826         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
2827         (popsi1): Ditto.
2828         (*popdi1_epilogue): Ditto.
2829         (*popsi1_epilogue): Ditto.
2830         (popsi, popdi peephole2 patterns): Update peepholes for changed
2831         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
2832
2833         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
2834         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
2835
2836         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
2837         (override_options): Do not initialize removed ix86_gen_pop1.
2838         (gen_pop): New static function.
2839         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
2840         (release_scratch_register_on_entry): Ditto.
2841         (ix86_restore_reg_using_pop): Ditto.
2842         (ix86_expand_epilogue): Ditto.
2843
2844 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
2845
2846         PR middle-end/45461
2847         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
2848
2849 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2850
2851         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
2852         semicolons.
2853
2854 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2855
2856         * doc/extend.texi: Fix documentation of the return value of
2857         __builtin_choose_expr.
2858
2859 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2860
2861         * config/v850/v850-protos.h (function_arg): Delete.
2862         * config/v850/v850.h (FUNCTION_ARG): Delete.
2863         (FUNCTION_ARG_ADVANCE): Move code to...
2864         * config/v850/v850.c (v850_function_arg_advance): ...here.
2865         (v850_function_arg): Make static.  Take a const_tree and a bool.
2866         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2867
2868 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2869
2870         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
2871         these...
2872         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
2873         ...and these...
2874         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
2875         ..to here..
2876         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
2877         ...and here.
2878         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2879
2880 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2881
2882         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
2883         Delete.
2884         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2885         * config/rx/rx.c (rx_function_arg_size): Make static.
2886         (rx_function_arg): Likewise.
2887         (rx_function_arg_advance): New function.
2888         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2889
2890 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
2891
2892         * config/arm/arm.c (arm_override_options): Remove superfluous test.
2893         Fix indentation.
2894
2895 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
2896
2897         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
2898         (dwarf2out_decl) <CONST_DECL>: Likewise.
2899
2900 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
2901
2902         Stack usage support
2903         * common.opt (-fstack-usage): New option.
2904         * doc/invoke.texi (Debugging options): Document it.
2905         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
2906         allocate_dynamic_stack_space.
2907         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
2908         and propagate it to allocate_dynamic_stack_space.
2909         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
2910         * calls.c (initialize_argument_information): Pass TRUE as 4th
2911         argument to allocate_dynamic_stack_space.
2912         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
2913         to 1 when pushing a variable-sized argument onto the stack.  Pass
2914         TRUE as 4th argument to allocate_dynamic_stack_space.
2915         Update current_function_pushed_stack_size.
2916         (emit_library_call_value_1): Likewise.
2917         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
2918         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
2919         attempt to find an upper bound.  Remove redundant code for the
2920         SETJMP_VIA_SAVE_AREA case.
2921         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
2922         * function.h (struct stack_usage): New structure.
2923         (current_function_static_stack_size): New macro.
2924         (current_function_dynamic_stack_size): Likewise.
2925         (current_function_pushed_stack_size): Likewise.
2926         (current_function_dynamic_alloc_count): Likewise.
2927         (current_function_has_unbounded_dynamic_stack_size): Likewise.
2928         (current_function_allocates_dynamic_stack_space): Likewise.
2929         (struct function): Add new field 'su'.
2930         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
2931         add the value of the dynamic offset to the dynamic stack usage.
2932         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
2933         for variable-sized objects.
2934         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
2935         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
2936         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
2937         BUILT_IN_ALLOCA for variable-sized objects.
2938         * output.h (output_stack_usage): Declare.
2939         * toplev.c (stack_usage_file): New file pointer.
2940         (output_stack_usage): New function.
2941         (open_auxiliary_file): Likewise.
2942         (lang_dependent_init): Open file if flag_stack_usage is set.
2943         (finalize): Close file if stack_usage_file is not null.
2944         * tree.h (ALLOCA_FOR_VAR_P): New macro.
2945         * config/alpha/alpha.c (compute_frame_size): New function.
2946         (alpha_expand_prologue): Use it.
2947         (alpha_start_function): Likewise.
2948         (alpha_expand_epilogue): Likewise.  Set stack usage info.
2949         * config/i386/i386.c (ix86_expand_prologue): Likewise.
2950         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
2951         * config/mips/mips.c (mips_expand_prologue): Likewise.
2952         * config/pa/pa.c (hppa_expand_prologue): Likewise.
2953         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
2954         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
2955
2956 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
2957
2958         PR tree-optimization/45427
2959         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
2960         Handle the case that the exit is never taken correctly.
2961         (number_of_iterations_ne): Pass exit_must_be_taken to
2962         number_of_iterations_ne_max.
2963
2964 2010-08-30  Catherine Moore  <clm@codesourcery.com>
2965
2966         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
2967         Infer -mdspr2 for the the 74K.
2968
2969 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
2970
2971         PR debug/45419
2972         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
2973
2974         PR middle-end/45423
2975         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
2976         and TRUTH_{AND,OR,XOR}_EXPR.
2977         * c-parser.c (c_parser_omp_atomic): Handle boolean
2978         {PRE,POST}_{INC,DEC}REMENT.
2979
2980 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
2981
2982         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
2983         (function_arg): Delete.
2984         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2985         (FUNCTION_INCOMING_ARG): Delete.
2986         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
2987         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
2988         and a bool.
2989         (function_arg): Rename to...
2990         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
2991         a bool.
2992         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
2993         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2994         (TARGET_FUNCTION_INCOMING_ARG): Define.
2995
2996 2010-08-30  Richard Guenther  <rguenther@suse.de>
2997
2998         PR tree-optimization/21602
2999         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
3000         using points-to information.
3001
3002 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
3003
3004         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
3005
3006 2010-08-30  Richard Guenther  <rguenther@suse.de>
3007
3008         PR tree-optimization/45449
3009         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
3010         variables.
3011
3012 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
3013
3014         * opts.h (CL_ERR_NEGATIVE): Define.
3015         * opts.c (unknown_option_callback): Don't postpone warnings for
3016         options marked with CL_ERR_NEGATIVE.
3017         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
3018         for negative versions of CL_REJECT_NEGATIVE options.
3019
3020 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
3021
3022         * config/i386/i386.md (zero_extendsidi2_1): Rename from
3023         zero_extendsidi2_32.
3024         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
3025         using SWI12 mode iterator.
3026         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
3027         to define_insn_and_split pattern.
3028         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
3029         using SWI24 mode iterator.
3030         (*zero_extendqi<mode>2_and): Macroize insn from
3031         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
3032         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
3033         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
3034         SWI24 mode iterator.
3035         (*zero_extendqi<mode>2_movzbl): Ditto from
3036         *zero_extendqi{hi,si}2_movzbl.
3037         (extendsidi2_1): Rename from extendsidi2_32.
3038         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
3039         SWI12 mode iterator.
3040
3041 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
3042
3043         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
3044         general purpose registers.
3045         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
3046         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
3047         with general purpose registers and memory operands.  Add associated
3048         CCImode post-reload splitter.
3049         * config/ia64/div.md: Change BImode to CCImode throughout.
3050
3051 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
3052
3053         * config/ia64/ia64.md (cstorebi4): Fix thinko.
3054
3055 2010-08-28  Hariharan Sandanagobalane <hariharan@picochip.com>
3056
3057         * config/picochip/picochip.c (reorder_var_tracking_notes): This
3058         function was dropping debug insns which caused PR45299.
3059
3060 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
3061
3062         * config/i386/sse.md (extsuffix): New code attribute.
3063         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
3064         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
3065         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
3066         and sse4_1_zero_extendv4qiv4si2.
3067         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
3068         and sse4_1_zero_extendv2qiv2di2.
3069         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
3070         and sse4_1_zero_extendv4hiv4si2.
3071         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
3072         and sse4_1_zero_extendv2hiv2di2.
3073         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
3074         and sse4_1_zero_extendv2siv2di2
3075
3076         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
3077         using any_extend code iterator.
3078         (*avx_<s>mulv8hi3_highpart): Macroize insn from
3079         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
3080         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
3081
3082         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
3083         gen_sse4_1_sign_extend* functions.
3084         (struct builtin_description bdesc_args): Ditto.
3085
3086 2010-08-27  Xinliang David Li  <davidxl@google.com>
3087
3088         PR/45422
3089         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
3090         (iv_ca_set_no_cp): Update used inv expr count.
3091         (iv_ca_set_cp): Ditto.
3092         (iv_ca_new): Initialize new member.
3093         (iv_ca_free): Free memory.
3094
3095 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
3096
3097         * config/sh/sh-protos.h (sh_function_arg): Delete.
3098         (sh_function_arg_advance): Delete.
3099         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3100         (PASS_IN_REG_P): Eliminate cast.
3101         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
3102         const_tree and a bool.
3103         (sh_function_arg): Likewise.
3104         (sh_output_mi_thunk): Call sh_function_arg_advance) and
3105         sh_function_arg.
3106         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3107
3108 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
3109             Kaz Kojima  <kkojima@gcc.gnu.org>
3110
3111         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
3112         when possible.
3113         (sh_expand_epilogue): Likewise.
3114         * config/sh/sh.md (movml_push_banked): New insn.
3115         (movml_pop_banked): Likewise.
3116
3117 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
3118
3119         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
3120         gen_regexp_oneof, gen_regexp_sequence): Use the string found
3121         in vector element 0 rather than the original string when there's
3122         only one element.
3123         (gen_regexp): Remove extra semicolon.
3124
3125         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
3126         thumb2_movsf_vfp): Set attribute "insn".
3127         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
3128         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
3129         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
3130         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
3131         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
3132         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
3133         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
3134         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
3135         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
3136         if_not_arith, if_arith_not, cond_move_not): Likewise.
3137
3138 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3139
3140         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
3141         New declaration.
3142         (rs6000_allocate_stack_temp): Ditto.
3143         (rs6000_expand_convert_si_to_sfdf): Ditto.
3144
3145         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
3146         line.  Update the options set if power6 or power7 server/embedded
3147         type options are used.  If we give a warning for no vsx under
3148         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
3149         (rs6000_allocate_stack_temp): New function to allocate a stack
3150         tempoary and adjust the address so it meets either REG+OFFSET or
3151         REG+REG addressing requirements.
3152         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
3153         that they can be used with the LFIWAX/LFIWZX instrucitons.
3154         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
3155         converting signed/unsigned SImode to either SFmode/DFmode.
3156
3157         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
3158         whether certain instructions can be generated.
3159         (TARGET_FCTIDZ): Ditto.
3160         (TARGET_STFIWX): Ditto.
3161         (TARGET_LFIWAX): Ditto.
3162         (TARGET_LFIWZX): Ditto.
3163         (TARGET_FCFIDS): Ditto.
3164         (TARGET_FCFIDU): Ditto.
3165         (TARGET_FCFIDUS): Ditto.
3166         (TARGET_FCTIDUZ): Ditto.
3167         (TARGET_FCTIWUZ): Ditto.
3168
3169         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
3170         (UNSPEC_FCTID): Ditto.
3171         (UNSPEC_LFIWAX): Ditto.
3172         (UNSPEC_LFIWZX): Ditto.
3173         (UNSPEC_FCTIWUZ): Ditto.
3174         (rreg): Use correct constraints.
3175         (SI_CONVERT_FP): New mode attribute for floating point conversion
3176         tests.
3177         (E500_CONVERT): Ditto.
3178         (lfiwax): New insns for converting from integer to floating point
3179         utilizing newer instructions.  Attempt to optimize conversions
3180         that come from memory so that we don't load the value into a GPR,
3181         spill it to the stack and reload it into a FPR.
3182         (floatsi<mode>2_lfiwax): Ditto.
3183         (floatsi<mode>2_lfiwax_mem): Ditto.
3184         (floatsi<mode>2_lfiwax_mem2): Ditto.
3185         (lfiwzx): Ditto.
3186         (floatunssi<mode>2_lfiwzx): Ditto.
3187         (floatunssi<mode>2_lfiwzx_mem): Ditto.
3188         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
3189         (floatdidf2_mem): Ditto.
3190         (floatunsdidf2_fcfidu): Ditto.
3191         (floatunsdidf2_mem): Ditto.
3192         (floatunsdisf2): Ditto.
3193         (floatunsdisf2_fcfidus): Ditto.
3194         (floatunsdisf2_mem): Ditto.
3195         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
3196         Use FCFID on 32-bit hosts that support it.
3197         (floatsidf2_internal): Ditto.
3198         (floatunssisf2): Ditto.
3199         (floatunssidf2): Ditto.
3200         (floatunssidf2_internal): Ditto.
3201         (floatsisf2): Ditto.
3202         (floatdidf2): Ditto.
3203         (floatdidf2_fpr): Ditto.
3204         (floatunsdidf2): Ditto.
3205         (floatdisf2): Ditto.
3206         (floatdisf2_fcfids): Ditto.
3207         (floatdisf2_internal1): Ditto.
3208         (fixuns_truncsfsi2): Delete, merge into common pattern for both
3209         SF/DF.  Add power7 support.
3210         (fix_truncsfsi2): Ditto.
3211         (fixuns_truncdfsi2): Ditto.
3212         (fixuns_truncdfdi2): Ditto.
3213         (fix_truncdfsi2): Ditto.
3214         (fix_truncdfsi2_internal): Ditto.
3215         (fix_truncdfsi2_internal_gfxopt): Ditto.
3216         (fix_truncdfsi2_mfpgpr): Ditto.
3217         (fctiwz): Ditto.
3218         (btruncdf2): Ditto.
3219         (btruncdf2_fpr): Ditto.
3220         (btructsf2): Ditto.
3221         (ceildf2): Ditto.
3222         (ceildf2_fpr): Ditto.
3223         (ceilsf2): Ditto.
3224         (floordf2): Ditto.
3225         (floordf2_fpr): Ditto.
3226         (floorsf2): Ditto.
3227         (rounddf2): Ditto.
3228         (rounddf2_fpr): Ditto.
3229         (roundsf2): Ditto.
3230         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
3231         (fix_trunc<mode>di2): Ditto.
3232         (fixuns_trunc<mode>si2): Ditto.
3233         (fixuns_trunc<mode>di2): Ditto.
3234         (fctiwz_<mode>): Ditto.
3235         (btrunc<mode>2): Ditto.
3236         (btrunc<mode>2_fpr): Ditto.
3237         (ceil<mode>2): Ditto.
3238         (ceil<mode>2_fpr): Ditto.
3239         (floor<mode>2): Ditto.
3240         (float<mode>2_fpr): Ditto.
3241         (round<mode>2): Ditto.
3242         (round<mode>2_fpr): Ditto.
3243         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
3244         (fixuns_trunc<mode>si2_stfiwx): Ditto.
3245         (fix_truncdfsi2_internal): Ditto.
3246         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
3247         converted value on stack, loaded into GPR, and then stored into
3248         the final destination.
3249         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
3250         FCTIDZ.
3251         (lrint<mode>di2): New insn, provide the lrint builtin functions.
3252         (ftruncdf2): Delete, unused.
3253         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
3254
3255         * config/rs6000/vsx.md (toplevel): Update copyright year.
3256         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
3257         (VSr3): Ditto.
3258
3259 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
3260             Jeremie Salvucci  <jeremie.salvucci@free.fr>
3261
3262         * gengtype.c (output_type_enum): Test the right union member.
3263
3264 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
3265
3266         PR target/41484
3267         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
3268         operands for operand 1.
3269         (sse4_1_extendv4qiv4si2): Ditto.
3270         (sse4_1_extendv2qiv2di2): Ditto.
3271         (sse4_1_extendv4hiv4si2): Ditto.
3272         (sse4_1_extendv2hiv2di2): Ditto.
3273         (sse4_1_extendv2siv2di2): Ditto.
3274         (sse4_1_zero_extendv8qiv8hi2): Ditto.
3275         (sse4_1_zero_extendv4qiv4si2): Ditto.
3276         (sse4_1_zero_extendv2qiv2di2): Ditto.
3277         (sse4_1_zero_extendv4hiv4si2): Ditto.
3278         (sse4_1_zero_extendv2hiv2di2): Ditto.
3279         (sse4_1_zero_extendv2siv2di2): Ditto.
3280         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
3281         (*sse4_1_extendv4qiv4si2): Ditto.
3282         (*sse4_1_extendv2qiv2di2): Ditto.
3283         (*sse4_1_extendv4hiv4si2): Ditto.
3284         (*sse4_1_extendv2hiv2di2): Ditto.
3285         (*sse4_1_extendv2siv2di2): Ditto.
3286         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
3287         (*sse4_1_zero_extendv4qiv4si2): Ditto.
3288         (*sse4_1_zero_extendv2qiv2di2): Ditto.
3289         (*sse4_1_zero_extendv4hiv4si2): Ditto.
3290         (*sse4_1_zero_extendv2hiv2di2): Ditto.
3291         (*sse4_1_zero_extendv2siv2di2): Ditto.
3292
3293 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
3294
3295         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
3296         (mips_function_arg): Delete.
3297         (mips_function_arg_boundary): Take a const_tree.
3298         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
3299         (mips_arg_info): Likewise.
3300         (mips_setup_incoming_varargs): Call mips_function_arg_advance
3301         instead of FUNCTION_ARG_ADVANCE.
3302         (mips_function_arg_advance): Adjust prototype.  Make static.
3303         (mips_function_arg): Likewise.
3304         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3305         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
3306
3307 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
3308
3309         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3310         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
3311         (function_arg): Delete.
3312         (function_arg_boundary): Take a const_tree.
3313         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
3314         (rs6000_spe_function_arg): Likewise.
3315         (rs6000_parm_start): Likewise.
3316         (rs6000_arg_size): Likewise.
3317         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
3318         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
3319         (rs6000_mixed_function_arg): Likewise.
3320         (function_arg): Rename to...
3321         (rs6000_function_arg): ...this.
3322         (function_arg_advance): Rename to...
3323         (rs6000_function_arg_advance_1): ...this
3324         (rs6000_function_arg_advance): New function.  Call it.
3325         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
3326         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
3327         (rs6000_function_value): Likewise.
3328         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3329
3330 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3331
3332         * config/arm/arm.md (enabled): Test the value of arch_enabled
3333         rather than just using it.
3334
3335 2010-08-27  Olivier Hainque  <hainque@adacore.com>
3336             Eric Botcazou  <ebotcazou@adacore.com>
3337
3338         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
3339         cover all the possible offsets from this base.
3340         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
3341
3342 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
3343
3344         PR tree-optimization/44485
3345         * calls.c (flags_from_decl_or_type): For const or pure
3346         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
3347         together with ECF_CONST resp. ECF_PURE.
3348         * builtins.c (expand_builtin): Use flags_from_decl_or_type
3349         instead of querying flags directly.
3350         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
3351         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
3352
3353 2010-08-26  Richard Guenther  <rguenther@suse.de>
3354
3355         PR tree-optimization/45255
3356         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
3357         and externals are also invariant.
3358
3359 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
3360
3361         PR rtl-optimization/44858
3362         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
3363         newi2pat, make sure they don't affect newpat.
3364
3365         PR rtl-optimization/45400
3366         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
3367         SUBREG_REG if both modes are of MODE_INT class.
3368
3369 2010-08-25  Julian Brown  <julian@codesourcery.com>
3370
3371         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
3372         * config/arm/arm.md (generic_sched): No for Cortex-A5.
3373         (generic_vfp): Likewise.
3374         (cortex-a5.md): Include.
3375         * config/arm/cortex-a5.md: New.
3376
3377 2010-08-25  Richard Guenther  <rguenther@suse.de>
3378
3379         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
3380         * gimple.c (gimple_get_alias_set): Remove special handling
3381         for pointers.
3382
3383 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
3384
3385         PR middle-end/45355
3386         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
3387         dead_or_set_p when computing i0_feeds_i2_n.
3388
3389         * combine.c (find_split_point): Undo canonicalization of multiply-add
3390         to (minus x (mult)) when it seems likely that this will increase the
3391         chances of a split.
3392
3393 2010-08-25  Richard Guenther  <rguenther@suse.de>
3394
3395         PR lto/44562
3396         * lto-streamer.c (lto_record_common_node): Do not mess with
3397         TYPE_CANONICAL when not in lto.
3398         * gimple.c (gimple_register_type): Likewise.
3399
3400 2010-08-25  Richard Guenther  <rguenther@suse.de>
3401
3402         PR tree-optimization/45316
3403         * tree-ssa-pre.c (eliminate): Properly clean EH info.
3404
3405 2010-08-25  Richard Guenther  <rguenther@suse.de>
3406
3407         PR tree-optimization/45393
3408         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
3409         and clean EH info.  Avoid SSA update.
3410         (execute_cse_sincos): Cleanup the CFG if it has changed.
3411
3412 2010-08-25  Richard Guenther  <rguenther@suse.de>
3413
3414         PR middle-end/45379
3415         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
3416         TARGET_MEM_REF in alignment computation.
3417
3418 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
3419
3420         PR tree-optimization/45059
3421         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
3422         type conversions from newop{1,2}.  Assert t is a comparison and
3423         newop{1,2} after the stripping are gimple vals.
3424
3425 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
3426
3427         * config/arm/iterators.md (VU, SE, V_widen_l): New.
3428         (V_unpack, US): New.
3429         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
3430         (vec_unpack<US>_lo_<mode>): Likewise.
3431         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
3432         (neon_vec_unpack<US>_lo_<mode>): Likewise.
3433         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
3434         (vec_widen_<US>mult_hi_<mode>): Likewise.
3435         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
3436         (neon_vec_<US>mult_hi_<mode>"): Likewise.
3437         (neon_unpack<US>_<mode>): Widening move intermediate step for
3438         vectorizing without -mvectorize-with-neon-quad.
3439         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
3440         for vectorizing without -mvectorize-with-neon-quad.
3441         * config/arm/predicates.md (vect_par_constant_high): Check for
3442         high-half lanes of a vector.
3443         (vect_par_constant_low): Check for low-half lanes of a vector.
3444
3445 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
3446
3447         * tree-if-conv.c (struct ifc_dr): New.
3448         (IFC_DR): New.
3449         (DR_WRITTEN_AT_LEAST_ONCE): New.
3450         (DR_RW_UNCONDITIONALLY): New.
3451         (memref_read_or_written_unconditionally): Use the cached values
3452         when possible.
3453         (write_memref_written_at_least_once): Same.
3454         (if_convertible_loop_p): Initialize and free DR->aux fields.
3455
3456 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
3457
3458         * gimple.c (gimple_could_trap_p_1): Not static anymore.
3459         Pass an extra bool parameter include_mem.
3460         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
3461         (gimple_assign_rhs_could_trap_p): Same.
3462         * gimple.h (gimple_could_trap_p_1): Declared.
3463         * tree-data-ref.h (same_data_refs_base_objects): New.
3464         (same_data_refs): New.
3465         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
3466         (write_memrefs_written_at_least_once): New.
3467         (ifcvt_memrefs_wont_trap): New.
3468         (operations_could_trap): New.
3469         (ifcvt_could_trap_p): New.
3470         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
3471         Gets a vector of data refs.
3472         (if_convertible_stmt_p): Same.
3473         (if_convertible_loop_p_1): New.
3474         (if_convertible_loop_p): Call if_convertible_loop_p_1.
3475
3476 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
3477
3478         * common.opt (ftree-loop-if-convert-stores): New flag.
3479         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
3480         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
3481         the created statement before GSI.
3482         (if_convertible_phi_p): Allow virtual phi nodes when
3483         flag_loop_if_convert_stores is set.
3484         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
3485         Do not handle types that do not match is_gimple_reg_type.
3486         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
3487         when flag_loop_if_convert_stores is set, as LHS can contain
3488         memory refs.
3489         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
3490         to if_convertible_gimple_assign_stmt_p.
3491         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
3492         (replace_phi_with_cond_gimple_assign_stmt): Renamed
3493         predicate_scalar_phi.  Do not handle virtual phi nodes.
3494         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
3495         Call predicate_scalar_phi.
3496         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
3497         just after the labels for flag_loop_if_convert_stores, otherwise
3498         insert the predicate in the end of the BB.
3499         (predicate_mem_writes): New.
3500         (combine_blocks): Call predicate_all_scalar_phis.  When
3501         flag_loop_if_convert_stores is set, call predicate_mem_writes.
3502         (tree_if_conversion): Call mark_sym_for_renaming when
3503         flag_loop_if_convert_stores is set.
3504         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
3505         flag_loop_if_convert_stores is set.
3506
3507 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
3508
3509         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
3510         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
3511         (pa_function_value): Make static.
3512         (override_options): Rename to...
3513         (pa_option_override): ...this. Make static.
3514         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
3515         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
3516         TARGET_OPTION_OVERRIDE): Define.
3517         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
3518         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
3519         Remove.
3520         * config/pa/pa-protos.h (override_options): Remove.
3521
3522 2010-08-24  Richard Guenther  <rguenther@suse.de>
3523
3524         PR middle-end/45379
3525         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
3526         if addr->index is NULL or zero.
3527         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
3528         TARGET_MEM_REF more properly.
3529         (indirect_ref_may_alias_decl_p): Likewise.
3530         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
3531         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
3532
3533 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
3534
3535         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
3536         (m32c_override_options): Rename to...
3537         (m32c_option_override): ...this. Make static.
3538         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
3539         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
3540         Remove.
3541         * config/m32c/m32c-protos.h (m32c_override_options,
3542         m32c_function_value_regno_p): Remove.
3543
3544 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
3545
3546         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
3547         Fix a typo in a previous commit.
3548
3549 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
3550
3551         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
3552         Pre-initialize innerloop_iters to one.
3553
3554 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
3555
3556         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
3557         existing static function global.
3558
3559         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
3560         is changed to global.
3561
3562         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
3563         may_be_nonaddressable_p on base, and don't collect this reference
3564         if the address of the base could not be taken.
3565
3566 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3567
3568         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
3569         enable the compiler to autovectorize mathmetical functions for
3570         power7 using the Mathematical Acceleration Subsystem library.
3571
3572         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
3573         handle which vector math library we have.
3574         (rs6000_override_options): Add -mveclibabi=mass support.
3575         (rs6000_builtin_vectorized_libmass): New function to handle auto
3576         vectorizing math functions that are in the MASS library.
3577         (rs6000_builtin_vectorized_function): Call it.
3578
3579         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
3580         -mveclibabi=mass.
3581
3582 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3583
3584         PR boehm-gc/34544
3585         * gthr-posix.h (__gthread_active_init): Delete.
3586         (__gthread_active_p): Do activity check here.
3587         Don't include errno.h on hppa-hpux.  Update comment.
3588         * gthr-posix95.h (__gthread_active_init): Delete.
3589         (__gthread_active_p): Do activity check here.
3590         Don't include errno.h on hppa-hpux.  Update comment.
3591         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
3592         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
3593         add -lpthread when -mt or -pthread is specified.
3594         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
3595         (LINK_GCC_C_SEQUENCE_SPEC): Define.
3596         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
3597         (stublib.c, pthread_default_stacksize_np-stub.o,
3598         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
3599         $(T)libgcc_stub.a): Add methods.
3600         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
3601         (stublib.c, pthread_default_stacksize_np-stub.o,
3602         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
3603         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
3604         pthread_mutex_unlock): New stubs.
3605
3606 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
3607
3608         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
3609         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
3610         options.
3611         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
3612         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
3613         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
3614         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
3615         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
3616         "-l".
3617         * cppspec.c: Include opts.h.
3618         (lang_specific_driver): Use cl_decoded_option structures.
3619         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
3620         * doc/tm.texi: Regenerate.
3621         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
3622         (driver_handle_option): Allow driver options needing no special
3623         processing.
3624         (process_command): Decode options before call to
3625         lang_specific_driver.  Pass decoded options to
3626         lang_specific_driver.
3627         * gcc.h (lang_specific_driver): Update prototype.
3628         * gccspec.c: Include opts.h.
3629         (lang_specific_driver): Use cl_decoded_option structures.
3630         * opts-common.c (option_ok_for_language, generate_option,
3631         generate_option_input_file): New.
3632         (decode_cmdline_option): Use option_ok_for_language.
3633         (decode_cmdline_options_to_array): Use generate_option_input_file.
3634         (handle_generated_option): Use generate_option.
3635         * opts.h (generate_option, generate_option_input_file): Declare.
3636
3637 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
3638
3639         * config/mips/mips.c (mips_override_options): Rename to...
3640         (mips_option_override): ...this. Make static.
3641         (TARGET_OPTION_OVERRIDE): Define.
3642         (mips_in_small_data_p): Update comment.
3643         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
3644         (FIXED_REGISTERS): Update comment.
3645         * config/mips/mips-protos.h (mips_override_options): Remove.
3646
3647 2010-08-21  Olivier Hainque  <hainque@adacore.com>
3648
3649         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
3650
3651 2010-08-21  Olivier Hainque  <hainque@adacore.com>
3652
3653         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
3654         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
3655
3656 2010-08-20  Jan Hubicka  <jh@suse.cz>
3657
3658         * tree-pass.h (pass_ipa_cdtor_merge): New function.
3659         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
3660         heap allocated.
3661         (record_cdtor_fn): Move to ipa.c; do not test for
3662         have_ctors_dtors.
3663         (build_cdtor): Move to ipa.c; add code avoiding construction
3664         when target have ctors/dtors and there is only one ctor/dtor at given
3665         priority.
3666         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
3667         sort; reverse order of constructors.
3668         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
3669         (cgraph_finalize_function): Do not call record_cdtor_fn.
3670         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
3671         (cgraph_build_static_cdtor): Move to ipa.c.
3672         * ipa.c: Include target.h and tree-iterator.h.
3673         (cgraph_build_static_cdtor, static_ctors, static_dtors,
3674         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
3675         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
3676         pass_ipa_cdtor_merge): New.
3677         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
3678         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
3679         bounds access.
3680
3681 2010-08-20  Jan Hubicka  <jh@suse.cz>
3682
3683         PR c++/45307
3684         PR c++/17736
3685         * cgraph.h (cgraph_only_called_directly_p,
3686         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
3687         static cdtors.
3688         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
3689         are not needed.
3690         (cgraph_finalize_function): Static cdtors are reachable.
3691         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
3692
3693 2010-08-20  Jan Hubicka  <jh@suse.cz>
3694
3695         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
3696         flag_wpa.
3697         * lto-streamer-out.c (lto_output): Likewise.
3698         * passes.c (ipa_write_optimization_summaries): Initialize statement
3699         uids.
3700
3701 2010-08-20  Olivier Hainque  <hainque@adacore.com>
3702
3703         * tree.h (alias_diag_flags): New enum.
3704         (alias_pair): Add an 'emitted_diags' field.
3705         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
3706         (assemble_alias): Initialize emitted_diags of new pairs.
3707
3708 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
3709
3710         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
3711         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3712         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3713         (STACK_CHECK_PROTECT): Define.
3714         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
3715         (output_probe_stack_range): Likewise.
3716         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
3717         builtin stack checking is enabled.
3718         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
3719         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
3720         (probe_stack_range): New insn.
3721
3722 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
3723
3724         PR target/45336
3725         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
3726         short first.
3727
3728         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
3729         char first.
3730
3731 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3732
3733         PR target/45336
3734         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
3735         to cover zero extension into 64-bit register.
3736         (*sse2_pextrw): Likewise.
3737         (*sse4_1_pextrd_zext): New insn.
3738
3739 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
3740
3741         revert r163410, partially revert r163267.
3742         * config/rs6000/darwin.h (LIB_SPEC): Remove.
3743         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
3744         Darwin versions.
3745
3746 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3747
3748         PR middle-end/44974
3749         * builtins.c (expand_builtin): Don't optimize away
3750         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
3751
3752 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
3753
3754         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
3755         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
3756         alternative 1 of operand 2.
3757
3758 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3759             Paolo Bonzini  <bonzini@gnu.org>
3760
3761         * simplify-rtx.c (simplify_unary_operation_1): Optimize
3762         (sign_extend (zero_extend (...)) and
3763         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
3764
3765 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3766
3767         PR rtl-optimization/45353
3768         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
3769         after bb_note is a BARRIER.
3770
3771 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
3772
3773         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
3774         linking libgcc.a.
3775
3776 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3777             Michael Matz  <matz@suse.de>
3778
3779         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
3780
3781 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
3782
3783         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
3784         (ggc_mark_roots): ...here.
3785
3786 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
3787
3788         * vec.h (FOR_EACH_VEC_ELT): Define.
3789         * c-decl.c: Use it.
3790         * cfgloop.c: Likewise.
3791         * cfgloopmanip.c: Likewise.
3792         * cgraph.c: Likewise.
3793         * cgraphunit.c: Likewise.
3794         * combine.c: Likewise.
3795         * config/bfin/bfin.c: Likewise.
3796         * config/mips/mips.c: Likewise.
3797         * config/rs6000/rs6000.c: Likewise.
3798         * dbxout.c: Likewise.
3799         * df-scan.c: Likewise.
3800         * dominance.c: Likewise.
3801         * dse.c: Likewise.
3802         * dwarf2out.c: Likewise.
3803         * except.c: Likewise.
3804         * expr.c: Likewise.
3805         * function.c: Likewise.
3806         * gcse.c: Likewise.
3807         * genattr.c: Likewise.
3808         * ggc-common.c: Likewise.
3809         * gimplify.c: Likewise.
3810         * graphite-blocking.c: Likewise.
3811         * graphite-clast-to-gimple.c: Likewise.
3812         * graphite-dependences.c: Likewise.
3813         * graphite-interchange.c: Likewise.
3814         * graphite-poly.c: Likewise.
3815         * graphite-scop-detection.c: Likewise.
3816         * graphite-sese-to-poly.c: Likewise.
3817         * graphite.c: Likewise.
3818         * haifa-sched.c: Likewise.
3819         * ifcvt.c: Likewise.
3820         * implicit-zee.c: Likewise.
3821         * ipa-prop.c: Likewise.
3822         * ipa-struct-reorg.c: Likewise.
3823         * ipa.c: Likewise.
3824         * ira-build.c: Likewise.
3825         * ira-color.c: Likewise.
3826         * ira-emit.c: Likewise.
3827         * lambda-code.c: Likewise.
3828         * loop-invariant.c: Likewise.
3829         * loop-unroll.c: Likewise.
3830         * lower-subreg.c: Likewise.
3831         * lto-cgraph.c: Likewise.
3832         * lto-opts.c: Likewise.
3833         * lto-streamer-in.c: Likewise.
3834         * lto-streamer-out.c: Likewise.
3835         * lto-streamer.c: Likewise.
3836         * lto-symtab.c: Likewise.
3837         * matrix-reorg.c: Likewise.
3838         * opts.c: Likewise.
3839         * predict.c: Likewise.
3840         * print-tree.c: Likewise.
3841         * sdbout.c: Likewise.
3842         * sel-sched-dump.c: Likewise.
3843         * sel-sched-ir.c: Likewise.
3844         * sel-sched.c: Likewise.
3845         * sese.c: Likewise.
3846         * stor-layout.c: Likewise.
3847         * tree-cfg.c: Likewise.
3848         * tree-cfgcleanup.c: Likewise.
3849         * tree-chrec.c: Likewise.
3850         * tree-data-ref.c: Likewise.
3851         * tree-emutls.c: Likewise.
3852         * tree-inline.c: Likewise.
3853         * tree-into-ssa.c: Likewise.
3854         * tree-loop-distribution.c: Likewise.
3855         * tree-loop-linear.c: Likewise.
3856         * tree-mudflap.c: Likewise.
3857         * tree-outof-ssa.c: Likewise.
3858         * tree-parloops.c: Likewise.
3859         * tree-predcom.c: Likewise.
3860         * tree-pretty-print.c: Likewise.
3861         * tree-scalar-evolution.c: Likewise.
3862         * tree-ssa-live.c: Likewise.
3863         * tree-ssa-loop-im.c: Likewise.
3864         * tree-ssa-loop-ivcanon.c: Likewise.
3865         * tree-ssa-loop-ivopts.c: Likewise.
3866         * tree-ssa-loop-manip.c: Likewise.
3867         * tree-ssa-loop-niter.c: Likewise.
3868         * tree-ssa-loop-prefetch.c: Likewise.
3869         * tree-ssa-phiprop.c: Likewise.
3870         * tree-ssa-pre.c: Likewise.
3871         * tree-ssa-reassoc.c: Likewise.
3872         * tree-ssa-sccvn.c: Likewise.
3873         * tree-ssa-structalias.c: Likewise.
3874         * tree-ssa.c: Likewise.
3875         * tree-vect-data-refs.c: Likewise.
3876         * tree-vect-loop-manip.c: Likewise.
3877         * tree-vect-loop.c: Likewise.
3878         * tree-vect-patterns.c: Likewise.
3879         * tree-vect-slp.c: Likewise.
3880         * tree-vect-stmts.c: Likewise.
3881         * tree-vrp.c: Likewise.
3882         * tree.c: Likewise.
3883         * value-prof.c: Likewise.
3884         * var-tracking.c: Likewise.
3885         * varasm.c: Likewise.
3886         * vmsdbgout.c: Likewise.
3887
3888 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
3889             Richard Guenther  <richard.guenther@gmail.com>
3890
3891         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
3892         copy the src value and return a copy.
3893         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
3894         (C++ Volatiles): Adjust to describe C++ semantics only.
3895
3896 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
3897
3898         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
3899         be zero or nonzero.
3900         * doc/tm.texi: Regenerate.
3901         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
3902         * df-scan.c (df_get_exit_block_use_set), reginfo.c
3903         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
3904         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
3905         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
3906         to 1.
3907
3908 2010-08-20  Olivier Hainque  <hainque@adacore.com>
3909
3910         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
3911         an extra nop past a sibling call at the very end.
3912
3913 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
3914
3915         PR bootstrap/45350
3916         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
3917         a comment.
3918
3919 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
3920
3921         * target.def (function_arg, function_incoming_arg): Remove const
3922         qualifier on CUMULATIVE_ARGS parameter.
3923         * targhooks.h (default_function_arg, default_function_incoming_arg):
3924         Likewise.
3925         * targhooks.c (default_function_arg, default_function_incoming_arg):
3926         Likewise.
3927         * config/i386/i386.c (ix86_function_arg): Likewise.
3928
3929 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
3930
3931         PR target/45336
3932         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
3933         SIGN_EXTENDs or ZERO_EXTENDs.
3934
3935 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
3936
3937         PR target/42172
3938         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
3939         Take its cost into account if nonnull.
3940         (insn_a_feeds_b): New static function.
3941         (combine_instructions): Look for four-insn combinations.
3942         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
3943         them into account when computing all_adjacent and looking for other
3944         uses.
3945         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
3946         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
3947         (try_combine): New arg I0.  Handle four-insn combinations.
3948         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
3949         like ELIM_I1.
3950
3951 2010-08-19  Jason Merrill  <jason@redhat.com>
3952
3953         PR c++/45307
3954         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
3955         if ctor is empty.
3956         (gimplify_modify_expr_rhs): Adjust.
3957
3958 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
3959
3960         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
3961         bitmap_bit_p.
3962         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
3963         * dominance.c (iterate_fix_dominators): Likewise.
3964         * dse.c (set_usage_bits): Likewise.
3965         (set_position_unneeded, record_store): Likewise.
3966         * gimple-fold.c (get_maxval_strlen): Likewise.
3967         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
3968         * ipa-inline.c (update_caller_keys): Likewise.
3969         * ipa-split.c (verify_non_ssa_vars): Likewise.
3970         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
3971         (close_type_exposed_parameter, close_type_full_escape): Likewise.
3972         (close_addressof_down): Likewise.
3973         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
3974         (setup_allocno_left_conflicts_size): Likewise.
3975         (ira_reassign_conflict_allocnos): Likewise.
3976         (ira_reassign_pseudos): Likewise.
3977         * ira-emit.c (change_loop): Likewise.
3978         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
3979         * lto-streamer-out.c (write_symbol): Likewise.
3980         * predict.c (expr_expected_value_1): Likewise.
3981         * regstat.c (regstat_bb_compute_ri): Likewise.
3982         * sel-sched.c (create_block_for_bookkeeping): Likewise.
3983         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
3984         * stmt.c (expand_case): Likewise.
3985         * tree-eh.c (emit_eh_dispatch): Likewise.
3986         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
3987         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
3988         Likewise.
3989         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
3990         (rdg_build_components): Likewise.
3991         * tree-object-size.c (collect_object_sizes_for): Likewise.
3992         * tree-sra.c (convert_callers): Likewise.
3993         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
3994         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
3995         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
3996
3997 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
3998
3999         * config/i386/i386.md (*lea_1): Use P mode iterator.
4000         (lea add splitter): Also handle DImode operands.
4001         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
4002         predicate.  Do not use ix86_lea_for_add_ok.
4003         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
4004         (lea ashift splitter): Also handle DImode operands.
4005         (DImode lea ashift splitter): Remove splitter.
4006
4007 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
4008
4009         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
4010         ix86_binary_operator_ok.
4011
4012 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
4013
4014         PR rtl-optimization/44691
4015         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
4016         is not a register.
4017
4018 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
4019
4020         PR target/45070
4021         * config/arm/arm.c (arm_output_epilogue): Ensure that return
4022          value of size 1-3 is handled correctly.
4023
4024 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
4025
4026         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
4027         type for the conditional has wide enough range.
4028
4029 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
4030
4031         PR target/45327
4032         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
4033         ix86_binary_operator_ok.
4034
4035 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
4036
4037         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
4038         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
4039         code to output insn mnemonic.  Fix comment.
4040         (*addsi_1_zext): Add r-r-0 alternative 1.
4041         <TYPE_LEA>: Split insn to lea.
4042         <default>: Handle alternative 1.
4043         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
4044         multi-level if_then_else RTX to set "type" attribute.
4045         <default>: Handle alternative 2.
4046         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
4047         Use cond RTX instead of multi-level if_then_else RTX to set
4048         "type" attribute.
4049         <default>: Handle alternatives 2 and 4.
4050         (lea splitters): Update calls to ix86_lea_for_add_ok.
4051
4052         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
4053         argument.
4054         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
4055
4056 2010-08-18  Richard Guenther  <rguenther@suse.de>
4057
4058         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
4059         use operand helpers.
4060
4061 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
4062
4063         PR middle-end/45292
4064         * optabs.c (expand_bool_compare_and_swap): Expand pending
4065         pops before trying the optab.
4066
4067 2010-08-18  Yao Qi  <yao@codesourcery.com>
4068
4069         PR target/45094
4070         * config/arm/arm.c (output_move_double): Fix typo generating
4071         instructions ('ldr'->'str').
4072
4073 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
4074
4075         PR rtl-optimization/42575
4076         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
4077         live ranges.
4078
4079 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
4080
4081         * config/arm/arm-protos.h (arm_expand_sync): New.
4082         (arm_output_memory_barrier, arm_output_sync_insn): New.
4083         (arm_sync_loop_insns): New.
4084         * config/arm/arm.c (FL_ARCH7): New.
4085         (FL_FOR_ARCH7): Include FL_ARCH7.
4086         (arm_arch7): New.
4087         (arm_print_operand): Support %C markup.
4088         (arm_legitimize_sync_memory): New.
4089         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
4090         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
4091         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
4092         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
4093         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
4094         (arm_process_output_sync_insn, arm_output_sync_insn): New.
4095         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
4096         * config/arm/arm.h (struct arm_sync_generator): New.
4097         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
4098         (TARGET_HAVE_MEMORY_BARRIER): New.
4099         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
4100         * config/arm/arm.md: Include sync.md.
4101         (UNSPEC_MEMORY_BARRIER): New.
4102         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
4103         (VUNSPEC_SYNC_OP):New.
4104         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
4105         (sync_result, sync_memory, sync_required_value): New attributes.
4106         (sync_new_value, sync_t1, sync_t2): Likewise.
4107         (sync_release_barrier, sync_op): Likewise.
4108         (length): Add logic to length attribute defintion to call
4109         arm_sync_loop_insns when appropriate.
4110         * config/arm/sync.md: New file.
4111
4112 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
4113
4114         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
4115         ENABLE_TREE_CHECKING.
4116         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
4117         and GCC >= 4.3.
4118
4119 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
4120
4121         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
4122         or optimizing for size, always avoid lea if possible.
4123
4124         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
4125
4126 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
4127
4128         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
4129         Dunmmy function with NULL return unless the target is
4130         OSX >= 10.6 (Darwin10).
4131
4132 2010-08-17  Jack Howarth <howarth@bromo.med.uc.edu>
4133
4134         * gcc.c (spec_function): Add remove-outfile.
4135         (remove_outfile_spec_function): New function.
4136         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
4137         * invoke.texi (replace-outfile): Document.
4138
4139 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
4140
4141         PR target/45296
4142         * reginfo.c (globalize_reg): Reject stack registers.
4143
4144 2010-08-17  Richard Guenther  <rguenther@suse.de>
4145
4146         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
4147         list of conditional equivalences.
4148         (free_all_edge_infos): Adjust.
4149         (record_equivalences_from_incoming_edge): Likewise.
4150         (record_cond): Likewise.
4151         (build_and_record_new_cond): Likewise.
4152         (record_conditions): Likewise.
4153         (dom_opt_leave_block): Likewise.
4154
4155 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
4156
4157         * doc/invoke.texi (ms-extension): Add documentation.
4158
4159 2010-08-17  Richard Guenther  <rguenther@suse.de>
4160
4161         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
4162
4163 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
4164
4165         PR c/40563
4166         * c-decl.c (diagnose_uninitialized_cst_member): New function.
4167         (finish_decl): Use it to issue a -Wc++-compat warning about
4168         uninitialized const field in struct or union.
4169
4170         (finish_struct): Use strip_array_types.
4171
4172 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
4173
4174         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
4175         functions.
4176         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
4177         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
4178         call block_nreverse here.
4179         (blocks_nreverse): Rename decl temporary to block.
4180
4181 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
4182
4183         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
4184         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
4185         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
4186         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
4187         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
4188         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
4189         thumb2_iorsi3): Delete.
4190         (orsi_notsi_si): No longer a named pattern.
4191         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
4192         * config/arm/predicates.md (shift_amount_operand): New.
4193         (mult_operator): New.
4194         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
4195         attr enabled): New.
4196         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
4197         arch matches t2.
4198         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
4199         (not_shiftsi_compare0): Likewise, renamed from
4200         arm_notsi_shiftsi_compare0.
4201         (not_shiftsi_compare0_scratch): Likweise, renamed from
4202         arm_notsi_shiftsi_compare0_scratch.
4203         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
4204         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
4205         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
4206         so that the register alternative is disabled when the shift_operator
4207         is MULT.  Use "M" as the constraint for constants.
4208         (arith_shiftsi splitter): Enable for TARGET_32BIT.
4209         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
4210         constraint for constants.
4211         (arith_shiftsi_compare0_scratch): Likewise.
4212         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
4213         Handle Thumb2 alternative.
4214
4215 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
4216
4217         * doc/options.texi (NoDriverArg): Document.
4218         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
4219         -MDX and -MMDX.
4220         * opt-functions.awk (switch_flags): Handle NoDriverArg.
4221         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
4222         marking for CL_NO_DRIVER_ARG options when in the driver.
4223         * opts.h (CL_NO_DRIVER_ARG): Define.
4224         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
4225         CL_COMMON): Update values.
4226
4227 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
4228
4229         * common.opt: Add driver options.
4230         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
4231         * doc/options.texi (Driver, RejectDriver): Document.
4232         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
4233         print_prog_name, print_multi_directory, print_sysroot,
4234         print_multi_os_directory, print_multi_lib,
4235         print_sysroot_headers_suffix, report_times, combine_flag,
4236         use_pipes, wrapper_string): Remove.
4237         (save_switch, driver_unknown_option_callback,
4238         driver_wrong_lang_callback, driver_post_handling_callback,
4239         driver_handle_option): New.
4240         (spec_lang, last_language_n_infiles): Make file-scope static
4241         instead of local to process_command.
4242         (process_command): Use decode_cmdline_options_to_array and
4243         read_cmdline_option for option processing.  Compute have_c in
4244         prescan of decoded options.
4245         * opt-functions.awk (switch_flags): Handle Driver and
4246         RejectDriver.
4247         (var_type, var_type_struct): Handle Separate options as generating
4248         const char * variables.
4249         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
4250         CL_TARGET to be passed by caller if required.
4251         (decode_cmdline_options_to_array): Update comment.
4252         * opts.c (complain_wrong_lang): Handle options only valid for the
4253         driver.
4254         (decode_options): Update call to decode_cmdline_options_to_array.
4255         (print_filtered_help): Ignore driver-only options.
4256         (print_specific_help): Ignore CL_DRIVER.
4257         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
4258         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
4259         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
4260         Update values.
4261
4262 2010-08-16  Richard Guenther  <rguenther@suse.de>
4263
4264         * tree-cfg.c (verify_types_in_gimple_reference): Verify
4265         TARGET_MEM_REF a bit.
4266         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
4267         (create_mem_ref_raw): Always create TMR_OFFSET, store the
4268         alias pointer type via it.
4269         (copy_mem_ref_info): Adjust.
4270         (maybe_fold_tmr): Likewise.
4271         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
4272         (reference_alias_ptr_type): Likewise.
4273         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
4274         adjust documentation of TMR_OFFSET operand.
4275         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
4276         use the alias pointer type.
4277         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
4278         initialize mem attrs but the TMR itself.
4279         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
4280         similar to MEM_REF.
4281         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
4282         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
4283         (unshare_and_remove_ssa_names): Likewise.
4284         (copy_ref_info): Adjust.
4285         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
4286         TARGET_MEM_REF case.
4287         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
4288         at TMR_ORIGINAL.
4289         * tree.h (TMR_ORIGINAL): Remove.
4290         * gimple.c (get_base_address): For TARGET_MEM_REF with a
4291         symbol return that.
4292         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
4293         with a symbol.
4294         (get_addr_base_and_unit_offset): Likewise.
4295         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
4296         TARGET_MEM_REFs.
4297         (indirect_ref_may_alias_decl_p): Likewise.
4298         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
4299
4300 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
4301
4302         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
4303         with GCC version 4.6, the default setting (when not optimizing
4304         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
4305         been changed to -fomit-frame-pointer.
4306
4307 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
4308
4309         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
4310         Darwin10.  Do not link libgcc.a for Darwin >= 9.
4311
4312 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
4313
4314         * doc/invoke.texi (Warning Options): Fix terminology and markup
4315         in the description of how unknown warning options are handled.
4316
4317 2010-08-15  Ira Rosen  <irar@il.ibm.com>
4318
4319         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
4320         in basic blocks.
4321         (vect_supportable_dr_alignment): Check alignment for basic blocks.
4322         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
4323         data references.
4324         (vect_bb_vectorization_profitable_p): New function.
4325         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
4326         check if it's worthwhile to vectorize the basic block.
4327
4328 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
4329
4330         * reload.h (register_move_cost, memory_move_secondary_cost,
4331         secondary_reload_class): Adjust prototype.
4332         * rtl.h (reg_class_subset_p): Adjust prototype.
4333         * reload.c (secondary_reload_class): Change arguments type from
4334         enum reg_class to reg_class_t. Change result type to reg_class_t.
4335         * reginfo.c (register_move_cost, reg_class_subset_p): Change
4336         arguments type from enum reg_class to reg_class_t.
4337         (memory_move_secondary_cost): Change arguments type from
4338         enum reg_class to reg_class_t. Change type of saved_flags to
4339         reg_class_t.
4340
4341         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
4342         Remove macros.
4343         (mips_cost): Remove.
4344         (struct mips_rtx_cost_data): Moved to mips.c.
4345         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
4346         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
4347         (mips_cost): Make static.
4348         (mips_canonicalize_move_class): Change argument type to reg_class_t.
4349         Change result type to reg_class_t.
4350         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
4351         type from enum reg_class to reg_class_t.
4352         (mips_register_move_cost): Make static. Change arguments
4353         type from enum reg_class to reg_class_t.
4354         (mips_memory_move_cost): New function.
4355         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
4356
4357 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
4358
4359         PR rtl-optimization/43358
4360         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
4361         of a single hard register, using simplify_subreg_regno to decide
4362         what that register should be.
4363
4364 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
4365
4366         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
4367         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
4368         (loongson_pmull<V_suffix>): Rename to...
4369         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
4370
4371 2010-08-13  Jack Howarth <howarth@bromo.med.uc.edu>
4372
4373         * configure.ac: Enable -fomit-frame-pointer on darwin
4374         which support dwarf2.
4375         * config/i386/i386.c (override_options): Same.
4376
4377 2010-08-13  Jie Zhang  <jie@codesourcery.com>
4378
4379         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
4380
4381 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
4382
4383         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
4384         -MMD.
4385
4386 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
4387
4388         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
4389         up dot_prod pattern searching if a stmt is outside the loop.
4390
4391 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
4392             Uros Bizjak  <ubizjak@gmail.com>
4393
4394         * config.gcc: Handle --enable-frame-pointer.
4395
4396         * configure.ac: Add --enable-frame-pointer.
4397         * configure: Regenerated.
4398
4399         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
4400         (override_options): If not configured with --enable-frame-pointer,
4401         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
4402         optimizing for size), -fasynchronous-unwind-tables and
4403         -maccumulate-outgoing-args by default.
4404
4405 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
4406
4407         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
4408
4409         PR middle-end/45262
4410         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
4411         -a overflows.  Normalize the range.
4412
4413 2010-08-12  Richard Guenther  <rguenther@suse.de>
4414
4415         PR tree-optimization/45232
4416         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
4417         for types with undefined overflow.
4418         (reassociate_bb): Allow re-associating of bit and min/max
4419         operations for types with undefined overflow.
4420         * tree-ssa-forwprop.c (associate_plusminus): New function.
4421         (tree_ssa_forward_propagate_single_use_vars): Call it.
4422
4423 2010-08-12  Richard Guenther  <rguenther@suse.de>
4424
4425         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
4426         * tree-ssa-alias.c (get_ptr_info): Move ...
4427         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
4428         align and misalign fields conservatively.
4429         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
4430         derive alignment information.
4431         (evaluate_stmt): Derive alignment information from memory
4432         allocation functions.
4433         * tree.h (get_pointer_alignment): Make unsigned.
4434         * builtins.c (get_object_alignment): Use alignment information we
4435         have computed for pointers.
4436         (get_pointer_alignment): Likewise.  Make conservative, return
4437         and unsigned value.
4438         (expand_builtin_strlen): Adjust.
4439         (expand_builtin_memcmp): Likewise.
4440         (expand_builtin_strcmp): Likewise.
4441         (expand_builtin_strncmp): Likewise.
4442         (get_builtin_sync_mem): Use at least mode alignment.
4443         (fold_builtin_memset): Adjust.
4444         (fold_builtin_memory_op): Likewise.
4445         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
4446         information also dump pointer alignment knowledge.
4447         (dump_gimple_stmt): Likewise.
4448
4449 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
4450
4451         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
4452         (EMPTY_FIELD_BOUNDARY): Remove.
4453         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
4454
4455 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
4456
4457         PR debug/45259
4458         * caller-save.c (save_call_clobbered_regs): Only swap notes with
4459         DEBUG_INSNs if n_regs_saved.
4460
4461 2010-08-12  Wei Guozhi  <carrot@google.com>
4462
4463         PR target/44999
4464         * config/arm/arm.md (andsi3): Change to zero extension if possible.
4465         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
4466
4467 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
4468
4469         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
4470
4471         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
4472
4473 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4474
4475         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
4476         the case removed in the previous patch, when the only phi argument
4477         is defined in the same loop as the phi node itself.  Handle it
4478         separately from the invariant case by both propagating it outside
4479         the region and replacing the phi node with an assign.
4480
4481 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4482
4483         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
4484         constant phi nodes with one argument are is_gimple_min_invariant
4485         and SSA_NAME_IS_DEFAULT_DEF.
4486
4487 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4488
4489         * graphite-cloog-util.c (oppose_constraint):
4490         Extend loop counter's value range (CLOOG_ORG).
4491         (cloog_matrix_to_ppl_constraint): Same.
4492         (new_Constraint_System_from_Cloog_matrix): Same.
4493         * graphite-cloog-compat.h (matrix_num_type): New.
4494
4495 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4496
4497         * graphite.c (graphite_initialize): Do not initialize
4498         CLooG and initialize the Parma Polyhedra Library
4499         manually when using CLOOG_ORG.
4500         (graphite_finalize): Do not finalize CLooG and finalize
4501         the Parma Polyhedra Library manually when using CLOOG_ORG.
4502         * graphite-cloog-compat.h (cloog_initialize): Hide function
4503         when using CLOOG_ORG.
4504         (cloog_finalize): Same.
4505
4506 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4507
4508         * graphite-clast-to-gimple.c (free_scattering): Change
4509         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
4510         (CLOOG_ORG).
4511         (build_cloog_prog): Same.
4512         * graphite-cloog-compat.h (cloog_domain): Removed.
4513         (cloog_scattering): New.
4514         (cloog_set_domain): Removed.
4515         (cloog_set_scattering): New.
4516         (cloog_next_domain): Removed.
4517         (cloog_next_scattering): New.
4518         (cloog_set_next_domain): Removed.
4519         (cloog_set_next_scattering): New.
4520         (CloogScatteringList): New.
4521         (CloogScattering): New.
4522         (cloog_scattering_free): New.
4523         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
4524         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
4525         New.
4526
4527 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4528
4529         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
4530         CloogState.
4531         (set_cloog_options): Same.
4532         (print_clast_stmt): Same.
4533         (scop_to_clast): Same.
4534         (print_generated_program): Same.
4535         (gloog): Same.
4536         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
4537         (scop_to_clast): Extend with CloogState.
4538         * graphite-cloog-util.c: Include graphite-cloog-compat.h
4539         (new_Cloog_Domain_from_ppl_Polyhedron):
4540         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
4541         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
4542         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
4543         * graphite-cloog-util.h (build_cloog_prog): Same.
4544         * graphite-cloog-copat.h (build_cloog_prog): New.
4545         (CloogState): New.
4546         (cloog_state_malloc): New.
4547         (cloog_state_free): New.
4548         (cloog_loop_malloc): New.
4549         (cloog_options_malloc): New.
4550         (cloog_statement_alloc): New.
4551         (cloog_domain_from_cloog_matrix): New.
4552         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
4553         (new_Cloog_Domain_from_ppl_Polyhedron): New.
4554
4555 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4556
4557         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
4558         type of NAME now depends on used CLooG version.
4559         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
4560         (gcc_type_for_clast_expr): Same.
4561         (print_clast_stmt): Replace pprint with clast_pprint.
4562         * graphite-cloog-compat.h: Provide compatibility macros for
4563         CLooG Legacy.
4564         (clast_name_p): New.
4565         (clast_expr_term): New.
4566         (clast_expr_red): New.
4567         (clast_expr_bin): New.
4568         (clast_pprint): New.
4569
4570 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4571
4572         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
4573         compatible to newer CLooG releases (CLOOG_ORG).
4574         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
4575         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
4576         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
4577         (build_cloog_prog) : New.
4578         (cloog_program_extract_scalars): New.
4579         (cloog_program_scatter): New.
4580
4581 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4582
4583         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
4584         conditionally (CLOOG_ORG).
4585         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
4586         (cloog_statement_usr): New.
4587         (cloog_domain): Same.
4588         (cloog_set_domain): Same.
4589         (cloog_next_domain): Same.
4590         (cloog_set_next_domain): Same.
4591         (cloog_program_nb_scattdims): Same.
4592         (cloog_program_set_nb_scattdims): Same.
4593         (cloog_program_names): Same.
4594         (cloog_program_set_names): Same.
4595         (cloog_program_set_context): Same.
4596         (cloog_program_set_loop): Same.
4597         (cloog_program_blocklist): Same.
4598         (cloog_program_set_blocklist): Same.
4599         (cloog_program_scaldims): Same.
4600         (cloog_program_set_scaldims): Same.
4601         (cloog_names_nb_parameters): Same.
4602         (cloog_names_set_nb_parameters): Same.
4603         (cloog_names_parameters): Same.
4604         (cloog_names_set_parameters): Same.
4605         (cloog_names_set_nb_iterators): Same.
4606         (cloog_names_set_iterators): Same.
4607         (cloog_names_set_nb_scattering): Same.
4608         (cloog_names_set_scattering): Same.
4609         (cloog_statement_set_usr): Same.
4610         (cloog_loop_set_next): Same.
4611         (cloog_loop_set_domain): Same.
4612         (cloog_loop_set_block): Same.
4613         (cloog_block_list_next): Same.
4614         (cloog_block_list_set_next):
4615         (cloog_block_list_set_block): Same.
4616
4617 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4618
4619         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
4620         a bool.
4621         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
4622         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
4623         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
4624         when something has been changed.
4625         (rewrite_commutative_reductions_out_of_ssa): Same.
4626
4627 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4628
4629         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
4630         handle the case when def is in the sese region.
4631         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
4632         for invariant expressions.
4633         (rewrite_cross_bb_phi_deps): Removed.
4634         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
4635         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
4636         rewrite_cross_bb_phi_deps.
4637
4638 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4639
4640         * graphite-sese-to-poly.c
4641         (rewrite_commutative_reductions_out_of_ssa_loop): Call
4642         scev_analyzable_p only on is_gimple_reg
4643
4644 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4645
4646         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
4647         (rewrite_close_phi_out_of_ssa): Propagate constant values or
4648         parametric expressions outside the scop region.
4649         (rewrite_cross_bb_scalar_deps): Same.
4650         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
4651
4652 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4653
4654         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
4655         SSA_NAME_DEF_STMT only on SSA_NAMEs.
4656
4657 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4658
4659         * tree-scalar-evolution.c (instantiate_scev_name): Do not
4660         instantiate default definitions.
4661
4662 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
4663             Sebastian Pop  <sebastian.pop@amd.com>
4664
4665         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
4666         (loop_exits_from_bb_p): New.
4667         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
4668         (loop_exits_from_bb_p): Declared.
4669         * graphite-scop-detection.c (scopdet_basic_block_info): Call
4670         loop_exits_to_bb_p.
4671
4672 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4673
4674         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
4675         extra parameter for the region.  Call scev_analyzable_p.
4676         (rewrite_reductions_out_of_ssa): Update call to
4677         rewrite_close_phi_out_of_ssa.
4678         (rewrite_cross_bb_phi_deps): Same.
4679         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
4680         parameter for the region.  Call scev_analyzable_p.
4681         (rewrite_commutative_reductions_out_of_ssa): Update call to
4682         rewrite_commutative_reductions_out_of_ssa_loop.
4683
4684 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4685
4686         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
4687
4688 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4689
4690         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
4691         SSA scalar phi nodes that can be scev_analyzable_p.
4692
4693 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4694
4695         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
4696         handle SSA_NAME_IS_DEFAULT_DEF.
4697
4698 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4699
4700         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
4701
4702 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4703
4704         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
4705         case non close-phi nodes with one argument.
4706
4707 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4708
4709         * sese.h (scev_analyzable_p): Scevs could be expressions without
4710         chrecs and still be scev_analyzable_p.
4711
4712 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4713
4714         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
4715
4716 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4717
4718         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
4719         * cfgloop.h (struct loop): Remove single_iv field.
4720         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
4721         (scop_canonicalize_loops): Removed.
4722         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
4723         over all the loop phi nodes in loop->header.
4724         (build_poly_scop): Remove use of scop_canonicalize_loops.
4725
4726 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4727
4728         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
4729         handle GIMPLE_CALL.
4730
4731 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4732
4733         * tree-chrec.c (chrec_apply): Should only apply to the specified
4734         variable.  Also handle multivariate chains of recurrences that
4735         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
4736
4737 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4738
4739         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
4740         (debug_clast_name_indexes_1): Removed.
4741         (debug_clast_name_indexes): Removed.
4742         (pbb_to_depth_to_oldiv): Removed.
4743         (build_iv_mapping): Replace the use of rename_map with iv_map.
4744         (translate_clast_user): Remove uses of rename_map.  Allocate and
4745         free iv_map.
4746         (translate_clast_for_loop): Remove uses of rename_map.
4747         (translate_clast_for): Same.
4748         (translate_clast_guard): Same.
4749         (translate_clast): Same.
4750         (gloog): Same.
4751         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
4752         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
4753         * sese.c (set_rename): Now static.
4754         (rename_variables_in_stmt): Removed.
4755         (rename_uses): New.
4756         (is_parameter): Removed.
4757         (is_iv): Removed.
4758         (expand_scalar_variables_call): Removed.
4759         (expand_scalar_variables_ssa_name): Removed.
4760         (expand_scalar_variables_expr): Removed.
4761         (expand_scalar_variables_stmt): Removed.
4762         (expand_scalar_variables): Removed.
4763         (rename_variables): Removed.
4764         (remove_condition): Removed.
4765         (get_true_edge_from_guard_bb): Removed.
4766         (get_false_edge_from_guard_bb): Removed.
4767         (struct igp): Removed.
4768         (default_before_guard): Removed.
4769         (convert_for_phi_arg): Removed.
4770         (add_guard_exit_phis): Removed.
4771         (insert_guard_phis): Removed.
4772         (graphite_copy_stmts_from_block): Now also uses iv_map and a
4773         region.  Do not copy conditions.  Do not copy induction variables.
4774         Call rename_uses.
4775         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
4776         the translated statement.  Use the iv_map for the induction
4777         variable renaming.
4778         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
4779         (set_rename): Removed declaration.
4780         (scev_analyzable_p): ...here.
4781         * tree-chrec.c (chrec_apply_map): New.
4782         * tree-chrec.h (chrec_apply_map): Declared.
4783
4784 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4785
4786         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
4787         insert_loop_close_phis.
4788         * sese.c (name_defined_in_loop_p): Removed.
4789         (expr_defined_in_loop_p): Removed.
4790         (alive_after_loop): Removed.
4791         (close_phi_not_yet_inserted_p): Removed.
4792         (struct alep): Removed.
4793         (add_loop_exit_phis): Removed.
4794         (insert_loop_close_phis): Removed.
4795
4796 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4797
4798         * graphite-cloog-util.c
4799         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
4800         * graphite-poly.c
4801         (psct_scattering_dim_for_loop_depth): Same.
4802
4803 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4804
4805         * graphite-cloog-util.h: Added cloog.h.
4806         * graphite-blocking.c: Removed cloog.h.
4807         * graphite-dependences.c: Same.
4808         * graphite-interchange.c: Same.
4809         * graphite-poly.c: Same.
4810         * graphite-ppl.c: Same.
4811         * graphite-scop-detection.c: Same.
4812         * graphite-sese-to-poly.c:
4813         Removed cloog.h.
4814         Removed graphite-clast-to-gimple.h.
4815         (check_poly_representation): Removed (unused).
4816         * graphite-sese-to-poly.h
4817         (check_poly_representation): Removed (unused).
4818
4819 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4820
4821         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
4822         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
4823         (graphite-cloog-util.o): New.
4824         (graphite-ppl.o): Added graphite-cloog-util.h.
4825         * graphite-clast-to-gimple.c:
4826         Added graphite-cloog-util.h to include statements.
4827         * graphite-cloog-util.c: New.
4828         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
4829         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
4830         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
4831         (new_C_Polyhedron_from_Cloog_Matrix): Same.
4832         (insert_constraint_into_matrix): Same.
4833         (ppl_Constrain_System_number_of_constraints): Same.
4834         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
4835         (oppose_constraint): Same.
4836         (cloog_matrix_to_ppl_constraint): Same.
4837         (new_Constraint_System_from_Cloog_Matrix): Same.
4838         * graphite-cloog-util.h: New.
4839         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
4840         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
4841         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
4842         (new_C_Polyhedron_from_Cloog_Matrix): Same.
4843         (insert_constraint_into_matrix): Same.
4844         * graphite-ppl.c:
4845         Added graphite-cloog-util.h to include statements.
4846         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
4847         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
4848         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
4849         (new_C_Polyhedron_from_Cloog_Matrix): Same.
4850         (insert_constraint_into_matrix): Same.
4851         (ppl_Constrain_System_number_of_constraints): Same.
4852         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
4853         (oppose_constraint): Same.
4854         (cloog_matrix_to_ppl_constraint): Same.
4855         (new_Constraint_System_from_Cloog_Matrix): Same.
4856         * graphite-ppl.h:
4857         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
4858         graphite-cloog-util.h.
4859         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
4860         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
4861         (new_C_Polyhedron_from_Cloog_Matrix): Same.
4862         (insert_constraint_into_matrix): Same.
4863
4864 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4865
4866         * graphite-clast-to-gimple.c
4867         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
4868         (precision_for_interval): Same.
4869         (gcc_type_for_interval): Same.
4870         (compute_type_for_level): Same.
4871         * graphite-interchange.c
4872         (lst_interchange_profitable_p): Same.
4873         * graphite-poly.c
4874         (psct_scattering_dim_for_loop_depth): Same.
4875         * graphite-ppl.c
4876         (ppl_max_for_le_pointset): Same.
4877         (ppl_min_for_le_pointset): Same.
4878
4879 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4880
4881         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
4882         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
4883
4884 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4885
4886         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
4887         rewrite_close_phi_out_of_ssa.
4888
4889 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4890
4891         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
4892
4893 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4894
4895         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
4896         rename_map.
4897         * sese.c (debug_rename_map): Same.
4898         (get_rename): Same.
4899         (set_rename): Same.
4900         (rename_variables_in_stmt): Same.
4901         (expand_scalar_variables_call): Same.
4902         (expand_scalar_variables_ssa_name): Same.
4903         (expand_scalar_variables_expr): Same.
4904         (expand_scalar_variables_stmt): Same.
4905         (expand_scalar_variables): Same.
4906         (rename_variables): Same.
4907         (graphite_copy_stmts_from_block): Same.
4908         (copy_bb_and_scalar_dependences): Same.
4909
4910 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4911
4912         * graphite-clast-to-gimple.c (copy_renames): Removed.
4913         (translate_clast_for): Do not call copy_renames.
4914         (translate_clast_guard): Same.
4915
4916 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4917
4918         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
4919         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
4920         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
4921         before rewrite_cross_bb_scalar_deps.
4922
4923 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4924
4925         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
4926         Early return in when flag_associative_math is not set.
4927
4928 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4929
4930         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
4931         of SSA copies on edges except for loop->latch.
4932
4933 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4934
4935         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
4936         Split out of rewrite_reductions_out_of_ssa.
4937         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
4938         Declared.
4939         * graphite.c (graphite_transform_loops): Call it.
4940
4941 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4942
4943         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
4944
4945 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
4946
4947         * dbgcnt.def (graphite_scop): New counter.
4948         * graphite.c: Include dbgcnt.h.
4949         (graphite_transform_loops): Use new counter to limit transformations.
4950         * Makefile.in (graphite.o): Depend on DBGCNT_H.
4951
4952 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4953
4954         * passes.c (init_optimization_passes): Add pass_graphite.
4955         Schedule a pass_copy_prop before pass_graphite_transforms.
4956         * timevar.def (TV_GRAPHITE): Declared.
4957         * tree-pass.h (pass_graphite): Declared.
4958         * tree-ssa-loop.c (pass_graphite): New.
4959
4960 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4961
4962         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
4963         Remove calls to rename_nb_iterations and rename_sese_parameters.
4964         * graphite-clast-to-gimple.h (gloog): Update declaration.
4965         * graphite.c (graphite_transform_loops): Update call to gloog.
4966         * sese.c (rename_variables_in_expr): Removed.
4967         (rename_nb_iterations): Removed.
4968         (rename_sese_parameters): Removed.
4969         * sese.h (rename_nb_iterations): Removed.
4970         (rename_sese_parameters): Removed.
4971
4972 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4973
4974         * graphite-clast-to-gimple.c (gloog): Remove call to
4975         sese_adjust_liveout_phis.
4976         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
4977         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
4978         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
4979         rewrite_phi_out_of_ssa.
4980         * sese.c (get_vdef_before_sese): Removed.
4981         (sese_adjust_vphi): Removed.
4982         (sese_adjust_liveout_phis): Removed.
4983         * sese.h (sese_adjust_liveout_phis): Removed.
4984
4985 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4986
4987         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
4988         argument for the place after which to insert the out of SSA copy.
4989         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
4990         (rewrite_phi_out_of_ssa): Same.
4991         (rewrite_cross_bb_scalar_deps): Same.
4992         (insert_copyout): Removed.
4993         (insert_copyin): Removed.
4994         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
4995         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
4996         insert_copyin.
4997
4998 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4999
5000         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
5001         (rewrite_reductions_out_of_ssa): Same.
5002         (rewrite_commutative_reductions_out_of_ssa): Same.
5003         (build_poly_scop): Do not call these functions.
5004         * graphite-sese-to-poly.h (build_poly_scop): Declared.
5005         (rewrite_reductions_out_of_ssa): Declared.
5006         (rewrite_commutative_reductions_out_of_ssa): Declared.
5007         * graphite.c (graphite_transform_loops): Call on every scop
5008         rewrite_commutative_reductions_out_of_ssa before calling
5009         rewrite_reductions_out_of_ssa and build_scop_bbs.
5010
5011 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5012
5013         * graphite-dependences.c (dot_deps): Make system call to dotty run
5014         in background.
5015         (dot_deps_stmt): Same.
5016         * graphite-poly.c (dot_lst): Same.
5017
5018 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5019
5020         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
5021         phi_arg_in_outermost_loop.
5022         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
5023         (remove_invariant_phi): Same.
5024
5025 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
5026
5027         * target.def (output_addr_const_extra): New hook.
5028         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
5029         * doc/tm.texi: Regenerate.
5030         * targhooks.c (default_asm_output_addr_const_extra): New function.
5031         * targhooks.h (default_asm_output_addr_const_extra): Declare.
5032         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
5033         target hook.
5034
5035         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
5036         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
5037         * config/i386/i386.h (output_addr_const_extra): Rename to...
5038         (i386_asm_output_addr_const_extra): ...this. Make static.
5039         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
5040
5041 2010-08-11  Richard Henderson  <rth@redhat.com>
5042
5043         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
5044
5045 2010-08-11  Nick Clifton  <nickc@redhat.com>
5046
5047         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
5048         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
5049         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
5050         stormy16-lib2-cmpsi.c.
5051
5052         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
5053         -O2.
5054
5055 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
5056
5057         * opts.h (struct cl_option_handler_func): Make handler take
5058         cl_decoded_option structure as parameter, not individual elements.
5059         (struct cl_option_handlers): Make callbacks take cl_decoded_option
5060         structure as parameter, not individual elements.
5061         (handle_option): Take cl_decoded_option structure as parameter,
5062         not individual elements.
5063         (handle_generated_option): Declare.
5064         * opts-common.c (handle_option): Take cl_decoded_option structure
5065         as parameter, not individual elements.  Update calls to callback
5066         and handler functions.
5067         (handle_generated_option): New.
5068         (read_cmdline_option): Update calls to callback functions and
5069         handle_option.
5070         * opts.c (common_handle_option, complain_wrong_lang,
5071         unknown_option_callback, post_handling_callback,
5072         lang_handle_option, target_handle_option): Take cl_decoded_option
5073         structure as parameter, not individual elements.
5074         (lang_handle_option, target_handle_option, common_handle_option):
5075         Assert option has at most one argument.
5076         (enable_warning_as_error): Call handle_generated_option instead of
5077         handle_option.  Do not pass -Werror argument as argument of
5078         generated option.
5079
5080 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5081
5082         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
5083         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
5084         (SUBWORD_BOOL_CAS): Likewise.
5085         (SUBWORD_SYNC_OP): Likewise.
5086         (SUBWORD_TEST_AND_SET): Likewise.
5087         (FETCH_AND_OP_WORD): Parenthesise INF_OP
5088         (SUBWORD_SYNC_OP): Likewise.
5089         (OP_AND_FETCH_WORD): Likewise.
5090
5091 2010-08-10  Xinliang David Li  <davidxl@google.com>
5092
5093         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
5094         compute max/min offset in address.
5095
5096 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
5097
5098         * ira-live.c: Include sbitmap.h.
5099         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
5100         Compress live ranges even more.
5101
5102 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
5103
5104         * coverage.c (ctr_labels): Delete.
5105
5106 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
5107
5108         PR bootstrap/45177
5109         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
5110         test here from arm_gen_load_multiple_1.
5111         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
5112         multiple_operation_profitable_p.
5113
5114 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
5115
5116         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
5117         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
5118
5119 2010-08-10  Richard Henderson  <rth@redhat.com>
5120
5121         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
5122         after saving registers.  Assert that SSE registers are only saved
5123         with a sufficiently aligned frame.
5124         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
5125         remove stack_realign_fp handling.
5126         (ix86_expand_prologue): Save int registers before stack_realign_fp,
5127         and do not mark the stack alignment as frame related.
5128         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
5129
5130         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
5131         saves when re-aligning the stack.
5132
5133 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
5134
5135         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
5136         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
5137         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
5138
5139 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
5140
5141         * dwarf2out.c (struct die_struct): Move die_tag to the end.
5142
5143 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
5144
5145         * config/arm/iterators.md: New file.
5146         * config/arm/arm.md: Include iterators.md.
5147         (QHSI): Move to new file.
5148         (LTUGEU, cnb, optab, ior_xor): Likewise.
5149         * config/arm/iwmmxt.md (VMMX): Move to new file.
5150         (VSHFT, MMX_char): Likewise.
5151         * config/arm/neon.md (VD): Move to new file.
5152         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
5153         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
5154         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
5155         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
5156         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
5157         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
5158         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
5159         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
5160         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
5161         (Is_d_reg, V_mode_nunits): Likewise.
5162         * config/arm/vec-common.md (VALL): Move to new file.
5163         (VALLW, VINT, VINTW): Likewise.
5164
5165 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
5166
5167         PR middle-end/45182
5168         * combine.c (make_compound_operation): Don't try to convert
5169         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
5170
5171 2010-08-10  Richard Guenther  <rguenther@suse.de>
5172
5173         * tree.h (get_object_alignment): Adjust prototype.
5174         * builtins.c (get_object_alignment): Return unsigned int,
5175         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
5176         and TARGET_MEM_REF properly.
5177         (get_pointer_alignment): Adjust.
5178         * emit-rtl.c (get_mem_align_offset): Adjust comment.
5179         (set_mem_attributes_minus_bitpos): Adjust.
5180         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
5181
5182 2010-08-10  Richard Guenther  <rguenther@suse.de>
5183
5184         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
5185         (copy_prop_visit_assignment): Simplify.
5186         (copy_prop_visit_stmt): Also visit assignments from
5187         constants.
5188         (copy_prop_visit_phi_node): Use operand_equal_p.
5189
5190 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
5191
5192         * ipa-split.c (find_split_points): Free stack.
5193
5194 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
5195
5196         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
5197         * tree.c (tree_node_kind): Delete corresponding entries.
5198
5199 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
5200
5201         * alias.c (may_alias_p): Remove unused ret.
5202
5203 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
5204
5205         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
5206         alias_sets_conflict_p.
5207         (walk_mems_1): Moved from alias.c.
5208         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
5209         in alias.c.
5210         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
5211         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
5212         * alias.c (walk_mems_2): Moved to ddg.c.
5213         (walk_mems_1): Ditto.
5214         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
5215         to ddg.c.
5216         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
5217         disambiguation.
5218         *(may_alias_p): New function to check whether two memory expression
5219         may alias or not. Currently used in buidling inter-iteration memory
5220         dependence.
5221         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
5222         (insn_alias_sets_conflict_p): Removed
5223         *rtl.h (may_alias_p): New function prototype.
5224
5225 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
5226
5227         * tree.c (nreverse): Assert that we don't have a BLOCK.
5228
5229 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
5230
5231         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
5232         * config/arm/arm.c (arm_get_pcs_model): Likewise.
5233         * config/avr/avr.c (init_cumulative_args): Likewise.
5234         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
5235         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
5236         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
5237         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
5238         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
5239         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5240         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
5241         * dwarf2out.c (gen_subprogram_die): Likewise.
5242         * function.c (allocate_struct_function): Likewise.
5243         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
5244         (deserves_ellipsis): Delete.
5245
5246 2010-08-09  Richard Guenther  <rguenther@suse.de>
5247
5248         * tree-ssa-copy.c (cached_last_copy_of): Remove.
5249         (valueize_val): New function.
5250         (get_last_copy_of): Remove.
5251         (set_copy_of_val): Simplify.
5252         (dump_copy_of): Likewise.
5253         (copy_prop_visit_cond_stmt): Use valueize_val.
5254         (copy_prop_visit_phi_node): Properly handle unvisited names.
5255         Drop code managing copy-of chains.
5256         (init_copy_prop): Adjust.
5257         (fini_copy_prop): Likewise.
5258         (execute_copy_prop): Remove obsolete comment.
5259
5260 2010-08-09  Richard Guenther  <rguenther@suse.de>
5261
5262         PR middle-end/44632
5263         * function.c (gimplify_parameters): Do not clear addressable
5264         bit of the original parameter.
5265
5266 2010-08-09  Richard Guenther  <rguenther@suse.de>
5267
5268         PR middle-end/45212
5269         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
5270         alignment from MEM_REF offset only if we took it from the
5271         base object.
5272
5273 2010-08-09  Eric Fisher <joefoxreal@gmail.com>
5274
5275         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
5276
5277 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
5278
5279         * c-tree.h (build_arg_info): Declare.
5280         * c-decl.c (build_arg_info): Define.
5281         (get_parm_info): Call it.  Delete initialization code.
5282         * c-parser.c (c_parser_parms_declarator): Likewise.
5283         (c_parser_parms_list_declaractor): Likewise.
5284
5285 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
5286
5287         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
5288         (struct c_arg_info): Change type of tags field.
5289         * c-decl.c (grokdeclarator): Update for changed type of tags field.
5290         (get_parm_info): Likewise.
5291         (store_parm_decls_newstyle): Likewise.
5292
5293 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
5294
5295         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
5296         (branch_island_list): Delete.
5297         (branch_islands): Declare.
5298         (add_compiler_branch_island): Adjust for branch_islands instead of
5299         branch_island_list.
5300         (macho_branch_islands): Likewise.
5301         (no_previous_def): Likewise.
5302         (get_prev_label): Likewise.
5303
5304 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5305
5306         PR boehm-gc/34544
5307         * gthr-posix.h (__gthread_start): Delete.
5308         (__gthread_active_init): Use pthread_default_stacksize_np instead of
5309         pthread_create to determine if hpux pthreads are active.
5310         * gthr-posix95.h (__gthread_start): Delete.
5311         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
5312
5313 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
5314
5315         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
5316         _WIN64 not expanded.
5317
5318 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
5319             H.J. Lu  <hongjiu.lu@intel.com>
5320
5321         PR target/45213
5322         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
5323         to output 32bit SFmode immediate as 8 byte sign extended value.
5324
5325 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
5326
5327         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
5328         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
5329         (SUBWORD_BOOL_CAS): Likewise.
5330         (SUBWORD_SYNC_OP): Likewise.
5331         (SUBWORD_TEST_AND_SET): Likewise.
5332         (FETCH_AND_OP_WORD): Parenthesise INF_OP
5333         (SUBWORD_SYNC_OP): Likewise.
5334         (OP_AND_FETCH_WORD): Likewise.
5335
5336 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5337
5338         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
5339         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
5340         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
5341         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
5342         generic part.
5343         (cortex_a9_sched_adjust_cost): New function.
5344         (xscale_sched_adjust_cost): New function.
5345         * config/arm/arm-protos.h (struct tune_params): New field
5346         sched_adjust_cost.
5347         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
5348
5349 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
5350
5351         PR target/44942
5352         * config/sparc/sparc.c (function_arg_advance): Always take into account
5353         the padding, if any.
5354
5355 2010-08-06  Richard Guenther  <rguenther@suse.de>
5356
5357         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
5358         (dump_lattice_value): Dump it.
5359         (get_default_value): Adjust.
5360         (get_constant_value): Likewise.
5361         (set_value_varying): Likewise.
5362         (set_lattice_value): Make sure to not go up the lattice
5363         with bitwise constant values.
5364         (get_value_for_expr): Handle ADDR_EXPRs.
5365         (value_to_double_int): New function.
5366         (get_value_from_alignment): Likewise.
5367         (do_dbg_cnt): Adjust.
5368         (ccp_lattice_meet): Handle partially constant values.
5369         (bit_value_unop_1): New function.
5370         (bit_value_binop_1): Likewise.
5371         (bit_value_unop): Likewise.
5372         (bit_value_binop): Likewise.
5373         (evaluate_stmt): Track partially constant values if
5374         flag_tree_bit_ccp is set.
5375         (ccp_fold_stmt): Dump if we folded a predicate.
5376         (ccp_visit_stmt): Adjust.
5377         * common.opt (ftree-bit-ccp): New flag.
5378         * doc/invoke.texi (ftree-bit-ccp): Document.
5379         * opts.c (decode_options): Enable bit-CCP at -O1.
5380
5381 2010-08-06  Alan Modra  <amodra@gmail.com>
5382
5383         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
5384         and -mrelocatable-lib description.
5385
5386 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
5387
5388         From Martin Thuresson  <martint@google.com>
5389         * postreload.c (reload_cse_simplify_operands): Use
5390         SET_REGNO_RAW instead of SET_REGNO.
5391         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
5392         SET_REGNO.
5393         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
5394         instead of SET_REGNO.
5395         * rtl.h (SET_REGNO_RAW): New macro.
5396
5397 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
5398
5399         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
5400         computations.  Fix formatting issues.
5401         (num_sign_bit_copies1): Likewise.
5402         (canonicalize_condition): Likewise.
5403
5404 2010-08-05  Richard Henderson  <rth@redhat.com>
5405
5406         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
5407         (floor_log2): Use clz_hwi.
5408         (exact_log2): Use ctz_hwi.
5409         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
5410         * builtins.c (fold_builtin_bitop): Use them.
5411         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
5412         * combine.c (get_pos_from_mask): Use ctz_hwi.
5413         * double-int.c (double_int_ctz): Likewise.
5414         * explow.c (force_reg): Likewise.
5415         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
5416
5417 2010-08-05  Richard Henderson  <rth@redhat.com>
5418
5419         PR target/45189
5420         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
5421         the alignment constant is properly sign-extended.
5422
5423 2010-08-05  Richard Guenther  <rguenther@suse.de>
5424
5425         * expr.c (store_expr): Use emit_block_move only if both
5426         source and target are MEMs.  Use store_bit_field if only
5427         the target is a MEM.
5428
5429 2010-08-05  Richard Henderson  <rth@redhat.com>
5430
5431         PR debug/45188
5432         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
5433         (INCOMING_RETURN_ADDR_RTX): Likewise.
5434         (dwarf2out_do_frame): Remove conditional compilation.
5435         (dwarf2out_frame_init): Likewise.
5436
5437 2010-08-05  Nicolas Setton  <setton@adacore.com>
5438
5439         * gcov.c (flag_display_progress): New static variable.
5440         (main): Display progress info on standard output if requested.
5441         (options): Add -d/--display-progress.
5442         (print_usage): Print them.
5443         (process_args): Handle them.
5444         * doc/gcov.texi: Document them.
5445
5446 2010-08-05  Martin Jambor  <mjambor@suse.cz>
5447
5448         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
5449         (ipcp_insert_stage): Redirect only edges not flagged with
5450         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
5451         discovered constants.
5452
5453 2010-08-05  Martin Jambor  <mjambor@suse.cz>
5454
5455         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
5456         (struct ipa_param_descriptor): New fields types and
5457         cannot_devirtualize.
5458         (ipa_param_cannot_devirtualize_p): New function.
5459         (ipa_param_types_vec_empty): Likewise.
5460         (ipa_make_edge_direct_to_target): Declare.
5461         * ipa-cp.c: Fixed first stage driver name in initial comment,
5462         described devirtualization there too.
5463         (ipcp_analyze_node): Call ipa_analyze_params_uses.
5464         (ipcp_print_all_lattices): Print devirtualization info.
5465         (ipa_set_param_cannot_devirtualize): New function.
5466         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
5467         lattice to BOTTOM.
5468         (ipcp_init_stage): Merged into...
5469         (ipcp_generate_summary): ...its caller.
5470         (ipcp_change_tops_to_bottom): Also process type lists.
5471         (ipcp_add_param_type): New function.
5472         (ipcp_copy_types): Likewise.
5473         (ipcp_propagate_types): Likewise.
5474         (ipcp_propagate_stage): Also propagate types.
5475         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
5476         Also return true if propagated types require it.
5477         (ipcp_update_callgraph): Dump redirection info.
5478         (ipcp_process_devirtualization_opportunities): New function.
5479         (ipcp_const_param_count): Include known type information.
5480         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
5481         on new node.  Fixed formatting.
5482         * ipa-prop.c (make_edge_direct_to_target): Renamed to
5483         ipa_make_edge_direct_to_target and changed all callers.  Made
5484         externally visible.
5485         (ipa_node_duplication_hook): Duplicate types vector.
5486         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
5487         redirect outgoing calls for which we can't get a decl from the
5488         statement.  Check that we can get a decl from the call statement.
5489         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
5490         ipa_analyze_params_uses only when ipa-cp is disabled.
5491         * tree-inline.c (get_indirect_callee_fndecl): Removed.
5492         (expand_call_inline): Do not call get_indirect_callee_fndecl.
5493         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
5494         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
5495
5496 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
5497
5498         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
5499         temporary. Emit move from temporary to accum, so REG_EQUAL note will
5500         be attached to this insn in correct mode.
5501
5502 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
5503
5504         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
5505         using REGNO of base_reg directly.
5506
5507 2010-08-05  Jie Zhang  <jie@codesourcery.com>
5508
5509         PR tree-optimization/45144
5510         * tree-sra.c (type_consists_of_records_p): Return false
5511         if the record contains bit-field.
5512
5513 2010-08-04  Richard Henderson  <rth@redhat.com>
5514
5515         * config/i386/i386.c (struct ix86_frame): Remove padding and
5516         to_allocate members.
5517         (ix86_compute_frame_layout): Don't store them.
5518         (ix86_can_use_return_insn_p): Use a more direct and more obviously
5519         correct condition for the position of the stack pointer.
5520         (ix86_expand_prologue): Compute remaining stack allocation based
5521         on the ultimate stack pointer offset.
5522         (ix86_expand_epilogue): Use more obvious expressions testing for
5523         the stack pointer already pointing to the saved registers.
5524
5525         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
5526         duplication deconstructing the frame pointer.  Simplify
5527         deallocation of the local stack frame.
5528
5529         * reg-notes.def (CFA_EXPRESSION): New.
5530         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
5531         (dwarf2out_frame_debug_cfa_expression): New.
5532         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
5533
5534         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
5535         * config/i386/i386.c (ix86_expand_prologue): Set it.
5536         (ix86_expand_epilogue): Clear it.
5537         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
5538         context, add REG_CFA_EXPRESSION notes.
5539
5540         * config/i386/i386.h (struct machine_frame_state): Rename from
5541         machine_cfa_state.  Add members tracking SP and FP regardless
5542         of the current CFA register.
5543         (ix86_cfa_state): Remove.
5544         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
5545         and sse_reg_save_offset members.
5546         (ix86_compute_frame_layout): Set them.
5547         (gen_push): Increment sp_offset too.
5548         (choose_baseaddr_len, choose_baseaddr): New.
5549         (ix86_emit_save_reg_using_mov): New.
5550         (ix86_emit_save_regs_using_mov): Use it.
5551         (ix86_emit_save_sse_regs_using_mov): Likewise.
5552         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
5553         compare vs the saved red_zone_offset.
5554         (pro_epilogue_adjust_stack): Adjust sp_offset.
5555         (ix86_adjust_stack_and_probe): Likewise.
5556         (ix86_expand_prologue): Set up, use, and validate the new
5557         frame_state_info members.  Use gen_frame_mem.
5558         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
5559         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
5560         new frame_state_info members.
5561         (ix86_emit_leave): Likewise.
5562         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
5563         out-of-range stack pointer offsets here.
5564         (ix86_emit_restore_sse_regs_using_mov): Likewise.
5565         (ix86_expand_epilogue): Use and validate the new frame_state_info
5566         members.  Break up and simplify the logic selecting the
5567         restore_regs_via_mov code path.  Ensure that there will be no
5568         out-of-range stack pointer offsets.
5569
5570         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
5571
5572         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
5573         argument name to reflect the expected tree; fix indentation.
5574         (ix86_asm_output_function_label): Output the entire 32-bit
5575         ms_hook here as bytes ...
5576         (ix86_expand_prologue): ... not here as insns.  Attach the
5577         unwind info for the ms_hook to a blockage insn.
5578         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
5579         (ix86_ms_bitfield_layout_p): Fix indentation.
5580         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
5581
5582         * config/i386/i386.c (ix86_using_red_zone): New.
5583         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
5584         ix86_expand_prologue, ix86_force_to_memory): Use it.
5585
5586         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
5587         saving the int registers.
5588
5589         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
5590         and DWARF2_UNWIND_INFO conditional compilation.
5591
5592 2010-08-04  Richard Henderson  <rth@redhat.com>
5593
5594         PR debug/45171
5595         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
5596         an is_naming_typedef_decl.
5597
5598 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
5599
5600         PR rtl-optimization/45162
5601         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
5602         * dce.c (word_dce_process_block): Likewise.
5603
5604 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
5605
5606         PR target/44583
5607         * config/ia64/constraints.md (Z): New.
5608         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
5609         (xfreg_or_signed_fp01_operand): New.
5610         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
5611         with fr_reg_or_signed_fp01_operand and constraint G with Z.
5612         (subsf3): Ditto.
5613         (*maddsf4): Ditto.
5614         (*msubsf4): Ditto.
5615         (adddf3): Ditto.
5616         (adddf3_trunc): Ditto.
5617         (subdf3): Ditto.
5618         (*subdf3_trunc): Ditto.
5619         (*madddf4): Ditto.
5620         (*madddf4_trunc): Ditto.
5621         (*msubdf4): Ditto.
5622         (*msubdf4_trunc): Ditto.
5623         (addxf3): Replace xfreg_or_fp01_operand with
5624         xfreg_or_signed_fp01_operand and constraint G with Z.
5625         (*addxf3_truncsf): Ditto.
5626         (*addxf3_truncdf): Ditto.
5627         (subxf3): Ditto.
5628         (*subxf3_truncsf): Ditto.
5629         (*subxf3_truncdf): Ditto.
5630         (*maddxf4): Ditto.
5631         (*maddxf4_truncsf): Ditto.
5632         (*maddxf4_truncdf): Ditto.
5633         (*msubxf4): Ditto.
5634         (*msubxf4_truncsf): Ditto.
5635         (*msubxf4_truncdf): Ditto.
5636
5637 2010-08-04  Richard Guenther  <rguenther@suse.de>
5638
5639         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
5640         if either alias-set is zero.
5641
5642 2010-08-04  Richard Guenther  <rguenther@suse.de>
5643
5644         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
5645         * tree-ssa-ccp.c: ... here.
5646         * tree-ssa-copy.c: ... and here.
5647         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
5648         value_range_t): Move ...
5649         * tree-vrp.c: ... here.
5650         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
5651         (substitute_and_fold): Adjust prototype.
5652         * tree-ssa-propagate.c (replace_uses_in): Adjust.
5653         (replace_phi_args_in): Likewise.
5654         (substitute_and_fold): Take callback to query lattice instead
5655         of pointer to lattice.  Replace SSA name defs with lattice
5656         values first.
5657         * tree-ssa-ccp.c (ccp_finalize): Adjust.
5658         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
5659         (get_value): New function.
5660         (fini_copy_prop): Adjust.
5661         * tree-vrp.c (vrp_finalize): Adjust.
5662
5663 2010-08-04  Richard Guenther  <rguenther@suse.de>
5664
5665         PR middle-end/45176
5666         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
5667         points-to set for original MEM_REF.
5668
5669 2010-08-04  Richard Guenther  <rguenther@suse.de>
5670
5671         * tree-ssa-ccp.c (get_constant_value): New function.
5672         (get_rhs_assign_op_for_ccp): Remove.
5673         (valueize_op): New function.
5674         (ccp_fold): Use get_constant_value and valueize_op.
5675         (fold_const_aggregate_ref): Likewise.
5676         (ccp_fold_stmt): Likewise.
5677         (visit_assignment): Simplify.
5678
5679 2010-08-04  Richard Guenther  <rguenther@suse.de>
5680
5681         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
5682         * double-int.h (double_int_ctz): Declare.
5683         * double-int.c (double_int_ctz): New function.
5684
5685 2010-08-04  Hariharan Sandanagobalane <hariharan@picochip.com>
5686
5687         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
5688         Define.
5689         picochip_expand_movmemhi : Expand movmem pattern.
5690         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
5691         Declare.
5692         * config/picochip/picochip.md (movmemhi) : New pattern.
5693
5694 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
5695
5696         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
5697
5698 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
5699
5700         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
5701         NEG as operand of a MULT by merging it with the other operand.
5702         * combine.c (make_compound_operation): Use trunc_int_for_mode when
5703         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
5704         MULT.
5705         * config/arm/constraints.md (M): Examine only 32 bits of a
5706         HOST_WIDE_INT.
5707         * config/arm/predicates.md (power_of_two_operand): Likewise.
5708
5709 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5710
5711         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
5712         non-NOTE insns.
5713
5714 2010-08-03  Jan Hubicka  <jh@suse.cz>
5715
5716         * ipa-split.c (struct split_point): Add split_part_set_retval.
5717         (find_retval): Forward declare.
5718         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
5719         (consider_split): Compute current->split_part_set_retval.
5720         (visit_bb): Do not look into return value.
5721         (split_function): Handle !split_part_set_retval
5722
5723 2010-08-03  Martin Jambor  <mjambor@suse.cz>
5724
5725         * tree-sra.c (completely_scalarize_record): New parameter REF, create
5726         its own access->expr intead of using build_ref_for_offset.
5727
5728 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
5729
5730         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
5731         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
5732         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
5733         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
5734         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
5735         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
5736         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
5737         DEFAULT_SWITCH_TAKES_ARG.
5738         * config/rx/rx.opt (-patch=): Remove option.
5739         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
5740         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
5741         * doc/invoke.texi (RX Options): Remove -patch=.
5742         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
5743         (option_map): Remove --profile-blocks, --quiet and --silent.
5744
5745 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
5746
5747         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
5748         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
5749         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
5750         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
5751         Update calls to ix86_expand_compare and ix86_expand_branch.
5752         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
5753         ix86_expand_compare.
5754         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
5755         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
5756         Make static.
5757         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
5758         and ix86_compare_op1.  Update calls to ix86_expand_compare.
5759         (ix86_expand_int_movcc): Ditto.
5760         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
5761         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
5762         (ix86_expand_setcc): Ditto.
5763         (ix86_expand_compare): Remove prototype.
5764         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
5765         ix86_compare_op0 and ix86_compare_op1.  Update calls
5766         to ix86_expand_branch to directly pass operands[1] and operands[2].
5767         (cbranchxf4): Ditto.
5768         (cbranch<MODEF:mode>4): Ditto.
5769         (cbranchcc4): Ditto.
5770         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
5771         Update calls to ix86_expand_setcc to directly pass operands[2] and
5772         operands[3].
5773         (cstorexf4): Ditto.
5774         (cstore<MODEF:mode>4): Ditto.
5775         (cstorecc4): Ditto.
5776
5777 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
5778
5779         PR target/45063
5780         * caller-save.c (save_call_clobbered_regs): Remove regs from
5781         hard_regs_saved when they are set.
5782
5783 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
5784
5785         PR target/41089
5786         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
5787         as volatile.
5788
5789 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
5790
5791         * common.opt (ftree-loop-distribute-patterns): New.
5792         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
5793         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
5794         at -O3.
5795         * tree-data-ref.c (stores_zero_from_loop): New.
5796         * tree-data-ref.h (stores_zero_from_loop): Declared.
5797         * tree-loop-distribution.c (tree_loop_distribution): Call
5798         stores_zero_from_loop.
5799         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
5800
5801 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
5802
5803         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
5804         into account.
5805
5806         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
5807         * config/arm/arm.c (thumb1_code): New variable.
5808         (arm_override_options): Set it.
5809         (thumb1_final_prescan_insn): Keep track of condition code status.
5810         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
5811         jumps that depend on them.
5812         * config/arm/arm.h (thumb1_code): Declare variable.
5813         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
5814         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
5815         thumb1_cc_mode.
5816         (CC_STATUS_INIT): New macro.
5817         * config/arm/constraints.md (Pd): New constraint.
5818         * config/arm/predicates.md (noov_comparison_operator): New predicate.
5819         * config/arm/arm.md (is_thumb1): New define_attr.
5820         (conds): Set default to "clob" when generating Thumb1 code.
5821         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
5822         code are set.  Use two-operand assembly syntax.
5823         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
5824         pattern.
5825         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
5826         codes are set.  Use two-operand assembly syntax.
5827         (zero_extendhisi splitter): Remove constraints.
5828         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
5829         thumb1_movsf_insn): Set conds attribute as appropriate.
5830         (cbranchsi4_insn): Use condition code status from struct
5831         machine_function to determine whether the comparison can be eliminated.
5832         Discourage the alternative using high registers.
5833         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
5834         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
5835         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
5836         subsi3_cbranch): Delete.
5837         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
5838         one subtract and one cbranch insn.
5839
5840         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
5841         thumb2_movdf_soft_insn): Delete patterns.
5842         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
5843         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
5844         (pool_range, neg_pool_range): Use them to define defaults.
5845         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
5846         and allow for TARGET_32BIT.
5847
5848         PR target/40457
5849         * config/arm/arm.h (arm_regs_in_sequence): Declare.
5850         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
5851         load_multiple_sequence, store_multiple_sequence): Delete
5852         declarations.
5853         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
5854         declarations.
5855         * config/arm/ldmstm.md: New file.
5856         * config/arm/arm.c (arm_regs_in_sequence): New array.
5857         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
5858         CHECK_REGS.  All callers changed.
5859         If SAVED_ORDER is nonnull, copy the computed order into it.
5860         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
5861         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
5862         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
5863         If SAVED_ORDER is nonnull, copy the computed order into it.
5864         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
5865         like REGS.  Handle Thumb mode.
5866         (arm_gen_load_multiple_1): New function, broken out of
5867         arm_gen_load_multiple.
5868         (arm_gen_store_multiple_1): New function, broken out of
5869         arm_gen_store_multiple.
5870         (arm_gen_multiple_op): New function, with code from
5871         arm_gen_load_multiple and arm_gen_store_multiple moved here.
5872         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
5873         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
5874         changed.
5875         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
5876         * config/arm/predicates.md (commutative_binary_operator): New.
5877         (load_multiple_operation, store_multiple_operation): Handle more
5878         variants of these patterns with different starting offsets.  Handle
5879         Thumb-1.
5880         * config/arm/arm.md: Include "ldmstm.md".
5881         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
5882         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
5883         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
5884         peepholes): Delete.
5885         * config/arm/ldmstm.md: New file.
5886         * config/arm/arm-ldmstm.ml: New file.
5887
5888         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
5889         if statement which adds extra costs to frame-related expressions.
5890
5891 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5892
5893         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
5894
5895 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
5896
5897         PR target/45142
5898         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
5899         alternative 2.
5900         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
5901         split V4SI operands.
5902
5903 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
5904
5905         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
5906         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
5907         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
5908         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
5909
5910 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
5911
5912         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
5913         LOCAL_INCLUDE_DIR.
5914
5915 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
5916
5917         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
5918         used in the call to optab_for_tree_code.  Fix the second
5919         is_widening_mult_p call.  Check that both unwidened operands
5920         have the same sign.
5921
5922 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
5923
5924         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
5925
5926 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
5927
5928         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
5929
5930 2010-07-30  DJ Delorie  <dj@redhat.com>
5931
5932         * config/rx/predicates.md (rx_constshift_operand): New.
5933         * config/rx/rx.md (zs_cond): New.
5934         (cbranchsi4): Remove mode.
5935         (*cbranchsi4_<code>): Likewise.
5936         (*tstbranchsi4_<code>): New.
5937         (*tstbranchsi4r_<code>): New.
5938         (*tstbranchsi4m_eq): New.
5939         (*tstbranchsi4m_ne): New.
5940         (cbranchsf4): Remove mode.
5941         (*cbranchsf4_<code>): Likewise.
5942
5943 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
5944
5945         * rtlanal.c (simplify_subreg_regno): Don't treat
5946         HARD_FRAME_POINTER_REGNUM specially.
5947
5948 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
5949
5950         * common.opt (-G): Don't define option here.
5951         * config/g.opt: New.
5952         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
5953         rs6000/powerpc and score targets.
5954         * opts.c (common_handle_option): Don't handle -G here.
5955         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
5956         * config/frv/frv.c (frv_handle_option): Handle -G.
5957         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
5958         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
5959         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
5960         * config/mips/mips.c (mips_handle_option): Handle -G.
5961         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
5962         * config/score/score.c (score_handle_option): Handle -G.
5963
5964 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
5965
5966         * config/mmix/mmix.c: Include basic-block.h.
5967
5968 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
5969
5970         PR debug/45055
5971         PR rtl-optimization/45137
5972         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
5973         prototypes.
5974         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
5975         New functions.
5976         * combine.c (next_nonnote_nondebug_insn): Removed.
5977         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
5978         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
5979         * sched-deps.c (sched_analyze_insn): Likewise.
5980         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
5981         * rtlanal.c (canonicalize_condition): Likewise.
5982         * postreload.c (reload_combine_recognize_pattern): Likewise.
5983         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
5984
5985 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
5986
5987         * config/i386/i386.md (int_cond): Remove code iterator.
5988         (fp_cond): Ditto.
5989         (cbranch<mode>4): Use ordered_comparison_operator predicate
5990         for operator0.
5991         (cstore<mode>4): Ditto for operator1.
5992         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
5993         (add<mode>cc): ditto.
5994
5995 2010-07-30  Richard Guenther  <rguenther@suse.de>
5996
5997         PR middle-end/45141
5998         * expr.c (expand_expr_real_1): Check for not handled base address.
5999
6000 2010-07-30  Richard Guenther  <rguenther@suse.de>
6001
6002         * ipa-prop.c (ipa_modify_formal_parameters): Use
6003         build_distinct_type_copy.
6004
6005 2010-07-30  Anthony Green  <green@moxielogic.com>
6006
6007         * config/moxie/rtems.h: New file.
6008         * config.gcc: Add moxie-rtems support.
6009
6010 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
6011
6012         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
6013         df flags as in run_fast_df_dce.
6014
6015 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
6016
6017         Revert:
6018         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
6019
6020         * rtl.def (NOTE): Swap operands 4 and 5.
6021         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
6022         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
6023         Adjust accordingly.
6024         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
6025
6026 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
6027
6028         PR debug/45110
6029         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
6030         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
6031         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
6032         formal parameters.
6033         (gen_decl_die): Change return type to dw_die_ref, return what
6034         gen_formal_parameter_die returned.
6035
6036 2010-07-29  Martin Jambor  <mjambor@suse.cz>
6037
6038         * dbgcnt.def (eipa_sra): New counter.
6039         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
6040
6041 2010-07-29  Xinliang David Li  <davidxl@google.com>
6042
6043         PR bootstrap/45119
6044         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
6045         in revision 162652.
6046
6047 2010-07-29  Richard Guenther  <rguenther@suse.de>
6048
6049         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
6050         (TV_TREE_STORE_CCP): Likewise.
6051         (TV_TREE_REDPHI): Likewise.
6052
6053 2010-07-29  Richard Guenther  <rguenther@suse.de>
6054
6055         * double-int.h (double_int_and_not): New function.
6056         * combine.c (try_combine): Use it.
6057         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
6058
6059 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
6060
6061         PR rtl-optimization/42575
6062         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
6063         Argument AU removed.  All callers changed.  Ignore artificial refs.
6064         Use return value of df_word_lr_simulate_defs to decide whether an insn
6065         is necessary.
6066         (fast_dce): Rename arg to WORD_LEVEL.
6067         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
6068         static.
6069         (pass_fast_rtl_byte_dce): Delete.
6070         * dce.h (run_word_dce): Declare.
6071         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
6072         All callers changed.  Simplify code to only deal with two-word regs.
6073         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
6074         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
6075         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
6076         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
6077         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
6078         (df_word_lr_mark_ref): Declare.
6079         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
6080         df_word_lr_simulate_uses): Declare or rename from byte variants.
6081         (df_byte_lr_simulate_artificial_refs_at_top,
6082         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
6083         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
6084         declarations.
6085         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
6086         (enum df_mm): Delete.
6087         * df-byte-scan.c: Delete file.
6088         * df-problems.c (df_word_lr_problem_data): Renamed from
6089         df_byte_lr_problem_data, all members deleted except for
6090         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
6091         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
6092         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
6093         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
6094         df_byte_lr_confluence_0): Delete functions.
6095         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
6096         callers changed.
6097         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
6098         Don't initialize members that were deleted, don't try to discover data
6099         about registers.  Ignore hard regs.
6100         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
6101         (df_word_lr_mark_ref): New function.
6102         (df_word_lr_bb_local_compute): Renamed from
6103         df_byte_bb_lr_local_compute; all callers changed.  Use
6104         df_word_lr_mark_ref.  Assert that artificial refs don't include
6105         pseudos.  Ignore hard registers.
6106         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
6107         Assert that exit block uses don't contain pseudos.
6108         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
6109         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
6110         callers changed.  Ignore hard regs.
6111         (df_word_lr_transfer_function): Renamed from
6112         df_byte_lr_transfer_function; all callers changed.
6113         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
6114         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
6115         changed.
6116         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
6117         callers changed.
6118         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
6119         confluence operator 0 set to NULL.
6120         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
6121         callers changed.
6122         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
6123         Return bool, true if bitmap changed or insn otherwise necessary.
6124         All callers changed.  Simplify using df_word_lr_mark_ref.
6125         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
6126         all callers changed.  Simplify using df_word_lr_mark_ref.
6127         * lower-subreg.c: Include "dce.h"
6128         (decompose_multiword_subregs): Call run_word_dce if df available.
6129         * Makefile.in (lower-subreg.o): Adjust dependencies.
6130         (df-byte-scan.o): Delete.
6131         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
6132
6133 2010-07-29  Richard Guenther  <rguenther@suse.de>
6134
6135         * tree.c (build_vector): Assert that the vector constant
6136         has enough elements.
6137         (build_vector_from_ctor): Pad with trailing zeros.
6138
6139 2010-07-29  Richard Guenther  <rguenther@suse.de>
6140
6141         PR tree-optimization/45120
6142         * tree-ssa-structalias.c (get_constraint_for_component_ref):
6143         Handle offset in DEREFs properly.
6144         (get_constraint_for_1): Handle MEM_REF offset properly.
6145
6146 2010-07-29  Richard Guenther  <rguenther@suse.de>
6147
6148         PR middle-end/45034
6149         * convert.c (convert_to_integer): Always use an unsigned
6150         type for narrowed negate and bitwise not.
6151
6152 2010-07-29  Ira Rosen  <irar@il.ibm.com>
6153
6154         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
6155         to outer loop when creating reduction epilogue for double reduction,
6156         and switch back to the inner loop when updating the phi nodes.
6157         Update uses of outer loop exit phi nodes in double reduction (instead
6158         of uses of reduction).
6159
6160 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
6161
6162         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
6163         popcount on power7 and parity on power6 systems.
6164         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
6165         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
6166         instructions.
6167
6168         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
6169         (UNSPEC_PARITY): Ditto.
6170         (SFDF): New iterator for SF/DF.
6171         (rreg2): New mode attribute for floating register constraint.
6172         (TARGET_FLOAT): New mode attribute for whether single/double float
6173         is supported.
6174         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
6175         pattern.
6176         (parity<mode>2_cmpb): New insn for parity on power6 and newer
6177         machines.
6178         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
6179         pattern.  Add support for fcpsgn instruction added in power6.
6180         (copysignsf3): Delete.
6181         (copysigndf3): Delete.
6182         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
6183         instead of if_then_else in RTL to avoid problems with -0.
6184
6185         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
6186         of if_then_else to mirror scalar code.
6187         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
6188         rs6000.md.
6189
6190         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
6191         instead of if_then_else.
6192
6193 2010-07-28  Xinliang David Li  <davidxl@google.com>
6194
6195         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
6196         (dump_cand): Dump var_before/after.
6197         (htab_inv_expr_eq): New function.
6198         (htab_inv_expr_hash): New function.
6199         (tree_ssa_iv_optimize_init): Support pseudo invariants.
6200         (add_candidate_1): consider base type precision.
6201         (set_use_iv_cost): New parameter.
6202         (adjust_setup_cost): Use profile information.
6203         (get_address_cost): Do not hard code width in computing address
6204         offset limits.
6205         (compare_aff_trees): New function.
6206         (get_loop_invariant_expr_id): New function.
6207         (get_computation_cost_at): New parameter and use profile information.
6208         (get_computation_cost): New parameter.
6209         (determine_use_iv_cost_generic): Pass new parameter.
6210         (determine_use_iv_cost_address): Ditto.
6211         (determine_use_iv_cost_condition): Ditto.
6212         (autoinc_possible_for_pair): Ditto.
6213         (determine_use_iv_costs): More dumps.
6214         (iv_ca_get_num_inv_exprs): New function.
6215         (iv_ca_recount_cost): Consider loop invariants in register pressure
6216         cost.
6217         (iv_ca_add_use): New parameter.
6218         (iv_ca_dump): Better dumping.
6219         (iv_ca_extend): New parameter.
6220         (try_add_cand_for): Attempt to get better partial solution.
6221         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
6222         (create_new-ivs): More dumps.
6223         (rewrite_use_compare): Ditto.
6224         (free_loop_data): More cleanup.
6225         (treee_ssa_iv_optimize_finalize): Ditto.
6226
6227 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
6228
6229         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
6230         * config/i386/i386.c (ix86_profile_before_prologue): New.
6231         (override_options): Add special handling for -mfentry.
6232         (ix86_function_regparm): Likewise.
6233         (ix86_function_sseregparm): Likewise.
6234         (ix86_frame_pointer_required): Likewise.
6235         (ix86_expand_prologue): Check for ms_hook_prologue.
6236         (x86_function_profiler): Adjust mcount output.
6237         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
6238         * config/i386/i386.opt (mfentry): New.
6239         * doc/invoke.texi (mfentry): Add documentation.
6240         * doc/tm.texi: Regenerated..
6241         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
6242         * final.c (final_start_function): Replace macro
6243         PROFILE_BEFORE_PROLOGUE by target hook.
6244         * function.c (thread_prologue_and_epilogue_insns): Likewise.
6245         * target.def (profile_before_prologue): New hook.
6246         * targhooks.c (default_profile_before_prologue): New.
6247         * targhooks.h (default_profile_before_prologue): New.
6248
6249 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
6250
6251         PR debug/45105
6252         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
6253
6254         PR debug/45103
6255         * dwarf2out.c (dwarf2out_var_location): Always consider
6256         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
6257
6258 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
6259
6260         PR rtl-optimization/45107
6261         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
6262
6263 2010-07-28  Richard Guenther  <rguenther@suse.de>
6264
6265         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
6266         (set_lattice_value): Do not query an old default value.
6267         (get_value_for_expr): New function.  Properly canonicalize
6268         float values.
6269         (ccp_visit_phi_node): Use it.
6270
6271 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
6272
6273         * config/arm/arm.c (arm_pcs_default): Remove static.
6274         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
6275         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
6276         (arm_pcs_default): Declare.
6277
6278 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
6279
6280         * config/rs6000/rs6000.c (rs6000_override_options):
6281         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
6282         ... to darwin_rs6000_override_options.
6283         (rs6000_return_in_memory): Update preceding comment for darwin
6284         64 bit ABI.  Use TARGET_MACHO inline.
6285         (rs6000_darwin64_struct_check_p): New.
6286         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
6287         (function_arg): Likewise.
6288         (rs6000_arg_partial_bytes): Likewise.
6289         (rs6000_function_value): Likewise.
6290
6291 2010-07-28  Andi Kleen <ak@linux.intel.com>
6292
6293         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
6294
6295 2010-07-28  Richard Guenther  <rguenther@suse.de>
6296
6297         PR middle-end/44903
6298         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
6299         targets try harder to not generate unaligned accesses.
6300
6301 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
6302
6303         PR rtl-optimization/45101
6304         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
6305         for gcse-las.
6306
6307 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
6308
6309         PR tree-optimization/44885
6310         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
6311         with non-aliased component.
6312
6313 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
6314
6315         * config/darwin-driver.c (SWITCH_TAKES_ARG,
6316         WORD_SWITCH_TAKES_ARG): Remove.
6317         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6318         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
6319         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
6320         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
6321         definitions from gcc.c.
6322         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
6323         defaults.h.
6324         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
6325         Move to defaults.h.
6326         * opts-common.c: Include tm.h.
6327         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
6328         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
6329         Handle more than one argument.  Set canonical_option_num_elements.
6330         (decode_cmdline_options_to_array): Set
6331         canonical_option_num_elements and trailing elements of
6332         canonical_option.
6333         * opts.h (struct cl_decoded_option): Allow four elements in
6334         canonical_option.  Add field canonical_option_num_elements.
6335         * Makefile.in (opts-common.o): Update dependencies.
6336
6337 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
6338
6339         PR middle-end/44790
6340         PR middle-end/44993
6341         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
6342         sure the base has address_mode before adding the offset.
6343
6344 2010-07-27  Xinliang David Li <davidxl@google.com>
6345
6346         * tree-flow.h (create_mem_ref): Add one new parameter.
6347         * tree-ssa-address.c (create_mem_ref): New parameter.
6348         (addr_to_parts): Ditto.
6349         (move_variant_to_index): New function.
6350         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
6351
6352 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
6353
6354         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
6355         4 and 5.
6356         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
6357         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
6358         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
6359         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
6360         CODE_LABELs and NOTEs.
6361         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
6362         * combine.c (try_combine): Likewise.
6363         * ira.c (setup_prohibited_mode_move_regs): Likewise.
6364         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
6365
6366 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
6367
6368         * coretypes.h (struct cl_option_handlers): Declare.
6369         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
6370         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
6371         * langhooks-def.h (lhd_handle_option): Declare.
6372         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
6373         * langhooks.c (lhd_handle_option): New.
6374         * langhooks.h (struct lang_hooks): Update prototype and return
6375         value type of handle_option hook.
6376         * optc-gen.awk: Generate target_flags_explicit definition for the
6377         driver.
6378         * opts-common.c: Include diagnostic.h.
6379         (handle_option): Move from opts.c.  Update prototype and return
6380         value type.  Use handlers structure.
6381         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
6382         handlers structure.
6383         (set_option): Move from opts.c.
6384         * opts.c (common_handle_option): Update prototype and return value
6385         type.  Update calls to handle_option and enable_warning_as_error.
6386         (unknown_option_callback, post_handling_callback,
6387         lang_handle_option, target_handle_option): New.
6388         (handle_option, read_cmdline_option): Move to opts-common.c.
6389         (read_cmdline_options): Update prototype.  Update call to
6390         read_cmdline_option.
6391         (decode_options): Initialize and use handlers structure.
6392         (set_option): Move to opts-common.c.
6393         (enable_warning_as_error): Update prototype.  Update call to
6394         handle_option.
6395         * opts.h (struct cl_option_handler_func, struct
6396         cl_option_handlers): New.
6397         (handle_option, enable_warning_as_error): Update prototypes.
6398         (read_cmdline_option): Declare.
6399         * Makefile.in (opts-common.o): Update dependencies.
6400
6401 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6402
6403         * config/arm/arm.c (params.h): Include.
6404         (arm_override_options): Tune gcse-unrestricted-cost.
6405         * config/arm/t-arm (arm.o): Define dependencies.
6406
6407 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6408
6409         PR target/42495
6410         PR middle-end/42574
6411         * basic-block.h (get_dominated_to_depth): Declare.
6412         * dominance.c (get_dominated_to_depth): New function, use
6413         get_all_dominated_blocks as a base.
6414         (get_all_dominated_blocks): Use get_dominated_to_depth.
6415
6416         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
6417         (hoist_exprs): Remove.
6418         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
6419         (compute_code_hoist_vbeinout): Add debug print outs.
6420         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
6421
6422         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
6423         quadratic behavior.
6424         * params.h (MAX_HOIST_DEPTH): New macro.
6425         * doc/invoke.texi (max-hoist-depth): Document.
6426
6427 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6428
6429         PR rtl-optimization/40956
6430         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
6431         constants.
6432
6433 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6434
6435         PR target/42495
6436         PR middle-end/42574
6437         * config/arm/arm.c (legitimize_pic_address): Use
6438         gen_calculate_pic_address pattern to emit calculation of PIC address.
6439         (will_be_in_index_register): New function.
6440         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
6441         (thumb1_legitimate_address_p): Use it provided !strict_p.
6442         * config/arm/arm.md (calculate_pic_address): New expand and split.
6443
6444 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6445
6446         PR target/42495
6447         PR middle-end/42574
6448         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
6449         * config/arm/arm.md (define_split "J", define_split "K"): Make
6450         IRA/reload friendly.
6451
6452 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6453
6454         * gcse.c (insert_insn_end_basic_block): Update signature, remove
6455         unused checks.
6456         (pre_edge_insert, hoist_code): Update.
6457
6458 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6459
6460         PR target/42495
6461         PR middle-end/42574
6462         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
6463
6464 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6465
6466         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
6467
6468 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6469
6470         PR rtl-optimization/40956
6471         PR target/42495
6472         PR middle-end/42574
6473         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
6474         for hoisting.
6475         (hoist_code): Count occurences in current block too.
6476
6477 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6478
6479         * gcse.c (struct expr:max_distance): New field.
6480         (doing_code_hoisting_p): New static variable.
6481         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
6482         simple expressions, don't change behavior for PRE.  Set max_distance.
6483         (insert_expr_in_table): Set new max_distance field.
6484         (hash_scan_set): Update.
6485         (hoist_expr_reaches_here_p): Stop search after max_distance
6486         instructions.
6487         (find_occr_in_bb): New static function.  Use it in ...
6488         (hoist_code): Calculate sizes of basic block before any changes are
6489         done.  Pass max_distance to hoist_expr_reaches_here_p.
6490         (one_code_hoisting_pass): Set doing_code_hoisting_p.
6491
6492         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
6493         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
6494         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
6495         macros.
6496         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
6497         Document.
6498
6499 2010-07-27  Jeff Law  <law@redhat.com>
6500             Maxim Kuvyrkov  <maxim@codesourcery.com>
6501
6502         * gcse.c (compute_transpout, transpout): Remove, move logic
6503         to prune_expressions.
6504         (compute_pre_data): Move pruning of trapping expressions ...
6505         (prune_expressions): ... here.  New static function.
6506         (compute_code_hoist_data): Use it.
6507         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
6508
6509 2010-07-27  Xinliang David Li  <davidxl@google.com>
6510
6511         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
6512         (rewrite_use_address): Adjust iv update position when needed.
6513
6514 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6515
6516         * dbgcnt.def (hoist_insn): New debug counter.
6517         * gcse.c (hoist_code): Use it.
6518
6519 2010-07-27  Xinliang David Li  <davidxl@google.com>
6520
6521         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
6522         (niter_for_single_dom_exit): Passes additional parameter.
6523         (iv_period): Fix comments.
6524         (may_eliminate_iv): Handles multiple exit loops properly.
6525         (free_tree_niter_desc): New function.
6526         (free_loop_data): Frees up loop iteration descriptors.
6527
6528 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
6529
6530         PR target/44542
6531         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
6532         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
6533         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
6534         (expand_one_var): Don't consider DECL_ALIGN for variables for
6535         which expand_one_stack_var_at has been already called.
6536
6537         PR testsuite/44701
6538         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
6539         constraints on IA-64.
6540
6541 2010-07-27  Jie Zhang  <jie@codesourcery.com>
6542
6543         PR target/44290
6544         Revert:
6545         2010-07-23  Jie Zhang  <jie@codesourcery.com>
6546
6547         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
6548         false if ! tree_versionable_function_p.
6549
6550 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
6551
6552         * dwarf2out.c (add_data_member_location_attribute): Use
6553         add_AT_unsigned instead of add_AT_int if offset is non-negative.
6554
6555 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
6556
6557         * postreload.c (try_replace_in_use): New static function.
6558         (reload_combine_recognize_const_pattern): Use it here.  Allow
6559         substituting into a final add insn, and substituting into a memory
6560         reference in an insn that sets the reg.
6561
6562 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
6563
6564         * common.opt (o): Add MissingArgError.
6565         * doc/options.texi (MissingArgError): Document.
6566         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
6567         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
6568         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
6569         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
6570         * langhooks.h (struct lang_hooks): Remove missing_argument.
6571         * optc-gen.awk: Handle MissingArgError and output new structure
6572         field initializers.
6573         * opts.c (read_cmdline_option): Use missing_argument_error field
6574         instead of missing_argument langhook.
6575         * opts.h (struct cl_option): Add missing_argument_error field.
6576         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
6577
6578 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
6579
6580         PR target/29090
6581         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
6582         Darwin64 ABI, for zero-sized objects.
6583
6584 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
6585
6586         PR target/35491
6587         PR target/29090
6588
6589         Merge from Apple local 4.2.1.
6590         2005-05-11  Stan Shebs  <shebs@apple.com>
6591         Fix 64-bit varargs for Darwin (Radar 4028089).
6592         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
6593         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
6594         Add argument, add case for 8-byte register half-filled with a float.
6595         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
6596         single-precision floats specially.
6597
6598 2010-07-27  Ira Rosen  <irar@il.ibm.com>
6599
6600         PR tree-optimization/44152
6601         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
6602         complex numbers for further check.
6603         (vect_supported_load_permutation_p): Check nodes with
6604         complex numbers.
6605
6606 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
6607
6608         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
6609         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
6610         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
6611         (LANG_HOOKS_INITIALIZER): Add new hooks.
6612         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
6613         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
6614         and complain_wrong_lang_p.  Update init_options prototype.
6615         * c-objc-common.c (c_initialize_diagnostics): First call
6616         c_common_initialize_diagnostics.
6617         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
6618         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
6619         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
6620         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
6621         (hook_uint_void_0): New.
6622         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
6623         (hook_uint_void_0): New.
6624         * opts-common.c (decode_cmdline_option,
6625         decode_cmdline_options_to_array): Also fill in canonical_option field.
6626         * opts.c (complain_wrong_lang): Use langhook to determine whether
6627         to complain instead of special-casing LTO.
6628         (decode_options): Separate lang_mask determination with
6629         option_lang_mask hook from call of init_options hook.
6630         * opts.h (struct cl_decoded_option): Add canonical_option.
6631
6632 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
6633
6634         PR tree-optimization/45083
6635         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
6636
6637 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
6638
6639         * postreload.c (reload_combine_recognize_const_pattern): Move test
6640         for limiting the insn movement to the right scope.
6641
6642         PR rtl-optimization/45051
6643         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
6644         than reg_mentioned_p.
6645
6646 2010-07-26  Richard Henderson  <rth@redhat.com>
6647
6648         PR target/44132
6649         * tree-emutls.c: New file.
6650         * Makefile.in (OBJS-common): Add it.
6651         * tree-pass.h (pass_ipa_lower_emutls): Declare.
6652         * passes.c (init_optimization_passes): Add it.
6653
6654         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
6655         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
6656         * expr.c (emutls_var_address): Delete.
6657         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
6658         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
6659         (emutls_finish): Delete.
6660         * toplev.c (compile_file): Don't call it.
6661         * tree.h (emutls_decl): Delete.
6662         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
6663         (emutls_finish, emutls_finalize_control_var): Delete.
6664         (emutls_object_type): Move to tree-emutls.c.
6665         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
6666         default_emutls_var_fields, get_emutls_object_type,
6667         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
6668         default_emutls_var_init): Likewise.
6669         (get_variable_section): Don't special case emutls.
6670         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
6671         default_elf_select_section, default_unique_section,
6672         default_encode_section_info): Likewise.
6673         * varpool.c (decide_is_variable_needed): Likewise.
6674         * gimple-iterator.c (update_call_edge_frequencies): New
6675         (gsi_insert_on_edge_immediate): Use it.
6676         (gsi_insert_seq_on_edge_immediate): Likewise.
6677         (gsi_commit_one_edge_insert): Likewise.
6678
6679         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
6680         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
6681         (x86_64_elf_unique_section): Likewise.
6682
6683 2010-07-26  Jan Hubicka  <jh@suse.cz>
6684
6685         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
6686         GTY((skip)).
6687
6688 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
6689
6690         * target.def (output_source_filename): New hook.
6691         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
6692         * doc/tm.texi: Regenerate.
6693         * toplev.c (output_file_directive) Remove function.
6694         * toplev.h (output_file_directive) Remove.
6695         * output.h (default_asm_output_source_filename,
6696         output_file_directive): Declare.
6697         * varasm.h (default_asm_output_source_filename,
6698         output_file_directive): New functions.
6699
6700         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
6701         * config/mips/mips-protos.h (mips_output_filename): Remove.
6702         * config/mips/mips.c (mips_output_filename): Make Static.
6703         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
6704
6705 2010-07-26  Richard Guenther  <rguenther@suse.de>
6706
6707         PR tree-optimization/43784
6708         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
6709         if the destination is used by the call.
6710
6711 2010-07-26  Richard Guenther  <rguenther@suse.de>
6712
6713         PR middle-end/45073
6714         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
6715         SSA updating on being in SSA form.
6716
6717 2010-07-26  Richard Guenther  <rguenther@suse.de>
6718
6719         PR middle-end/45056
6720         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
6721
6722 2010-07-26  Richard Guenther  <rguenther@suse.de>
6723
6724         PR tree-optimization/45071
6725         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
6726         adjust op->opcode.
6727
6728 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
6729
6730         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
6731         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
6732         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
6733         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
6734         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
6735         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
6736         save_r31, return_r31, save_interrupt, return_interrupt,
6737         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
6738         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
6739         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
6740         new ABI requirements.
6741         (save_r6_r9, L_callt_save_r6_r9): Remove.
6742         * config/v850/predicates.md (even_reg_operand, disp23_operand,
6743         const_float_1_operand const_float_0_operand): New Predicates.
6744         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
6745         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
6746         * config/v850/t-v850: Update multilibs for new target variants.
6747         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
6748         * config/v850/t-v850e: Likewise.
6749         * config/v850/v850.c (v850_issue_rate): New.
6750         (v850_strict_argument_naming): New.
6751         (function_arg): Modify to generate a different ABI.
6752         (print_operand): Update case 'z' to support float modes.
6753         (output_move_single): Modify to generate appropriate and better
6754         assembly.
6755         (v850_float_z_comparison_operator, v850_select_cc_mode,
6756         v850_float_nz_comparison_operator,  v850_gen_float_compare,
6757         v850_gen_compare): New functions to support comparison of float values.
6758         (ep_memory_offset): Add support for V850E2 targets.
6759         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
6760         (INTERRUPT_REGPARM_NUM): Remove.
6761         (compute_register_save_size): Add extra case to save/restore long call.
6762         (use_prolog_function): New function to support prologue.
6763         (expand_prologue): Add support for V850E2 targets and modified
6764         as per the current ABI requirements.
6765         (expand_epilogue): Likewise.
6766         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
6767         (construct_save_jarl): Likewise.
6768         (construct_dispose_instruction): Update as per the current ABI
6769         requirements.
6770         (construct_prepare_instruction): Likewise.
6771         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
6772         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
6773         (CPP_SPEC): Updated to support v850e2 targets.
6774         (STRICT_ALIGNMENT): Modified.
6775         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
6776         (FIXED_REGISTERS): Likewise.
6777         (CALL_USED_REGISTERS): Likewise.
6778         (CONDITIONAL_REGISTER_USAGE): Updated.
6779         (HARD_REGNO_MODE_OK): Updated.
6780         (reg_class): Updated to add even registers.
6781         (REG_CLASS_NAMES): Likewise.
6782         (REG_CLASS_CONTENTS): Likewise.
6783         (REGNO_REG_CLASS): Updated for CC registers.
6784         (REG_CLASS_FROM_LETTER): Added support for even registers.
6785         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
6786         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
6787         ARG_POINTER_REGNUM): Updated.
6788         (FUNCTION_ARG_ADVANCE): Define.
6789         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
6790         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
6791         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
6792         (GO_IF_LEGITIMATE_ADDRESS): Updated.
6793         (SELECT_CC_MODE): Define.
6794         (REGISTER_NAMES): Updated to add psw and fcc registers.
6795         (ADDITIONAL_REGISTER_NAMES): Updated.
6796         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
6797         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
6798         * config/v850/v850.md (define_constants): Define new constants.
6799         (type): Update store,bit1,macc,div,fpu and single attributes.
6800         (cpu): New attribute.
6801         (cc): Add set_z attribute.
6802         (unsign23byte_load, sign23byte_load, unsign23hword_load,
6803         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
6804         23word_store): New instructions for 23-bit displacement load and store.
6805         (movqi_internal, movhi_internal): Update the attributes.
6806         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
6807         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
6808         the attributes.
6809         (v850_tst1): Modified using CC_REGNUM.
6810         (tstsi): Remove.
6811         (cmpsi): Modified as define_expand from define_insn.
6812         (cmpsi_insn, cmpsf, cmpdf): New instructions.
6813         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
6814         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
6815         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
6816         one_cmplsi2): Clobber the CC_REGNUM register.
6817         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
6818         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
6819         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
6820         (setf_insn, set_z_insn, set_nz_insn): New instructions for
6821         v850e2v3 target.
6822         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
6823         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
6824         targets.
6825         (sasf_1, sasf_2): Remove.
6826         (sasf): New instruction.
6827         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
6828         targets. CC_REGNUM register is clobbered and attributes are
6829         updated.
6830         (branch_z_normal, branch_z_invert, branch_nz_normal,
6831         branch_nz_invert): New branch related instructions.
6832         (jump): Updated the attributes.
6833         (switch): Update to support new targets. CC_REGNUM register is
6834         clobbered and attributes are updated.
6835         (call_internal_short, call_internal_long, call_value_internal_short,
6836         call_value_internal_long): Updated the attributes.
6837         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
6838         clobbered and attributes are updated.
6839         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
6840         Update to support new targets. CC_REGNUM register is clobbered.
6841         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
6842         instructions.
6843         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
6844         are updated.
6845         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
6846         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
6847         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
6848         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
6849         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
6850         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
6851         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
6852         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
6853         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
6854         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
6855         point instructions defined for V850e2v3 target.
6856         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
6857         Add support for V850E2 targets and CC_REGNUM register is clobbered.
6858         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
6859         support for new targets.
6860         * config/v850/v850-modes.def: New file.
6861         * config/v850/v850.opt(mstrict-align): Remove.
6862         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
6863         mv850e2v3): New command line options for V850.
6864         * config.gcc: Update the newly added files.
6865         * doc/invoke.texi: Update the newly added command line options for
6866         V850 target.
6867
6868 2010-07-26  Richard Guenther  <rguenther@suse.de>
6869
6870         PR tree-optimization/45052
6871         * ipa-pure-const.c (check_stmt): Check volatileness.
6872
6873 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
6874
6875         PR target/44707
6876         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
6877         * config/sparc/sparc.c: Include reload.h.
6878         (legitimize_tls_address): Rename into...
6879         (sparc_legitimize_tls_address): ...this.
6880         (legitimize_pic_address): Rename into...
6881         (sparc_legitimize_pic_address): ...this.
6882         (sparc_expand_move): Adjust to above renaming.
6883         (sparc_tls_referenced_p): Likewise.
6884         (sparc_legitimize_tls_address): Likewise.
6885         (sparc_legitimize_pic_address): Likewise.
6886         (sparc_legitimize_address): Likewise.
6887         (sparc_output_mi_thunk): Likewise.
6888         (sparc_legitimize_reload_address): New global function.  Recognize
6889         (lo_sum (high ...) ...) patterns generated by earlier passes.
6890         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
6891
6892 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
6893
6894         PR target/44484
6895         * config/sparc/predicates.md (memory_reg_operand): Delete.
6896         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
6897         (*sync_compare_and_swap): Encode the address form in the pattern.
6898         (*sync_compare_and_swapdi_v8plus): Likewise.
6899
6900 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
6901
6902         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
6903         Streamline paragraph on compatibility with the system compiler.
6904
6905 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
6906
6907         PR middle-end/45035
6908         * alias.c (true_dependence_1): Fix thinko in merge of old
6909         true_dependence and canon_true_dependence.
6910
6911 2010-07-23  Jan Hubicka  <jh@suse.cz>
6912
6913         * lto-streamer-out.c (write_symbol): Fix visibilities of external
6914         references.
6915
6916 2010-07-23  Le-Chun Wu  <lcwu@google.com>
6917
6918         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
6919         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
6920         and an unnecessary assignment.
6921         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
6922         self-assign warning.
6923         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
6924         unnecessary self-init.
6925
6926 2010-07-23  Richard Guenther  <rguenther@suse.de>
6927
6928         PR lto/43071
6929         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
6930         for -flto and -fwhopr.
6931
6932 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
6933
6934         PR target/41943
6935         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
6936         (stmp-int-hdrs): Prefix/postfix headers by include_next.
6937         * config.gcc (user_headers_inc_next_pre): New.
6938         (user_headers_inc_next_post): Likewise.
6939         (*-w64-mingw*): Use for float.h post-fixing, and for
6940         stddef.h/stdarg.h pre-fixing by include_next.
6941         * configure.ac (user_headers_inc_next_post): New.
6942         (user_headers_inc_next_pre): New.
6943         * configure: Regenerated.
6944
6945 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6946
6947         * configure.ac: Don't disable TLS on Solaris 8/9 by default
6948         Set tga_func for Solaris 2/x86 resp. SPARC.
6949         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
6950         (LIB_THREAD_LDFLAGS_SPEC): Define.
6951         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
6952         * configure: Regenerate.
6953         * config.in: Regenerate.
6954         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
6955         -pthread, -threads, LIB_TLS_SPEC with -pthread.
6956         * doc/install.texi (Specific, *-*-solaris2*): Document use of
6957         alternate thread libraries on Solaris 8.
6958         Document TLS patch requirements.
6959         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
6960         Document tls.
6961
6962         PR target/18788
6963         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
6964         -shared.
6965
6966 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
6967
6968         * tree.h (struct tree_base): Add nameless_flag bitfield.
6969         (TYPE_NAMELESS, DECL_NAMELESS): Define.
6970         * omp-low.c (create_omp_child_function, scan_omp_parallel,
6971         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
6972         DECL_ARTIFICIAL where needed.
6973         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
6974         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
6975         has DECL_NAMELESS set.
6976
6977 2010-07-23  Martin Jambor  <mjambor@suse.cz>
6978
6979         PR tree-optimization/44915
6980         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
6981         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
6982         (analyze_function): Likewise.
6983
6984 2010-07-23  Martin Jambor  <mjambor@suse.cz>
6985
6986         PR tree-optimization/44914
6987         * tree-sra.c (sra_modify_function_body): Return true if CFG was
6988         changed, add purging dead eh edges.
6989         (ipa_sra_modify_function_body): Return true if CFG was changed,
6990         simplify purging dead eh edges.
6991         (modify_function): Return true if CFG was changed.
6992         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
6993         was changed.
6994         (ipa_early_sra): Likewise.
6995
6996 2010-07-23  Jie Zhang  <jie@codesourcery.com>
6997
6998         PR target/44290
6999         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
7000         if "naked".
7001         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
7002         false if ! tree_versionable_function_p.
7003
7004 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
7005
7006         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
7007         * ipa-pure-const.c (special_builtlin_state): Remove
7008         BUILT_IN_ARGS_INFO case.
7009         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
7010         * builtins.c (expand_builtin): Likewise.
7011         (expand_builtin_args_info): Remove.
7012         * doc/tm.texi (__builtin_args_info): Remove.
7013         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
7014         * doc/tm.text.in: Likewise.
7015
7016 2010-07-23  Richard Guenther  <rguenther@suse.de>
7017
7018         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
7019         (lto_symtab_merge_decls_2): Likewise.
7020         * tree-ssa.c (useless_type_conversion_p): Likewise.
7021         * lto-streamer-in.c (input_gimple_stmt): Likewise.
7022         * gimple.c (gtc_visited2, gtc_ob2): Remove.
7023         (struct type_pair_d): Make same_p an array indexed by mode.
7024         Update comment.
7025         (lookup_type_pair): Update initialization.
7026         (struct sccs): Adjust same_p type.
7027         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
7028         Adjust.
7029         (print_gimple_types_stats): Likewise.
7030         * gimple.h (enum gtc_mode): New.
7031         (gimple_types_compatible_p): Adjust prototype.
7032
7033 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
7034
7035         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
7036         again after processing insn.
7037
7038 2010-07-23  Jie Zhang  <jie@codesourcery.com>
7039
7040         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
7041         proper words when !tree_versionable_function_p.
7042
7043 2010-07-23  Richard Guenther  <rguenther@suse.de>
7044
7045         PR tree-optimization/45037
7046         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
7047
7048 2010-07-23  Jie Zhang  <jie@codesourcery.com>
7049
7050         * doc/extend.texi: Remove IP2K from the description of naked attribute.
7051         Add MCORE instead.
7052
7053 2010-07-10  Andi Kleen  <ak@linux.intel.com>
7054
7055         PR lto/44992
7056         * lto-opts.c (lto_write_options): Add NULL file_data argument to
7057         lto_get_section_name.
7058         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
7059         * lto-streamer-out.c (produce_asm): Likewise.
7060         (copy_function): Likewise.
7061         (produce_symtab): Likewise.
7062         (produce_asm_for_decls): Likewise.
7063         * lto-streamer.c (lto_get_section_name): Add file_data argument.
7064         Rewrite to add random postfix to LTO sections.
7065         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
7066         (lto_get_section_name): Add file_data argument to prototype.
7067
7068 2010-07-10  Andi Kleen  <ak@linux.intel.com>
7069
7070         * lto-section-in.c (lto_section_name): Synchronize names
7071         with lto_get_section_name.
7072
7073 2010-07-10  Andi Kleen  <ak@linux.intel.com>
7074
7075         * lto-opts.c (lto_read_file_options): Check for missing section.
7076
7077 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
7078
7079         * ira.c (check_allocation): Correctly handle the case where an allocno
7080         with two objects was allocated to a single reg.
7081
7082 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
7083
7084         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
7085         (is_widening_mult_p): Likewise.
7086         (convert_to_widen): Use them.
7087         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
7088         well as integer ones.
7089
7090 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
7091
7092         * alias.c (true_dependence_1): New function, merged version of
7093         true_dependence and canon_true_dependence.
7094         (true_dependence): Simplify.
7095         (canon_true_dependence): Simplify.
7096
7097 2010-07-22  Richard Henderson  <rth@redhat.com>
7098
7099         PR target/45027
7100         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
7101         of V4SFmode for the SSE saves; increase stack alignment if needed.
7102         (ix86_gimplify_va_arg): Don't increase stack alignment here.
7103
7104 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
7105
7106         PR bootstrap/45028
7107         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
7108         call cprop_find_used_regs again via note_uses.
7109
7110 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
7111
7112         * alias.c (get_alias_set): Fix formatting issues.
7113
7114 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
7115
7116         PR middle-end/44878
7117         * stmt.c (expand_value_return):  Call promote_function_mode with
7118         a for_return argument of 2 when returning by reference.
7119
7120 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
7121
7122         PR debug/45024
7123         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
7124         unit DIE if we can find the scope DIE.
7125
7126 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
7127
7128         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
7129         changed.  Initialize OBJECT_SUBWORD.
7130         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
7131         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
7132         all callers changed.
7133         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
7134         (finish_allocno): Likewise.
7135         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
7136         (remove_low_level_allocnos): Likewise.
7137         (update_bad_spill_attribute): Likewise.
7138         (setup_min_max_allocno_live_range_point): Likewise.
7139         (sort_conflict_id_map): Likewise.
7140         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
7141         (ior_hard_reg_conflicts): New function.
7142         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
7143         (compress_conflict_vecs): Iterate over objects, not allocnos.
7144         (ira_add_live_range_to_object): New function.
7145         (object_range_compare_func): Renamed from allocno_range_compare_func.
7146         All callers changed.
7147         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
7148         subobjects, widen the min/max range of the lowest-order object to
7149         potentially include all other such low-order objects.
7150         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
7151         (check_allocation): Likewise.  Use more fine-grained tests for register
7152         conflicts.
7153         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
7154         allocno subobjects.
7155         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
7156         choices about which bits to set in each set.  Don't use
7157         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
7158         using the multiple sets we computed.
7159         (push_allocno_to_stack): Iterate over allocno subobjects.
7160         (all_conflicting_hard_regs_coalesced): New static function.
7161         (setup_allocno_available_regs_num): Use it.
7162         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
7163         subobjects.
7164         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
7165         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
7166         by ALLOCNO_NUM_OBJECTS.
7167         (calculate_spill_cost): Likewise.
7168         (color_pass): Express if statement in a more normal way.
7169         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
7170         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
7171         (setup_slot_coalesced_allocno_live_ranges): Likewise.
7172         (allocno_reload_assign): Likewise.
7173         (ira_reassign_pseudos): Likewise.
7174         (fast_allocation): Likewise.
7175         * ira-conflicts.c (build_conflict_bit_table): Likewise.
7176         (print_allocno_conflicts): Likewise.
7177         (ira_build_conflicts): Likewise.
7178         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
7179         callers changed.  Test subword 0 of each allocno for conflicts.
7180         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
7181         callers changed.  Iterate over allocno subobjects.
7182         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
7183         * ira-int.h (struct ira_allocno): New member: num_objects.
7184         Rename object to objects and change it into an array.
7185         (ALLOCNO_OBJECT): Add new argument N.
7186         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
7187         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
7188         (ior_hard_reg_conflicts): Declare.
7189         (ira_add_live_range_to_object): Declare.
7190         (ira_allocno_object_iterator): New.
7191         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
7192         (FOR_EACH_ALLOCNO_OBJECT): New macro.
7193         * ira-lives.c (objects_live): Renamed from allocnos_live; all
7194         uses changed.
7195         (allocnos_processed): New sparseset.
7196         (make_object_born): Renamed from make_allocno_born; take an
7197         ira_object_t argument.  All callers changed.
7198         (make_object_dead): Renamed from make_allocno_dead; take an
7199         ira_object_t argument.  All callers changed.
7200         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
7201         All callers changed.
7202         (mark_pseudo_regno_live): Iterate over allocno subobjects.
7203         (mark_pseudo_regno_dead): Likewise.
7204         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
7205         functions.
7206         (mark_ref_live): Detect subword accesses and call
7207         mark_pseudo_regno_subword_live as appropriate.
7208         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
7209         (process_bb_nodes_live): Deal with object-related updates first; set
7210         and test bits in allocnos_processed to avoid computing allocno
7211         statistics more than once.
7212         (create_start_finish_chains): Iterate over objects, not allocnos.
7213         (print_object_live_ranges): New function.
7214         (print_allocno_live_ranges): Use it.
7215         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
7216         and objects_live.
7217
7218 2010-07-22  Richard Guenther  <rguenther@suse.de>
7219
7220         PR lto/42451
7221         * gimple.c (gtc_next_dfs_num): New global.
7222         (struct sccs): Make value a union, add integer same_p member.
7223         (gtc_visit): New function.
7224         (gimple_types_compatible_p_1): New function, split out from ...
7225         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
7226         (iterative_hash_gimple_type): Adjust for sccs change.
7227
7228 2010-07-22  Martin Jambor  <mjambor@suse.cz>
7229
7230         PR tree-optimization/44891
7231         * tree-sra.c: Include gimple-pretty-print.h.
7232         (replace_uses_with_default_def_ssa_name): Renamed to
7233         get_repl_default_def_ssa_name, return the new SSA name instead of
7234         replacing the old one.
7235         (sra_modify_assign): Dump a message when removing a load, if the LHS
7236         is an SSA_NAME, do not do any propagation, just set the RHS to a
7237         default definition SSA NAME, type convert if necessary.
7238         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
7239
7240 2010-07-22  Richard Guenther  <rguenther@suse.de>
7241
7242         PR tree-optimization/45017
7243         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
7244         TYPE_PRECISION of integral types in addition to size.
7245
7246 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
7247
7248         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
7249         when no C library is specified.
7250
7251 2010-07-22  Martin Jambor  <mjambor@suse.cz>
7252
7253         * ipa-prop.h (struct ipa_node_params): Updated comment.
7254         (struct ipa_edge_args): Likewise.
7255         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
7256
7257 2010-07-22  Martin Jambor  <mjambor@suse.cz>
7258
7259         * cgraphunit.c (verify_edge_count_and_frequency): New function.
7260         (verify_cgraph_node): Verify frequencies of indirect edges.
7261         * tree-inline.c (tree_function_versioning): Update frequencies of
7262         indirect edges.
7263
7264 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7265
7266         PR target/43698
7267         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
7268         Set *arm_rev to be predicable.
7269
7270 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
7271
7272         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
7273         (LINK_COMMAND_SPEC_A): New.
7274         (DSYMUTIL): New.
7275         (DSYMUTIL_SPEC): New.
7276         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
7277         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
7278
7279 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
7280
7281         * calls.c (load_register_parameters): Move check for zero
7282         sized items so that only the call to
7283         mem_overlaps_already_clobbered_arg_p () is protected.
7284
7285 2010-07-22  Jan Hubicka  <jh@suse.cz>
7286
7287         * ipa-pure-const.c (varying_state): Break out from ...
7288         (get_function_state): ... here; always return varying_state
7289         when state would be NULL otherwise.
7290         (remove_node_data): Do not free varying state.
7291
7292 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
7293
7294         PR bootstrap/44970
7295         PR middle-end/45009
7296         * postreload.c: Include "target.h".
7297         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
7298         into account.
7299         (fixup_debug_insns): Don't copy the rtx.
7300         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
7301         Don't copy when replacing.  Call fixup_debug_insns in the case where
7302         we merged one add with another.
7303         (reload_combine_recognize_pattern): Fail if there aren't any uses.
7304         Try harder to determine whether we're picking a valid index register.
7305         Don't set store_ruid for an insn we're going to scan in the
7306         next iteration.
7307         (reload_combine): Remove unused code.
7308         (reload_combine_note_use): When updating use information for
7309         an old insn, ignore a use that occurs after store_ruid.
7310         * Makefile.in (postreload.o): Update dependencies.
7311
7312         * function.c (record_hard_reg_sets): Restrict the previous change
7313         to cases where the incoming nominal mode is the same as the
7314         incoming promoted mode and everything happens in MODE_INT.
7315
7316 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
7317
7318         PR debug/45015
7319         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
7320         ASM_OPERANDS_OUTPUT_IDX.
7321         (adjust_insn): For inline asm with multiple sets ensure first
7322         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
7323         the insn.
7324
7325 2010-07-21  Richard Henderson  <rth@redhat.com>
7326
7327         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
7328         comparison for avoiding xmm register saves.  Emit the xmm register
7329         saves explicitly.
7330         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
7331         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
7332         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
7333         Remove patterns and the associated splitters.
7334
7335 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
7336
7337         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
7338         and imagine parts of a complex, so that they can have the same
7339         base and fall into the same group.
7340
7341 2010-07-21  Richard Guenther  <rguenther@suse.de>
7342
7343         PR lto/45018
7344         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
7345         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
7346         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
7347
7348 2010-07-21  Martin Jambor  <mjambor@suse.cz>
7349
7350         PR tree-optimization/44900
7351         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
7352         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
7353
7354 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
7355
7356         PR middle-end/44738
7357         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
7358
7359 2010-07-21  Richard Guenther  <rguenther@suse.de>
7360
7361         PR middle-end/45013
7362         * tree-ssa.c (useless_type_conversion_p): Dispatch to
7363         gimple_types_compatible_p only when in lto.
7364         * gimple.c (gimple_types_compatible_p): Use canonical types
7365         to speed up comparison.
7366
7367 2010-07-21  Richard Guenther  <rguenther@suse.de>
7368
7369         * tree-flow.h (referenced_var): Move define ...
7370         * tree-flow-inline.h (referenced_var): ... here as an inline
7371         function.  Assert here ...
7372         * tree-dfa.c (referenced_var_lookup): ... instead of here.
7373         * tree-ssa.c (maybe_optimize_var): Check if the variable
7374         is in referenced vars.
7375         (execute_update_addresses_taken): Remove old broken check.
7376         * gimple-pretty-print.c (pp_points_to_solution): Use
7377         referenced_var_lookup.
7378         * tree-into-ssa.c (dump_decl_set): Likewise.
7379
7380 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
7381
7382         PR debug/45003
7383         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
7384         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
7385         ZERO_EXTEND here.
7386
7387 2010-07-20  Richard Henderson  <rth@redhat.com>
7388
7389         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
7390
7391 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
7392
7393         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
7394         computing the sum of the stack pointer and a large constant.
7395         * config/arm/constraints.md (M): Remove superfluous parentheses.
7396         (Pc): New constraint.
7397
7398 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
7399
7400         PR debug/45006
7401         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
7402         operand's type if exp is tcc_unary class tree.
7403
7404 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
7405
7406         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
7407         Reverse sense of if_then_else condition.
7408
7409 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
7410
7411         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
7412         * config/rs6000/rs6000.c (rs6000_override_options): Set
7413         rs6000_block_move_inline_limit appropriately.
7414         (expand_block_move): Use rs6000_block_move_inline_limit.
7415         * doc/invoke.texi (mblock-move-inline-limit): Document.
7416
7417 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
7418
7419         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
7420         FROM and TO.  All callers changed.  Don't look for tracked uses,
7421         just scan the RTL for DEBUG_INSNs and substitute.
7422         (reload_combine_recognize_pattern): Call fixup_debug_insns.
7423         (reload_combine): Ignore DEBUG_INSNs.
7424
7425 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
7426
7427         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
7428         depth to 8 from 5.
7429
7430         PR debug/45003
7431         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
7432         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
7433         instead of the result's type.
7434
7435 2010-07-20  Richard Guenther  <rguenther@suse.de>
7436
7437         PR tree-optimization/44977
7438         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
7439         SSA form.
7440
7441 2010-07-20  Richard Guenther  <rguenther@suse.de>
7442
7443         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
7444         (lto_symtab_merge_decls_2): Likewise.
7445         * gimple.h (gimple_types_compatible_p): Declare.
7446         * gimple.c (gimple_queue_type_fixup): Remove.
7447         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
7448         (gimple_compatible_complete_and_incomplete_type_p): New function.
7449         (gimple_types_compatible_p): Adjust.
7450         (gimple_register_type): Remove type fixup code.
7451         (print_gimple_types_stats): Adjust.
7452         (free_gimple_type_tables): Likewise.
7453         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
7454         * tree-ssa.c (useless_type_conversion_p): Likewise.
7455
7456 2010-07-20  Richard Guenther  <rguenther@suse.de>
7457
7458         PR middle-end/44971
7459         PR middle-end/44988
7460         * tree-ssa.c (maybe_optimize_var): New function split out from ...
7461         (execute_update_addresses_taken): ... here.
7462         (non_rewritable_mem_ref_base): Likewise.
7463         (execute_update_addresses_taken): Do not iterate over all referenced
7464         vars but just all local decls and parms.
7465         Properly check call and asm arguments and rewrite call arguments.
7466
7467 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
7468
7469         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
7470         to top level.
7471         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
7472         definitions ...
7473         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
7474         New macro.
7475         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
7476
7477 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
7478
7479         * gengtype.c (start_root_entry): New function, split out from
7480         write_root.  Check whether V is null and raise an error if so.
7481         (write_field_root): Check for V being null.  Don't raise an error here;
7482         set V to null instead.
7483         (write_root): Update comment above function.  Use start_root_entry.
7484
7485 2010-07-19  Xinliang David Li  <davidxl@google.com>
7486
7487         PR testsuite/44932
7488         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
7489         def edges.
7490         (find_uninit_use): Add dump.
7491         (is_use_properly_guarded): Ditto.
7492         (warn_uninitialized_phi): Ditto.
7493         (execute_late_warn_uninitialized): Ditto.
7494
7495 2010-07-19  Richard Guenther  <rguenther@suse.de>
7496
7497         PR middle-end/44941
7498         * expr.c (emit_block_move_hints): Move zero size check first.
7499         Move asserts to more useful places.
7500         * calls.c (load_register_parameters): Check for zero size.
7501
7502 2010-07-19  Richard Henderson  <rth@redhat.com>
7503
7504         * tree-optimize.c (execute_all_early_local_passes): New.  Change
7505         cgraph_state here ...
7506         (execute_early_local_optimizations): ... not here.  Remove.
7507         (pass_early_local_passes, pass_all_early_optimizations): Update.
7508
7509 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
7510
7511         * postreload.c (reload_combine_closest_single_use): Ignore the
7512         number of uses for DEBUG_INSNs.
7513         (fixup_debug_insns): New static function.
7514         (reload_combine_recognize_const_pattern): Use it.  Don't let the
7515         main loop be affected by DEBUG_INSNs.
7516         Really disallow moving adds past a jump insn.
7517         (reload_combine_recognize_pattern): Don't update use_ruid here.
7518         (reload_combine_note_use): Do it here.
7519         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
7520
7521 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
7522
7523         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
7524         of a loop.
7525         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
7526
7527 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
7528
7529         * config/i386/darwin.h: Define darwin_emit_branch_islands.
7530         (TARGET_MACHO_BRANCH_ISLANDS): New.
7531         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
7532         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
7533         default value.
7534         * config/i386/i386.c (output_pic_addr_const): Do not emit
7535         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
7536         (x86_output_mi_thunk): Adjust symbol creation.
7537         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
7538         Remove out of date comment.
7539         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
7540         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
7541         (DARWIN_GENERATE_ISLANDS): Ditto.
7542         (output_call):  Do not emit branch islands unless
7543         darwin_emit_branch_islands is set.
7544         * config/darwin.c: Declare darwin_emit_branch_islands.
7545         (machopic_indirect_data_reference): Do not emit unless
7546         darwin_emit_branch_islands is set.
7547         (darwin_override_options): Set darwin_emit_branch_islands
7548         where it is needed.
7549         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
7550
7551 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7552
7553         * doc/sourcebuild.texi (Effective-Target Keywords): Document
7554         sse_runtime, sse2_runtime.
7555
7556 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
7557
7558         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
7559         low half of a single-register SCmode return value before ORing
7560         it with the high half.
7561         * config/mips/mips16.S (MERGE_GPRf): Likewise.
7562
7563 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7564
7565         PR target/44805
7566         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
7567         on all targets.
7568
7569 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
7570
7571         PR target/42235
7572         * postreload.c (reload_cse_move2add): Return bool, true if anything.
7573         changed.  All callers changed.
7574         (move2add_use_add2_insn): Likewise.
7575         (move2add_use_add3_insn): Likewise.
7576         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
7577         reload_combine.
7578         (RELOAD_COMBINE_MAX_USES): Bump to 16.
7579         (last_jump_ruid): New static variable.
7580         (struct reg_use): New members CONTAINING_MEM and RUID.
7581         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
7582         (reload_combine_split_one_ruid, reload_combine_split_ruids,
7583         reload_combine_purge_insn_uses, reload_combine_closest_single_use
7584         reload_combine_purge_reg_uses_after_ruid,
7585         reload_combine_recognize_const_pattern): New static functions.
7586         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
7587         is true for our reg and that we have available index regs.
7588         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
7589         callers changed.  Use them to initialize fields in struct reg_use.
7590         (reload_combine): Initialize last_jump_ruid.  Be careful when to
7591         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
7592         Call reload_combine_recognize_const_pattern.
7593         (reload_combine_note_store): Update REAL_STORE_RUID field.
7594
7595 2010-07-16  Jason Merrill  <jason@redhat.com>
7596
7597         * Makefile.in (opts-common.o): Depend on options.h.
7598
7599 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
7600
7601         * tree.c (build_common_builtin_nodes): Use build_function_type_list
7602         instead of build_function_type.
7603         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
7604         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
7605
7606 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
7607
7608         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
7609         do all the work.
7610         (rs6000_emit_int_cmove): Use function pointers for insn generation.
7611         Don't force values into registers unnecessarily.
7612         (output_isel): Assert that we're not given conditions we can't handle.
7613         Delete corresponding code.
7614         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
7615         scc_comparison_operator constraint.  Permit 0 for the consequent
7616         operand.  Permit any GPR for the alternative operand.
7617         (isel_unsigned_<mode>): Likewise.
7618
7619 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
7620
7621         PR target/44942
7622         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
7623         argument to const_tree.
7624         * config/i386/i386.c (function_arg_advance): If padding needs to be
7625         inserted before argument, increment cum->words by number of padding
7626         words as well.
7627         (contains_aligned_value_p): Change argument to const_tree.
7628         (ix86_function_arg_boundary): Change second argument to const_tree.
7629
7630 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
7631
7632         PR target/42235
7633         * function.c (record_hard_reg_sets): New static function.
7634         (assign_parm_setup_reg): If an optab for extending exists and the
7635         generated code clobbbers no hard regs, emit the insn directly and
7636         create a REG_EQUIV note.
7637
7638 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
7639
7640         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
7641         TREE_CHAIN.
7642         * c-typeck.c (push_init_level): Likewise.
7643         (process_init_element): Likewise.
7644
7645 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
7646
7647         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
7648         (integer_three_node): Add.
7649         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
7650         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
7651         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
7652         of call build_int_cst.
7653         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
7654         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
7655         (find_interesting_uses_address): Ditto.
7656         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
7657         * tree-eh.c (lower_eh_constructs_2): Ditto.
7658         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
7659         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
7660         * expmed.c (expand_divmod): Ditto.
7661         * tree-mudflap.c (mx_register_decls): Ditto.
7662         * varasm.c (array_size_for_constructor): Ditto.
7663         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
7664         * c-parser.c (c_parser_postfix_expression): Ditto.
7665
7666 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
7667
7668         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
7669         New static variables.
7670         (reload_combine_recognize_pattern): New static function, broken out
7671         of reload_combine.
7672         (reload_combine): Use it.  Only initialize first_index_reg and
7673         last_index_reg once.
7674
7675 2010-07-15  Richard Henderson  <rth@redhat.com>
7676
7677         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
7678         when done.
7679
7680 2010-07-15  Jan Hubicka  <jh@suse.cz>
7681
7682         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
7683         comdats for broken gold.
7684         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
7685
7686 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
7687
7688         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
7689
7690 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
7691
7692         * tree.h (DECL_CHAIN): Define.
7693         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
7694         * c-decl.c: Likewise.
7695         * c-parser.c: Likewise.
7696         * c-typeck.c: Likewise.
7697         * cfgexpand.c: Likewise.
7698         * cgraph.c: Likewise.
7699         * cgraphunit.c: Likewise.
7700         * combine.c: Likewise.
7701         * config/alpha/alpha.c: Likewise.
7702         * config/arm/arm.c: Likewise.
7703         * config/frv/frv.c: Likewise.
7704         * config/i386/i386.c: Likewise.
7705         * config/i386/winnt-cxx.c: Likewise.
7706         * config/ia64/ia64.c: Likewise.
7707         * config/iq2000/iq2000.c: Likewise.
7708         * config/mep/mep.c: Likewise.
7709         * config/mips/mips.c: Likewise.
7710         * config/pa/som.h: Likewise.
7711         * config/rs6000/rs6000.c: Likewise.
7712         * config/s390/s390.c: Likewise.
7713         * config/sh/sh.c: Likewise.
7714         * config/sh/symbian-cxx.c: Likewise.
7715         * config/sparc/sparc.c: Likewise.
7716         * config/spu/spu.c: Likewise.
7717         * config/stormy16/stormy16.c: Likewise.
7718         * config/vxworks.c: Likewise.
7719         * config/xtensa/xtensa.c: Likewise.
7720         * coverage.c: Likewise.
7721         * dbxout.c: Likewise.
7722         * dwarf2out.c: Likewise.
7723         * emit-rtl.c: Likewise.
7724         * expr.c: Likewise.
7725         * function.c: Likewise.
7726         * gimple-low.c: Likewise.
7727         * gimple-pretty-print.c: Likewise.
7728         * gimplify.c: Likewise.
7729         * integrate.c: Likewise.
7730         * ipa-inline.c: Likewise.
7731         * ipa-prop.c: Likewise.
7732         * ipa-split.c: Likewise.
7733         * ipa-struct-reorg.c: Likewise.
7734         * ipa-type-escape.c: Likewise.
7735         * langhooks.c: Likewise.
7736         * lto-cgraph.c: Likewise.
7737         * omp-low.c: Likewise.
7738         * stor-layout.c: Likewise.
7739         * tree-cfg.c: Likewise.
7740         * tree-complex.c: Likewise.
7741         * tree-dfa.c: Likewise.
7742         * tree-dump.c: Likewise.
7743         * tree-inline.c: Likewise.
7744         * tree-mudflap.c: Likewise.
7745         * tree-nested.c: Likewise.
7746         * tree-object-size.c: Likewise.
7747         * tree-pretty-print.c: Likewise.
7748         * tree-sra.c: Likewise.
7749         * tree-ssa-live.c: Likewise.
7750         * tree-ssa-loop-niter.c: Likewise.
7751         * tree-ssa-math-opts.c: Likewise.
7752         * tree-ssa-reassoc.c: Likewise.
7753         * tree-ssa-sccvn.c: Likewise.
7754         * tree-ssa-structalias.c: Likewise.
7755         * tree-tailcall.c: Likewise.
7756         * tree-vrp.c: Likewise.
7757         * tree.c: Likewise.
7758         * var-tracking.c: Likewise.
7759         * varasm.c: Likewise.
7760
7761 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7762
7763         PR target/44877
7764         * config/spu/spu.c (spu_expand_builtin_1): Allow references
7765         (as well as pointers) as argument to mask_for_load builtins.
7766
7767 2010-07-15  Richard Guenther  <rguenther@suse.de>
7768
7769         PR tree-optimization/44946
7770         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
7771         with accessing only padding properly.
7772
7773 2010-07-15  Jan Hubicka  <jh@suse.cz>
7774
7775         * ipa.c (function_and_variable_visibility): Variables marked as used
7776         should not be localized.
7777
7778 2010-07-15  Jan Hubicka  <jh@suse.cz>
7779
7780         * cgraph.c: Include lto-streamer.h
7781         (change_decl_assembler_name): Work when assembler name hash is at place.
7782         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
7783         be sure to rename it to avoid name clash.
7784         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
7785         Localize hidden symbols only when locally defined.
7786
7787 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
7788
7789         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
7790
7791 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
7792             Kevin F. Quinn  <kevquinn@gentoo.org>
7793
7794         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
7795         * common.opt: Add -Wtrampolines.
7796         * doc/invoke.texi: Add -Wtrampolines.
7797
7798 2010-07-15  Jie Zhang  <jie@codesourcery.com>
7799
7800         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
7801         cortex_a8_issue_ls.
7802
7803 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
7804
7805         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
7806         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
7807
7808 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7809
7810         * config/spu/spu.c (reg_names): Remove prototype.
7811         (call_used_regs): Likewise.
7812
7813 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
7814
7815         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
7816         "unused" with attribute "used".
7817         (__JCR_END__): Likewise.
7818         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
7819         "used" attribute.
7820         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
7821
7822 2010-07-14  Richard Guenther  <rguenther@suse.de>
7823
7824         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
7825         (maybe_fixup_decls): Likewise.
7826         (input_gimple_stmt): Do not fixup anything.
7827         * lto-streamer-out.c (output_gimple_stmt): Make sure all
7828         non-automatic variable uses are wrapped inside a MEM_REF.
7829
7830 2010-07-14  Richard Henderson  <rth@redhat.com>
7831
7832         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
7833         for functions.
7834         * varasm.c (assemble_variable): Remove early exit for functions;
7835         assert that we're given a variable.
7836
7837 2010-07-14  Jie Zhang  <jie@codesourcery.com>
7838
7839         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
7840         cortex_a8_default when neon_type is not none.
7841
7842 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
7843
7844         * lower-subreg.c (subreg_context): New static bitmap.
7845         (decompose_multiword_subregs): Allocate and free it.
7846         (find_decomposable_subregs): Set a bit in it for a register that
7847         occurs in a subreg that changes mode but not size.
7848         (can_decompose_p): Test it instead of non_decomposable_context.
7849
7850 2010-07-14  Richard Guenther  <rguenther@suse.de>
7851
7852         PR tree-optimization/44824
7853         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
7854         is_gimple_mem_ref_addr.
7855         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
7856         non-decl_address_invariant_p addresses.
7857
7858 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
7859
7860         * reload.c (find_reloads): Revert code to penalize small register
7861         classes that was brought in with the IRA merge.
7862
7863 2010-07-14  Richard Guenther  <rguenther@suse.de>
7864
7865         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
7866         as base of ARRAY_REFs.
7867
7868 2010-07-14  Richard Guenther  <rguenther@suse.de>
7869
7870         PR middle-end/44930
7871         * tree-pretty-print.c (do_niy): Do not print a newline.
7872
7873 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
7874
7875         * ira-int.h (struct ira_object): New.
7876         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
7877         (struct ira_allocno): Remove members min, max,
7878         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
7879         conflict_allocnos_num and conflict_vec_p.  Add new member object.
7880         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
7881         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
7882         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
7883         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
7884         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
7885         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
7886         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
7887         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
7888         an ira_object_t rather than ira_allocno_t.  All uses changed.
7889         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
7890         contains a vector of ira_object_t; all uses changed.
7891         (ira_objects_num): Declare variable.
7892         (ira_create_allocno_object): Declare function.
7893         (ira_conflict_vector_profitable_p): Adjust prototype.
7894         (ira_allocate_conflict_vec): Renamed from
7895         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
7896         (ira_allocate_object_conflicts): Renamed from
7897         ira_allocate_allocno_conflicts; first arg now ira_object_t.
7898         (struct ira_object_iterator): New.
7899         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
7900         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
7901         to conflict_vec_p.  All uses changed.
7902         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
7903         Changed to take into account that conflicts are now tracked for
7904         objects.
7905         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
7906         Args changed to accept ira_object_t.  All uses changed.
7907         (allocnos_conflict_p): New static function.
7908         (collected_conflict_objects): Renamed from collected_allocno_objects;
7909         now a vector of ira_object_t.  All uses changed.
7910         (build_conflict_bit_table): Changed to take into account that
7911         conflicts are now tracked for objects.
7912         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
7913         (print_allocno_conflicts, ira_build_conflicts): Likewise.
7914         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
7915         setup_allocno_left_conflicts_size, allocno_reload_assign,
7916         fast_allocation): Likewise.
7917         * ira-lives.c (make_hard_regno_born, make_allocno_born)
7918         process_single_reg_class_operands, process_bb_node_lives): Likewise.
7919         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
7920         Likewise.
7921         * ira-build.c (ira_objects_num): New variable.
7922         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
7923         contains a vector of ira_object_t; all uses changed.
7924         (ira_object_id_map_vec): Corresponding change.
7925         (object_pool): New static variable.
7926         (initiate_allocnos): Initialize it.
7927         (finish_allocnos): Free it.
7928         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
7929         New functions.
7930         (ira_create_allocno): Don't set members that were removed.
7931         (ira_set_allocno_cover_class): Don't change conflict hard regs.
7932         (merge_hard_reg_conflicts): Changed to take into account that
7933         conflicts are now tracked for objects.
7934         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
7935         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
7936         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
7937         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
7938         setup_min_max_conflict_allocno_ids, ):  Likewise.
7939         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
7940         to ira_object_t; all callers changed.
7941         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
7942         to ira_object_t, all callers changed.
7943         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
7944         to ira_object_t, all callers changed.
7945         (conflict_check, curr_conflict_check_tick): Renamed from
7946         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
7947         changed.
7948         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
7949         arg changed to ira_object_t, all callers changed.
7950         (create_cap_allocno): Call ira_create_allocno_object.
7951         (finish_allocno): Free the corresponding object.
7952         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
7953         callers changed.  Adjusted for dealing with objects.
7954         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
7955         dealing with objects.
7956         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
7957
7958         * ira-int.h (struct live_range): Rename allocno member to object
7959         and change type to ira_object_t.
7960         (struct ira_object): New member live_ranges.
7961         (struct ira_allocno): Remove member live_ranges.
7962         (ALLOCNO_LIVE_RANGES): Remove.
7963         (OBJECT_LIVE_RANGES): New macro.
7964         (ira_create_live_range, ira_copy_live_range_list,
7965         ira_merge_live_range_list, ira_live_ranges_intersect_p,
7966         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
7967         * ira-build.c (ira_create_object): Initialize live ranges here.
7968         (ira_create_allocno): Not here.
7969         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
7970         changed to ira_object_t, all callers changed.
7971         (copy_live_range): Rename from copy_allocno_live_range, all callers
7972         changed.
7973         (ira_copy_live_range_list): Rename from
7974         ira_copy_allocno_live_range_list, all callers changed.
7975         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
7976         all callers changed.
7977         (ira_live_ranges_intersect_p): Rename from
7978         ira_allocno_live_ranges_intersect_p, all callers changed.
7979         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
7980         callers changed.
7981         (ira_finish_live_range_list): Rename from
7982         ira_finish_allocno_live_range_list, all callers changed.
7983         (change_object_in_range_list): Rename from change_allocno_in_range_list,
7984         last arg changed to ira_object_t, all callers changed.
7985         (finish_allocno): Changed to expect live ranges in the allocno's object.
7986         (move_allocno_live_ranges, copy_allocno_live_ranges,
7987         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
7988         ira_flattening, ira_build): Likewise.
7989         * ira-color.c (allocnos_have_intersected_live_ranges_p,
7990         slot_coalesced_allocno_live_ranges_intersect,
7991         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
7992         * ira-conflicts.c (build_conflict_bit_table): Likewise.
7993         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
7994         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
7995         make_allocno_dead, create_start_finish_chains,
7996         remove_some_program_points_and_update_live_ranges,
7997         ira_debug_live_range_list): Likewise.
7998
7999         * ira-int.h (ira_object_conflict_iterator): Rename from
8000         ira_allocno_conflict_iterator.
8001         (ira_object_conflict_iter_init): Rename from
8002         ira_allocno_conflict_iter_init, second arg changed to
8003         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
8004         FOR_EACH_ALLOCNO_CONFLICT.
8005         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
8006         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
8007         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
8008         * ira-conflicts.c (print_allocno_conflicts): Likewise.
8009
8010 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
8011
8012         PR other/44874
8013         * tree-dump.c (dump_options): Add enumerate_locals entry.
8014         Add TDF_NOID exclusion to all entry.
8015         * tree-dump.h (dump_enumerated_decls): Declare.
8016         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
8017         Don't display type uid.
8018         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
8019         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
8020         * tree-ssa-live.c: Include gimple.h.
8021         (numbered_tree_d): New struct.
8022         (numbered_tree): New typedef.
8023         (DEF_VEC_O (numbered_tree): New.
8024         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
8025         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
8026         (dump_enumerated_decls): Likewise.
8027         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
8028         debug info and flag_dump_final_insns, call dump_enumerated_decls.
8029         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
8030         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
8031
8032 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
8033
8034         * expmed.h (MAX_BITS_PER_WORD): Move to...
8035         * defaults.h (MAX_BITS_PER_WORD): ...here.
8036
8037 2010-07-13  DJ Delorie  <dj@redhat.com>
8038
8039         * config/h8300/h8300.c (h8300_init_once): Default to
8040         -fstrict_volatile_bitfields.
8041
8042         * config/sh/sh.c (sh_override_options): Default to
8043         -fstrict_volatile_bitfields.
8044
8045         * config/rx/rx.c (rx_option_override): New.
8046
8047         * config/m32c/m32c.c (m32c_override_options): Default to
8048         -fstrict_volatile_bitfields.
8049
8050 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
8051
8052         * tree.h (build_function_call_expr): Delete.
8053         (build_call_expr_loc_array): New function.
8054         (build_call_expr_loc_vec): New function.
8055         * tree-flow.h (struct omp_region): Change type of ws_args field
8056         to a VEC.
8057         * builtins.c (build_function_call_expr): Delete.
8058         (build_call_expr_loc_array): New function.
8059         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
8060         (build_call_expr): Likewise.
8061         (build_call_expr_loc_vec): New function.
8062         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
8063         build_function_call_expr.
8064         * expr.c (emutls_var_address): Likewise.
8065         * varasm.c (emutls_common_1): Likewise.
8066         * omp-low.c (expand_omp_atomic_mutex): Likewise.
8067         (expand_omp_taskreg): Adjust for new type of region->ws_args.
8068         (get_ws_args_for): Return a VEC instead of a tree.
8069         (expand_parallel_call): Call build_call_expr_loc_vec instead of
8070         build_function_call_expr.
8071         * stor-layout.c (self_referential_size): Likewise.
8072
8073 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
8074
8075         PR testsuite/44701
8076         * recog.c (constrain_operands): Allow side-effects in memory
8077         operands if either < or > constraint is used, rather than if
8078         both < and > is used.
8079
8080 2010-07-13  Richard Guenther  <rguenther@suse.de>
8081
8082         PR middle-end/44911
8083         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
8084         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
8085         without name.
8086
8087 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
8088
8089         PR target/44761
8090         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
8091         to variable emited.
8092         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
8093         * config/sh/sh.md (symGOT_load): Likewise.
8094         (symDTPOFF2reg): Likewise.
8095         (symTPOFF2reg): Likewise.
8096
8097 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8098
8099         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
8100         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
8101
8102 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8103
8104         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
8105         explanation.
8106         Find ucontext_t * on Solaris 11.
8107         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
8108         Handle new Solaris 11 __sighndlr patterns.
8109
8110 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
8111
8112         PR debug/44901
8113         * vec.h (VEC_block_remove): Fix comment.
8114         * tree-ssa-live.c (remove_unused_locals): Don't use
8115         VEC_unordered_remove on local_decls, instead replace a single
8116         vector element in each iteration if at least one element had
8117         to be removed and VEC_truncate at the end.
8118         * omp-low.c (expand_omp_taskreg): Likewise.
8119
8120 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8121
8122         * c-decl.c (finish_function): Fix typo in comment.
8123
8124 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
8125
8126         PR bootstrap/44921
8127         * postreload.c (move2add_use_add3_insn): Silence gcc warning
8128         on min_regno.
8129
8130 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
8131
8132         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
8133         (simplify_stmt_using_ranges): Use it.
8134
8135 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8136
8137         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
8138         member.  Do not mark as GTY(()).
8139         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
8140         (spu_builtin_decls): New static variable.
8141         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
8142         (spu_init_builtins): Likewise.
8143         (spu_builtin_mul_widen_even): Likewise.
8144         (spu_builtin_mul_widen_odd): Likewise.
8145         (spu_builtin_mask_for_load): Likewise.
8146         (spu_builtin_vec_perm): Likewise.
8147         * config/spu/spu-c.c: Include "target.h".
8148         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
8149         of using spu_builtins[].fndecl.
8150
8151 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8152
8153         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
8154         imply -minterlink-mips16.
8155
8156 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8157
8158         * config/mips/mips.h (mips16_globals): Declare.
8159         (SWITCHABLE_TARGET): Define.
8160         * config/mips/mips.c: Include target-globals.h.
8161         (mips16_globals): New variable.
8162         (mips_set_mips16_mode): Use save_target_globals and
8163         restore_target_globals instead of target_reinit.
8164
8165 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8166
8167         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
8168         to say that the function can be called more than once.
8169         * target-globals.c (save_target_globals): Call init_reg_sets.
8170
8171 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8172
8173         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
8174         * bb-reorder.h: New file.
8175         * bb-reorder.c (default_target_bb_reorder): New variable.
8176         (this_target_bb_reorder): New conditional variable.
8177         (uncond_jump_length): Redefine as a macro.
8178         * target-globals.h (this_target_bb_reorder): Declare.
8179         (target_globals): Add a bb_reorder field.
8180         (restore_target_globals): Copy the bb_reorder field to
8181         this_target_bb-reorder.
8182         * target-globals.c: Include bb-reorder.h.
8183         (default_target_globals): Initialize the bb_reorder field.
8184         (save_target_globals): Likewise.
8185
8186 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8187
8188         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
8189         * gcse.h: New file.
8190         * gcse.c: Include gcse.h.
8191         (default_target_gcse): New variable.
8192         (this_target_gcse): New conditional variable.
8193         (can_copy): Redefine as a macro.
8194         (can_copy_init_p): New macro.
8195         (can_copy_p): Remove can_copy_init_p.
8196         * target-globals.h (this_target_gcse): Declare.
8197         (target_globals): Add a gcse field.
8198         (restore_target_globals): Copy the gcse field to this_target_gcse.
8199         * target-globals.c: Include gcse.h.
8200         (default_target_globals): Initialize the gcse field.
8201         (save_target_globals): Likewise.
8202
8203 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8204
8205         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
8206         and x_ira_prohibited_mode_move_regs_initialized_p.
8207         (ira_prohibited_mode_move_regs): Redefine as a macro.
8208         * ira.c (ira_prohibited_mode_move_regs): Delete.
8209         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
8210
8211 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8212
8213         * reload.h (target_reload): Add x_cached_reg_save_code and
8214         x_cached_reg_restore_code.
8215         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
8216         Redefine as macros.
8217
8218 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8219
8220         * Makefile.in (target-globals.o): Depend on builtins.h.
8221         * builtins.h: New file.
8222         * builtins.c: Include builtins.h.
8223         (default_target_builtins): New variable.
8224         (this_target_builtins): New conditional variable.
8225         (apply_args_mode, apply_result_mode): Redefine as macros.
8226         * target-globals.h (this_target_builtins): Declare.
8227         (target_globals): Add a builtins field.
8228         (restore_target_globals): Copy the builtins field to
8229         this_target_builtins.
8230         * target-globals.c: Include builtins.h.
8231         (default_target_globals): Initialize the builtins field.
8232         (save_target_globals): Likewise.
8233
8234 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8235
8236         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
8237         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
8238         from expmed.c.
8239         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
8240         (alg_hash, alg_hash_used_p): New macros.
8241         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
8242         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
8243         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
8244
8245 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8246
8247         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
8248         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
8249         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
8250         (this_op_costs, costs_classes): Redefine as macros.
8251         (record_reg_classes): Don't take op_costs as a parameter.
8252         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
8253         (scan_one_insn): Update call to record_operand_costs.
8254
8255 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8256
8257         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
8258         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
8259         (target_ira_int): New structure.
8260         (default_target_ira_int): Declare.
8261         (this_target_ira_int): Declare as a variable or define as a macro.
8262         (ira_reg_mode_hard_regset, ira_register_move_cost)
8263         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
8264         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
8265         (prohibited_class_mode_regs, ira_important_classes_num)
8266         (ira_important_classes, ira_reg_class_intersect)
8267         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
8268         (ira_reg_class_union): Redefine as macros.
8269         * ira.h (target_ira): New structure.
8270         (default_target_ira): Declare.
8271         (this_target_ira): Declare as a variable or define as a macro.
8272         (ira_available_class_regs, ira_hard_regno_cover_class)
8273         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
8274         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
8275         (ira_class_hard_regs_num): Redefine as macros.
8276         * ira.c (default_target_ira, default_target_ira_int): New variables.
8277         (this_target_ira, this_target_ira_int): New conditional variables.
8278         (ira_reg_mode_hard_regset, ira_memory_move_cost)
8279         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
8280         (ira_class_subset_p): Delete.
8281         (no_unit_alloc_regs): Redefine as a macro.
8282         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
8283         (ira_class_hard_regs_num, ira_class_hard_reg_index)
8284         (ira_available_class_regs): Delete.
8285         (alloc_reg_class_subclasses): Redefine as a macro.
8286         (ira_reg_class_cover_size, ira_reg_class_cover)
8287         (ira_important_classes_num, ira_important_classes)
8288         (ira_important_class_nums, ira_class_translate): Delete.
8289         (cover_class_order): Document the variable's lifetime.
8290         (reorder_important_classes): Don't set ira_important_class_nums.
8291         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
8292         (ira_reg_class_super_classes, ira_reg_class_union)
8293         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
8294         Delete.
8295         (setup_reg_class_nregs): Don't set ira_max_regs.
8296         (prohibited_class_mode_regs): Delete.
8297         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
8298         (target_globals): Add ira and ira_int fields.
8299         (restore_target_globals): Copy the ira field to this_target_ira
8300         and the ira_int field to this_target_ira_int.
8301         * target-globals.c: Include ira-int.h.
8302         (default_target_globals): Initialize the ira and ira_int fields.
8303         (save_target_globals): Likewise.
8304
8305 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8306
8307         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
8308         * cfgloop.h (target_cfgloop): New structure.
8309         (default_target_cfgloop): Declare.
8310         (this_target_cfgloop): Declare as a variable or define as a macro.
8311         (target_avail_regs, target_clobbered_regs, target_res_regs)
8312         (target_reg_cost, target_spill_cost): Redefine as macros.
8313         * cfgloopanal.c (default_target_cfgloop): New variable.
8314         (this_target_cfgloop): New conditional variable.
8315         (target_avail_regs, target_clobbered_regs, target_res_regs)
8316         (target_reg_cost, target_spill_cost): Delete.
8317         * target-globals.h (this_target_cfgloop): Declare.
8318         (target_globals): Add a cfgloop field.
8319         (restore_target_globals): Copy the cfgloop field to
8320         this_target_cfgloop.
8321         * target-globals.c: Include cfgloop.h.
8322         (default_target_globals): Initialize the cfgloop field.
8323         (save_target_globals): Likewise.
8324
8325 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8326
8327         * regs.h (target_regs): Add x_direct_load, x_direct_store and
8328         x_float_extend_from_mem.
8329         (direct_load, direct_store, float_extend_from_mem): New macros.
8330         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
8331
8332 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8333
8334         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
8335         (target-globals.o): Depend on $(LIBFUNCS_H).
8336         * libfuncs.h: Include hashtab.h.
8337         (libfunc_entry): Moved from optabs.c.
8338         (target_libfuncs): New structure.
8339         (default_target_libfuncs): Declare.
8340         (this_target_libfuncs): Declare as a variable or define as a macro.
8341         (libfunc_table): Redefine as a macro.
8342         * optabs.c (default_target_libfuncs): New variable.
8343         (this_target_libfuncs): New conditional variable.
8344         (libfunc_table): Delete.
8345         (libfunc_entry): Moved to optabs.h.
8346         (libfunc_hash): Redefine as a macro.
8347         (hash_libfunc, eq_libfunc): Fix comments.
8348         (init_optabs): Use libfunc_hash to detect cases where the function
8349         has already been called.  Clear the hash table instead of
8350         recreating it.
8351         * target-globals.h (this_target_libfuncs): Declare.
8352         (target_globals): Add a libfuncs field.
8353         (restore_target_globals): Copy the libfuncs field to
8354         this_target_libfuncs.
8355         * target-globals.c: Include libfuncs.h.
8356         (default_target_globals): Initialize the libfuncs field.
8357         (save_target_globals): Likewise.
8358
8359 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8360
8361         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
8362         in all dependency lists.
8363
8364 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8365
8366         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
8367         * optabs.h (target_optabs): New structure.
8368         (default_target_optabs): Declare.
8369         (this_target_optabs): Declare as a variable or define as a macro.
8370         (optab_table, convert_optab_table, direct_optab_table): Redefine
8371         as macros.
8372         * optabs.c (default_target_optabs): New variable.
8373         (this_target_optabs): New conditional variable.
8374         (optab_table, convert_optab_table, direct_optab_table): Delete.
8375         * target-globals.h (this_target_optabs): Declare.
8376         (target_globals): Add a optabs field.
8377         (restore_target_globals): Copy the optabs field to
8378         this_target_optabs.
8379         * target-globals.c: Include expr.h and optabs.h.
8380         (default_target_globals): Initialize the optabs field.
8381         (save_target_globals): Likewise.
8382
8383 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8384
8385         * flags.h (target_flagstate): Add x_flag_excess_precision.
8386         (flag_excess_precision): Redefine as a macro.
8387         * toplev.c (flag_excess_precision): Delete.
8388
8389 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8390
8391         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
8392         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
8393         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
8394         (no_caller_save_reg_set): Redefine as a macro.
8395         * reload.h (target_reload): Add x_caller_save_initialized_p and
8396         x_regno_save_mode.
8397         (caller_save_initialized_p): Redefine as a macro.
8398         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
8399         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
8400         (regno_save_mode): Redefine as a macro.
8401
8402 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8403
8404         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
8405         * expmed.h: New file.
8406         * expmed.c (default_target_costs): New variable.
8407         (this_target_costs): New conditional variable.
8408         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
8409         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
8410         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
8411         * target-globals.h (this_target_expmed): Declare.
8412         (target_globals): Add a expmed field.
8413         (restore_target_globals): Copy the expmed field to
8414         this_target_expmed.
8415         * target-globals.c: Include expmed.h.
8416         (default_target_globals): Initialize the expmed field.
8417         (save_target_globals): Likewise.
8418
8419 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8420
8421         * Makefile.in (target-globals.o): Depend on reload.h.
8422         * reload.h (target_reload): New structure.
8423         (default_target_reload): Declare.
8424         (this_target_reload): Declare as a variable or define as a macro.
8425         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
8426         * reload1.c (default_target_reload): New variable
8427         (this_target_reload): New conditional variable.
8428         (indirect_symref_ok, double_reg_address_ok): Delete.
8429         (spill_indirect_levels): Redefine as a macro.
8430         * target-globals.h (this_target_reload): Declare.
8431         (target_globals): Add a reload field.
8432         (restore_target_globals): Copy the reload field to
8433         this_target_reload.
8434         * target-globals.c: Include hard-reg-set.h.
8435         (default_target_globals): Initialize the reload field.
8436         (save_target_globals): Likewise.
8437
8438 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8439
8440         * rtl.h (target_rtl): Add x_static_reg_base_value.
8441         * alias.c (static_reg_base_value): Redefine as a macro.
8442
8443 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8444
8445         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
8446         (GTFILES): Remove reginfo.c.
8447         * rtl.h (target_rtl): Add x_top_of_stack.
8448         (top_of_stack): New macro.
8449         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
8450         (top_of_stack): Delete.
8451
8452 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8453
8454         * regs.h (target_regs): Add x_hard_regs_of_mode,
8455         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
8456         x_may_move_out_cost and x_last_mode_for_init_move_cost.
8457         (have_regs_of_mode, contains_reg_of_mode, move_cost)
8458         (may_move_in_cost, may_move_out_cost): Redefine as macros.
8459         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
8460         (may_move_in_cost, may_move_out_cost): Delete.
8461         (last_mode_for_init_move_cost): Redefine as a macro.
8462
8463 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8464
8465         * hard-reg-set.h (target_hard_regs): New structure.
8466         (default_target_hard_regs): Declare.
8467         (this_target_hard_regs): Declare as a variable or define as a macro.
8468         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
8469         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
8470         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
8471         (reg_class_size, reg_class_subclasses, reg_class_subunion)
8472         (reg_class_superunion, reg_names): Redefine as macros.
8473         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
8474         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
8475         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
8476         (reg_class_contents, reg_class_size, reg_class_subclasses)
8477         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
8478         (default_target_hard_regs): New variable
8479         (this_target_hard_regs, initial_call_really_used_regs)
8480         (initial_reg_alloc_order): New conditional variables.
8481         (initial_reg_names): New variable.
8482         (init_reg_sets): Assert that initial_call_really_used_regs,
8483         initial_reg_alloc_order and initial_reg_names
8484         are all the same size as their variable counterparts.  Use them to
8485         initialize those counterparts.
8486         * target-globals.h (this_target_hard_regs): Declare.
8487         (target_globals): Add a hard_regs field.
8488         (restore_target_globals): Copy the hard_regs field to
8489         this_target_hard_regs.
8490         * target-globals.c: Include hard-reg-set.h.
8491         (default_target_globals): Initialize the hard_regs field.
8492         (save_target_globals): Likewise.
8493
8494 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8495
8496         * Makefile.in (target-globals.o): Depend on $(RTL_H).
8497         * rtl.h (target_rtl): New structure.
8498         (default_target_rtl): Declare.
8499         (this_target_rtl): Declare as a variable or define as a macro.
8500         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
8501         Redefine as macros.
8502         * emit-rtl.c (default_target_rtl): New variable.
8503         (this_target_rtl): New conditional variable.
8504         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
8505         (return_address_pointer_rtx): Delete.
8506         (initial_regno_reg_rtx): New macro.
8507         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
8508         (init_emit_regs): Likewise.
8509         * target-globals.h (this_target_rtl): Declare.
8510         (target_globals): Add a rtl field.
8511         (restore_target_globals): Copy the rtl field to this_target_rtl.
8512         * target-globals.c: Include rtl.h.
8513         (default_target_globals): Initialize the rtl field.
8514         (save_target_globals): Likewise.
8515
8516 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8517
8518         * Makefile.in (target-globals.o): Depend on $(REGS_H).
8519         * regs.h (target_reg_modes): New structure.
8520         (default_target_reg_modes): Declare.
8521         (this_target_reg_modes): Declare as a variable or define as a macro.
8522         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
8523         * reginfo.c (default_target_reg_modes): New variable.
8524         (this_target_reg_modes): New conditional variable.
8525         (hard_regno_nregs, reg_raw_mode): Delete.
8526         * target-globals.h (this_target_regs): Declare.
8527         (target_globals): Add a regs field.
8528         (restore_target_globals): Copy the regs field to this_target_regs.
8529         * target-globals.c: Include regs.h.
8530         (default_target_globals): Initialize the regs field.
8531         (save_target_globals): Likewise.
8532
8533 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8534
8535         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
8536         * doc/tm.texi: Regenerate.
8537         * Makefile.in (OBJS-common): Add target-globals.o.
8538         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
8539         and target-globals.h.
8540         (target-globals.o): New rule.
8541         (GTFILES): Include $(srcdir)/target-globals.h.
8542         * defaults.h (SWITCHABLE_TARGET): Define.
8543         * gengtype.c (open_base_files): Add target-globals.h to the
8544         list of includes.
8545         * target-globals.h: New file.
8546         * target-globals.c: Likewise.
8547
8548         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
8549         * flags.h (target_flag_state): New structure.
8550         (default_target_flag_state): Declare.
8551         (this_target_flag_state): Declare as a variable or define as a macro.
8552         (align_loops_log): Redefine as a macro.
8553         (align_loops_max_skip, align_jumps_log): Likewise.
8554         (align_jumps_max_skip, align_labels_log): Likewise.
8555         (align_labels_max_skip, align_functions_log): Likewise.
8556         * toplev.c (default_target_flag_state): New variable.
8557         (this_target_flag_state): New conditional variable.
8558         (align_loops_log): Delete.
8559         (align_loops_max_skip, align_jumps_log): Likewise.
8560         (align_jumps_max_skip, align_labels_log): Likewise.
8561         (align_labels_max_skip, align_functions_log): Likewise.
8562         * target-globals.h (this_target_flag_state): Declare.
8563         (target_globals): Add a flag_state field.
8564         (restore_target_globals): Copy the flag_state field to
8565         this_target_flag_state.
8566         * target-globals.c: Include flags.h.
8567         (default_target_globals): Initialize the flag_state field.
8568         (save_target_globals): Likewise.
8569
8570 2010-07-12  Jie Zhang  <jie@codesourcery.com>
8571
8572         * postreload.c (reg_symbol_ref[]): New.
8573         (move2add_use_add2_insn): New.
8574         (move2add_use_add3_insn): New.
8575         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
8576         (move2add_note_store): Likewise.
8577
8578 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
8579
8580         PR rtl-optimization/44752
8581         * genautomata.c (main): Don't emit an empty file even if there
8582         is no automaton.
8583
8584 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8585
8586         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
8587         ix86_solaris_return_in_memory.
8588         * config/i386-protos.h: Reflect this.
8589         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
8590         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
8591         Move ...
8592         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
8593
8594 2010-07-12  Jie Zhang  <jie@codesourcery.com>
8595
8596         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
8597         align the stack when it's going to be saved.
8598
8599 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8600
8601         PR pch/14940
8602         * config/host-solaris.c (mmap_fixed): New function.
8603         (sol_gt_pch_get_address): Use it.
8604         (sol_gt_pch_use_address): Likewise.
8605
8606 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8607
8608         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
8609         pentiumpro on Solaris 8 and 9/x86.
8610         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
8611         Document SSE/SSE2 support.
8612         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
8613
8614 2010-07-12  Andi Kleen  <ak@linux.intel.com>
8615
8616         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
8617         instead of gcc_assert to print better error message for multiple
8618         prevailing defs.
8619
8620 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
8621
8622         * config/i386/i386.c (ix86_asm_output_function_label): Change format
8623         string placeholder from 0x%x to %#x.
8624         (ix86_code_end): Use putc to output '\n'.
8625         (ix86_print_operand) <case ';'>: Use putc to output ';'.
8626
8627 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
8628
8629         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
8630         in directive -export.
8631
8632 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
8633
8634         * reginfo.h (reg_classes_intersect_p): Change arguments type to
8635         reg_class_t.
8636         * rtl.h (reg_classes_intersect_p): Adjust prototype.
8637
8638         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
8639         Remove macros.
8640         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
8641         rs6000_memory_move_cost): Remove
8642         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
8643         TARGET_MEMORY_MOVE_COST): Define.
8644         (rs6000_register_move_cost): Make static. Change arguments type from
8645         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
8646         (rs6000_memory_move_cost): Make static. Change arguments type from
8647         'enum reg_class' to reg_class_t.
8648
8649 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
8650
8651         PR middle-end/42505
8652         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
8653         lookup code into....
8654         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
8655         new functions.
8656         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
8657         * cfgloopanal.c (target_clobbered_regs): Define.
8658         (init_set_costs): Initialize target_clobbered_regs.
8659         (estimate_reg_pressure_cost): Add call_p argument.  When true,
8660         adjust the number of available registers to exclude the
8661         call-clobbered registers.
8662         * cfgloop.h (target_clobbered_regs): Declare.
8663         (estimate_reg_pressure_cost): Adjust declaration.
8664         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
8665         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
8666         (determine_set_costs): Dump target_clobbered_regs.
8667         (loop_body_includes_call): New function.
8668         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
8669         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
8670         call_p flag through.
8671         (best_gain_for_invariant): Likewise.
8672         (find_invariants_to_move): Likewise.
8673         (move_single_loop_invariants): Likewise, using already-computed
8674         has_call field.
8675
8676 2010-07-10  Richard Guenther  <rguenther@suse.de>
8677             Joern Rennecke  <joern.rennecke@embecosm.com>
8678
8679         PR debug/44832
8680         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
8681         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
8682         unless they have DECL_IGNORED_P set.
8683
8684 2010-07-10  Richard Guenther  <rguenther@suse.de>
8685
8686         PR lto/44889
8687         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
8688         helper function.
8689         (gimple_types_compatible_p): Similar to pointed-to
8690         types allow and merge a mix of complete and incomplete aggregate.
8691         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
8692         (iterative_hash_gimple_type): Adjust for that.
8693
8694 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
8695
8696         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
8697
8698 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
8699
8700         PR objc/44140
8701         * config/darwin.c (output_objc_section_asm_op): Save and restore
8702         section when outputting ObjC section list.
8703
8704 2010-07-09  Jan Hubicka  <jh@suse.cz>
8705
8706         * lto-streamer-out.c (produce_symtab): Do not write alias
8707         cgraph/varpool nodes.
8708
8709 2010-07-09  Jan Hubicka  <jh@suse.cz>
8710
8711         * tree-inline.c (declare_return_variable): Fix ICE while
8712         inlining DECL_BY_VALUE function not in SSA form
8713
8714 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
8715
8716         PR tree-optimization/44576
8717         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
8718         New.  Pull out from is_loop_prefetching_profitable to implement
8719         the trip count to ahead ratio heuristic.
8720         (mem_ref_count_reasonable_p): New.  Pull out from
8721         is_loop_prefetching_profitable to implement the instruction to
8722         memory reference ratio heuristic.  Also consider not reasonable if
8723         the memory reference count is above a threshold (to avoid
8724         explosive compilation time.
8725         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
8726         is_loop_prefetching_profitable to implement the instruction to
8727         prefetch ratio heuristic.
8728         (is_loop_prefetching_profitable): Removed.
8729         (loop_prefetch_arrays): Distribute the cost analysis across the
8730         function to allow early exit of the prefetch analysis.
8731         is_loop_prefetching_profitable is splitted into three functions,
8732         with each one called as early as possible.
8733         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
8734         number of memory references in a loop is considered too many.
8735
8736 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
8737
8738         * reload.c (find_reloads): Don't clear badop if we have a winreg
8739         alternative, but not win, and the class only has fixed regs.
8740         * hard-reg-set.h (class_only_fixed_regs): Declare.
8741         * reginfo.c (class_only_fixed_regs): New array.
8742         (init_reg_sets_1): Initialize it.
8743         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
8744         discourage alternatives using the stack pointer.
8745
8746         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
8747
8748         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
8749
8750         * config/arm/arm.md (cbranchqi4): Fix array size.
8751         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
8752         calculating length.
8753
8754 2010-07-09  Richard Guenther  <rguenther@suse.de>
8755
8756         * gimple.c (struct type_fixup_s): New struct and VEC type.
8757         (gimple_register_type_fixups): New static global.
8758         (gimple_queue_type_fixup): New function.
8759         (gimple_types_compatible_p): Queue type fixups instead of
8760         applying them here.
8761         (gimple_register_type): Apply queued fixups for the
8762         canonical type.  Empty the type fixup queue.
8763
8764 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
8765
8766         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
8767         * configure: Regenerate.
8768         * config.in: Ditto.
8769
8770 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
8771             Denys Vlasenko  <dvlasenk@redhat.com>
8772             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
8773
8774         PR tree-optimization/28632
8775         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
8776         (extract_range_from_binary_expr): Further optimize
8777         BIT_AND_EXPR and BIT_IOR_EXPR.
8778
8779 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
8780
8781         * tree-if-conv.c (fold_or_predicates): New.
8782         (add_to_predicate_list): Call it.
8783
8784 2010-07-09  Richard Guenther  <rguenther@suse.de>
8785
8786         PR middle-end/44890
8787         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
8788         if base is a pointer.
8789         * tree-cfg.c (verify_expr): Update MEM_REF checking.
8790
8791 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
8792
8793         PR target/44877
8794         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
8795         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
8796         builtin mask for load/store builtins.
8797
8798 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
8799
8800         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
8801         for "lock addl".
8802         * configure: Regenerate.
8803         * config/i386/i386.c (ix86_print_operand) <case ';'>:
8804         Remove TARGET_MACHO.
8805
8806 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
8807
8808         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
8809         default ISA flags.
8810         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
8811
8812 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
8813
8814         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
8815
8816 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
8817
8818         * config/picochip/picochip.md (commsTestPort): Emit more
8819         efficient sequence for tstport instruction.
8820
8821 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
8822
8823         * config/i386/i386.c (ix86_veclib_handler): Make static.
8824
8825 2010-07-09  Richard Guenther  <rguenther@suse.de>
8826
8827         PR tree-optimization/44852
8828         * tree-ssa-alias.c: Include toplev.h for exact_log2.
8829         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
8830         in MEM_REF.
8831         (indirect_refs_may_alias_p): Likewise.
8832         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
8833
8834 2010-07-09  Richard Guenther  <rguenther@suse.de>
8835
8836         PR tree-optimization/44882
8837         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
8838         sets do conflict.
8839         (vectorizable_load): Likewise.
8840
8841 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
8842
8843         PR target/40657
8844         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
8845         All callers changed.
8846         Handle the case when we're called for the epilogue.
8847         (thumb_unexpanded_epilogue): Use it.
8848         (thumb1_expand_epilogue): Likewise.
8849
8850 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
8851
8852         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
8853         both ranges are range_int_cst_p with non-negative minimum,
8854         try harder to derive smaller range.
8855
8856 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8857
8858         * genrecog.c: Include diagnostic-core.h before toplev.h.
8859         * genoutput.c: Likewise.
8860         * genextract.c: Likewise.
8861         * genautomata.c: Likewise.
8862         * genemit.c: Likewise.
8863         * genpeep.c: Likewise.
8864         * genattrtab.c: Likewise.
8865         * genconditions.c: Likewise.
8866         * genpreds.c: Likewise.
8867
8868 2010-07-08  Andi Kleen  <ak@linux.intel.com>
8869
8870         * lto-section-in.c (lto_section_name): Add missing comma.
8871
8872 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
8873
8874         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
8875         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
8876         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
8877         (ia64_override_options): Rename to...
8878         (ia64_option_override): ... this one. Make static.
8879
8880 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8881
8882         PR middle-end/44843
8883         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
8884         pointed-to type of the offset in a MEM_REF to compute the alignment.
8885
8886 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
8887
8888         * final.c (final_scan_insn): Replace
8889         TARGET_UNWIND_INFO macro check by unwind_emit
8890         hook NULL check.
8891         * targhooks.c (default_unwind_emit): Removed.
8892         * targhooks.h (default_unwind_emit): Likewise.
8893         * target.def (unwind_emit): Set default value to NULL.
8894
8895         * config/i386/i386-protos.h (ix86_asm_output_function_label):
8896         New prototype.
8897         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
8898         for NULL fntype argument and allow 64-bit targets.
8899         (ix86_asm_output_function_label): New function.
8900         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
8901         (ix86_handle_fndecl_attribute): Likewise.
8902         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
8903         * doc/doc/tm.texi: Regenerated.
8904         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
8905         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
8906         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
8907         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
8908         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
8909         * config/elfos.h: Likewise.
8910         * config/i386/cygming.h: Likewise.
8911         * config/netbsd-aout.h: Likewise.
8912         * config/openbsd.h: Likewise.
8913         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
8914         by ix86_asm_output_function_label function call.
8915         * varasm.c (assemble_start_function): Use
8916         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
8917
8918 2010-07-08  Jan Hubicka  <jh@suse.cz>
8919
8920         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
8921         New function.
8922         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
8923         Declare.
8924         * ipa-cp.c (ipcp_estimate_growth): Use it.
8925         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
8926         Likewise.
8927
8928 2010-07-08  Jan Hubicka  <jh@suse.cz>
8929
8930         * tree-inline.c (declare_return_variable): Allocate annotation for new
8931         temporary.
8932
8933 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
8934
8935         PR tree-optimization/44710
8936         * tree-if-conv.c (parse_predicate): New.
8937         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
8938         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
8939
8940 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
8941
8942         * common.opt (ftree-loop-if-convert): New flag.
8943         * doc/invoke.texi (ftree-loop-if-convert): Documented.
8944         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
8945         when flag_tree_loop_if_convert is set.
8946
8947 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
8948
8949         * config/i386/i386.c: Use short syntax for function calls
8950         through function pointers.
8951         * config/i386/i386.md: Ditto.
8952
8953 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8954
8955         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
8956
8957 2010-07-08  Richard Guenther  <rguenther@suse.de>
8958
8959         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
8960         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
8961
8962 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
8963
8964         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
8965         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
8966         (loc_list_from_tree): Likewise.
8967         (output_loc_operands): Handle outputting DW_OP_const[48]u
8968         with loc->dtprel set.
8969         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
8970
8971 2010-07-08  Jan Hubicka  <jh@suse.cz>
8972
8973         * ipa.c: Include pointer-set.h
8974         (cgraph_externally_visible_p): New attribute ALIASED;
8975         when in LTO, hidden symbols are local unless they are aliased.
8976         (function_and_variable_visibility): Compute aliased nodes;
8977         handle LTO and hidden symbol on functions and vars.
8978         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
8979         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
8980
8981 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8982
8983         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
8984         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8985         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8986         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8987         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8988         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
8989         (ix86_gen_probe_stack_range): Likewise.
8990         (override_options): Set them.
8991         (ix86_target_stack_probe): New function.
8992         (ix86_compute_frame_layout): Force use of push instructions to
8993         save registers if stack checking with probes is enabled.
8994         (get_scratch_register_on_entry): New function.
8995         (release_scratch_register_on_entry): Likewise.
8996         (ix86_adjust_stack_and_probe): Likewise.
8997         (output_adjust_stack_and_probe): Likewise.
8998         (ix86_emit_probe_stack_range): Likewise.
8999         (output_probe_stack_range): Likewise.
9000         (ix86_expand_prologue): Emit stack checking code if static built-in
9001         stack checking is enabled.
9002         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
9003         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
9004         (output_adjust_stack_and_probe): Likewise.
9005         (output_probe_stack_range): Likewise.
9006         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
9007         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
9008         TARGET_STACK_PROBE.
9009         (allocate_stack_worker_64): Likewise.
9010         (allocate_stack): Likewise.
9011         (adjust_stack_and_probe): New insn.
9012         (probe_stack_range): Likewise.
9013
9014 2010-07-08  Richard Guenther  <rguenther@suse.de>
9015
9016         PR tree-optimization/44831
9017         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
9018         a MEM_REF preserving TBAA info of the original dereference.
9019         Dereference the original pointer if the address is not invariant.
9020         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
9021         at least one invariant address that we are going to dereference.
9022
9023 2010-07-08  Richard Guenther  <rguenther@suse.de>
9024
9025         PR tree-optimization/44861
9026         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
9027         information when building MEM_REFs.
9028         (vectorizable_load): Likewise.
9029         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
9030
9031 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
9032
9033         * config/sol2-c.c: Do not include diagnostic-core.h.
9034
9035 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9036
9037         PR bootstrap/44768
9038         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
9039         with respect to current_function_decl. Pass decl of the function.
9040         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
9041         * ipa-inline.c (compute_inline_parameters): Pass decl to
9042         estimated_stack_frame_size.
9043
9044 2010-07-08  Richard Guenther  <rguenther@suse.de>
9045
9046         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
9047         New function.
9048         (valueize_refs): Call it.
9049
9050 2010-07-08  Richard Guenther  <rguenther@suse.de>
9051
9052         PR rtl-optimization/44838
9053         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
9054         SSA form do not use pointer equivalence.
9055
9056 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
9057
9058         * dwarf2out.c (AT_linkage_name): Delete.
9059         (add_linkage_attr): New function.
9060         (add_linkage_name): Call it to emit the linkage attribute.
9061         (dwarf2out_finish): Likewise.
9062         (move_linkage_attr): Explicitly accept both attribute variants.
9063
9064 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9065
9066         * toplev.h: Do not include diagnostic-core.h.
9067         Include diagnostic-core.h in every file that includes toplev.h.
9068         * c-tree.h: Do not include toplev.h.
9069         * pretty-print.h: Update comment.
9070         * Makefile.in: Update dependencies.
9071         * alias.c: Include diagnostic-core.h in every file that includes
9072         toplev.h.
9073         * attribs.c: Likewise.
9074         * auto-inc-dec.c: Likewise.
9075         * bb-reorder.c: Likewise.
9076         * bt-load.c: Likewise.
9077         * caller-save.c: Likewise.
9078         * calls.c: Likewise.
9079         * cfg.c: Likewise.
9080         * cfganal.c: Likewise.
9081         * cfgbuild.c: Likewise.
9082         * cfgcleanup.c: Likewise.
9083         * cfghooks.c: Likewise.
9084         * cfgloop.c: Likewise.
9085         * combine.c: Likewise.
9086         * config/alpha/alpha.c: Likewise.
9087         * config/arc/arc.c: Likewise.
9088         * config/arm/arm.c: Likewise.
9089         * config/arm/pe.c: Likewise.
9090         * config/avr/avr.c: Likewise.
9091         * config/bfin/bfin.c: Likewise.
9092         * config/cris/cris.c: Likewise.
9093         * config/crx/crx.c: Likewise.
9094         * config/darwin-c.c: Likewise.
9095         * config/darwin.c: Likewise.
9096         * config/fr30/fr30.c: Likewise.
9097         * config/frv/frv.c: Likewise.
9098         * config/h8300/h8300.c: Likewise.
9099         * config/host-darwin.c: Likewise.
9100         * config/i386/i386.c: Likewise.
9101         * config/i386/netware.c: Likewise.
9102         * config/i386/nwld.c: Likewise.
9103         * config/i386/winnt-cxx.c: Likewise.
9104         * config/i386/winnt-stubs.c: Likewise.
9105         * config/i386/winnt.c: Likewise.
9106         * config/ia64/ia64-c.c: Likewise.
9107         * config/ia64/ia64.c: Likewise.
9108         * config/iq2000/iq2000.c: Likewise.
9109         * config/lm32/lm32.c: Likewise.
9110         * config/m32c/m32c-pragma.c: Likewise.
9111         * config/m32c/m32c.c: Likewise.
9112         * config/m32r/m32r.c: Likewise.
9113         * config/m68hc11/m68hc11.c: Likewise.
9114         * config/m68k/m68k.c: Likewise.
9115         * config/mcore/mcore.c: Likewise.
9116         * config/mep/mep-pragma.c: Likewise.
9117         * config/mep/mep.c: Likewise.
9118         * config/mmix/mmix.c: Likewise.
9119         * config/mn10300/mn10300.c: Likewise.
9120         * config/moxie/moxie.c: Likewise.
9121         * config/pa/pa.c: Likewise.
9122         * config/pdp11/pdp11.c: Likewise.
9123         * config/picochip/picochip.c: Likewise.
9124         * config/rs6000/rs6000-c.c: Likewise.
9125         * config/rs6000/rs6000.c: Likewise.
9126         * config/rx/rx.c: Likewise.
9127         * config/s390/s390.c: Likewise.
9128         * config/score/score.c: Likewise.
9129         * config/score/score3.c: Likewise.
9130         * config/score/score7.c: Likewise.
9131         * config/sh/sh.c: Likewise.
9132         * config/sh/symbian-base.c: Likewise.
9133         * config/sh/symbian-c.c: Likewise.
9134         * config/sh/symbian-cxx.c: Likewise.
9135         * config/sol2-c.c: Likewise.
9136         * config/sol2.c: Likewise.
9137         * config/sparc/sparc.c: Likewise.
9138         * config/spu/spu.c: Likewise.
9139         * config/stormy16/stormy16.c: Likewise.
9140         * config/v850/v850-c.c: Likewise.
9141         * config/v850/v850.c: Likewise.
9142         * config/vax/vax.c: Likewise.
9143         * config/vxworks.c: Likewise.
9144         * config/xtensa/xtensa.c: Likewise.
9145         * convert.c: Likewise.
9146         * cse.c: Likewise.
9147         * cselib.c: Likewise.
9148         * dbgcnt.c: Likewise.
9149         * dbxout.c: Likewise.
9150         * ddg.c: Likewise.
9151         * dominance.c: Likewise.
9152         * emit-rtl.c: Likewise.
9153         * explow.c: Likewise.
9154         * expmed.c: Likewise.
9155         * fixed-value.c: Likewise.
9156         * fold-const.c: Likewise.
9157         * fwprop.c: Likewise.
9158         * gcse.c: Likewise.
9159         * ggc-common.c: Likewise.
9160         * ggc-page.c: Likewise.
9161         * ggc-zone.c: Likewise.
9162         * gimple-low.c: Likewise.
9163         * gimplify.c: Likewise.
9164         * graph.c: Likewise.
9165         * haifa-sched.c: Likewise.
9166         * ifcvt.c: Likewise.
9167         * implicit-zee.c: Likewise.
9168         * integrate.c: Likewise.
9169         * ira-build.c: Likewise.
9170         * ira-color.c: Likewise.
9171         * ira-conflicts.c: Likewise.
9172         * ira-costs.c: Likewise.
9173         * ira-lives.c: Likewise.
9174         * ira.c: Likewise.
9175         * lists.c: Likewise.
9176         * loop-doloop.c: Likewise.
9177         * loop-iv.c: Likewise.
9178         * lto-opts.c: Likewise.
9179         * lto-symtab.c: Likewise.
9180         * main.c: Likewise.
9181         * modulo-sched.c: Likewise.
9182         * optabs.c: Likewise.
9183         * params.c: Likewise.
9184         * plugin.c: Likewise.
9185         * postreload-gcse.c: Likewise.
9186         * postreload.c: Likewise.
9187         * predict.c: Likewise.
9188         * profile.c: Likewise.
9189         * real.c: Likewise.
9190         * regcprop.c: Likewise.
9191         * reginfo.c: Likewise.
9192         * regmove.c: Likewise.
9193         * reorg.c: Likewise.
9194         * resource.c: Likewise.
9195         * rtl.c: Likewise.
9196         * rtlanal.c: Likewise.
9197         * sched-deps.c: Likewise.
9198         * sched-ebb.c: Likewise.
9199         * sched-rgn.c: Likewise.
9200         * sdbout.c: Likewise.
9201         * sel-sched-dump.c: Likewise.
9202         * sel-sched-ir.c: Likewise.
9203         * simplify-rtx.c: Likewise.
9204         * stmt.c: Likewise.
9205         * stor-layout.c: Likewise.
9206         * store-motion.c: Likewise.
9207         * targhooks.c: Likewise.
9208         * tree-cfg.c: Likewise.
9209         * tree-cfgcleanup.c: Likewise.
9210         * tree-dump.c: Likewise.
9211         * tree-eh.c: Likewise.
9212         * tree-inline.c: Likewise.
9213         * tree-nomudflap.c: Likewise.
9214         * tree-object-size.c: Likewise.
9215         * tree-optimize.c: Likewise.
9216         * tree-outof-ssa.c: Likewise.
9217         * tree-phinodes.c: Likewise.
9218         * tree-profile.c: Likewise.
9219         * tree-ssa-ccp.c: Likewise.
9220         * tree-ssa-coalesce.c: Likewise.
9221         * tree-ssa-live.c: Likewise.
9222         * tree-ssa-loop-niter.c: Likewise.
9223         * tree-ssa-loop-prefetch.c: Likewise.
9224         * tree-ssa-loop.c: Likewise.
9225         * tree-ssa-structalias.c: Likewise.
9226         * tree-ssa-uninit.c: Likewise.
9227         * tree-ssa.c: Likewise.
9228         * tree-vect-data-refs.c: Likewise.
9229         * tree-vect-loop-manip.c: Likewise.
9230         * tree-vect-loop.c: Likewise.
9231         * tree-vect-patterns.c: Likewise.
9232         * tree-vect-stmts.c: Likewise.
9233         * tree-vrp.c: Likewise.
9234         * varasm.c: Likewise.
9235         * vec.c: Likewise.
9236         * web.c: Likewise.
9237         * xcoffout.c: Likewise.
9238
9239 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
9240
9241         * gengtype.c (write_field_root): New function.
9242         (write_root): Use it.
9243
9244 2010-07-07  Wei Guozhi  <carrot@google.com>
9245
9246         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
9247         of lowest bits to lshift/compare): Add a missing line.
9248
9249 2010-07-07  Wei Guozhi  <carrot@google.com>
9250
9251         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
9252         of lowest bits to lshift/compare): New.
9253
9254 2010-07-07  Tom Tromey  <tromey@redhat.com>
9255
9256         * doc/tm.texi: Update.
9257         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
9258         Add @hook.
9259         * target.def (want_debug_pub_sections): New hook.
9260         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
9261         * dwarf2out.c (add_pubname_string): Check
9262         targetm.want_debug_pub_sections.
9263         (add_pubname): Likewise.
9264         (add_pubtype): Likewise.
9265
9266 2010-07-07  Jie Zhang  <jie@codesourcery.com>
9267
9268         * genautomata.c (output_automata_list_min_issue_delay_code):
9269         Correctly decompress min_issue_delay.
9270
9271 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
9272
9273         PR rtl-optimization/44404
9274         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
9275         possible, use reg_overlap_mentioned_p instead.
9276
9277 2010-07-07  Duncan Sands  <baldrick@free.fr>
9278
9279         PR middle-end/41355
9280         * tree.c (build_function_type_skip_args): Copy the original type using
9281         build_distinct_type_copy rather than copy_node.
9282
9283 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
9284
9285         PR target/44850
9286         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
9287         revision 161876.
9288         (ix86_expand_prologue): Likewise.
9289         (ix86_handle_fndecl_attribute): Likewise.
9290         (ix86_asm_declare_function_name): Likewise.
9291         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
9292         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
9293         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
9294         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
9295         * doc/extend.texi: Likewise.
9296
9297 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
9298
9299         PR target/44844
9300         * config/i386/i386.md (rdrand<mode>): Changed to expand to
9301         retry if the carry flag isn't valid.
9302         (rdrand<mode>_1): New.
9303
9304 2010-07-07  Richard Guenther  <rguenther@suse.de>
9305
9306         PR middle-end/44790
9307         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
9308         for expanding the constant offset for MEM_REFs.
9309
9310 2010-07-07  Richard Guenther  <rguenther@suse.de>
9311
9312         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
9313         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
9314         * gimple.h (is_gimple_operand): Remove.
9315         * gimple.c (is_gimple_operand): Likewise.
9316         (walk_gimple_op): Fix wi->val_only setting for calls.
9317         * tree-cfg.c (verify_gimple_call): Fix argument validation.
9318         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
9319         invalid gimple calls.
9320
9321 2010-07-06  Jan Hubicka  <jh@suse.cz>
9322
9323         * lto-cgraph.c (output_cgraph): Add missing declaration.
9324
9325 2010-07-06  Jan Hubicka  <jh@suse.cz>
9326
9327         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
9328         partition.
9329
9330 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
9331
9332         * doc/gimple.texi (GIMPLE_DEBUG): Document.
9333         * doc/rtl.texi (Debug Information): New node.
9334         (NOTE_INSN_VAR_LOCATION): Document.
9335         (debug_insn): Likewise.
9336         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
9337
9338 2010-07-07  Jan Hubicka  <jh@suse.cz>
9339
9340         With parts by Richard Guenther.
9341
9342         PR middle-end/44813
9343         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
9344         for functions passed by reference.
9345         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
9346         in memory when passed by reference.
9347         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
9348         beggining.
9349         * ipa-split.c (split_function): Cleanup way return value is passed;
9350         handle SSA DECL_BY_REFERENCE retvals.
9351         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
9352         DECL_BY_REFERENCE is set.
9353         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
9354         find_what_p_points_to): Handle RESULT_DECL.
9355         * tree-inline.c (declare_return_variable): Get new entry_block argument;
9356         when passing by reference ensure that RESULT_DECL is gimple_val.
9357         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
9358         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
9359
9360 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
9361
9362         PR rtl-optimization/44787
9363         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
9364         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
9365
9366 2010-07-06  Jan Hubicka  <jh@suse.cz>
9367
9368         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
9369         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
9370         with body can prevail.
9371         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
9372         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
9373         * cgraph.c (cgraph_get_node_or_alias): New function.
9374         * cgraph.h (cgraph_get_node_or_alias): Declare.
9375
9376 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
9377
9378         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
9379         support.
9380         (ix86_expand_prologue): Likewise.
9381         (ix86_handle_fndecl_attribute): Likewise.
9382         (ix86_asm_declare_function_name): New function for
9383         ASM_DECLARE_FUNCTION_NAME.
9384         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
9385         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
9386         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
9387         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
9388         * doc/extend.texi: Adjust documentation about ms_hook_prologue
9389         attribute.
9390
9391 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
9392
9393         * config/i386/i386.md (immediate_operand): New mode attribute.
9394
9395         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
9396         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
9397         using P mode iterator.
9398         (pro_epilogue_adjust_stack_di_2): Rename from
9399         pro_epilogue_adjust_stack_rex64_2.
9400
9401         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
9402
9403 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
9404
9405         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
9406         through gen_mov_insv_1 function pointer.
9407         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
9408         gen_truncxf<mode>2 through gen_truncxf function pointer.
9409         (remainder<mode>3): Ditto.
9410         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
9411         (allocate_stack): Call gen_allocate_stack_worker_64 or
9412         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
9413         function pointer.
9414         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
9415         function pointer.
9416
9417 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
9418
9419         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
9420         operand constraint instead of <r><i>m.
9421
9422 2010-07-06  Richard Guenther  <rguenther@suse.de>
9423
9424         PR middle-end/44828
9425         * convert.c (convert_to_integer): Watch out for overflowing
9426         MULT_EXPR as well.
9427
9428 2010-07-05  Jan Hubicka  <jh@suse.cz>
9429
9430         * lto-streamer.c (write_symbol_vec): Rename to ...
9431         (write_symbol) ... this one; write only symbol given and when
9432         present in cache. Sanity check that what is defined is present
9433         in cgraph/varpool with body/finalized decl.
9434         (write_symbols_of_kind): Remove.
9435         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
9436         pairs to produce symtab.
9437         (produce_asm_for_decls): Update call of produce_symtab; don't do so
9438         when doing WPA streaming.
9439
9440 2010-07-05  Jan Hubicka  <jh@suse.cz>
9441
9442         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
9443         function is still available to fold into.
9444
9445 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
9446
9447         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
9448         * function.h (struct_function): Change type of local_decls field
9449         to a VEC.
9450         (add_local_decl): New function.
9451         (FOR_EACH_LOCAL_DECL): New macro.
9452         * cfgexpand.c (init_vars_expansion): Adjust for new type of
9453         cfun->local_decls.
9454         (estimated_stack_frame_size): Likewise.
9455         (expand_used_vars): Likewise.
9456         * cgraphbuild.c (build_cgraph_edges): Likewise.
9457         * function.c (instantiate_decls_1): Likewise.
9458         * ipa-struct-reorg.c (build_data_structure): Likewise.
9459         * ipa-type-escape.c (analyze_function): Likewise.
9460         * lto-streamer-in.c (input_function): Likewise.
9461         * lto-streamer-out.c (output_function): Likewise.
9462         * tree-ssa-live.c (remove_unused_locals): Likewise.
9463         * tree.c (free_lang_data_in_decl): Likewise.
9464         (find_decls_types_in_node): Likewise.
9465         * omp-low.c (remove_exit_barrier): Likewise.
9466         (expand_omp_taskreg): Likewise.
9467         (list2chain): Rename to...
9468         (vec2chain): ...this.  Adjust.
9469         * cgraphunit.c (assemble_thunk): Call add_local_decl.
9470         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
9471         * gimple-low.c (record_vars_into): Likewise.
9472         * tree-inline.c (remap_decls): Likewise.
9473         (declare_return_variable): Likewise.
9474         (declare_inline_vars): Likewise.
9475         (copy_forbidden): Adjust for new type of cfun->local_decls.
9476         (add_local_variables): New function.
9477         (expand_call_inline): Call it.
9478         (tree_function_versioning): Likewise.
9479
9480 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
9481
9482         AVX Programming Reference (June, 2010)
9483         * config/i386/cpuid.h (bit_F16C): New.
9484         (bit_RDRND): Likewise.
9485         (bit_FSGSBASE): Likewise.
9486
9487         * config/i386/i386-builtin-types.def: Add
9488         "DEF_FUNCTION_TYPE (UINT16)", function types for
9489         float16 <-> float conversions and
9490         "DEF_FUNCTION_TYPE (VOID, UINT64)".
9491
9492         * config/i386/i386-c.c (ix86_target_macros_internal): Support
9493         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
9494         OPTION_MASK_ISA_F16C.
9495
9496         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
9497         (OPTION_MASK_ISA_RDRND_SET): Likewise.
9498         (OPTION_MASK_ISA_F16C_SET): Likewise.
9499         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
9500         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
9501         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
9502         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
9503         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
9504         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
9505         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
9506         (override_options): Handle them.
9507         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
9508         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
9509         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
9510         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
9511         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
9512         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
9513         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
9514         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
9515         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
9516         (bdesc_args): Likewise.
9517         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
9518         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
9519         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
9520         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
9521         Handle non-memory store.
9522
9523         * config/i386/i386.h (TARGET_FSGSBASE): New.
9524         (TARGET_RDRND): Likewise.
9525         (TARGET_F12C): Likewise.
9526
9527         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
9528         (UNSPEC_VCVTPS2PH): Likewise.
9529         (UNSPECV_RDFSBASE): Likewise.
9530         (UNSPECV_RDGSBASE): Likewise.
9531         (UNSPECV_WRFSBASE): Likewise.
9532         (UNSPECV_WRGSBASE): Likewise.
9533         (UNSPECV_RDRAND): Likewise.
9534         (rdfsbase<mode>): Likewise.
9535         (rdgsbase<mode>): Likewise.
9536         (wrfsbase<mode>): Likewise.
9537         (wrgsbase<mode>): Likewise.
9538         (rdrand<mode>): Likewise.
9539
9540         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
9541
9542         * config/i386/immintrin.h (_rdrand_u16): New.
9543         (_rdrand_u32): Likewise.
9544         (_readfsbase_u32): Likewise.
9545         (_readfsbase_u64): Likewise.
9546         (_readgsbase_u32): Likewise.
9547         (_readgsbase_u64): Likewise.
9548         (_writefsbase_u32): Likewise.
9549         (_writefsbase_u64): Likewise.
9550         (_writegsbase_u32): Likewise.
9551         (_writegsbase_u64): Likewise.
9552         (_rdrand_u64): Likewise.
9553         (_cvtsh_ss): Likewise.
9554         (_mm_cvtph_ps): Likewise.
9555         (_mm256_cvtph_ps): Likewise.
9556         (_cvtss_sh): Likewise.
9557         (_mm_cvtps_ph): Likewise.
9558         (_mm256_cvtps_ph): Likewise.
9559
9560         * config/i386/sse.md (vcvtph2ps): New.
9561         (*vcvtph2ps_load): Likewise.
9562         (vcvtph2ps256): Likewise.
9563         (vcvtps2ph): Likewise.
9564         (*vcvtps2ph): Likewise.
9565         (*vcvtps2ph_store): Likewise.
9566         (vcvtps2ph256): Likewise.
9567
9568         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
9569
9570         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
9571
9572 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
9573
9574         PR bootstrap/44512
9575         * genenums.c (main): Output include of insn-constants.h
9576         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
9577
9578 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
9579
9580         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
9581         (override_options): Initialize it.
9582         (ix86_expand_prologue): Use it.
9583
9584 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
9585
9586         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
9587
9588 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
9589
9590         * double-int.h (fit_double_type): Remove declaration.
9591         * double-int.c (fit_double_type): Remove function.
9592         * tree.h (int_fits_type_p): Adjust prototype.
9593         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
9594         instead of fit_double_type.
9595         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
9596         instead of fit_double_type and build_int_cst_wide.
9597         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
9598         instead of fit_double_type and build_int_cst_wide.
9599         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
9600         of fit_double_type.
9601
9602 2010-07-05  Jan Hubicka  <jh@suse.cz>
9603
9604         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
9605         in_other_partition.
9606         * lto-cgraph.c (referenced_from_other_partition_p,
9607         reachable_from_other_partition_p): Use in_other_partition flags.
9608         (output_node, output_varpool_node): COMDAT nodes always have private
9609         copies and thus are never used from other partition.
9610
9611 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
9612
9613         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
9614         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
9615         * config/ia64/ia64.c Include reload.h.
9616         (ia64_memory_move_cost): New function.
9617         (TARGET_MEMORY_MOVE_COST): Define.
9618         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
9619         memory_move_cost.
9620
9621 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
9622
9623         PR middle-end/42505
9624         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
9625         comments about cost model.
9626         (try_add_cand_for):  Add second strategy for choosing initial set
9627         based on original IVs, controlled by ORIGINALP argument.
9628         (get_initial_solution): Add ORIGINALP argument.
9629         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
9630         (find_optimal_iv_set): Try two different strategies for choosing
9631         the IV set, and return the one with lower cost.
9632
9633 2010-07-05  Richard Guenther  <rguenther@suse.de>
9634
9635         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
9636
9637 2010-07-05  Richard Guenther  <rguenther@suse.de>
9638
9639         * tree.c (reference_alias_ptr_type): New function.
9640         * tree.h (reference_alias_ptr_type): Declare.
9641         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
9642         allow non-TARGET_MEM_REF new refs.
9643         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
9644         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
9645         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
9646         (create_mem_ref): Get alias pointer type.  Adjust calls to
9647         create_mem_ref_raw.
9648         (maybe_fold_tmr): Likewise.
9649         * tree-flow.h (create_mem_ref): Adjust prototype.
9650
9651 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
9652
9653         PR c++/44808
9654         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
9655         *from_p is VAR_DECL.
9656
9657 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
9658
9659         * tree.h (build_call_list): Remove.
9660         * tree.c (build_call_list): Remove.
9661
9662 2010-07-05  Richard Guenther  <rguenther@suse.de>
9663
9664         * double-int.h (double_int_sub): Declare.
9665         * double-int.c (double_int_sub): New function.
9666         * dwarf2out.c (field_byte_offset): Use it.
9667         * fixed-value.c (do_fixed_add): Likewise.
9668         (do_fixed_multiply): Likewise.
9669         (do_fixed_divide): Likewise.
9670         * tree-predcom.c (add_ref_to_chain): Likewise.
9671         (determine_roots_comp): Likewise.
9672         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
9673
9674 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
9675
9676         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
9677         implementations.
9678
9679 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
9680
9681         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
9682         * arm-modes.def (CC_NOTB): Don't define.
9683         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
9684         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
9685         (LTUGEU): New code_iterator.
9686         (cnb, optab): New corresponding code_attrs.
9687         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
9688         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
9689         using LTUGEU.
9690         (addsi3_carryin_shift_<optab>): Likewise.
9691         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
9692         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
9693         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
9694         (subsi3_compare): Renamed from subsi3_compare0_c.
9695         Change CC_NOTB to CC.
9696         (arm_subsi3_insn): Allow constants for operand 0.
9697         (compare_scc peephole for eq case): New.
9698         (compare_scc splitters): Change CC_NOTB to CC.
9699
9700 2010-07-05  Richard Guenther  <rguenther@suse.de>
9701
9702         * tree-ssa-loop-im.c (for_each_index): Do not handle
9703         ALIGN_INDIRECT_REF.
9704         (gen_lsm_tmp_name): Likewise.
9705         * tree-dump.c (dequeue_and_dump): Likewise.
9706         * tree-pretty-print.c (dump_generic_node): Likewise.
9707         (op_code_prio): Likewise.
9708         (op_symbol_code): Likewise.
9709         * tree.c (staticp): Likewise.
9710         (build1_stat): Likewise.
9711         * tree.h (INDIRECT_REF_P): Likewise.
9712         * fold-const.c (maybe_lvalue_p): Likewise.
9713         (operand_equal_p): Likewise.
9714         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
9715         (ao_ref_init_from_vn_reference): Likewise.
9716         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
9717         (find_interesting_uses_address): Likewise.
9718         * dwarf2out.c (loc_list_from_tree): Likewise.
9719         * gimplify.c (gimplify_expr): Likewise.
9720         * tree-eh.c (tree_could_trap_p): Likewise.
9721         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
9722         * cfgexpand.c (expand_debug_expr): Likewise.
9723         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
9724         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
9725         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
9726         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
9727         * tree-ssa-operands.c (get_expr_operands): Likewise.
9728         * expr.c (safe_from_p): Likewise.
9729         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
9730         * tree-vect-data-refs.c (vect_setup_realignment): Build
9731         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
9732         * tree-vect-stmts.c (vectorizable_load): Likewise.
9733         * tree.def (ALIGN_INDIRECT_REF): Remove.
9734
9735 2010-07-05  Richard Guenther  <rguenther@suse.de>
9736
9737         PR tree-optimization/44784
9738         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
9739         for inserted stmts.
9740         (find_or_generate_expression): Fix SCCVN insertion check.
9741
9742 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
9743
9744         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
9745         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
9746         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
9747         directives.
9748
9749 2010-07-05  Ira Rosen  <irar@il.ibm.com>
9750
9751         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
9752         statements that are not vectorized.
9753         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
9754         in INSIDE_COST.
9755
9756 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
9757
9758         PR bootstrap/44820
9759         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
9760
9761 2010-07-05  Richard Guenther  <rguenther@suse.de>
9762
9763         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
9764         RESULT_DECLs properly.
9765
9766 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
9767
9768         PR rtl-optimization/44695
9769         * config/i386/i386.md (extract_code): Removed.
9770         (<u>divmodqi4): Likewise.
9771         (divmodqi4): New.
9772         (udivmodqi4): Likewise.
9773         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
9774         (udivmodhiqi3): Likewise.
9775
9776 2010-07-04  Jan Hubicka  <jh@suse.cz>
9777
9778         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
9779
9780 2010-07-04  Jan Hubicka  <jh@suse.cz>
9781
9782         * cgraphunit.c (init_cgraph): Only initialize dump file if it
9783         is not already initialized.
9784
9785 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
9786
9787         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
9788         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
9789         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
9790         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
9791         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
9792         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
9793         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
9794         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
9795         (sync_new_nand_optab): Redefine as macros.
9796         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
9797         Delete.
9798         (direct_optab_index): New enum.
9799         (direct_optab_d): New structure.
9800         (direct_optab): New typedef.
9801         (direct_optab_table): Declare.
9802         (direct_optab_handler, set_direct_optab_handler): New functions.
9803         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
9804         (sync_lock_release_optab): New macros.
9805         * optabs.c (direct_optab_table): New variable.
9806         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
9807         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
9808         cmpstr_optab and cmpstrn_optab.
9809         (emit_conditional_move): Likewise for movcc_optab.
9810         (can_conditionally_move_p): Likewise for movcc_gen_code.
9811         (init_insn_codes): Clear direct_optab_table.
9812         (init_optabs): Don't initialize the new "direct optabs" here.
9813         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
9814         vcond_gen_code.
9815         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
9816         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
9817         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
9818         (expand_sync_operation): Likewise other sync_*_optabs.
9819         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
9820         to sync_compare_and_swap_optab.
9821         (expand_sync_lock_test_and_set): Use direct_optab_handler for
9822         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
9823         to the names of both.
9824         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
9825         cmpstr_optab and cmpstrn_optab.
9826         (expand_builtin_lock_release): Likewise sync_lock_release.
9827         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
9828         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
9829         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
9830         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
9831         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
9832         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
9833         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
9834         (sync_lock_test_and_set, sync_lock_release): Delete.
9835         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
9836         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
9837         * genopinit.c (optabs): Use set_direct_optab_handler for the new
9838         macro optabs.
9839         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
9840         the "optab" local variable.  Use direct_optab_handler for optab and
9841         sync_compare_and_swap_optab.
9842         * reload1.c (reload_in_optab, reload_out_optab): Delete.
9843         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
9844         reload_in_optab and reload_out_optab.
9845         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
9846         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
9847         * config/pa/pa.c (pa_secondary_reload): Likewise.
9848         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
9849         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
9850         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
9851         (VMSupportsCS8_builtin): Likewise.
9852
9853 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
9854
9855         * optabs.h (optab_handlers): Change type of insn_code to int.
9856         (optab_handler, set_optab_handler, convert_optab_handler)
9857         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
9858         CODE_FOR_nothing".
9859         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
9860         (init_insn_codes): Zero both the above arrays.
9861         (init_optabs): Never call init_insn_codes first time around.
9862
9863 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
9864
9865         * optabs.h (optab_handler, convert_optab_handler): Turn into
9866         inline functions that return an insn code.
9867         (set_optab_handler, set_convert_optab_handler): New functions.
9868         * builtins.c: Replace optab_handler(X)->insn_code with
9869         optab_handler or set_optab_handler thoughout.  Likewise
9870         convert_optab_handler(X)->insn_code with convert_optab_handler
9871         and set_convert_optab_handler.
9872         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
9873         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
9874         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
9875         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
9876         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
9877         config/spu/spu.c: Likewise.
9878
9879 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
9880
9881         PR target/44531
9882         * config.gcc (sh*-*-*): Use regular expressions instead of
9883         the 'i' modifier for sed substitutions.
9884
9885 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
9886
9887         * gimple.c (gimple_body): Comments added.
9888
9889 2010-07-04  Richard Guenther  <rguenther@suse.de>
9890
9891         PR middle-end/44809
9892         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
9893         of an INDIRECT_REF.
9894
9895 2010-07-04  Richard Guenther  <rguenther@suse.de>
9896
9897         PR tree-optimization/44479
9898         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
9899         extra SSA name copy statements which preserves points-to
9900         information.
9901         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
9902         Copy points-to information for all pointers.  Properly handle
9903         MEM_REFs.
9904         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
9905         copy statements.
9906         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
9907         dependency.
9908
9909 2010-07-04  Richard Guenther  <rguenther@suse.de>
9910
9911         PR middle-end/44785
9912         * tree-inline.c (initialize_inlined_parameters): Do not
9913         re-use pointer-map slot over remap_type call.
9914
9915 2010-07-04  Richard Guenther  <rguenther@suse.de>
9916
9917         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
9918
9919 2010-07-04  Richard Guenther  <rguenther@suse.de>
9920
9921         PR tree-optimization/44656
9922         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
9923         again after value-replacing in the defintions lhs.
9924
9925 2010-07-04  Ira Rosen  <irar@il.ibm.com>
9926             Revital Eres  <eres@il.ibm.com>
9927
9928         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
9929         Document new arguments.
9930         * doc/tm.texi: Regenerate.
9931         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
9932         Handle unaligned store.
9933         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
9934         * target.def (builtin_vectorization_cost): Add new arguments.
9935         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
9936         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
9937         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
9938         (vect_vfa_segment_size): Fix indentation.
9939         * tree-vectorizer.h (struct _vect_peel_info): New.
9940         (struct _vect_peel_extended_info): New.
9941         (struct _loop_vec_info): Add new field for peeling hash table and a
9942         macro for its access.
9943         (VECT_MAX_COST): Define.
9944         (vect_get_load_cost): Declare.
9945         (vect_get_store_cost, vect_get_known_peeling_cost,
9946         vect_get_single_scalar_iteraion_cost): Likewise.
9947         (vect_supportable_dr_alignment): Add new argument.
9948         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
9949         field.
9950         (destroy_loop_vec_info): Free peeling hash table.
9951         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
9952         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
9953         vect_analyze_slp. Fix indentation.
9954         (vect_get_single_scalar_iteraion_cost): New function.
9955         (vect_get_known_peeling_cost): Likewise.
9956         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
9957         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
9958         statement. Move outside cost calculation inside unknown peeling case.
9959         Call vect_get_known_peeling_cost for known amount of peeling.
9960         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
9961         reference to the print message of forced alignment.
9962         (vect_verify_datarefs_alignment): Update call to
9963         vect_supportable_dr_alignment.
9964         (vect_get_data_access_cost): New function.
9965         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
9966         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
9967         vect_peeling_hash_choose_best_peeling): Likewise.
9968         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
9969         to store all the accesses in the loop and find best possible access to
9970         align using peeling for known alignment case. For unknown alignment
9971         check if stores are preferred or if peeling is worthy.
9972         (vect_find_same_alignment_drs): Analyze pairs of loads too.
9973         (vect_supportable_dr_alignment): Add new argument and check aligned
9974         accesses according to it.
9975         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
9976         (cost_for_stmt): Call vect_get_stmt_cost.
9977         (vect_model_simple_cost): Likewise.
9978         (vect_model_store_cost): Call vect_get_stmt_cost. Call
9979         vect_get_store_cost to calculate the cost of the statement.
9980         (vect_get_store_cost): New function.
9981         (vect_model_load_cost): Call vect_get_stmt_cost. Call
9982         vect_get_load_cost to calculate the cost of the statement.
9983         (vect_get_load_cost): New function.
9984         (vectorizable_store): Update call to vect_supportable_dr_alignment.
9985         (vectorizable_load): Likewise.
9986         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
9987         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
9988         arguments. Handle unaligned store.
9989         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
9990         (rs6000_builtin_support_vector_misalignment): Return true for word and
9991         double word alignments for VSX.
9992         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
9993         vect_supportable_dr_alignment and builtin_vectorization_cost.
9994
9995 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9996
9997         PR target/44597
9998         * config/pa/predicates.md (prefetch_cc_operand): Remove.
9999         (prefetch_nocc_operand): Likewise.
10000         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
10001         (prefetch_20): New insn.
10002         (prefetch_cc): Remove.
10003         (prefetch_nocc): Likewise.
10004
10005 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10006
10007         * expr.c (vector_mode_valid_p): Move to c-common.c.
10008         * expr.h (vector_mode_valid_p): Do not declare here.
10009         * system.h: Poison GCC_EXPR_H in front-ends.
10010         * Makefile.in: Update dependencies.
10011
10012 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10013
10014         PR target/44705
10015         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
10016
10017 2010-07-03  Jan Hubicka  <jh@suse.cz>
10018
10019         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
10020         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
10021         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
10022         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
10023         Likewise.
10024
10025         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
10026         Update timevars.V
10027         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
10028         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
10029         TV_IPA_LTO_DECL_OUT): New.
10030         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
10031
10032 2010-07-03  Jan Hubicka  <jh@suse.cz>
10033
10034         * ipa-inline.c (update_edge_key): Break out from ...
10035         update_callers_keys): ... here;
10036         (update_callee_keys): Update only the edges from caller to callee.
10037         (update_all_calle_keys): Do what update_calle_keys did.
10038         (decide_inlining_of_small_functions): Avoid recomputing of all
10039         callees when badness increase.
10040
10041 2010-07-03  Jie Zhang  <jie@codesourcery.com>
10042
10043         * config/arm/arm.c (arm_attr_length_move_neon): New.
10044         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
10045         * config/arm/neon.md (define_mode_attr V_slen): Remove.
10046         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
10047         to compute length attribute.
10048
10049 2010-07-03  Jie Zhang  <jie@codesourcery.com>
10050
10051         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
10052         as predicate for operand 1 and remove its constraint.
10053         * config/arm/predicates.md (vfp_register_operand): New.
10054         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
10055         (*push_fp_multi): Likewise.
10056
10057 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
10058
10059         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
10060
10061 2010-07-03  Jan Hubicka  <jh@suse.cz>
10062
10063         * config/i386/i386.c (override_options): Revert accidental commit.
10064
10065 2010-07-02  Le-Chun Wu  <lcwu@google.com>
10066
10067         PR c++/44128
10068         * doc/invoke.texi: Update documentation of -Wshadow.
10069
10070 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
10071             Julian Brown  <julian@codesourcery.com>
10072             Sandra Loosemore <sandra@codesourcery.com>
10073
10074         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
10075         comparisons.  Adjust to take both operands.
10076         (arm_select_cc_mode): Handle DImode comparisons.
10077         (arm_gen_compare_reg): Generate a scratch register for DImode
10078         comparisons which require one.  Use xor for Thumb equality checks.
10079         (arm_const_double_by_immediates): New.
10080         (arm_print_operand): Allow 'Q' and 'R' for constants.
10081         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
10082         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
10083         arm_canonicalize_comparison.
10084         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
10085         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
10086         prototype.
10087         (arm_const_double_by_immediates): Declare.
10088         * config/arm/constraints.md (Di): New constraint.
10089         * config/arm/predicates.md (arm_immediate_di_operand)
10090         (arm_di_operand, cmpdi_operand): New.
10091         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
10092         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
10093         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
10094         (cstoredi4): Handle non-Cirrus also.
10095
10096 2010-07-02  Julian Brown  <julian@codesourcery.com>
10097             Sandra Loosemore <sandra@codesourcery.com>
10098
10099         PR target/43703
10100         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
10101         (smax<mode>3): Disable for NEON float modes when
10102         flag_unsafe_math_optimizations is false.
10103         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
10104         (*mul<mode>3_neon)
10105         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
10106         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
10107         for NEON float modes when flag_unsafe_math_optimizations is false.
10108         (quad_halves_<code>v4sf): Only enable if
10109         flag_unsafe_math_optimizations is true.
10110         * doc/invoke.texi (ARM Options): Add note about floating point
10111         vectorization requiring -funsafe-math-optimizations.
10112
10113 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
10114             Julian Brown  <julian@codesourcery.com>
10115
10116         * config/arm/neon.md (UNSPEC_VABA): Delete.
10117         (UNSPEC_VABAL): Delete.
10118         (UNSPEC_VABS): Delete.
10119         (UNSPEC_VMUL_N): Delete.
10120         (adddi3_neon): New.
10121         (subdi3_neon): New.
10122         (mul<mode>3add<mode>_neon): Make the pattern named.
10123         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
10124         (neon_vadd<mode>): Replace with define_expand, and move the remaining
10125         unspec parts...
10126         (neon_vadd<mode>_unspec): ...to this.
10127         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
10128         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
10129         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
10130         (neon_vaba<mode>): Rewrite in terms of vabd.
10131         (neon_vabal<mode>): Rewrite in terms of vabdl.
10132         (neon_vabs<mode>): Rewrite without unspec.
10133         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
10134         (*arm_subdi3): Likewise.
10135         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
10136         No_op attribute to disable assembly output checks.
10137         * config/arm/arm_neon.h: Regenerated.
10138         * doc/arm-neon-intrinsics.texi: Regenerated.
10139
10140 2010-07-02  Jan Hubicka  <jh@suse.cz>
10141
10142         * ipa-split.c (split_function): For aggregate values, set the return
10143         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
10144         *<retval> = fncall.part ().
10145         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
10146
10147 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
10148
10149         * config/arm/neon.md (UNSPEC_VAND): Delete.
10150         (UNSPEC_VBIC): Delete.
10151         (UNSPEC_VCLZ): Delete.
10152         (UNSPEC_VCNT): Delete.
10153         (UNSPEC_VEOR): Delete.
10154         (UNSPEC_VORN): Delete.
10155         (UNSPEC_VORR): Delete.
10156         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
10157         core registers too.
10158         (anddi3_neon): Likewise.
10159         (orndi3_neon): Likewise.
10160         (bicdi3_neon): Likewise.
10161         (xordi3_neon): Likewise.
10162         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
10163         rid of unspec and handle unused operand.
10164         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
10165         * config/arm/predicates.md (imm_for_neon_logic_operand):
10166         Require TARGET_NEON.
10167         (imm_for_neon_inv_logic_operand): Likewise.
10168         * config/arm/arm.md (define_split for logical_binary_operator):
10169         Disable for NEON registers.
10170         (anddi3): Add new define_expand, and rename the insn.  Disable
10171         this insn for NEON, where anddi3_neon now applies.
10172         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
10173         (iordi3): As for anddi3.
10174         (xordi3): Likewise.
10175         * config/arm/neon.ml (Vand): Split DImode variants and mark them
10176         as No_op to disable testing for exact instruction match.
10177         (Vorr): Likewise.
10178         (Veor): Likewise.
10179         (Vbic): Likewise.
10180         (Vorn): Likewise.
10181         * config/arm/arm_neon.h: Regenerated.
10182         * doc/arm-neon-intrinsics.texi: Regenerated.
10183
10184 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
10185
10186         * expr.h (emit_stack_probe): Declare.
10187         * explow.c (emit_stack_probe): Make global.
10188         (anti_adjust_stack_and_probe): Fix comments.
10189         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
10190         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10191         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10192         * config/sparc/sparc.c: Include except.h.
10193         (sparc_emit_probe_stack_range): New function.
10194         (output_probe_stack_range): Likewise.
10195         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
10196         built-in stack checking is enabled.
10197         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
10198         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
10199         (probe_stack_range): New insn.
10200
10201 2010-07-02  Richard Guenther  <rguenther@suse.de>
10202
10203         PR target/43958
10204         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
10205         for argument alignment.
10206
10207 2010-07-02  Jan Hubicka  <jh@suse.cz>
10208
10209         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
10210         walk backwards from entry_bb to check only those basic block of header
10211         that might lead to execution of split part.
10212         (consider_split) ... here.
10213         (find_return_bb): Allow assignment in return BB.
10214         (find_retval): New.
10215         (split_function): Fix name of cloned function; take care of updating
10216         return value in return_bb containing move.
10217
10218 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
10219
10220         PR target/44771
10221         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
10222         used variable insn.
10223
10224 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
10225
10226         * implicit-zee.c (combine_reaching_defs): Fix long lines.
10227         (is_set_with_extension_DI): Delete.
10228         (struct zero_extend_info): New structure.
10229         (add_removable_zero_extend): New function.
10230         (find_removable_zero_extends): Use note_stores to find SETs.
10231         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
10232
10233 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
10234
10235         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
10236         is_miss_rate_acceptable. Pull total_positions computation
10237         out of the loops.  Early return if miss_positions exceeds
10238         the acceptable threshold.
10239         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
10240         is_miss_rate_acceptable after renaming of compute_miss_rate.
10241
10242 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
10243
10244         PR middle-end/44576
10245         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
10246         of 1000) for miss rate if the address diference is greater than or
10247         equal to the cache line size (the two reference will never hit the
10248         same cache line).
10249
10250 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
10251
10252         PR target/42835
10253         * config/arm/arm-modes.def (CC_NOTB): New mode.
10254         * config/arm/arm.c (get_arm_condition_code): Handle it.
10255         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
10256         * config/arm/arm.md (subsi3_compare0_c): New pattern.
10257         (compare_scc): Now a define_and_split.  Add a number of extra
10258         splitters before it.
10259
10260         PR target/42172
10261         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
10262         and ZERO_EXTEND.
10263         (arm_rtx_costs_1): Likewise.
10264         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
10265         * config/arm/arm.md (is_arch6): New attribute.
10266         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
10267         extendqisi2): Tighten the code somewhat, avoiding invalid
10268         RTL to occur in the expander patterns.
10269         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
10270         (thumb1_zero_extendhisi2_v6): Delete.
10271         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
10272         (thumb1_extendhisi2_v6): Delete.
10273         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
10274         (thumb1_extendqisi2_v6): Delete.
10275         (zero_extendhisi2 for register input splitter): New.
10276         (zero_extendqisi2 for register input splitter): New.
10277         (thumb1_extendhisi2 for register input splitter): New.
10278         (extendhisi2 for register input splitter): New.
10279         (extendqisi2 for register input splitter): New.
10280         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
10281         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
10282         and add support for a register alternative requiring a split.
10283         (thumb1_zero_extendqisi2): Likewise.
10284         (arm_zero_extendqisi2): Likewise.
10285         (arm_extendhisi2): Likewise.
10286         (arm_extendqisi2): Likewise.
10287
10288 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
10289
10290         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
10291         instead of an unspec.
10292         (neon_expand_vector_init): Likewise.
10293         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
10294         (UNSPEC_VDUP_LANE): Delete.
10295         (UNSPEC VDUP_N): Delete.
10296         (UNSPEC_VGET_HIGH): Delete.
10297         (UNSPEC_VGET_LANE): Delete.
10298         (UNSPEC_VGET_LOW): Delete.
10299         (UNSPEC_VMVN): Delete.
10300         (UNSPEC_VSET_LANE): Delete.
10301         (V_double_vector_mode): New.
10302         (vec_set<mode>_internal): Make code emitted match that for the
10303         corresponding intrinsics.
10304         (vec_setv2di_internal): Likewise.
10305         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
10306         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
10307         (neon_vset_lane<mode>): Combine double and quad patterns and
10308         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
10309         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
10310         (neon_vdup_n<mode>): Rewrite RTL without unspec.
10311         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
10312         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
10313         with neon_vdup_lanev2di, adjusting the pattern from the latter
10314         to be predicable for consistency.
10315         (neon_vdup_lane<mode>_internal): New.
10316         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
10317         to avoid using an unspec.
10318         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
10319         (neon_vdup_lanev2di): Turn into a define_expand.
10320         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
10321         (neon_vget_high<mode>): Replace with....
10322         (neon_vget_highv16qi): New pattern using canonical RTL.
10323         (neon_vget_highv8hi): Likewise.
10324         (neon_vget_highv4si): Likewise.
10325         (neon_vget_highv4sf): Likewise.
10326         (neon_vget_highv2di): Likewise.
10327         (neon_vget_low<mode>): Replace with....
10328         (neon_vget_lowv16qi): New pattern using canonical RTL.
10329         (neon_vget_lowv8hi): Likewise.
10330         (neon_vget_lowv4si): Likewise.
10331         (neon_vget_lowv4sf): Likewise.
10332         (neon_vget_lowv2di): Likewise.
10333
10334         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
10335         test for this emitting vmov.
10336         (Vset_lane): Likewise.
10337         (Vdup_n): Likewise.
10338         (Vmov_n): Likewise.
10339
10340         * doc/arm-neon-intrinsics.texi: Regenerated.
10341
10342 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
10343
10344         * config/arm/neon.md (vec_extractv2di): Correct error in register
10345         numbering to reconcile with neon_vget_lanev2di.
10346
10347 2010-07-02  Richard Guenther  <rguenther@suse.de>
10348
10349         * tree-ssa-structalias.c (pt_solution_set_var): New function.
10350         * tree-ssa-alias.h (pt_solution_set_var): Declare.
10351         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
10352         points-to information.
10353
10354 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
10355
10356         * config/s390/s390.c (override_options): Adopt prefetching
10357         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
10358
10359 2010-07-02  Jan Hubicka  <jh@suse.cz>
10360
10361         * df-problems.c (df_kill_notes): Do not collect dead  notes.
10362         (df_set_note): Just call add_reg_note.
10363         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
10364         df_create_unused_note): Do not deal with lists of old notes.
10365         (df_note_bb_compute): Likewise.
10366
10367 2010-07-02  Richard Guenther  <rguenther@suse.de>
10368
10369         * tree-ssa-structalias.c (find_func_aliases): Handle
10370         pointer alignment via BIT_AND_EXPR.
10371         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
10372
10373 2010-07-02  Richard Guenther  <rguenther@suse.de>
10374
10375         * tree-data-ref.c (initialize_data_dependence_relation): Handle
10376         mismatching number of dimensions properly.
10377
10378 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10379
10380         PR target/44707
10381         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
10382         (lo_sum (high ...) ...) patterns generated by earlier passes.
10383
10384 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10385
10386         * doc/install.texi (Prerequisites): Document Perl requirement on
10387         Solaris 2.
10388         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
10389
10390 2010-07-02  Richard Guenther  <rguenther@suse.de>
10391
10392         PR middle-end/44777
10393         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
10394
10395 2010-07-02  Jan Hubicka  <jh@suse.cz>
10396
10397         PR middle-end/44706
10398         * predict.c (predict_paths_for_bb): Handle case when control dependence
10399         BB has only abnormal edges.
10400
10401 2010-07-02  Richard Guenther  <rguenther@suse.de>
10402
10403         PR tree-optimization/44748
10404         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
10405         the embedded conversion in MEM_REFs.
10406
10407 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
10408
10409         * reload.c: Include toplev.h.
10410         * recog.c:  Likewise.
10411         * Makefile.in: Adjust dependencies.
10412
10413 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
10414
10415         PR debug/44694
10416         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
10417         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
10418
10419 2010-07-01  Richard Guenther  <rguenther@suse.de>
10420
10421         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
10422         types for offsets.
10423
10424 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
10425
10426         PR target/44732
10427         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
10428         Fix argument types.
10429
10430 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
10431
10432         PR target/44727
10433         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
10434         Make sure operand 0 dies.
10435
10436 2010-07-01  Richard Guenther  <rguenther@suse.de>
10437
10438         PR middle-end/42834
10439         PR middle-end/44468
10440         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
10441         * doc/generic.texi (References to storage): Document MEM_REF.
10442         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
10443         (print_call_name): Likewise.
10444         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
10445         (build_simple_mem_ref_loc): New function.
10446         (mem_ref_offset): Likewise.
10447         * tree.h (build_simple_mem_ref_loc): Declare.
10448         (build_simple_mem_ref): Define.
10449         (mem_ref_offset): Declare.
10450         * fold-const.c: Include tree-flow.h.
10451         (operand_equal_p): Handle MEM_REF.
10452         (build_fold_addr_expr_with_type_loc): Likewise.
10453         (fold_comparison): Likewise.
10454         (fold_unary_loc): Fold
10455         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
10456         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
10457         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
10458         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
10459         (ptr_deref_may_alias_ref_p_1): Likewise.
10460         (ao_ref_base_alias_set): Properly differentiate base object for
10461         offset and TBAA.
10462         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
10463         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
10464         (indirect_refs_may_alias_p): Likewise.
10465         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
10466         chasing code.
10467         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
10468         (call_may_clobber_ref_p_1): Likewise.
10469         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
10470         * expr.c (expand_assignment): Handle MEM_REF.
10471         (store_expr): Handle MEM_REFs from STRING_CSTs.
10472         (store_field): If expanding a MEM_REF of a non-addressable
10473         decl use bitfield operations.
10474         (get_inner_reference): Handle MEM_REF.
10475         (expand_expr_addr_expr_1): Likewise.
10476         (expand_expr_real_1): Likewise.
10477         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
10478         * alias.c (ao_ref_from_mem): Handle MEM_REF.
10479         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
10480         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
10481         (dr_analyze_indices): Likewise.
10482         (dr_analyze_alias): Likewise.
10483         (object_address_invariant_in_loop_p): Likewise.
10484         * gimplify.c (mark_addressable): Handle MEM_REF.
10485         (gimplify_cond_expr): Build MEM_REFs.
10486         (gimplify_modify_expr_to_memcpy): Likewise.
10487         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
10488         (gimple_fold_indirect_ref): Adjust.
10489         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
10490         * tree.def (MEM_REF): New tree code.
10491         * tree-dfa.c: Include toplev.h.
10492         (get_ref_base_and_extent): Handle MEM_REF.
10493         (get_addr_base_and_unit_offset): New function.
10494         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
10495         * gimple-fold.c (may_propagate_address_into_dereference): Handle
10496         MEM_REF.
10497         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
10498         accesses if the array has just one dimension.  Remove always true
10499         parameter.  Do not require type compatibility here.
10500         (maybe_fold_offset_to_component_ref): Remove.
10501         (maybe_fold_stmt_indirect): Remove.
10502         (maybe_fold_reference): Remove INDIRECT_REF handling.
10503         Fold back to non-MEM_REF.
10504         (maybe_fold_offset_to_address): Simplify.  Deal with type
10505         mismatches here.
10506         (maybe_fold_reference): Likewise.
10507         (maybe_fold_stmt_addition): Likewise.  Also handle
10508         &ARRAY + I in addition to &ARRAY[0] + I.
10509         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
10510         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
10511         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
10512         * tree-ssa.c (useless_type_conversion_p): Make most pointer
10513         conversions useless.
10514         (warn_uninitialized_var): Handle MEM_REF.
10515         (maybe_rewrite_mem_ref_base): New function.
10516         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
10517         to SSA form.
10518         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
10519         INDIRECT_REF handling.
10520         (copy_tree_body_r): Handle MEM_REF.
10521         * gimple.c (is_gimple_addressable): Adjust.
10522         (is_gimple_address): Likewise.
10523         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
10524         invariant base are invariant.
10525         (is_gimple_min_lval): Adjust.
10526         (is_gimple_mem_ref_addr): New function.
10527         (get_base_address): Handle MEM_REF.
10528         (count_ptr_derefs): Likewise.
10529         (get_base_loadstore): Likewise.
10530         * gimple.h (is_gimple_mem_ref_addr): Declare.
10531         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
10532         * tree-cfg.c (verify_address): New function, split out from ...
10533         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
10534         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
10535         INDIRECT_REFs.
10536         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
10537         INDIRECT_REF.  Allow conversions.
10538         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
10539         a register does not change its size.
10540         (verify_types_in_gimple_reference): Verify MEM_REF.
10541         (verify_gimple_assign_single): Disallow INDIRECT_REF.
10542         Handle MEM_REF.
10543         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
10544         New.
10545         (mark_address_taken): Handle MEM_REF.
10546         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
10547         (get_asm_expr_operands): Pass opf_not_non_addressable.
10548         (get_expr_operands): Handle opf_[not_]non_addressable.
10549         Handle MEM_REF.  Remove INDIRECT_REF handling.
10550         * tree-vrp.c (check_array_ref): Handle MEM_REF.
10551         (search_for_addr_array): Likewise.
10552         (check_array_bounds): Likewise.
10553         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
10554         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
10555         (ref_always_accessed_p): Likewise.
10556         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
10557         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
10558         Handle MEM_REF.
10559         * cgraphbuild.c (mark_load): Properly check for NULL result
10560         from get_base_address.
10561         (mark_store): Likewise.
10562         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
10563         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
10564         handling for MEM_REF.
10565         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
10566         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
10567         * builtins.c (stabilize_va_list_loc): Use the function ABI
10568         valist type if we couldn't canonicalize the argument type.
10569         Always dereference with the canonical va-list type.
10570         (maybe_emit_free_warning): Handle MEM_REF.
10571         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
10572         memmove to memcpy.
10573         * builtins.c (fold_builtin_memory_op): Use ref-all types
10574         for all memcpy foldings.
10575         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
10576         (build_outer_var_ref): Likewise.
10577         (scan_omp_1_op): Likewise.
10578         (lower_rec_input_clauses): Likewise.
10579         (lower_lastprivate_clauses): Likewise.
10580         (lower_reduction_clauses): Likewise.
10581         (lower_copyprivate_clauses): Likewise.
10582         (expand_omp_atomic_pipeline): Likewise.
10583         (expand_omp_atomic_mutex): Likewise.
10584         (create_task_copyfn): Likewise.
10585         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
10586         Remove old union trick.  Initialize constant offsets.
10587         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
10588         INDIRECT_REF.  Init base_alias_set properly.
10589         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
10590         (vn_reference_fold_indirect): Adjust for MEM_REFs.
10591         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
10592         for ARRAY_REFs.
10593         (may_insert): Remove.
10594         (visit_reference_op_load): Do not test may_insert.
10595         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
10596         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
10597         a field to store the constant offset this op applies.
10598         (run_scc_vn): Adjust prototype.
10599         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
10600         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
10601         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
10602         bother about volatile qualifiers on pointers.
10603         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
10604         * tree-ssa-loop-ivopts.c
10605         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
10606         (strip_offset_1): Likewise.
10607         (find_interesting_uses_address): Replace INDIRECT_REF handling with
10608         MEM_REF handling.
10609         (get_computation_cost_at): Likewise.
10610         * ipa-pure-const.c (check_op): Handle MEM_REF.
10611         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
10612         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
10613         and constants.
10614         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
10615         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
10616         (eliminate_local_variables_1): Likewise.
10617         (create_call_for_reduction_1): Likewise.
10618         (create_loads_for_reductions): Likewise.
10619         (create_loads_and_stores_for_name): Likewise.
10620         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
10621         (ssa_accessed_in_tree): Handle MEM_REF.
10622         (ssa_accessed_in_assign_rhs): Likewise.
10623         (update_type_size): Likewise.
10624         (analyze_accesses_for_call_stmt): Likewise.
10625         (analyze_accesses_for_assign_stmt): Likewise.
10626         (transform_access_sites): Likewise.
10627         (transform_allocation_sites): Likewise.
10628         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
10629         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
10630         not handle INDIRECT_REF.
10631         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
10632         (cond_store_replacement): Likewise.
10633         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
10634         MEM_REF, no not handle INDIRECT_REFs.
10635         (insert_into_preds_of_block): Properly initialize avail.
10636         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
10637         for ARRAY_REFs.  Properly handle reference lookups that
10638         require a bit re-interpretation.
10639         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
10640         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
10641         (build_ref_for_offset_1): Remove.
10642         (build_ref_for_offset): Build MEM_REFs.
10643         (gate_intra_sra): Disable for now.
10644         (sra_ipa_modify_expr): Handle MEM_REF.
10645         (ipa_early_sra_gate): Disable for now.
10646         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
10647         MEM_REF handling.
10648         (disqualify_base_of_expr): Likewise.
10649         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
10650         MEM_REF handling.
10651         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
10652         Use mem_ref_offset.  Remove bogus folding.
10653         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
10654         (make_fancy_name_1): Add support for MEM_REF.
10655         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
10656         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
10657         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
10658         (compute_complex_ancestor_jump_func): Likewise.
10659         (ipa_analyze_virtual_call_uses): Likewise.
10660         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
10661         INDIRECT_REF folding with more generalized MEM_REF folding.
10662         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
10663         (forward_propagate_addr_into_variable_array_index): Also handle
10664         &ARRAY + I in addition to &ARRAY[0] + I.
10665         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
10666         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
10667         creates assignments with overlap.
10668         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
10669         (get_frame_field): Likewise.
10670         (get_nonlocal_debug_decl): Likewise.
10671         (convert_nonlocal_reference_op): Likewise.
10672         (struct nesting_info): Add mem_refs pointer-set.
10673         (create_nesting_tree): Allocate it.
10674         (convert_local_reference_op): Insert to be folded mem-refs.
10675         (fold_mem_refs): New function.
10676         (finalize_nesting_tree_1): Perform defered folding of mem-refs
10677         (free_nesting_tree): Free the pointer-set.
10678         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
10679         (vectorizable_load): Likewise.
10680         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
10681         (propagate_with_phi): Likewise.
10682         * tree-object-size.c (addr_object_size): Handle MEM_REFs
10683         instead of INDIRECT_REFs.
10684         (compute_object_offset): Handle MEM_REF.
10685         (plus_stmt_object_size): Handle MEM_REF.
10686         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
10687         for &MEM_REF.
10688         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
10689         (symbol_marked_for_renaming): Likewise.
10690         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
10691         (fold-const.o): Add $(TREE_FLOW_H).
10692         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
10693         (find_func_clobbers): Likewise.
10694         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
10695         (decompose_access): Likewise.
10696         (replace_field_acc): Likewise.
10697         (replace_field_access_stmt): Likewise.
10698         (insert_new_var_in_stmt): Likewise.
10699         (get_stmt_accesses): Likewise.
10700         (reorg_structs_drive): Disable.
10701         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
10702         (ix86_canonical_va_list_type): Likewise.
10703
10704 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
10705
10706         PR other/44566
10707         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
10708         * target.def (struct gcc_target): Replace enum reg_class with
10709         reg_class_t in hook argument / return types.
10710         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
10711         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
10712         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
10713         * targhooks.h (default_branch_target_register_class): Likewise.
10714         (default_ira_cover_classes, default_secondary_reload): Likewise.
10715         (default_memory_move_cost, default_register_move_cost): Likewise.
10716         * targhooks.c (default_branch_target_register_class): Likewise.
10717         (default_ira_cover_classes, default_secondary_reload): Likewise.
10718         (default_memory_move_cost, default_register_move_cost): Likewise.
10719         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
10720         * bt-load.c (branch_target_load_optimize): Likewise.
10721         * ira.c (setup_cover_and_important_classes): Likewise.
10722         * ira-costs.c (copy_cost): Likewise.
10723         * reload1.c (emit_input_reload_insns): Likewise.
10724         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
10725         * config/frv/frv.c (frv_secondary_reload): Likewise.
10726         * config/s390/s390.c (s390_secondary_reload): Likewise.
10727         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
10728         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
10729         (ix86_register_move_cost): Likewise.
10730         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
10731         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
10732         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
10733         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
10734         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
10735         (rs6000_ira_cover_classes): Likewise.
10736         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
10737         * config/picochip/picochip-protos.h (picochip_secondary_reload):
10738         Likewise.
10739         * config/pa/pa.c (pa_secondary_reload): Likewise.
10740         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
10741         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
10742         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
10743         * doc/tm.texi: Regenerate.
10744
10745 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
10746
10747         PR bootstrrap/44726
10748         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
10749         use.
10750         (build_alias_set_optimal_p): Likewise.
10751         (build_base_obj_set_for_drs): Likewise.
10752
10753 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
10754
10755         * target.def: Remove comment about licensing problems of function
10756         declarations.
10757
10758         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
10759         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
10760         * doc/tm.texi: Regenerate.
10761
10762         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
10763         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
10764
10765         * target.def (enum_va_list_p): Use DEFHOOK.
10766         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
10767         Rename ptype to ptree.
10768         * doc/tm.texi: Regenerate.
10769
10770         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
10771         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
10772         * doc/tm.texi: Regenerate.
10773
10774         * target.def (memory_move_cost): Use DEFHOOK.
10775         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
10776         Rename regclass AKA class to rclass.
10777         * doc/tm.texi: Regenerate.
10778
10779         * target.def (pragma_parse): Use DEFHOOK.
10780         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
10781         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
10782         * doc/tm.texi: Regenerate.
10783
10784         * target.def (pass_by_reference): Use DEFHOOK.
10785         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
10786         * doc/tm.texi: Regenerate.
10787
10788         * target.def (resolve_overloaded_builtin): Rename params to arglist.
10789         Use DEFHOOK.
10790         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
10791         * doc/tm.texi: Regenerate.
10792
10793         * target.def (return_pops_args): Use DEFHOOK.
10794         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
10795         Rename stack-size to size.
10796         * doc/tm.texi: Regenerate.
10797
10798         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
10799         last-sched_cycle to last_clock, cur_cycle to clock.
10800         * doc/tm.texi.in: Use @hook.
10801         * doc/tm.texi: Regenerate.
10802
10803         * target.def (print_operand, print_operand_address): Update comment.
10804         (print_operand_punct_valid_p): Likewise.
10805
10806 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10807
10808         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
10809         to rtl.h.
10810         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
10811         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
10812         * rtl-error.h: New.
10813         * regrename.c: Do not include toplev.h. Include rtl-error.h.
10814         * rtl-error.c: Likewise.
10815         * reload.c: Likewise.
10816         * recog.c:  Likewise.
10817         * sel-sched.c: Likewise.
10818         * function.c: Likewise.
10819         * reg-stack.c: Likewise.
10820         * cfgrtl.c: Likewise.
10821         * reload1.c: Likewise.
10822         * final.c: Include rtl-error.
10823         * Makefile.in: Adjust dependencies.
10824
10825 2010-06-30  Jan Hubicka  <jh@suse.cz>
10826
10827         PR middle-end/PR44706
10828         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
10829         to return the value.
10830
10831 2010-06-30  Michael Matz  <matz@suse.de>
10832
10833         PR bootstrap/44699
10834         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
10835         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
10836         a gimple reg, attach the original VDEF to the last store in the
10837         sequence.
10838
10839 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
10840
10841         PR other/44034
10842         * config/darwin.c (darwin_override_options): Use renamed
10843         targetm.asm_out.emit_unwind_label.
10844
10845 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
10846
10847         PR tree-optimization/39799
10848         * tree-inline.c (remap_ssa_name): Initialize variable only if
10849         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
10850
10851 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
10852
10853         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
10854
10855 2010-06-30  Richard Guenther  <rguenther@suse.de>
10856
10857         PR target/44722
10858         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
10859         against oscillation with reverse peephole2.
10860
10861 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
10862
10863         PR target/44721
10864         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
10865         Fix last commit.
10866
10867 2010-06-30  Nick Clifton  <nickc@redhat.com>
10868
10869         * config/rx/rx-modes.def: New file.
10870         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
10871         (CC_REGNUM): Define.
10872         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
10873         register.
10874         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
10875         (SELECT_CC_MODE): Define.
10876         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
10877         (reg:CC CC_REG) instead of (cc0).
10878         (attr "cc"): Delete.
10879         (cbranchsi4): Do not split compare and branch here. Instead move
10880         it to...
10881         (cbranchsi4_<code>): ... here.  New patterns.
10882         (cmpsi): Call rx-compare_redundant to find out if it is necessary
10883         to emit the compare instruction.
10884         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
10885         cc_status flags.
10886         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
10887         FIRST_PSEUDO_REGNUM.
10888         (rx_expand_prologue, rx_expand_epilogue): Likewise.
10889         (rx_notice_update_cc): Delete.
10890         (rx_cc_modes_compatible): New function.
10891         (flags_needed_for_conditional): New function.
10892         (flags_from_mode): New function.
10893         (rx_compare_redundant): New function - scans backwards through
10894         insn list to find out if condition flags are already set correctly.
10895         (TARGET_CC_MODES_COMPATIBLE): Define.
10896         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
10897
10898         * config/rx/rx.h (BRANCH_COST): Define.
10899         (REGISTER_MOVE_COST): Define.
10900         * config/rx/predicates (rx_source_operand): Allow all constant types.
10901         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
10902         (tstsi4): New pattern.
10903         * config/rx/rx.c (rx_memory_move_cost): Define.
10904         (TARGET_MEMORY_MOVE_COST): Define.
10905
10906 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10907
10908         * tree.h (block_may_fallthru): Declare here.
10909         * tree-flow.h (block_may_fallthru): Do not declare here.
10910         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
10911         bitmap.h
10912         * Makefile.in (c-typeck.o): Update dependencies.
10913
10914 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
10915
10916         PR debug/44694
10917         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
10918         * cselib.c (cfa_base_preserved_regno): New static variable.
10919         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
10920         of REGNO (cfa_base_preserved_val->locs->loc).
10921         (cselib_preserve_cfa_base_value): Add regno argument, set
10922         cfa_base_preserved_regno to it.
10923         (cselib_invalidate_regno): Allow removal of registers other than
10924         cfa_base_preserved_regno from cfa_base_preserved_val.
10925         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
10926         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
10927         of MEM addresses, if not on LHS.
10928         (reverse_op): Don't add reverse ops for cfa_base_rtx.
10929         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
10930
10931 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
10932
10933         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
10934         static variables.
10935         (peep2_buf_position): New static function.
10936         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
10937         peephole2_optimize): Use it.
10938         (peep2_attempt, peep2_update_life): New static functions, broken out
10939         of peephole2_optimize.
10940         (peep2_fill_buffer): New static function.
10941         (peephole2_optimize): Change the main loop to try to fill the buffer
10942         with the maximum number of insns before matching them against
10943         peepholes.  Use a forward scan.  Remove special case for targets with
10944         conditional execution.
10945         * genrecog.c (change_state): Delete dead code.
10946         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
10947         Rewrite so as not to expect the second insn to have had a peephole
10948         applied yet.
10949
10950 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
10951
10952         * genhooks.c (emit_findices): Cast field precision to int.
10953         (emit_documentation): Likewise.
10954
10955 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
10956
10957         PR tree-optimization/43801
10958         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
10959         if old_decl was DECL_ONE_ONLY.
10960
10961         PR debug/44668
10962         * dwarf2out.c (add_accessibility_attribute): New function.
10963         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
10964         instead of adding DW_AT_accessibility manually.
10965         (gen_enumeration_type_die, gen_struct_or_union_type_die,
10966         gen_typedef_die): Use it.
10967
10968 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10969
10970         * vmsdbgout.c (full_name): Just output the file name if not native.
10971
10972 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10973
10974         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
10975         (funcnam_table): New static table.
10976         (funcnum_table): New static table.
10977         (write_rtnbeg): Write value saved in funcnum_table.
10978         (write_rtnend): Write value saved in funcnum_table.
10979         (vmsdbgout_begin_function): Save current function info in
10980         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
10981         (vmsdbgout_finish): Iterate over funcnum_table.
10982
10983 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10984
10985         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
10986         (vmsdbgout_type_decl): Declare
10987         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
10988         (FUNC_EPILOGUE_LABEL): New macro
10989         (vmsdbgout_begin_epilogue): New function.
10990         (vmsdbgout_type_decl): New function.
10991
10992 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10993
10994         * vmsdbg.h: Update copyright.
10995
10996 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10997
10998         * vmsdbg.h (DST_K_TBG): New DST constant.
10999         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
11000         (write_modbeg): Cast module_language to avoid warning.
11001         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
11002
11003 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
11004
11005         PR other/44034
11006         * target.def, doc/tm.texi.in, genhooks.c: New files.
11007         * target.h: Instead of defining individual hook members,
11008         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
11009         include target.def.
11010         * target-def.h: Instead of defining individual hook initializers,
11011         include target-hooks-def.h.
11012         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
11013         targetm.live_on_entry -> targetm.extra_live_on_entry
11014         targetm.sched.md_finish ->targetm.sched.finish
11015         targetm.sched.md_init -> targetm.sched.init
11016         targetm.sched.md_init_global -> targetm.sched.init_global
11017         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
11018         targetm.asm_out.except_table_label ->
11019           targetm.asm_out.emit_except_table_label
11020         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
11021         targetm.target_help -> targetm.help
11022         targetm.vectorize.builtin_support_vector_misalignment ->
11023           targetm.vectorize.support_vector_misalignment
11024         targetm.file_start_app_off -> targetm.asm_file_start_app_off
11025         targetm.file_start_file_directive ->
11026          targetm.asm_file_start_file_directive
11027         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
11028         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
11029         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
11030         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
11031           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
11032         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
11033           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
11034         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
11035         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
11036         * Makefile.in (TARGET_H): Depend on target.def.
11037         (TARGET_DEF_H): Depend on target-hooks-def.h.
11038         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
11039         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
11040         * doc/tm.texi: Regenerate.
11041
11042         * Makefile.in (s-tm-texi): Remove stray tab / rule.
11043
11044         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
11045         (targetm.sched.init): Likewise.
11046
11047 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
11048
11049         PR bootstrap/44713
11050         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
11051         (function_arg_advance_32): Const-ify TYPE parameter.
11052         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
11053         (ix86_function_arg_advance): Change type of NAMED to bool.
11054         (function_arg_32): Const-ify CUM and TYPE parameters.
11055         (function_arg_64): Likewise.  Change type of NAMED to bool.
11056         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
11057         to bool.
11058         (ix86_function_arg): Change type of NAMED to bool.
11059         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
11060         last argument as a bool.
11061
11062 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
11063
11064         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
11065         (OVERRIDE_OPTIONS): Add note of obsolescence.
11066         Replace references with references to TARGET_OPTION_OVERRIDE.
11067         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
11068          the macro).
11069         * targhooks.c (default_target_option_override): New function.
11070         * targhooks.h (default_target_option_override): Declare.
11071         * target.h (struct gcc_target): Add override member to
11072         target_option member.
11073         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
11074         targetm.target_option.override call.
11075         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
11076         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
11077
11078 2010-06-29  Jan Hubicka  <jh@suse.cz>
11079
11080         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
11081
11082 2010-06-29  Jan Hubicka  <jh@suse.cz>
11083
11084         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
11085         unreachable.
11086         (rebuild_frequencies): New function.
11087         * predict.h (rebuild_frequencies): Declare.
11088         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
11089         entry block and edge reaching new_entry.
11090         (tree_function_versioning): When doing partial cloning, rebuild
11091         frequencies when done.
11092         * passes.c (execute_function_todo): Use rebild_frequencies.
11093
11094 2010-06-29  Richard Guenther  <rguenther@suse.de>
11095
11096         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
11097         * tree-flow.h (enum noalias_state): Remove.
11098         (struct var_ann_d): Remove noalias_state member.
11099
11100 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
11101
11102         PR target/43902
11103         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
11104         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
11105         (maddhidi4): Likewise.
11106
11107         Revert parts of the change for PR25130.
11108         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
11109         MEM_ALIAS_SET.
11110
11111 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
11112
11113         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
11114         targetm.calls.function_incoming_arg, and
11115         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
11116         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
11117         * target.h (struct gcc_target): Add function_arg_advance,
11118         function_arg, and function_incoming_arg fields.
11119         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
11120         (TARGET_FUNCTION_INCOMING_ARG): Define.
11121         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
11122         and TARGET_FUNCTION_INCOMING_ARG.
11123         * targhooks.h (default_function_arg_advance): Declare.
11124         (default_function_arg, default_function_incoming_arg): Declare.
11125         * targhooks.c (default_function_arg_advance): New function.
11126         (default_function_arg, default_function_incoming_arg): New function.
11127         * config/i386/i386.c (function_arg_advance): Rename to...
11128         (ix86_function_arg_advance): ...this.  Make static.
11129         (function_arg): Rename to...
11130         (ix86_function_arg): ...this.  Make static.
11131         (TARGET_FUNCTION_ARG_ADVANCE): Define.
11132         (TARGET_FUNCTION_ARG): Define.
11133         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
11134         (FUNCTION_ARG): Delete.
11135         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
11136         (function_arg): Delete prototype.
11137
11138 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
11139
11140         * reginfo.c (init_reg_sets_1): Adjust comments.
11141         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
11142         * calls.c (prepare_call_address): Likewise.
11143         (emit_call_1): Use targetm.calls.return_pops_args.
11144         (expand_call): Likewise.
11145         * function.c (assign_parms): Likewise.
11146         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
11147         * target.h (struct gcc_target) [struct calls]: Add
11148         return_pops_args field.
11149         * targhooks.h (default_return_pops_args): Declare.
11150         * targhooks.c (default_return_pops_args): Define.
11151         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
11152         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
11153         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
11154         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
11155         documentation.
11156         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
11157         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
11158         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
11159         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
11160         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
11161         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
11162         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
11163         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
11164         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
11165         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
11166         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
11167         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
11168         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
11169         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
11170         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
11171         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
11172         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
11173         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
11174         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
11175         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
11176         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
11177         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
11178         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
11179         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
11180         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
11181         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
11182         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
11183         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
11184         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
11185         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
11186         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
11187         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
11188         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
11189         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
11190         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
11191         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
11192         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
11193         * config/i386/i386.c (ix86_return_pops_args): Make static.
11194         Constify arguments.
11195         (TARGET_RETURN_POPS_ARGS): Define.
11196         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
11197         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
11198         (TARGET_RETURN_POPS_ARGS): Define.
11199         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
11200         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
11201         (TARGET_RETURN_POPS_ARGS): Define.
11202
11203 2010-06-29  Richard Guenther  <rguenther@suse.de>
11204
11205         PR middle-end/44667
11206         * tree-inline.c (initialize_inlined_parameters): Make sure
11207         to remap the inlined parameter variable substitutions types.
11208
11209 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
11210
11211         PR rtl-optimization/44659
11212         * combine.c (make_compound_operation) <SUBREG>: Do not return the
11213         result of force_to_mode if it partially re-expanded the compound.
11214
11215 2010-06-28  Jan Hubicka  <jh@suse.cz>
11216
11217         PR middle-end/44671
11218         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
11219         RESULT_DECL.
11220
11221 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
11222
11223         * double-int.h (force_fit_type_double): Remove declaration.
11224         * double-int.c (force_fit_type_double): Move to tree.c.
11225         * tree.h (force_fit_type_double): Declare.
11226         * tree.h (force_fit_type_double): Moved from double-int.c. Use
11227         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
11228         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
11229         * convert.c (convert_to_pointer): Adjust call to
11230         force_fit_type_double.
11231         * tree-vrp.c (extract_range_from_assert,
11232         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
11233         * fold-const.c: Update comment.
11234         (int_const_binop, fold_convert_const_int_from_int,
11235         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
11236         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
11237         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
11238         round_up_loc): Adjust call to force_fit_type_double.
11239
11240 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
11241
11242         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
11243
11244 2010-06-28  Martin Jambor  <mjambor@suse.cz>
11245
11246         * tree-sra.c (convert_callers): New parameter, change fndecls of
11247         recursive calls.
11248         (modify_function): Pass the old decl to convert_callers.
11249
11250 2010-06-28  Martin Jambor  <mjambor@suse.cz>
11251
11252         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
11253         ipa_check_create_node_params and ipa_initialize_node_params with
11254         checking asserts they are not necessary.
11255
11256 2010-06-28  Jan Hubicka  <jh@suse.cz>
11257
11258         PR tree-optimization/44687
11259         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
11260
11261 2010-06-28  Martin Jambor  <mjambor@suse.cz>
11262
11263         PR c++/44535
11264         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
11265         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
11266         instead of BINFO_BASE_BINFO.
11267
11268 2010-06-28  Michael Matz  <matz@suse.de>
11269
11270         PR middle-end/44592
11271         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
11272         proper VDEF chain for intermediate stores in the sequence.
11273
11274 2010-06-28  Jan Hubicka  <jh@suse.cz>
11275
11276         PR tree-optimization/44357
11277         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
11278         uninlinable functions.
11279
11280 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
11281
11282         * config.gcc (powerpc*-*-*): Handle titan.
11283         * config/rs6000/rs6000.c (titan_cost): New costs.
11284         (rs6000_override_options): Add "titan" to processor_target_table.
11285         Add Titan to branch alignment logic.
11286         Correctly set rs6000_cost for titan.
11287         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
11288         * config/rs6000/titan.md: New file.
11289         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
11290
11291 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
11292
11293         * tree-browser.c (TB_history_stack): Convert to a VEC.
11294         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
11295         (TB_history_prev): Likewise.
11296
11297 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
11298
11299         * vec.h (vec_heap_free): Add parentheses around free.
11300
11301 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
11302
11303         * system.h: Poison GCC_EXCEPT_H for front-end files.
11304
11305         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
11306         langhook.
11307         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
11308         Define to NULL by default.
11309         * except.h: Define GCC_EXCEPT_H.
11310         (doing_eh): Remove prototype.
11311         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
11312         (lang_protect_cleanup_actions): Remove.
11313         * except.c (lang_protect_cleanup_actions): Remove.
11314         (doing_eh): Remove.
11315         (gen_eh_region): Don't check doing_eh here.
11316         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
11317         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
11318         instead of lang_protect_cleanup_actions.
11319         * omp-low.c (maybe_catch_exception): Likewise.
11320         * Makefile.in: Update dependencies.
11321
11322 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
11323
11324         * cgraph.h (struct varpool_node): new used_from_object_file flag.
11325         (struct cgraph_local_info): new used_from_object_file flag.
11326         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
11327         (cgraph_clone_node): initialize used_from_object_file.
11328         (cgraph_create_virtual_clone): initialize used_from_object_file.
11329         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
11330         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
11331         when compiling with -fwhole-program.
11332         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
11333         internal resolver.
11334         * ipa.c (function_and_variable_visibility): Set externally_visible
11335         flag of varpool_node if used_from_object_file flag is set.
11336         (cgraph_externally_visible_p): check used_from_object_file flag.
11337         * doc/invoke.texi (-fwhole-program option): Change description of
11338         externally_visible attribute accordingly.
11339         * doc/extend.texi (externally_visible): Ditto.
11340
11341 2010-06-27  Jan Hubicka  <jh@suse.cz>
11342
11343         * params.def (max-inline-insns-auto): Default to 40.
11344         * doc/invoke.texi (max-inline-insns-auto): Document the change.
11345
11346 2010-06-27  Jan Hubicka  <jh@suse.cz>
11347
11348         PR middle-end/44671
11349         PR middle-end/44686
11350         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
11351         signature change.
11352         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
11353         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
11354
11355 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
11356
11357         * target.h (struct gcc_target): Add register_move_cost field.
11358         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
11359         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
11360         * targhooks.c (default_register_move_cost): New function.
11361         * targhooks.h (default_register_move_cost): Declare function.
11362         * defaults.h (REGISTER_MOVE_COST): Delete.
11363         * ira-int.h (ira_register_move_cost): Update comment.
11364         * ira.c (ira_register_move_cost): Update comment.
11365         * reload.h (register_move_cost): Declare.
11366         * reginfo.c (register_move_cost): New function.
11367         (move_cost): Update comment.
11368         (init_move_cost, memory_move_secondary_cost): Replace
11369         REGISTER_MOVE_COST with register_move_cost.
11370         * postreload.c (reload_cse_simplify_set): (Ditto.).
11371         * reload.c (find_valid_class, find_reloads): (Ditto.).
11372         * reload1.c (choose_reload_regs): (Ditto.).
11373         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
11374         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
11375         * doc/md.texi (can_create_pseudo_p): Update documentation.
11376
11377         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
11378         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
11379         * config/i386/i386.h (ix86_memory_move_cost): Make static.
11380         (TARGET_MEMORY_MOVE_COST): Define.
11381
11382         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
11383         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
11384         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
11385         (TARGET_MEMORY_MOVE_COST): Define.
11386
11387 2010-06-27  Richard Guenther  <rguenther@suse.de>
11388
11389         PR tree-optimization/44683
11390         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
11391         false edge from the inverted condition.
11392
11393 2010-06-27  Richard Guenther  <rguenther@suse.de>
11394
11395         PR middle-end/44684
11396         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
11397         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
11398         for register LHS.  Or non-store assignments.
11399
11400 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
11401
11402         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
11403         (sparc_emit_set_const64): Likewise.  Remove disabled code.
11404         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
11405         (sparc_emit_set_const64): Likewise.
11406
11407 2010-06-26  Catherine Moore  <clm@codesourcery.com>
11408
11409         * config/mips/mips.md (alu_type): New attribute.
11410         (type): Infer type from alu_type.
11411         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
11412         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
11413         *subsi3_extended, negsi2, negdi2, *low<mode>,
11414         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
11415         xor<mode>3, *nor<mode>3,
11416         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
11417         *zero_extendhi_truncqi):  Set alu_type instead of type.
11418
11419 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
11420
11421         * config/alpha/alpha.c (alpha_need_linkage): Adjust
11422         splay_tree_new_ggc call.
11423         (alpha_use_linkage): Likewise.
11424
11425 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
11426
11427         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
11428         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
11429         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
11430         (static_specs): Remove switches_need_spaces.
11431         (process_command, do_self_spec): Hardcode handling "-o" instead of
11432         checking switches_need_spaces.
11433         * system.h (SWITCHES_NEED_SPACES): Poison.
11434
11435 2010-06-26  Richard Guenther  <rguenther@suse.de>
11436
11437         PR tree-optimization/44393
11438         * tree-loop-distribution.c (generate_loops_for_partition): Fix
11439         stmt removal and VOP renaming.
11440         (generate_memset_zero): Remove redundant stmt updating.
11441         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
11442         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
11443
11444 2010-06-26  Jan Hubicka  <jh@suse.cz>
11445
11446         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
11447         edges comming from header are equivalent.
11448         (visit_bb): Handle PHIs correctly.
11449         * tree-inline.c (copy_phis_for_bb): Be able to copy
11450         PHI from entry edge.
11451         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
11452
11453 2010-06-26  Richard Guenther  <rguenther@suse.de>
11454
11455         PR middle-end/44674
11456         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
11457         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
11458
11459 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
11460
11461         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
11462         add_infile, alloc_switch): New.
11463         (process_command): Remove variable lang_n_infiles.  Process
11464         options in a single pass.  Use new functions for allocating
11465         infiles and switches arrays.  Properly skip operands of
11466         -Xpreprocessor and -Xassembler.
11467
11468 2010-06-26  Jan Hubicka  <jh@suse.cz>
11469
11470         PR middle-end/44671
11471         * cgraphunit.c (cgraph_function_versioning): Remove wrong
11472         cgraph_make_decl_local call; fix typo copying RTL data.
11473
11474 2010-06-25  DJ Delorie  <dj@redhat.com>
11475
11476         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
11477         (m32c_output_aligned_common): Likewise.
11478         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
11479         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
11480         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
11481         (m32c_register_pragmas): Register it.
11482         * config/m32c/m32c.c (m32c_get_pragma_address): New.
11483         (m32c_insert_attributes): Set #pragma address decls volatile.
11484         (pragma_entry_eq): New.
11485         (pragma_entry_hash): New.
11486         (m32c_note_pragma_address): New.
11487         (m32c_get_pragma_address): New.
11488         (m32c_output_aligned_common): New.
11489         * doc/extend.texi: Document the new pragma.
11490
11491         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
11492         also.
11493         * config/m32c/predicates.md (m32c_any_operand): Check the code
11494         instead of memory_operand so as to allow matching volatile MEMs.
11495         (m32c_nonimmediate_operand): Likewise.
11496         (mra_operand): Allow volatiles.
11497
11498 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
11499
11500         PR debug/44610
11501         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
11502         address if the offset is unknown.
11503
11504 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
11505
11506         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
11507         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
11508         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
11509         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
11510         to ia64_start_function. Invoke it.
11511         * config/ia64/ia64.c (ia64_start_function): Call new function
11512         dwarf2out_vms_debug_main_pointer.
11513
11514 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
11515
11516         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
11517         statements computing the true predicate.
11518
11519 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
11520
11521         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
11522         to boolean_true_node.
11523         (reset_bb_predicate): New.
11524         (predicate_bbs): Call reset_bb_predicate.
11525
11526 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
11527
11528         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
11529         (tree_if_conversion): Returns true when something has been changed.
11530         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
11531         changed something.
11532
11533 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
11534
11535         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
11536         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
11537         * tree-if-conv.c: Include dbgcnt.h.
11538         (tree_if_conversion): Use if_conversion_tree to count the number of
11539         if-convertible loops.
11540
11541 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
11542
11543         * common.opt (fprefetch-loop-arrays): Re-define
11544         -fprefetch-loop-arrays as a tri-state option with the initial
11545         value of -1.
11546         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
11547         pass only when flag_prefetch_loop_arrays > 0.
11548         * toplev.c (process_options): Note that, with tri-states,
11549         flag_prefetch_loop_arrays>0 means prefetching is enabled.
11550         * config/i386/i386.c (override_options): Enable prefetching at -O3
11551         for a set of CPUs that sw prefetching is helpful.
11552         (software_prefetching_beneficial_p): New.  Return TRUE if software
11553         prefetching is beneficial for the given CPU.
11554
11555 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
11556
11557         PR rtl-optimization/44326
11558         * implicit-zee.c (find_removable_zero_extends): Replace
11559         INSN_P with NONDEBUG_INSN_P.
11560
11561 2010-06-25  Martin Jambor  <mjambor@suse.cz>
11562
11563         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
11564         (struct ipa_node_params): Removed the modification_analysis_done flag.
11565         (ipa_is_param_modified): Removed.
11566         (ipa_analyze_node): Declare.
11567         (ipa_compute_jump_functions): Remove declaration.
11568         (ipa_count_arguments): Likewise.
11569         (ipa_detect_param_modifications): Likewise.
11570         (ipa_analyze_params_uses): Likewise.
11571         * ipa-prop.c (struct param_analysis_info): New type.
11572         (visit_store_addr_for_mod_analysis): Removed.
11573         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
11574         moved down in the file.
11575         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
11576         (ipa_count_arguments): Made static.
11577         (mark_modified): New function.
11578         (is_parm_modified_before_call): New function.
11579         (compute_pass_through_member_ptrs): New parameter parms_info, call
11580         is_parm_modified_before_call instead of ipa_is_param_modified.
11581         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
11582         it to compute_pass_through_member_ptrs.
11583         (ipa_compute_jump_functions): New parameter parms_info, pass it to
11584         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
11585         on the callee if it is analyzed.  Made static.
11586         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
11587         is_parm_modified_before_call instead of ipa_is_param_modified.
11588         (ipa_analyze_call_uses): New parameter parms_info, pass it to
11589         ipa_analyze_indirect_call_uses.
11590         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
11591         ipa_analyze_call_uses.
11592         (ipa_analyze_params_uses): New parameter parms_info, pass it to
11593         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
11594         (ipa_analyze_node): New function.
11595         (ipa_print_node_params): Do not dump the modified flag.
11596         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
11597         it.  Do not stream the modified parameter flag.
11598         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
11599         it.  Do not stream the modified parameter flag.
11600         * ipa-cp.c (ipcp_analyze_node): Removed.
11601         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
11602         with only a call to ipa_analyze_node.
11603         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
11604         node with only a call to ipa_analyze_node.
11605
11606 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11607
11608         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
11609
11610 2010-06-25  Jan Hubicka  <jh@suse.cz>
11611
11612         * tree-pass.h (pass_split_functions): Declare.
11613         * opts.c (decode_options): Enable function splitting at -O2
11614         * timevar.def (TV_IPA_FNSPLIT): New macro.
11615         * ipa-split.c: New file.
11616         * common.opt (-fpartial-inlining): New flag.
11617         * Makefile.in (ipa-split.o): New object file.
11618         * passes.c (init_optimization_passes): Add ipa-split.
11619         * params.def (partial-inlining-entry-probability): New parameters.
11620         * doc/invoke.texi (-fpartial-inlining): New.
11621
11622 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11623
11624         PR 44665
11625         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
11626         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
11627         (gimplify_expr): Likewise.
11628
11629 2010-06-25  Martin Jambor  <mjambor@suse.cz>
11630
11631         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
11632         statements instead of bailing out on them.
11633         (ipa_analyze_indirect_call_uses): Do not require that loads from the
11634         parameter are in the same BB as the condition.  Update comments.
11635
11636 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
11637
11638         PR middle-end/43866
11639         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
11640         true or always false, return NULL_TREE.
11641         (tree_unswitch_single_loop): Optimize conditions even when reaching
11642         max-unswitch-level parameter.  If num > 0, optimize first all conditions
11643         using entry checks, then do still reachable block discovery and consider
11644         only conditions in still reachable basic blocks in the loop.
11645
11646         PR tree-optimization/44539
11647         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
11648         the call doesn't have LHS, but has VDEF.
11649
11650 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
11651
11652         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
11653         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
11654         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
11655         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
11656         * system.h (MODIFY_TARGET_NAME): Poison.
11657
11658 2010-06-25  Alan Modra  <amodra@gmail.com>
11659
11660         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
11661         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
11662         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
11663         CMODEL_LARGE as default.
11664         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
11665         (offsettable_ok_by_alignment): Delete.
11666         (rs6000_emit_move): Remove mcmodel=medium optimization.
11667
11668 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
11669
11670         With large parts from Jim Wilson:
11671         PR target/43902
11672         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
11673         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
11674         * optabs.c (optab_for_tree_code): Likewise.
11675         (expand_widen_pattern_expr): Likewise.
11676         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
11677         out of execute_optimize_widening_mul.
11678         (convert_plusminus_to_widen): New function.
11679         (execute_optimize_widening_mul): Use the two new functions.
11680         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
11681         Remove code to generate widening multiply-accumulate.  Add support
11682         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
11683         * gimple-pretty-print.c (dump_ternary_rhs): New function.
11684         (dump_gimple_assign): Call it when appropriate.
11685         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
11686         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
11687         (expand_gimple_stmt_1): Likewise.
11688         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
11689         WIDEN_MULT_MINUS_EXPR.
11690         * tree-ssa-operands.c (get_expr_operands): Likewise.
11691         * tree-inline.c (estimate_operator_cost): Likewise.
11692         * gimple.c (extract_ops_from_tree_1): Renamed from
11693         extract_ops_from_tree.  Add new arg for a third operand; fill it.
11694         (gimple_build_assign_stat): Support operations with three operands.
11695         (gimple_build_assign_with_ops_stat): Likewise.
11696         (gimple_assign_set_rhs_from_tree): Likewise.
11697         (gimple_assign_set_rhs_with_ops_1): Renamed from
11698         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
11699         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
11700         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
11701         WIDEN_MULT_MINUS_EXPR.
11702         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
11703         (extract_ops_from_tree_1): Adjust declaration.
11704         (gimple_assign_set_rhs_with_ops_1): Likewise.
11705         (gimple_build_assign_with_ops): Pass NULL for last operand.
11706         (gimple_build_assign_with_ops3): New macro.
11707         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
11708         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
11709         functions.
11710         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
11711         (verify_gimple_assign): Call it.
11712         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
11713         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
11714         functions for dealing with three-operand statements.
11715         * tree.c (commutative_ternary_tree_code): New function.
11716         * tree.h (commutative_ternary_tree_code): Declare it.
11717         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
11718         ternary statements.
11719         (gimple_assign_nonzero_warnv_p): Likewise.
11720         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
11721         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
11722         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
11723         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
11724         (struct hashtable_expr): New member ternary in the union.
11725         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
11726         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
11727         (iterative_hash_hashable_expr): Likewise.
11728         (print_expr_hash_elt): Handle EXPR_TERNARY.
11729         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
11730         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
11731         statements.  Handle GIMPLE_TERNARY_RHS.
11732
11733 2010-06-25  Jan Hubicka  <jh@suse.cz>
11734
11735         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
11736
11737 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
11738
11739         PR c/44517
11740         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
11741         parameters are not good.
11742         (c_parser_parameter_declaration): Error unknown type name if the type
11743         name can't start declaration specifiers.
11744
11745 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
11746
11747         * gcc.c (translate_options): Don't mention +e in comment.
11748         (process_command): Don't handle +e specially.
11749
11750 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
11751
11752         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
11753
11754         * ira-build.c (merge_hard_reg_conflicts): New function.
11755         (create_cap_allocno, copy_info_to_removed_store_destinations,
11756         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
11757         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
11758         (remove_unnecessary_allocnos, remove_low_level_allocnos)
11759         copy_nifo_to_removed_store_destination): Use them.
11760         * ira-lives.c (make_hard_regno_born): New function, split out of
11761         make_regno_born.
11762         (make_allocno_born): Likewise.
11763         (make_hard_regno_dead): New function, split out of make_regno_dead.
11764         (make_allocno_dead): Likewise.
11765         (inc_register_pressure): New function, split out of set_allocno_live.
11766         (dec_register_pressure): New function, split out of clear_allocno_live.
11767         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
11768         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
11769         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
11770         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
11771         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
11772         mark_pseudo_regno_live.
11773         (process_bb_node_lives): Use mark_pseudo_regno_live,
11774         make_hard_regno_born and make_allocno_dead.
11775         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
11776         set_allocno_live, clear_allocno_live): Delete functions.
11777
11778         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
11779         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
11780         functions.
11781         (ira_flattening): Use ira_parent_allocno.
11782         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
11783         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
11784
11785         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
11786         statement.
11787
11788         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
11789         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
11790         minmax_set_iter_cond, minmax_set_iter_next,
11791         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
11792         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
11793         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
11794         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
11795         uses changed.
11796
11797         * ira-int.h (struct live_range, live_range_t): Renamed from struct
11798         ira_allocno_live_range and allocno_live_range_t; all uses changed.
11799         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
11800         All uses changed.
11801
11802 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
11803
11804         * thumb2.md (thumb2_tlobits_cbranch): Delete.
11805         (peephole2 to convert zero_extract/compare of single bit to
11806          lshift/compare): New.
11807
11808 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
11809
11810         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
11811         recursive call and call to 'int_const_binop'.
11812         (build_range_check, fold_cond_expr_with_comparison, unextend,
11813         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
11814         multiple_of_p): Adjust call to const_binop.
11815
11816 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
11817
11818         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
11819         determine size of XFmode operand.
11820         (XFmode extended DFmode push splitter): Ditto.
11821         (XFmode extended SFmode push splitter): Ditto.
11822
11823 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
11824
11825         PR target/44588
11826         * config/i386/i386.md (extract_code): New.
11827         (<u>divmodqi4): Likewise.
11828         (divmodhiqi3): Likewise.
11829         (udivmodhiqi3): Likewise.
11830         (<u>divqi3): Remvoved.
11831
11832 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
11833
11834         PR middle-end/44492
11835         * recog.h (struct recog_data): Add is_asm field.
11836         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
11837         present in constraints of inline-asm operand and memory operand
11838         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
11839         (extract_insn): Initialize recog_data.is_asm.
11840         * doc/md.texi (Constraints): Document operand side-effect rules.
11841
11842 2010-06-24  Andi Kleen  <ak@linux.intel.com>
11843
11844         * c-parser.c (c_parser_conditional_expression): Call
11845         warn_for_omitted_condop.
11846         * doc/invoke.texi: Document omitted condop warning.
11847
11848 2010-06-24  Nick Clifton<nickc@redhat.com>
11849
11850         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
11851         insn in the sequence is a jump insn before setting its label.
11852
11853 2010-06-24  Alan Modra  <amodra@gmail.com>
11854
11855         * collect2.c (main): Match exactly --version and --help.
11856
11857 2010-06-24  DJ Delorie  <dj@redhat.com>
11858
11859         * config/m32c/m32c-pragma.c: Don't include rtl.h.
11860
11861 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
11862
11863         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
11864         using X87MODEF mode iterator.
11865         (pushsf splitter): Macroize splitter using P mode iterator.
11866         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
11867         mode iterator.
11868
11869         (*movxf_internal): Rename from *movxf_integer.
11870         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
11871         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
11872         (*movdf_internal): Rename from *movdf_integer.
11873         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
11874         (*movsf_internal): Rename from *movdf_1.
11875
11876 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
11877
11878         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
11879         (const_gimple_seq_node): Removed typedefs.
11880
11881         * gimple.h (gimple_seq_node_d, gimple_seq_node)
11882         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
11883
11884 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
11885
11886         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
11887         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
11888         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
11889         and CODE_FOR_vec_extract_lo_v4df.
11890
11891         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
11892         Changed to define_insn_and_split.
11893         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
11894         (vec_extract_lo_v16hi): Likewise.
11895         (vec_extract_lo_v32qi): Likewise.
11896         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
11897         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
11898
11899 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
11900
11901         PR target/44640
11902         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
11903         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
11904         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
11905         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
11906         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
11907
11908         PR target/44640
11909         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
11910
11911         PR other/44644
11912         * df-core.c (struct df): Rename to df_d.
11913         * df.h (struct df): Likewise.
11914         * dse.h (struct df): Remove forward declaration.
11915         * recog.h (struct insn_data): Rename to:
11916         (struct_insn_data_d).  Adjusted all users.
11917
11918 2010-06-23  Arnaud Charlet  <charlet@adacore.com
11919
11920         PR ada/22220
11921         * doc/install.texi: Update requirements to build GNAT.
11922
11923 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
11924
11925         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
11926         enum type.
11927         (m68k_sched_attr_opx_type): Remove unreachable return.
11928         (m68k_sched_attr_opy_type): Likewise.
11929         (m68k_sched_attr_size): Likewise.
11930         (sched_get_opxy_mem_type): Likewise.
11931         (m68k_sched_attr_op_mem): Likewise.
11932
11933 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
11934
11935         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
11936         new statement and adjust VDEF only if necessary.  Remove superfluous
11937         call to maybe_clean_or_replace_eh_stmt.
11938         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
11939         copy the flags.
11940         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
11941         * tree-inline.c (copy_bb): ...and not there.
11942
11943 2010-06-22  Cary Coutant  <ccoutant@google.com>
11944
11945         * dwarf2out.c (is_nested_in_subprogram): New function.
11946         (should_move_die_to_comdat): Use it.
11947         (copy_ancestor_tree): Don't mark DIEs here.
11948         (copy_decls_walk): Start walk from root of newly-added tree;
11949         mark DIEs here instead.
11950
11951 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
11952
11953         * config/i386/i386.md (unit): Also check sseishft1.
11954
11955 2010-06-22  Jan Hubicka  <jh@suse.cz>
11956
11957         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
11958         enabled.
11959
11960 2010-06-22  Jan Hubicka  <jh@suse.cz>
11961
11962         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
11963         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
11964         Return true if something changed.
11965         * df.h (df_confluence_function_n): Return bool.
11966         * df-core.c (df_worklist_propagate_forward,
11967         df_worklist_propagate_backward): Track changes and ages.
11968         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
11969         track ages.
11970         * dse.c (dse_confluence_n): Return always true.
11971
11972 2010-06-22  Jan Hubicka  <jh@suse.cz>
11973
11974         * bitmap.c (bitmap_clear_bit): Micro optimize.
11975
11976 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
11977
11978         * config/i386/i386.md (SWI1248x): New mode iterator.
11979         (SWI48x): Ditto.
11980         (SWI12): Ditto.
11981         (SWI24): Ditto.
11982
11983         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
11984         SWI1248x mode iterator.
11985         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
11986         using SWI124 mode iterator.
11987         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
11988         mode iterator.
11989         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
11990         *pushdi2_prologue_rex64 using P mode iterator.
11991         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
11992         using SWI48 mode iterator.
11993         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
11994         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
11995         using SWI1248x mode iterator.
11996         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
11997         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
11998         SWI48 mode iterator.
11999         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
12000         iterator.
12001         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
12002         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
12003         SWI12 mode iterator.
12004         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
12005         SWI12 mode iterator.
12006         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
12007         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
12008         SWI24 mode iterator.
12009         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
12010         SWI48 mode iterator.
12011         (mov<mode>_insn_1): New expander.
12012         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
12013         using SWI48x mode iterator.
12014
12015         (*movoi_internal_avx): Rename from *movoi_internal.
12016         (*movti_internal_rex64): Rename from *movti_rex64.
12017         (*movti_internal_sse): Rename from *movti_sse.
12018         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
12019         (*movdi_internal): Rename from *movdi_2.
12020         (*movsi_internal): Rename from *movsi_1.
12021         (*movhi_internal): Rename from *movhi_1.
12022         (*movqi_internal): Rename from *movqi_1.
12023
12024         (insv): Update the call to gen_movsi_insv_1 for rename.
12025         * config/i386/i386.c (promote_duplicated_reg): Ditto.
12026
12027 2010-06-22  Jan Hubicka  <jh@suse.cz>
12028
12029         * passes.c (execute_function_todo): Move call of statistics_fini_pass
12030         to ...
12031         (execute_todo) ... this one.
12032
12033 2010-06-22  Alan Modra  <amodra@gmail.com>
12034
12035         PR target/44364
12036         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
12037         * caller-save.c (insert_restore, insert_save): Use non-validate
12038         form of adjust_address.
12039
12040 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12041
12042         PR target/39690
12043         * config/pa/pa.c (override_options): Disable
12044         -freorder-blocks-and-partition.
12045
12046 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
12047
12048         PR target/44615
12049         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
12050
12051         * config/i386/i386.md (type): Add sseishft1
12052
12053         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
12054         (ppro_insn_load): Likewise.
12055         (ppro_insn_store): Likewise.
12056         (ppro_insn_both): Likewise.
12057
12058         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
12059         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
12060         for type.
12061         (*vec_extractv2di_1_avx): Likewise.
12062         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
12063         type.  Remove atom_unit.
12064         (*vec_extractv2di_1_sse2): Likewise.
12065
12066 2010-06-21  DJ Delorie  <dj@redhat.com>
12067
12068         * diagnostic.h (diagnostic_classification_change_t): New.
12069         (diagnostic_context): Add history and push/pop list.
12070         (diagnostic_push_diagnostics): Declare.
12071         (diagnostic_pop_diagnostics): Declare.
12072         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
12073         from pragmas in a history chain instead of the global table.
12074         (diagnostic_push_diagnostics): New.
12075         (diagnostic_pop_diagnostics): New.
12076         (diagnostic_report_diagnostic): Scan history chain to find state
12077         of diagnostics as of the diagnostic location.
12078         * opts.c (set_option): Pass UNKNOWN_LOCATION to
12079         diagnostic_classify_diagnostic.
12080         (enable_warning_as_error): Likewise.
12081         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
12082         use in the history chain.
12083         * doc/extend.texi: Document pragma GCC diagnostic changes.
12084
12085 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
12086
12087         * dwarf2out.c (add_linkage_name): New function.  Don't add
12088         anything to DW_TAG_member DIEs.
12089         (add_name_and_src_coords_attributes): Use it.
12090         (gen_variable_die): Call it for C++ static data members if
12091         specification is DW_TAG_member.
12092
12093         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
12094         C++ char16_t and char32_t.
12095
12096         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
12097         * genattrtab.c: Include vecprim.h.
12098         (cached_attrs, cached_attr_count, attrs_seen_once,
12099         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
12100         attrs_cached_after): New variables.
12101         (find_attrs_to_cache): New function.
12102         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
12103         (write_test_expr): Add attrs_cached argument, return it too,
12104         attempt to cache non-const attributes used more than once in
12105         a single case handling.
12106         (write_attr_get): Use find_attrs_to_cache, for caching candidates
12107         emit cached_* variables.  Adjust write_attr_set callers.
12108         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
12109         to find attributes that should be cached in this block.  Adjust
12110         write_test_expr callers.
12111         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
12112         callers.
12113         (make_automaton_attrs): Adjust write_test_expr caller.
12114
12115         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
12116         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
12117         (make_automaton_attrs): If find_tune_attr returns non-NULL,
12118         write separate internal_dfa_insn_code_* and insn_default_latency_*
12119         functions for each attribute's value and emit init_sched_attrs
12120         function and function pointers.
12121         * genattr.c (const_attrs, reservations): New variables.
12122         (gen_attr): Add const attributes to const_attrs vector.
12123         (check_tune_attr, find_tune_attr): New functions.
12124         (main): Add reservations to reservations vector.  If find_tune_attr
12125         returns true, add prototype for init_sched_attrs and make
12126         internal_dfa_insn_code and insn_default_latency function pointers,
12127         otherwise define init_sched_attrs as dummy macro.
12128         * cfgexpand.c: Include insn-attr.h.
12129         (gimple_expand_cfg): Call init_sched_attrs.
12130
12131         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
12132
12133         PR target/44575
12134         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
12135         va_arg from a set of register save slots into a temporary,
12136         if the container is bigger than type size, do the copying
12137         using smaller mode or using memcpy.
12138
12139         PR bootstrap/44426
12140         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
12141         prototype.
12142         (sel_print_to_dot): Remove macro.
12143         (sel_print): Likewise.  New prototype.
12144         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
12145         (sel_print): New function.
12146
12147 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12148
12149         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
12150         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
12151
12152 2010-06-21  Nick Clifton  <nickc@redhat.com>
12153
12154         * config/rx/rx.h (PTRDIFF_TYPE): Define.
12155         (SMALL_REGISTER_CLASS): Define (to zero).
12156         (PRINT_OPERAND): Delete.
12157         (PRINT_OPERAND_ADDRESS): Delete.
12158         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
12159         (rx_print_operand_address): Delete prototype.
12160         * config/rx/rx.c (rx_print_operand): Make static.
12161         Allow %H and %L to handle CONST_DOUBLEs.
12162         (rx_print_operand_address): Make static.
12163         (rx_gen_move_template): Rename local variable 'template' to
12164         out_template.
12165         (rx_function_arg): Do not pass unknown sized objects in registers.
12166         (TARGET_PRINT_OPERAND): Define.
12167         (TARGET_PRINT_OPERAND_ADDRESS): Define.
12168
12169 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
12170
12171         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
12172
12173 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
12174
12175         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
12176         stack-alignment for simple leaf-functions.
12177
12178 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
12179
12180         * doc/install.texi: Document bootstrap-lto.
12181
12182 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
12183
12184         PR debug/44248
12185         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
12186         (input_function): Drop them here, if VTA is disabled.
12187
12188 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
12189
12190         PR target/44546
12191         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
12192         New predicate.
12193         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
12194         ix86_swapped_fp_comparsion_operator instead of
12195         ix86_fp_comparison_operator.
12196
12197         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
12198         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
12199         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
12200         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
12201         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
12202         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
12203
12204 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
12205
12206         PR other/32998
12207         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
12208         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
12209         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
12210         (decode_cmdline_option): Update for this return value.  Set
12211         orig_option_with_args_text field.  Set arg field for unknown
12212         options.  Make static.
12213         (decode_cmdline_options_to_array): New.
12214         (prune_options): Update handling of find_opt return value.
12215         * opts.c (read_cmdline_option): Take decoded option.  Return void.
12216         (read_cmdline_options): Take decoded options.
12217         (decode_options): Add parameters for decoded options.  Use
12218         decode_cmdline_options_to_array.  Use decoded options for -O
12219         scan.  Use integral_argument for -O parameters.  Update call to
12220         read_cmdline_options.
12221         (enable_warning_as_error): Update handling of find_opt return value.
12222         * opts.h: Update comment on unknown options.
12223         (struct cl_decoded_option): Update comments on opt_index and arg.
12224         Add orig_option_with_args_text.
12225         (decode_cmdline_option): Remove.
12226         (decode_cmdline_options_to_array): Declare.
12227         (decode_options): Update prototype.
12228         * toplev.c (save_argv): Remove.
12229         (save_decoded_options, save_decoded_options_count): New.
12230         (read_integral_parameter): Remove.
12231         (print_switch_values): Use decoded options.
12232         (toplev_main): Don't set save_argv.  Update call to decode_options.
12233         * toplev.h (read_integral_parameter): Remove.
12234         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
12235
12236 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
12237
12238         PR target/44072
12239         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
12240         immediate.
12241         * constraints.md (Pw, Px): New constraints.
12242         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
12243
12244 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
12245
12246         * config/i386/sse.md (fma4modesuffixf4): Removed.
12247         (ssemodesuffixf2s): Likewise.
12248         (ssemodesuffixf4): Likewise.
12249         (ssemodesuffixf2c): Likewise.
12250         (ssescalarmodesuffix2s): Likewise.
12251         (avxmodesuffixf2c): Likewise.
12252         (ssemodesuffix): New.
12253         (ssescalarmodesuffix): Likewise.
12254         Update patterns with ssemodesuffix and ssescalarmodesuffix.
12255
12256 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
12257
12258         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
12259
12260 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
12261
12262         * stor-layout.c (debug_rli): Remove unused local variables.
12263
12264 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
12265
12266         PR rtl-optimization/40900
12267         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
12268         original expression for later reuse.
12269         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
12270         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
12271
12272 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
12273
12274         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
12275         double_int_fits_in_uhwi_p): Implement as static inline.
12276         (double_int_xor): New inline function.
12277         (double_int_lrotate, double_int_rrotate, double_int_max,
12278         double_int_umax, double_int_smax, double_int_min, double_int_umin,
12279         double_int_smin): Declare.
12280         (lrotate_double, rrotate_double): Remove declaration.
12281         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
12282         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
12283         (double_int_lrotate, double_int_rrotate, double_int_max,
12284         double_int_umax, double_int_smax, double_int_min, double_int_umin,
12285         double_int_smin): New function.
12286         * fold-const.c (int_const_binop): Clean up, use double_int_*
12287         functions.
12288         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
12289         double_int_* and immed_double_int_const functions.
12290
12291 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
12292
12293         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
12294         * function.c (types_used_by_cur_var_decl): Likewise.
12295         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
12296
12297 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
12298
12299         * tree.h (record_layout_info): Change type of pending_statics field
12300         to a VEC.
12301         * stor-layout.c (start_record_layout): Store NULL into
12302         pending_statics.
12303         (debug_rli): Call debug_vec_tree instead of debug_tree.
12304         (place_field): Likewise.
12305         (finish_record_layout): Likewise.
12306
12307 2010-06-18  Alan Modra  <amodra@gmail.com>
12308
12309         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
12310
12311 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12312
12313         PR target/43740
12314         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
12315         for SET source operand from SET destination operand.
12316
12317 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
12318
12319         PR rtl-optimization/39871
12320         * reload1.c (init_eliminable_invariants): For flag_pic, disable
12321         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
12322         (function_invariant_p): Rule out a plus of frame or arg pointer with
12323         a SYMBOL_REF.
12324         * ira.c (find_reg_equiv_invariant_const): Likewise.
12325
12326 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
12327
12328         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
12329         print_operand_address and puts to output the operand for CONST.
12330
12331 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
12332
12333         PR debug/44572
12334         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
12335         hook.
12336
12337 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12338
12339         * v850-protos.h (print_operand): Delete.
12340         (print_operand_address): Delete.
12341         * v850.h (PRINT_OPERAND): Delete.
12342         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12343         (PRINT_OPERAND_ADDRESS): Delete.
12344         * v850.c (print_operand_address): Rename to...
12345         (v850_print_operand_address): ...this.  Make static. Call
12346         v850_print_operand.
12347         (print_operand): Rename to...
12348         (v850_print_operand): ...this.  Make static.  Call
12349         v850_print_operand_address.
12350         (v850_print_operand_punct_valid_p): New function.
12351         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12352         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12353
12354 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12355
12356         * config/sh/sh-protos.h (print_operand): Delete.
12357         (print_operand_address): Delete.
12358         * config/sh/sh.h (PRINT_OPERAND): Delete.
12359         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12360         (PRINT_OPERAND_ADDRESS): Delete.
12361         * config/sh/sh.c (sh_print_operand_address): Make static.
12362         (sh_print_operand): Make static.  Call sh_print_operand_address
12363         and sh_print_operand.
12364         (sh_print_operand_punct_valid_p): New function.
12365         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12366         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12367
12368 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12369
12370         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
12371         (mcore_print_operand_address): Delete.
12372         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
12373         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12374         (PRINT_OPERAND_ADDRESS): Delete.
12375         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
12376         (mcore_print_operand): Make static.
12377         (mcore_print_operand_punct_valid_p): New function.
12378         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
12379         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12380
12381 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12382
12383         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
12384         (print_operand_address): Delete.
12385         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
12386         (PRINT_OPERAND_ADDRESS): Delete.
12387         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
12388         static.
12389         (m68hc11_print_operand): Make static.
12390         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12391
12392 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12393
12394         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
12395         (m32r_print_operand_address): Delete.
12396         * config/m32r/m32r.h (m32r_punct_chars): Delete.
12397         (PRINT_OPERAND): Delete.
12398         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12399         (PRINT_OPERAND_ADDRESS): Delete.
12400         * config/m32r/m32r.c (m32r_punct_chars): Make static.
12401         (m32r_print_operand_address): Make static.
12402         (m32r_print_operand): Make static.
12403         (m32r_print_operand_punct_valid_p): New function.
12404         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
12405         (TARGET_PRINT_OPERAND_ADDRESS): Define.
12406
12407 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12408
12409         * config/iq2000/iq2000-protos.h (print_operand): Delete.
12410         (print_operand_address): Delete.
12411         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
12412         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12413         (PRINT_OPERAND_ADDRESS): Delete.
12414         (iq2000_print_operand_punct): Delete.
12415         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
12416         (iq2000_print_operand_address): Make static.
12417         (iq2000_print_operand): Make static.
12418         (iq2000_print_operand_punct_valid_p): New function.
12419         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
12420         (TARGET_PRINT_OPERAND_ADDRESS): Define.
12421
12422 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12423
12424         * config/frv/frv-protos.h (frv_print_operand): Delete.
12425         (frv_print_operand_address): Delete.
12426         * config/frv/frv.h (PRINT_OPERAND): Delete.
12427         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12428         (PRINT_OPERAND_ADDRESS): Delete.
12429         * config/frv/frv.c (frv_print_operand_address): Make static.
12430         (frv_print_operand): Make static.
12431         (frv_print_operand_punct_valid_p): New function.
12432         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
12433         (TARGET_PRINT_OPERAND_ADDRESS): Define.
12434
12435 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12436
12437         * tree.h (vec_member): Declare.
12438         * tree.c (vec_member): Define.
12439
12440 2010-06-17  Richard Guenther  <rguenther@suse.de>
12441
12442         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
12443         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
12444
12445 2010-06-17  Richard Guenther  <rguenther@suse.de>
12446
12447         * tree-inline.c (declare_return_variable): Remove bogus code.
12448
12449 2010-06-17  Richard Guenther  <rguenther@suse.de>
12450
12451         * gimplify.c (gimplify_bind_expr): Always promote complex
12452         and vector variables to registers if possible.
12453
12454 2010-06-17  Richard Guenther  <rguenther@suse.de>
12455
12456         * expr.c (get_inner_reference): Use double_int for bit_offset
12457         calculation.
12458
12459 2010-06-16  DJ Delorie  <dj@redhat.com>
12460
12461         * common.opt (-fstrict-volatile-bitfields): new.
12462         * doc/invoke.texi: Document it.
12463         * fold-const.c (optimize_bit_field_compare): For volatile
12464         bitfields, use the field's type to determine the mode, not the
12465         field's size.
12466         * expr.c (expand_assignment): Likewise.
12467         (get_inner_reference): Likewise.
12468         (expand_expr_real_1): Likewise.
12469         * expmed.c (store_fixed_bit_field): Likewise.
12470         (extract_bit_field_1): Likewise.
12471         (extract_fixed_bit_field): Likewise.
12472
12473 2010-06-16  Richard Guenther  <rguenther@suse.de>
12474
12475         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
12476
12477 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
12478
12479         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
12480         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
12481         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
12482         * debug.c: Likewise.
12483         * sdbout.c: Likewise.
12484         * vmsdbgout.c: Likewise.
12485         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
12486         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
12487         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
12488         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
12489         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
12490         * dwarf2out.c (dw_fde_struct): New fields
12491         dw_fde_vms_{end,begin}_prologue.
12492         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
12493         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
12494         (dwarf2out_vms_end_prologue): New function.
12495         (dwarf2out_vms_begin_epilogue): New function.
12496         (dw_val_struct): New value dw_val_class_vms_delta.
12497         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
12498         begin_epilogue for VMS.
12499         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
12500         new static functions.
12501         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
12502         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
12503         static functions.
12504         (print_die): New case dw_val_class_vms_delta.
12505         (attr_checksum): Likewise.
12506         (same_dw_val_p: Likewise.
12507         (size_of_die): Likewise.
12508         (value_format): Likewise.
12509         (output_die): Likewise.
12510         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
12511         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
12512         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
12513         dwarf2out_cfi_begin_epilogue
12514         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
12515
12516 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
12517
12518         * config/cris/cris-protos.h (cris_print_operand): Delete.
12519         (cris_print_operand_address): Delete.
12520         * config/cris/cris.h (PRINT_OPERAND): Delete.
12521         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12522         (PRINT_OPERAND_ADDRESS): Delete.
12523         * config/cris/cris.c (cris_print_operand_address): Make static.
12524         (cris_print_operand): Make static.
12525         (cris_print_operand_punct_valid_p): New function.
12526         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
12527         (TARGET_PRINT_OPERAND_ADDRESS): Define.
12528
12529 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
12530
12531         * config/arm/arm-protos.h (arm_print_operand): Delete.
12532         (arm_print_operand_address): Delete.
12533         * config/arm/arm.h (PRINT_OPERAND): Delete.
12534         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12535         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
12536         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
12537         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
12538         (arm_print_operand): Make static.
12539         (arm_print_operand_punct_valid_p): New function.
12540         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
12541         (TARGET_PRINT_OPERAND_ADDRESS): Define.
12542
12543 2010-06-16  Nick Clifton  <nickc@redhat.com>
12544
12545         * config/rx/constraints.md (NEGint4): New constraint.
12546         * config/rx/rx.md (attr cc): Add set_zsc.
12547         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
12548         initialised.
12549         (cmpsf): Likewise.
12550         (call_internal): Clobber the cc0 register.
12551         (call_value_internal): Likewise.
12552         (cstoresi4): Likewise.
12553         (movsieq): Likewise.
12554         (movsine): Likewise.
12555         (addsi3): Add alternative to handle small negative constants.
12556         (sunsi3): Likewise.
12557         (addsi3): Do not set the O bit in the cc0 register.
12558         (adddi3): Likewise.
12559         (subsi3): Likewise.
12560         (subdi3): Likewise.
12561         (andsi3): Reorder alternatives to prefer shorter forms.
12562         (mulsi3): Likewise.
12563         (iorsi3): Likewise.
12564         (negsi2): Note that the cc0 flags are set.
12565         (rotlsi3): Note that only the Z and S bits are set in cc0.
12566         (lshrsi3): Likewise.
12567         (ashlsi3): Likewise.
12568         (subsf3): Use %Q for the MEM operand.
12569         (fix_truncsfsi2): Likewise.
12570         (floatsisf2): Likewise.
12571         (bitset): Remove early clobber from destination.
12572         (bitset_in_memory): Likewise.
12573         (lrintsf2): Clobber the cc0 register.
12574         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
12575         (rx_print_operand): Handle %N.
12576
12577 2010-06-16  Jan Hubicka  <jh@suse.cz>
12578
12579         * df-core.c (df_compact_blocks): Free problem_temps vector.
12580
12581 2010-06-16  Martin Jambor  <mjambor@suse.cz>
12582
12583         PR tree-optimization/43905
12584         * tree-sra.c: Include tree-inline.h.
12585         (create_abstract_origin): Removed.
12586         (modify_function): Version the call graph node instead of creating
12587         abstract origins and dealing with same_body aliases.
12588         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
12589         function is versionable.
12590         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
12591
12592 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
12593
12594         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
12595         (CHOOSE_DYNAMIC_LINKER): Update.
12596
12597 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
12598
12599         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
12600         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
12601         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
12602         *prefetch_3dnow_rex.
12603
12604 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
12605
12606         * target.h (struct asm_out):Add declare_constant_name field.
12607         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
12608         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
12609         * output.h (default_asm_declare_constant_name): Declare.
12610         (assemble_label): Update prototype.
12611         * varasm.c (assemble_constant_contents): Use
12612         targetm.asm_out.declare_constant_name target hook.
12613         (assemble_label): Add 'file' argument.
12614         (default_asm_declare_constant_name): New function.
12615         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
12616         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
12617         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
12618
12619         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
12620         * config/darwin.c (darwin_asm_declare_constant_name): New function.
12621         (machopic_output_indirection): Update assemble_label argument list.
12622         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
12623         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
12624
12625 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
12626
12627         PR middle-end/44391
12628         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
12629         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
12630
12631 2010-06-15  Richard Guenther  <rguenther@suse.de>
12632
12633         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
12634
12635 2010-06-15  Paul Brook  <paul@codesourcery.com>
12636
12637         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
12638         hard-float ABI.
12639
12640 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
12641
12642         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
12643         don't get a vector type for output.
12644
12645 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
12646
12647         PR fortran/44536
12648         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
12649         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
12650         (LANG_HOOKS_DECLS): Add it.
12651         * gimplify.c (omp_notice_variable): Call
12652         lang_hooks.decls.omp_report_decl.
12653
12654 2010-06-15  Martin Jambor  <mjambor@suse.cz>
12655
12656         PR lto/44464
12657         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
12658         on the newly dead SSA name.
12659
12660 2010-06-15  Alan Modra  <amodra@gmail.com>
12661
12662         * doc/invoke.texi: Add mcmodel to powerpc options.
12663         * configure.ac: Add HAVE_LD_LARGE_TOC test.
12664         * configure: Regenerate.
12665         * config.in: Regenerate.
12666         * config/rs6000/linux64.opt (mcmodel): New.
12667         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
12668         (TARGET_CMODEL, SET_CMODEL): Define.
12669         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
12670         select CMODEL_MEDIUM default.
12671         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
12672         (TARGET_CMODEL): Define default.
12673         * config/rs6000/rs6000.c (cmodel): New variable.
12674         (rs6000_explicit_options): Add cmodel field.
12675         (rs6000_handle_option): Handle -mcmodel.
12676         (create_TOC_reference): Add largetoc_reg param.  Generate high,
12677         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
12678         (rs6000_delegitimize_address): Recognise new toc reference rtl
12679         and minimal-toc rtl.
12680         (rs6000_legitimize_reload_address): Handle new toc references.
12681         (print_operand_address): Handle legitimate_constant_pool_address_p
12682         match before lo_sum.
12683         (rs6000_eliminate_indexed_memrefs): Tidy.
12684         (rs6000_emit_move): Tweak threshold for inlining constants.
12685         Keep rs6000_emit_allocate_stack large stack frame offsets
12686         loaded into r0 inline.
12687         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
12688         (tocrel_base, tocrel_offset): New variables.
12689         (toc_relative_expr_p): Set them here.
12690         (print_operand_address): Skip over any offset on constant pool address.
12691         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
12692         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
12693         (offsettable_ok_by_alignment): New function.
12694         (rs6000_emit_move): Address suitably aligned local symbol_refs
12695         relative to the toc pointer for -mcmodel=medium.
12696         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
12697         strict param.  Allow lo_sum version of addressing.  Verify reg
12698         used for -mminimal-toc and -mcmodel != small.  Update all callers.
12699         * config/rs6000/constraints.md: Update for above change.
12700         * config/rs6000/predicates.md: Likewise.
12701         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
12702         code.
12703         (tls_gd): Split for -mcmodel=medium/large.
12704         (tls_gd_high, tls_gd_low): New.
12705         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
12706         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
12707         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
12708         (largetoc_high, largetoc_low): New.
12709         (cmptf_internal2): Add clobber.
12710         * config/rs6000/rs6000-protos.h: Update.
12711
12712 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
12713
12714         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
12715         true if no prefetch is going to be generated for a given group.
12716         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
12717         estimate the prefetch_count.
12718         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
12719         prefetch count by considering the unroll_factor and prefetch_mod
12720         for is_loop_prefetching_profitable.
12721
12722 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
12723
12724         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
12725         anything if the argument is not a MEM.
12726
12727 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
12728
12729         PR debug/43650
12730         PR debug/44181
12731         PR debug/44247
12732         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
12733         debug stmts.
12734         (canonicalize_loop_ivs): Likewise.
12735
12736 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
12737
12738         PR debug/43656
12739         * haifa-sched.c (setup_insn_reg_pressure_info,
12740         update_register_pressure): Reject debug insns.
12741         (ready_sort): Don't setup reg pressure for debug insns.
12742         (schedule_insn): Don't update reg pressure for debug insns.
12743
12744 2010-06-14  Richard Guenther  <rguenther@suse.de>
12745
12746         * lto-streamer.c (cached_bp): Remove.
12747         (bitpack_delete): Likewise.
12748         (bitpack_create): Likewise.
12749         (bp_get_next_word): Likewise.
12750         (bp_pack_value, bp_unpack_value): Move ...
12751         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
12752         Re-implement.
12753         (struct bitpack_d): Likewise.
12754         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
12755         New inline functions.
12756         * lto-streamer-out.c (lto_output_bitpack): Remove.
12757         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
12758         (pack_value_fields): Adjust.
12759         (lto_write_tree): Likewise.
12760         (output_gimple_stmt): Likewise.
12761         (output_function): Likewise.
12762         * lto-streamer-in.c (input_gimple_stmt): Adjust.
12763         (input_function): Likewise.
12764         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
12765         (lto_input_bitpack): Remove.
12766         (lto_materialize_tree): Adjust.
12767         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
12768         * lto-cgraph.c (lto_output_edge): Adjust.
12769         (lto_output_node): Likewise.
12770         (lto_output_varpool_node): Likewise.
12771         (lto_output_ref): Likewise.
12772         (input_node): Likewise.
12773         (input_varpool_node): Likewise.
12774         (input_ref): Likewise.
12775         (input_edge): Likewise.
12776         (output_node_opt_summary): Likewise.
12777         (input_node_opt_summary): Likewise.
12778         * ipa-pure-const.c (pure_const_write_summary): Likewise.
12779         (pure_const_read_summary): Likewise.
12780         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
12781         (ipa_read_indirect_edge_info): Likewise.
12782         (ipa_write_node_info): Likewise.
12783         (ipa_read_node_info): Likewise.
12784
12785 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
12786
12787         PR target/44534
12788         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
12789         (vec_extract_lo_v16hi): Likewise.
12790         (vec_extract_lo_v32qi): Likewise.
12791
12792 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
12793
12794         PR bootstrap/44426
12795         * tree.h (build_call_expr): Don't define as vararg macro, instead
12796         add a prototype.
12797         * builtins.c (build_call_nofold): Remove.
12798         (expand_builtin_int_roundingfn, expand_builtin_pow,
12799         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
12800         expand_builtin_memset_args, expand_builtin_strcmp,
12801         expand_builtin_strncmp, expand_builtin_memory_chk): Use
12802         build_call_nofold_loc instead of build_call_nofold.
12803         (build_call_expr): New function.
12804
12805         PR tree-optimization/44508
12806         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
12807         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
12808         don't eliminate trivially dead stmts.
12809         * tree-vrp.c (vrp_finalize): Pass false as last argument
12810         to substitute_and_fold.
12811         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
12812         to substitute_and_fold.
12813         * tree-ssa-ccp.c (ccp_finalize): Likewise.
12814
12815         PR bootstrap/44509
12816         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
12817
12818 2010-06-14  Ira Rosen  <irar@il.ibm.com>
12819
12820         PR tree-optimization/44507
12821         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
12822         to build initial vector for BIT_AND_EXPR.
12823         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
12824
12825 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
12826
12827         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
12828         adjust z10prop set_attr.
12829
12830 2010-06-13  Jan Hubicka  <jh@suse.cz>
12831
12832         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
12833         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
12834         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
12835         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
12836         datastructure checks into checking asserts.
12837         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
12838         * tree-ssa-sccvn.c (VN_INFO): Likewise.
12839         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
12840         df_ref_create_structure): Likewise.
12841         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
12842         pool_free): Use gcc_checking_assert.
12843         * alias.c (get_alias_set): Likewise.
12844         * var-tracking.c (variable_htab_free, shared_hash_copy,
12845         canonicalize_values_mark, variable_merge_over_cur): Likewise.
12846         * lto-streamer.c (bp_unpack_value): Likewise.
12847
12848 2010-06-13  Richard Guenther  <rguenther@suse.de>
12849
12850         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
12851         Do not stream but initialize TYPE_CANONICAL to NULL.
12852         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
12853         * gimple.c (gimple_types_compatible_p): Disregard
12854         TYPE_STRUCTURAL_EQUALITY_P.
12855         (gimple_register_type): Use TYPE_CANONICAL as cache.
12856         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
12857         before registering common types.
12858         * config/i386/i386.c (ix86_function_arg_boundary): Do not
12859         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
12860         * tree.h (TYPE_CANONICAL): Clarify documentation.
12861
12862 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
12863
12864         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
12865         LIBCALL_VALUE): Remove macros.
12866         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
12867         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12868         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12869         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
12870         (ia64_function_value): Make static. Handle receiving the function
12871         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
12872
12873 2010-06-12  Jan Hubicka  <jh@suse.cz>
12874
12875         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
12876         at correct place.
12877
12878 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
12879
12880         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
12881
12882 2010-06-12  Jan Hubicka  <jh@suse.cz>
12883
12884         * df-core.c (df_clear_bb_info): New function.
12885         (df_set_blocks): bb_info is always allocated.
12886         (df_get_bb_info): Use block_info_elt_size.
12887         (df_set_bb_info): Likewise.
12888         (df_compact_blocks): Update for new block_info.
12889         (grow_bb_info): New function.
12890         * df-problems.c (df_grow_bb_info): Move to df-core.c
12891         (df_rd_set_bb_info): Remove.
12892         (df_rd_free_bb_info): Do not free block pool.
12893         (df_rd_alloc): Do not create pool, use check for
12894         obstack presence instead of NULL pointer for new blocks.
12895         (df_rd_free): DO not free alloc pool; clear block_info.
12896         (problem_RD): Add size of block info structure.
12897         (df_lr_set_bb_info): Remove.
12898         (df_lr_free_bb_info): Do not free block pool.
12899         (df_lr_alloc): Do not create pool, use check for
12900         obstack presence instead of NULL pointer for new blocks.
12901         (df_lr_free): DO not free alloc pool; clear block_info.
12902         (problem_LR): Add size of block info structure.
12903         (df_live_set_bb_info): Remove.
12904         (df_live_free_bb_info): Do not free block pool.
12905         (df_live_alloc): Do not create pool, use check for
12906         obstack presence instead of NULL pointer for new blocks.
12907         (df_live_free): DO not free alloc pool; clear block_info.
12908         (problem_LIVE): Add size of block info structure.
12909         (problem_CHAIN): Add size of block info structure.
12910         (df_byte_lr_set_bb_info): Remove.
12911         (df_byte_lr_free_bb_info): Do not free block pool.
12912         (df_byte_lr_alloc): Do not create pool, use check for
12913         obstack presence instead of NULL pointer for new blocks.
12914         (df_byte_lr_free): DO not free alloc pool; clear block_info.
12915         (problem_BYTE_LR): Add size of block info structure.
12916         (problem_NOTE): Add size of block info structure.
12917         (df_byte_MD_set_bb_info): Remove.
12918         (df_byte_MD_free_bb_info): Do not free block pool.
12919         (df_byte_MD_alloc): Do not create pool, use check for
12920         obstack presence instead of NULL pointer for new blocks.
12921         (df_byte_MD_free): DO not free alloc pool; clear block_info.
12922         (problem_BD): Add size of block info structure.
12923         * df-scan.c (df_scan_free_internal): Free block pool.
12924         (df_scan_set_bb_info): Remove.
12925         (df_scan_free_bb_info): Check for artificial_defs instead
12926         of bb_info being non-NULL.
12927         (df_scan_alloc): DO not create df_scan_block pool.
12928         (problem_SCAN): Set size of block info.
12929         (df_bb_refs_record): Do not allocate bb_info.
12930         * df.h (df_problem): Add block_info_elt_size.
12931         (struct dataflow): Change block_info to void *.
12932         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
12933         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
12934         in-line structures.
12935
12936 2010-06-12  Jan Hubicka  <jh@suse.cz>
12937
12938         PR tree-optimize/44485
12939         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
12940         containing use of return value of noreturn function.
12941
12942 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
12943
12944         * targhooks.c (default_function_value): Don't use
12945         FUNCTION_OUTGOING_VALUE.
12946         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
12947         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
12948
12949 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
12950
12951         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
12952         Add crtfastmath.o to extra_parts.
12953         * config/mips/crtfastmath.c: New.
12954         * config/mips/linux.h (ENDFILE_SPEC): New.
12955
12956 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
12957
12958         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
12959         old_type in parameter.
12960         (gcc_type_for_value): Update call to gcc_type_for_interval.
12961         (compute_type_for_level_1): Renamed compute_type_for_level.
12962         Update call to gcc_type_for_interval.
12963
12964 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
12965
12966         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
12967         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
12968
12969 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
12970
12971         * opts-common.c: Include options.h.
12972         (integral_argument): Move from opts.c.
12973         (decode_cmdline_option): New.  Based on read_cmdline_option.
12974         * opts.c (integral_argument): Move to opts-common.c.
12975         (read_cmdline_option): Move most contents to
12976         decode_cmdline_option.  Use %qs in diagnostics.
12977         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
12978         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
12979         decode_cmdline_option): New.
12980
12981 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
12982
12983         PR target/44481
12984         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
12985         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
12986         (partiysi2_cmp): Ditto.
12987         (*partiyhi2_cmp): Ditto.
12988         (*parityqi2_cmp): Remove.
12989
12990 2010-06-11  Jan Hubicka  <jh@suse.cz>
12991
12992         * bitmap.h (bmp_iter_next_bit): New.
12993         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
12994
12995 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
12996             Eric Botcazou  <ebotcazou@adacore.com>
12997
12998         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
12999         computed cost.
13000
13001 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
13002
13003         * config/i386/i386.md (unspec): New define_c_enum.
13004         (unspecv): Ditto.
13005
13006 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
13007
13008         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
13009
13010 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
13011
13012         PR middle-end/44483
13013         * tree-if-conv.c (bb_predicate_s): New struct.
13014         (bb_predicate_p): New.
13015         (bb_has_predicate): New.
13016         (bb_predicate): New.
13017         (set_bb_predicate): New.
13018         (bb_predicate_gimplified_stmts): New.
13019         (set_bb_predicate_gimplified_stmts): New.
13020         (add_bb_predicate_gimplified_stmts): New.
13021         (init_bb_predicate): New.
13022         (free_bb_predicate): New.
13023         (is_predicated): Use bb_predicate.
13024         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
13025         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
13026         before processing their successors.
13027         (clean_predicate_lists): Removed.
13028         (find_phi_replacement_condition): Use bb_predicate.
13029         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
13030         computations.
13031         (insert_gimplified_predicates): New.
13032         (combine_blocks): Call insert_gimplified_predicates.
13033         (tree_if_conversion): Call free_bb_predicate instead of
13034         clean_predicate_lists.
13035
13036 2010-10-11  Paul Brook  <paul@codesourcery.com>
13037
13038         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
13039         * config/arm/arm.c (all_architectures): Change v7e-m default to
13040         cortexm4.
13041         * config/arm/arm-cores.def: Add cortex-m4.
13042         * config/arm/arm-tune.md: Regenerate.
13043
13044 2010-06-11  Jan Hubicka  <jh@suse.cz>
13045
13046         * ipa-pure-const.c (special_builtlin_state): New function.
13047         (check_call): Use it instead of special casign BUILT_IN_RETURN.
13048         (propagate_pure_const): Use it.
13049
13050 2010-06-11  Jan Hubicka  <jh@suse.cz>
13051
13052         * df-problems.c (df_live_scratch): Convert to bitmap_head.
13053         (df_live_alloc): Initialize df_live_scratch when initializing
13054         problem_data.
13055         (df_live_transfer_function): Update uses of df_live_scratch.
13056         (df_live_free): Free problem_data; clear df_live_scratch before
13057         releasing the obstack.
13058         (df_md_free): Free problem data.
13059
13060 2010-06-11  Jan Hubicka  <jh@suse.cz>
13061
13062         * doc/invoke.texi (Wsuggest-attribute): Document.
13063         (Wmissing-noreturn): Remove.
13064         * ipa-pure-const.c (warn_function_noreturn): New function.
13065         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
13066         warn_missing_noreturn.
13067         * common.opt (Wsuggest-attribute=noreturn): New.
13068         * tree-flow.h (warn_function_noreturn): Declare.
13069         * tree-cfg.c (execute_warn_function_noreturn): Use
13070         warn_function_noreturn.
13071         (gate_warn_function_noreturn): New.
13072         (pass_warn_function_noreturn): Update.
13073
13074 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13075
13076         * c-typeck.c (handle_warn_cast_qual): Add loc
13077         parameter. Improve warning message.
13078         (build_c_cast): Pass location to handle_warn_cast_qual.
13079
13080 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
13081
13082         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
13083         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
13084         insn mnemonic.
13085         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
13086
13087 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
13088
13089         Fix bootstap on mips
13090         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
13091         be naming typedefs.
13092
13093 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
13094
13095         * system.h (helper_const_non_const_cast): New inline for
13096         gcc version <= 4.0.
13097         (CONST_CAST2): For gcc version <= 4.0 use
13098         new helper to do const/non-const casting.
13099
13100 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13101
13102         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
13103         * Makefile.in (OBJS-common): Include insn-enums.o.
13104         (insn-enums.o): New rule.
13105         (simple_generated_c): Add insn-enums.c.
13106         (build/genenums.o): New rule.
13107         (genprogmd): Add "enums".
13108         * genconstants.c (print_enum_type): Declare a C string array
13109         for each enum.
13110         * genenums.c: New file.
13111         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
13112         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
13113         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
13114
13115 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13116
13117         * doc/md.texi (define_enum_attr): Document.
13118         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
13119         * read-md.h (lookup_enum_type): Declare.
13120         * read-md.c (lookup_enum_type): New function.
13121         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
13122         * genattrtab.c (attr_desc): Add an enum_name field.
13123         (evaluate_eq_attr): Take the associated attribute as argument.
13124         Get the enum prefix from the enum_name field, if defined.
13125         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
13126         (simplify_test_exp): Pass attr to evaluate_eq_attr.
13127         (add_attr_value): New function, split out from...
13128         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
13129         (write_test_expr): Pass attr to evaluate_eq_attr.
13130         (write_attr_get): Use the enum_name as the enum tag, if defined.
13131         (write_attr_valueq): Use the enum_name as a prefix, if defined.
13132         (find_attr): Initialize enum_name.
13133         (main): Handle DEFINE_ENUM_ATTR.
13134         * gensupport.c (process_rtx): Likewise.
13135         * config/mips/mips.h (mips_tune_attr): Delete.
13136         * config/mips/mips.md (cpu): Use define_attr_enum.
13137
13138 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13139
13140         * doc/md.texi (define_c_enum, define_enum): Document.
13141         * read-md.h (md_constant): Add a parent_enum field.
13142         (enum_value, enum_type): New structures.
13143         (upcase_string, traverse_enum_types): Declare.
13144         * read-md.c (enum_types): New variable.
13145         (upcase_string, add_constant): New functions.
13146         (handle_constants): Don't create the hash table here.
13147         Use add_constant.
13148         (traverse_md_constants): Don't check for a null md_constants.
13149         (decimal_string, handle_enum, traverse_enum_types): New functions.
13150         (read_md_files): Initialize md_constants and md_enums.
13151         * genconstants.c (print_md_constant): Ignore info argument.
13152         Only print constants that belong to no enum.
13153         (print_enum_type): New function.
13154         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
13155         for each defined enum type.
13156         * config/mips/mips.md (processor): New define_enum.
13157         (unspec): New define_c_enum.
13158         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
13159         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
13160         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
13161         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
13162         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
13163         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
13164         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
13165         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
13166         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
13167         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
13168         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
13169         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
13170         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
13171         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
13172         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
13173         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
13174         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
13175         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
13176         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
13177         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
13178         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
13179         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
13180         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
13181         (UNSPEC_RDDSP): Move to mips-dsp.md.
13182         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
13183         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
13184         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
13185         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
13186         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
13187         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
13188         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
13189         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
13190         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
13191         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
13192         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
13193         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
13194         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
13195         Moved to mips-dspr2.md.
13196         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
13197         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
13198         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
13199         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
13200         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
13201         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
13202         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
13203         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
13204         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
13205         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
13206         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
13207         UNSPEC_LOONGSON_PSADBH)
13208         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
13209         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
13210         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
13211         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
13212         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
13213         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
13214         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
13215         (cpu): Update comment.
13216         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
13217         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
13218         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
13219         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
13220         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
13221         UNSPEC_LOONGSON_PCMPEQ)
13222         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
13223         UNSPEC_LOONGSON_PINSR_0)
13224         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
13225         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
13226         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
13227         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
13228         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
13229         UNSPEC_LOONGSON_PSADBH)
13230         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
13231         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
13232         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
13233         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
13234         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
13235         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
13236         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
13237         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
13238         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
13239         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
13240         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
13241         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
13242         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
13243         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
13244         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
13245         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
13246         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
13247         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
13248         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
13249         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
13250         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
13251         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
13252         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
13253         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
13254         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
13255         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
13256         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
13257         (UNSPEC_RDDSP): Moved from mips.md.
13258         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
13259         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
13260         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
13261         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
13262         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
13263         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
13264         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
13265         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
13266         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
13267         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
13268         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
13269         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
13270         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
13271         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
13272         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
13273         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
13274         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
13275         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
13276         (UNSPEC_SCC): Moved from mips.md.
13277         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
13278         "processor_type" to "processor".
13279         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
13280         * config/mips/mips.h (processor_type): Delete.
13281         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
13282         "processor_type" to "processor".
13283
13284 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13285
13286         * configure.ac (tm_include_list): Add insn-constants.h.
13287         * configure: Regenerate.
13288         * Makefile.in (GTM_H): Move insn-constants.h here from...
13289         (TM_H): ...here.
13290         * mkconfig.sh: Remove special handling for insn-constants.h.
13291
13292 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13293
13294         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
13295         (BUILD_MD): ...this new variable.
13296         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
13297         that include the old contents of simple_generated_h and
13298         simple_generated_c.
13299         (simple_generated_h, simple_generated_c): Include them.  Add
13300         insn-constants.h.
13301         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
13302         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
13303         Remove these dependencies from the main rule and include
13304         insn-conditions.md in the command line only if it appears
13305         in the dependency list.
13306         (insn-constants.h, s-constants): Delete.
13307         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
13308         or gensupport.h.
13309         (build/genmddeps.o): Likewise.
13310         (genprogrtl): New variable that contains everything from genprogmd
13311         except mddeps and constants.
13312         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
13313         depend on $(BUILD_MD)
13314         (genprog): New variable.  Make these programs depend on
13315         $(BUILD_ERRORS).
13316         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
13317         (main): Use read_md_files instead of init_rtx_reader_args.
13318         * genconstants.c: As for genmddeps.c.
13319         * read-md.h (read_skip_construct): Declare.
13320         * read-md.c (read_skip_construct): New function.
13321         (handle_file): Allow a null handle_directive, skipping the
13322         construct if so.
13323         (parse_include): Update the comment accordingly.
13324
13325 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13326
13327         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
13328         * genmddeps.c: Include read-md.h.
13329         (main): Call init_rtx_reader_args instead of init_md_reader_args.
13330         * genattr.c (main): Likewise.
13331         * genattrtab.c (main): Likewise.
13332         * genautomata.c (main): Likewise.
13333         * gencodes.c (main): Likewise.
13334         * genconditions.c (main): Likewise.
13335         * genconfig.c (main): Likewise.
13336         * genconstants.c (main): Likewise.
13337         * genemit.c (main): Likewise.
13338         * genextract.c (main): Likewise.
13339         * genflags.c (main): Likewise.
13340         * genopinit.c (main): Likewise.
13341         * genoutput.c (main): Likewise.
13342         * genpeep.c (main): Likewise.
13343         * genrecog.c (main): Likewise.
13344         * genpreds.c (main): Likewise.
13345         * gensupport.h (in_fname): Move to read-md.h.
13346         (init_md_reader_args_cb): Rename to...
13347         (init_rtx_reader_args_cb): ...this and return a bool.
13348         (init_md_reader_args): Rename to...
13349         (init_rtx_reader_args): ...this and return a bool.
13350         (include_callback): Move to read-md.h.
13351         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
13352         (file_name_list, first_dir_md_include): Move to read-md.c
13353         (first_bracket_include): Delete unused variable.
13354         (last_dir_md_include): Move to read-md.c.
13355         (process_include): Delete, moving code to read-md.c:handle_include.
13356         (process_rtx): Don't handle INCLUDE.
13357         (save_string): Delete.
13358         (rtx_handle_directive): New function.
13359         (init_md_reader_args_cb): Rename to...
13360         (init_rtx_reader_args_cb): ...this and return a boolean success value.
13361         Use read_md_args.
13362         (init_md_reader_args): Rename to...
13363         (init_rtx_reader_args): ...this and return a boolean success value.
13364         * rtl.def (INCLUDE): Delete.
13365         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
13366         argument.
13367         * read-rtl.c (read_conditions): Don't gobble ')' here.
13368         (read_mapping): Likewise.
13369         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
13370         Handle top-level non-rtx constructs here rather than in read_rtx_1.
13371         Store the whole queue in *X.  Remove call to init_md_reader.
13372         (read_rtx_1): Rename to...
13373         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
13374         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
13375         here.
13376         (read_nested_rtx): New function.  Handle (nil) here rather than
13377         in read_rtx_code.
13378         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
13379         gobble ')' here.
13380         * read-md.h (directive_handler_t): New type.
13381         (in_fname, include_callback): Moved from read-md.h.
13382         (read_constants, init_md_reader): Delete.
13383         (read_md_files): Declare.
13384         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
13385         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
13386         from gensupport.c.
13387         (read_constants): Rename to...
13388         (handle_constants): ...this.  Don't gobble ')' here.
13389         (handle_include, handle_file, handle_toplevel_file)
13390         (parse_include): New functions, mostly taken from gensupport.c.
13391         (init_md_reader): Subsume into...
13392         (read_md_files): ...this new function.
13393
13394 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13395
13396         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
13397         (unread_char): Decrement read_md_lineno after putting back '\n'.
13398         * read-md.c (fatal_with_file_and_line): Push back any characters
13399         that we decide not to add to the context.
13400         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
13401         fatal_expected_char in cases where '/' ends a line (for example).
13402         (read_name): Don't increment read_md_lineno here.
13403         (read_escape): Likewise.
13404         (read_quoted_string): Likewise.
13405         (read_braced_string): Likewise.
13406
13407 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13408
13409         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
13410         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
13411         * genconstants.c: Include read-md.h.
13412         * read-rtl.c (md_constants): Move to read-md.c.
13413         (md_name): Move to read-md.h.
13414         (initialize_iterators): Use leading_string_hash instead of def_hash
13415         and leading_string_eq_p instead of def_name_eq_p.
13416         (read_name): Move to read-md.c.
13417         (def_hash, def_name_eq_p): Delete.
13418         (read_constants, traverse_md_constants): Move to read-md.c.
13419         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
13420         * read-md.h: Include hashtab.h.
13421         (md_name): Moved from read-rtl.c.
13422         (md_constant): Moved from read-md.h.
13423         (leading_string_hash, leading_string_eq_p, read_name)
13424         (read_constants, traverse_md_constants): Declare.
13425         * read-md.c (md_constants): Moved from read-rtl.c.
13426         (leading_string_hash, leading_string_eq_p): New functions.
13427         (read_name, read_constants, traverse_md_constants): Moved from
13428         read-rtl.c.
13429
13430 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13431
13432         * read-rtl.c (md_name): New structure.
13433         (read_name): Take an md_name instead of a buffer pointer.
13434         Use the "string" field instead of strcpy when expanding constants.
13435         (read_constants): Remove the tmp_char argument.  Update the calls
13436         to read_name, using two local name buffers instead of the tmp_char
13437         argument.  Merge the constant-creation code.
13438         (read_conditions): Remove the tmp_char argument.  Update the calls
13439         to read_name, using a local name buffer instead of the tmp_char
13440         argument.
13441         (read_mapping): Replace tmp_char variable with a local name buffer.
13442         Update the calls to read_name.
13443         (read_rtx_1): Likewise.  Update the calls to read_constants and
13444         read_conditions.
13445
13446 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13447
13448         * Makefile.in (build/read-md.o): Depend on errors.h.
13449         * read-md.h (error_with_line): Declare.
13450         * read-md.c: Include errors.h.
13451         (message_with_line_1): New function, extracted from...
13452         (message_with_line): ...here.
13453         (error_with_line): New function.
13454         * genattrtab.c: If a call to message_with_line is followed by
13455         "have_error = 1;", replace both statements with a call to
13456         error_with_line.
13457         * genoutput.c: Likewise.
13458         * genpreds.c: Likewise.
13459         * genrecog.c: If a call to message_with_line is followed by
13460         "error_count++;", replace both statements with a call to
13461         error_with_line.
13462         (errorcount): Delete.
13463         (main): Don't check it.
13464         * gensupport.c: If a call to message_with_line is followed by
13465         "errors = 1;", replace both statements with a call to error_with_line.
13466         (errors): Delete.
13467         (process_define_cond_exec): Check have_error instead of errors.
13468         (init_md_reader_args_cb): Likewise.  Don't set errors.
13469
13470 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13471
13472         * read-md.h (read_md_file): Declare.
13473         (read_char, unread_char): New functions.
13474         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
13475         (read_quoted_string, read_string): Remove FILE * argument.
13476         * read-md.c (read_md_file): New variable.
13477         (read_md_filename, read_md_lineno): Update comments and remove
13478         unnecessary initialization.
13479         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
13480         (read_escape, read_quoted_string, read_braced_string, read_string):
13481         Remove FILE * argument.  Update calls accordingly, using read_char
13482         and unread_char instead of getc and ungetc.
13483         * rtl.h (read_rtx): Remove FILE * argument.
13484         * read-rtl.c (iterator_group): Remove FILE * argument from
13485         "find_builtin".
13486         (iterator_traverse_data): Remove "infile" field.
13487         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
13488         (add_mapping, read_name, read_constants, read_conditions)
13489         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
13490         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
13491         Remove file arguments from all calls, using read_char and unread_char
13492         instead of getc and ungetc.
13493         * gensupport.c (process_include): Preserve read_md_file around
13494         the include.  Set read_md_file to the handle of the included file.
13495         Update call to read_rtx.
13496         (init_md_reader_args_cb): Set read_md_file to the handle of the file
13497         and remove local FILE *.  Update calls to read_rtx.
13498
13499 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13500
13501         * read-md.h (read_rtx_lineno): Rename to...
13502         (read_md_lineno): ...this.
13503         (read_rtx_filename): Rename to...
13504         (read_md_filename): ...this.
13505         (copy_rtx_ptr_loc): Rename to...
13506         (copy_md_ptr_loc): ...this.
13507         (print_rtx_ptr_loc): Rename to...
13508         (print_md_ptr_loc): ...this.
13509         * read-md.c: Likewise.  Update references after renaming.
13510         (string_obstack): Replace RTL with MD in comment.
13511         (set_rtx_ptr_loc): Rename to...
13512         (set_md_ptr_loc): ...this.
13513         (get_rtx_ptr_loc): Rename to...
13514         (get_md_ptr_loc): ...this.
13515         * genconditions.c: Update references after renaming.
13516         * genemit.c: Likewise.
13517         * genoutput.c: Likewise.
13518         * genpreds.c: Likewise.
13519         * gensupport.c: Likewise.
13520         * read-rtl.c: Likewise.
13521
13522 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13523
13524         * Makefile.in (READ_MD_H): New variable.
13525         (BUILD_RTL): Add build/read-md.o.
13526         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
13527         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
13528         (build/genattrtab.o, build/genconditions.o build/genemit.o)
13529         (build/genextract.o, build/genflags.o, build/genoutput.o)
13530         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
13531         (build/read-md.o): New rule.
13532         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
13533         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
13534         * coretypes.h: ...here.
13535         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
13536         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
13537         * genattr.c: Include read-md.h.
13538         * genattrtab.c: Likewise.
13539         * genconditions.c: Likewise.
13540         * genemit.c: Likewise.
13541         * genextract.c: Likewise.
13542         * genflags.c: Likewise.
13543         * genoutput.c: Likewise.
13544         * genpreds.c: Likewise.
13545         * genrecog.c: Likewise.
13546         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
13547         (join_c_conditions, print_c_condition, read_rtx_filename)
13548         (read_rtx_lineno): Move to read-md.h.
13549         * read-rtl.c: Include read-md.h.
13550         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
13551         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
13552         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
13553         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
13554         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
13555         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
13556         (read_braced_string, read_string): Move to read-md.c.
13557         (read_rtx): Move some initialization to init_md_reader and call
13558         init_md_reader here.
13559         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
13560         Move to read-md.h.
13561         * gensupport.c: Include read-md.h.
13562         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
13563         * read-md.h, read-md.c: New files.
13564
13565 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
13566
13567         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
13568         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13569         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
13570         * config/moxie/moxie.c (moxie_function_value): Make static.
13571         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
13572         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
13573
13574 2010-06-10  Martin Jambor  <mjambor@suse.cz>
13575
13576         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
13577         * dbgcnt.def (tree_sra): New counter.
13578         * tree-sra.c: Include dbgcnt.h.
13579         (gate_intra_sra): Check tree_sra debug counter.
13580
13581 2010-06-10  Martin Jambor  <mjambor@suse.cz>
13582
13583         PR tree-optimization/44258
13584         * tree-sra.c (build_access_subtree): Return false iff there is a
13585         partial overlap.
13586         (build_access_trees): Likewise.
13587         (analyze_all_variable_accesses): Disqualify candidates if
13588         build_access_trees returns true for them.
13589
13590 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
13591
13592         PR debug/41371
13593         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
13594         tail-recurse into canonical node.  Fast-forward over
13595         non-canonical VALUEs.
13596
13597 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
13598
13599         PR boostrap/44470
13600         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
13601         (*addsi_1_zext) <TYPE_LEA>: Likewise.
13602         (add lea splitter): Likewise.
13603         (add_zext lea splitter): Likewise.
13604
13605 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
13606
13607         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
13608
13609 2010-06-10  Jan Hubicka  <jh@suse.cz>
13610
13611         * df-problems.c (df_live_problem_data): Add live_bitmaps.
13612         (df_live_alloc): Initialize problem data and live_osbtacks.
13613         (df_live_finalize): Remove obstack, problem data; do not
13614         clear all bitmaps.
13615         (df_live_top_dump, df_live_bottom_dump): Do not dump old
13616         data when not allocated.
13617         (df_live_verify_solution_start): Do not allocate problem data.
13618         (df_live_verify_solution_end): Check if out is allocated.
13619         (struct df_md_problem_data): New structure.
13620         (df_md_alloc): Allocate problem data.
13621         (df_md_free): Free problem data; do not clear bitmaps.
13622
13623 2010-06-10  Jan Beulich  <jbeulich@novell.com>
13624
13625         PR bootstrap/37304
13626         * configure.ac: Replace $() with ${} when intending to expand
13627         variables rather than invoking commands.
13628         * configure: Re-generate.
13629
13630 2010-06-10  Jan Hubicka  <jh@suse.cz>
13631
13632         PR rtl-optimization/44460
13633         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
13634         TYPE_NEEDS_CONSTRUCTING sanity check.
13635
13636 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
13637
13638         * doc/include/fdl.texi: Move to GFDL version 1.3.
13639
13640         * doc/cpp.texi: Move to GFDL version 1.3.
13641         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
13642         * doc/gccint.texi: Move to GFDL version 1.3.
13643         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
13644         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
13645         * doc/invoke.texi: Move to GFDL version 1.3.
13646
13647 2010-06-09  Jan Hubicka  <jh@suse.cz>
13648
13649         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
13650         Break out from ...
13651         (propagate) ... here; swap the order.
13652
13653 2010-06-09  Jan Hubicka  <jh@suse.cz>
13654
13655         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
13656         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
13657         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
13658         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
13659
13660 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
13661
13662         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
13663         Do not the gather memory reference in the outer loop if the step
13664         is not a constant.
13665
13666 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
13667
13668         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
13669         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
13670         8 to 4.  Minor change of the related comments.
13671
13672 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
13673
13674         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
13675         the scev analysis when the variable is not used outside the loop
13676         in a close phi node: call compute_overall_effect_of_inner_loop.
13677
13678 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
13679
13680         * graphite-sese-to-poly.c (single_pred_cond): Renamed
13681         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
13682         (build_sese_conditions_before): Renamed call to single_pred_cond.
13683         (build_sese_conditions_after): Same.
13684
13685 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
13686
13687         * graphite-poly.h: Fix comments and indentation.
13688         * graphite-sese-to-poly.c: Same.
13689         (build_sese_conditions_before): Compute stmt and gbb only when needed.
13690         * tree-chrec.c: Fix comments and indentation.
13691         (tree-ssa-loop-niter.c): Same.
13692
13693 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
13694
13695         PR rtl-optimization/42461
13696         * dce.c (deletable_insn_p): Return true for const or pure calls again.
13697         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
13698
13699 2010-06-09  Jan Hubicka  <jh@suse.cz>
13700
13701         * bitmap.c (bitmap_and): Walk array forward.
13702         (bitmap_and_compl_into): Likewise.
13703         (bitmap_xor): Likewise.
13704         (bitmap_xor_into):  Likewise.
13705         (bitmap_equal_p): Likewise.
13706         (bitmap_intersect_p): Likewise.
13707         (bitmap_intersect_compl_p): Likewise.
13708         (bitmap_ior_and_into): Likewise.
13709         (bitmap_elt_copy): Likewise.
13710         (bitmap_and_compl): Likewise.
13711         (bitmap_elt_ior): Likewise.
13712
13713 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
13714
13715         * opts-common.c (prune_options): Ensure replacement argv array
13716         is correctly terminated by a NULL entry.
13717
13718 2010-06-09  Jan Hubicka  <jh@suse.cz>
13719
13720         * cgraph.h (varpool_first_static_initializer,
13721         varpool_next_static_initializer): Make checking only when
13722         checking enabled.
13723         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
13724         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
13725         gcc_assert to gcc_checking_assert.
13726         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
13727         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
13728         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
13729         op_iter_init_phiuse, op_iter_init_phidef,
13730         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
13731         gcc_checking_assert.
13732         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
13733         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
13734         partition_is_global, live_on_entry, live_on_exit,
13735         live_merge_and_clear): Likewise.
13736         * system.h (gcc_checking_assert): New macro.
13737         * gimple.h (set_bb_seq): Use gcc_checking_assert.
13738
13739 2010-06-09  Jason Merrill  <jason@redhat.com>
13740
13741         * Makefile.in (TAGS): Collect tags info from c-family.
13742
13743 2010-06-09  Jan Hubicka  <jh@suse.cz>
13744
13745         * gimple.h (gcc_gimple_checking_assert): New macro.
13746         (gimple_set_def_ops, gimple_set_use_ops,
13747         gimple_set_vuse, gimple_set_vdef,
13748         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
13749         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
13750         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
13751         gimple_asm_output_op, gimple_asm_output_op_ptr,
13752         gimple_asm_set_output_op, gimple_asm_clobber_op,
13753         gimple_asm_set_clobber_op, gimple_asm_label_op,
13754         gimple_asm_set_label_op, gimple_try_set_kind,
13755         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
13756         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
13757         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
13758         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
13759         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
13760         gimple_omp_for_set_initial, gimple_omp_for_final,
13761         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
13762         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
13763         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
13764         conditional with ENABLE_GIMPLE_CHECKING.
13765         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
13766
13767 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
13768
13769         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
13770         (get_computation_cost_at): Use it.
13771         (determine_use_iv_cost_condition): Likewise.
13772         (determine_iv_cost): Likewise.
13773
13774 2010-06-09  Richard Guenther  <rguenther@suse.de>
13775
13776         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
13777         replace constants.
13778
13779 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
13780
13781         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
13782
13783 2010-06-09  Martin Jambor  <mjambor@suse.cz>
13784
13785         PR tree-optimization/44423
13786         * tree-sra.c (dump_access): Dump also grp_assignment_read.
13787         (analyze_access_subtree): Pass negative allow_replacements to children
13788         if the current type is scalar.
13789
13790 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
13791
13792         PR testsuite/42843
13793         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
13794         * doc/plugins.texi (Plugin license check): Update information
13795         on type of plugin_is_GPL_compatible.
13796         * Makefile.in (PLUGINCC): Define as $(COMPILER).
13797         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
13798
13799 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
13800
13801         * config/arm/arm.c (thumb2_reorg): New function.
13802         (arm_reorg): Call it.
13803         * config/arm/thumb2.md (define_peephole2 for flag clobbering
13804         arithmetic operations): Delete.
13805
13806 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
13807
13808         PR target/44067
13809         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
13810         e500v2 target.
13811
13812 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
13813
13814         PR plugins/44459
13815         * gcc-plugin.h: Encapsulate all declarations in extern "C".
13816
13817 2010-06-08  Jan Hubicka  <jh@suse.cz>
13818
13819         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
13820         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
13821
13822 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
13823
13824         PR tree-optimization/39874
13825         PR middle-end/28685
13826         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
13827         Declare.
13828         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
13829         same_bool_result_p): New.
13830         (and_var_with_comparison, and_var_with_comparison_1,
13831         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
13832         (or_var_with_comparison, or_var_with_comparison_1,
13833         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
13834         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
13835         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
13836         of combine_comparisons.
13837         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
13838
13839 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
13840
13841         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
13842         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13843         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
13844         pdp11_function_value_regno_p): New functions.
13845         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13846         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13847
13848 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
13849
13850         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
13851         Thumb-2 in the MINUS case.
13852
13853 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13854
13855         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
13856
13857         * doc/gty.texi (GTY Options): Document typed GC allocation and
13858         variable_size GTY option.
13859
13860         * ggc-internal.h: New.
13861
13862         * ggc.h: Update copyright year.
13863         (digit_string): Move to stringpool.c.
13864         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
13865         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
13866         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
13867         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
13868         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
13869         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
13870         (ggc_force_collect, ggc_get_size, ggc_statistics)
13871         (ggc_print_common_statistics): Move to ggc-internal.h.
13872         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
13873         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
13874         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
13875         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
13876         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
13877         (ggc_alloc_zone_pass_stat): Remove.
13878         (ggc_internal_alloc_stat, ggc_internal_alloc)
13879         (ggc_internal_cleared_alloc_stat): New.
13880         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
13881         (ggc_internal_vec_alloc_stat)
13882         (ggc_internal_cleared_vec_alloc_stat)
13883         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
13884         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
13885         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
13886         (ggc_cleared_alloc_ptr_array_two_args): New.
13887         (htab_create_ggc, splay_tree_new_ggc): Redefine.
13888         (ggc_splay_alloc): Change the type of the first argument to
13889         enum gt_types_enum.
13890         (ggc_alloc_string): Make macro.
13891         (ggc_alloc_string_stat): New.
13892         (ggc_strdup): Redefine.
13893         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
13894         (ggc_alloc_rtvec_sized): New.
13895         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
13896         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
13897         (ggc_internal_cleared_alloc_zone_stat)
13898         (ggc_internal_zone_alloc_stat)
13899         (ggc_internal_zone_cleared_alloc_stat)
13900         (ggc_internal_zone_vec_alloc_stat)
13901         (ggc_alloc_zone_rtx_def_stat)
13902         (ggc_alloc_zone_tree_node_stat)
13903         (ggc_alloc_zone_cleared_tree_node_stat)
13904         (ggc_alloc_cleared_gimple_statement_d_stat): New.
13905
13906         * ggc-common.c: Include ggc-internal.h.
13907         (ggc_internal_cleared_alloc_stat): Rename from
13908         ggc_alloc_cleared_stat.
13909         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
13910         (ggc_calloc): Remove.
13911         (ggc_cleared_alloc_htab_ignore_args): New.
13912         (ggc_cleared_alloc_ptr_array_two_args): New.
13913         (ggc_splay_alloc): Add obj_type parameter.
13914         (init_ggc_heuristics): Formatting fixes.
13915
13916         * ggc-none.c: Update copyright year.
13917         (ggc_alloc_stat): Rename to ggc_alloc_stat.
13918         (ggc_alloc_cleared_stat): Rename to
13919         ggc_internal_cleared_alloc_stat.
13920         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
13921
13922         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
13923         Remove references to ggc_alloc in comments.
13924         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
13925         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
13926         (new_ggc_zone, destroy_ggc_zone): Remove.
13927         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
13928
13929         * ggc-zone.c: Include ggc-internal.h.  Remove references to
13930         ggc_alloc in comments.
13931         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
13932         (ggc_internal_alloc_zone_pass_stat): New.
13933         (ggc_internal_cleared_alloc_zone_stat): New.
13934         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
13935         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
13936         (new_ggc_zone, destroy_ggc_zone): Remove.
13937
13938         * stringpool.c: Update copyright year.  Include ggc-internal.h
13939         (digit_vector): Make static.
13940         (digit_string): Moved from ggc.h.
13941         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
13942         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
13943
13944         * Makefile.in (GGC_INTERNAL_H): New.
13945         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
13946         $(GGC_INTERNAL_H) to dependencies.
13947
13948         * gentype.c: Update copyright year.
13949         (walk_type): Accept variable_size GTY option.
13950         (USED_BY_TYPED_GC_P): New macro.
13951         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
13952         whitespace at the end of strings.
13953         (get_type_specifier, variable_size_p): New functions.
13954         (alloc_quantity, alloc_zone): New enums.
13955         (write_typed_alloc_def): New function.
13956         (write_typed_struct_alloc_def): Likewise.
13957         (write_typed_typed_typedef_alloc_def): Likewise.
13958         (write_typed_alloc_defns): Likewise.
13959         (output_typename, write_splay_tree_allocator_def): Likewise.
13960         (write_splay_tree_allocators): Likewise.
13961         (main): Call write_typed_alloc_defns and
13962         write_splay_tree_allocators.
13963
13964         * lto-streamer.h (lto_file_decl_data_ptr): New.
13965
13966         * passes.c (order): Define using cgraph_node_ptr.
13967
13968         * strinpool.c (struct string_pool_data): Declare nested_ptr using
13969         ht_identifier_ptr.
13970
13971         * gimple.h (union gimple_statement_d): Likewise.
13972
13973         * rtl.h (struct rtx_def): Likewise.
13974         (struct rtvec_def): Likewise.
13975
13976         * tree.h (union tree_node): Likewise.
13977
13978         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
13979
13980         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
13981
13982         * tree-scalar-evolution.c (scev_initialize): Likewise.
13983
13984         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
13985
13986         * dwarf2asm.c (dw2_force_const_mem): Likewise.
13987
13988         * omp-low.c (lower_omp_critical): Likewise.
13989
13990         * bitmap.h (struct bitmap_head_def): Update comment to not
13991         reference ggc_alloc.
13992
13993         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
13994
13995         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
13996
13997         * ipa-prop.c (duplicate_ggc_array): Rename to
13998         duplicate_ipa_jump_func_array.  Use typed GC allocation.
13999         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
14000
14001         * gimple.c (gimple_alloc_stat): Use
14002         ggc_alloc_cleared_gimple_statement_d_stat.
14003
14004         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
14005
14006         * tree.c (make_node_stat): Use
14007         ggc_alloc_zone_cleared_tree_node_stat.
14008         (make_tree_vec_stat): Likewise.
14009         (build_vl_exp_stat): Likewise.
14010         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
14011         (make_tree_binfo_stat): Likewise.
14012         (tree_cons_stat): Likewise.
14013
14014         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
14015         (shallow_copy_rtx_stat): Likewise.
14016         (make_node_stat): Likewise.
14017
14018         * lto-symtab.c: Fix comment.
14019
14020         * tree-cfg.c (create_bb): Update comment to not reference
14021         ggc_alloc_cleared.
14022         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
14023
14024         * varpool.c (varpool_node): Use typed GC allocation.
14025         (varpool_extra_name_alias): Likewise.
14026
14027         * varasm.c (emutls_decl): Likewise.
14028         (get_unnamed_section): Likewise.
14029         (get_noswitch_section): Likewise.
14030         (get_section): Likewise.
14031         (get_block_for_section): Likewise.
14032         (build_constant_desc): Likewise.
14033         (create_constant_pool): Likewise.
14034         (force_const_mem): Likewise.
14035
14036         * tree.c (build_vl_exp_stat): Likewise.
14037         (build_real): Likewise.
14038         (build_string): Likewise.
14039         (decl_debug_expr_insert): Likewise.
14040         (decl_value_expr_insert): Likewise.
14041         (type_hash_add): Likewise.
14042         (build_omp_clause): Likewise.
14043
14044         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
14045
14046         * tree-ssa.c (init_tree_ssa): Likewise.
14047
14048         * tree-ssa-structalias.c (heapvar_insert): Likewise.
14049
14050         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
14051
14052         * tree-ssa-loop-niter.c (record_estimate): Likewise.
14053
14054         * tree-ssa-alias.c (get_ptr_info): Likewise.
14055
14056         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
14057
14058         * tree-phinodes.c (allocate_phi_node): Likewise.
14059
14060         * tree-iterator.c (tsi_link_before): Likewise.
14061         (tsi_link_after): Likewise.
14062
14063         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
14064
14065         * tree-dfa.c (create_var_ann): Likewise.
14066
14067         * tree-cfg.c (create_bb): Likewise.
14068
14069         * toplev.c (alloc_for_identifier_to_locale): Likewise.
14070         (general_init): Likewise.
14071
14072         * stringpool.c (stringpool_ggc_alloc): Likewise.
14073         (gt_pch_save_stringpool): Likewise.
14074
14075         * sese.c (if_region_set_false_region): Likewise.
14076
14077         * passes.c (do_per_function_toporder): Likewise.
14078
14079         * optabs.c (set_optab_libfunc): Likewise.
14080         (set_conv_libfunc): Likewise.
14081
14082         * lto-symtab.c (lto_symtab_register_decl): Likewise.
14083
14084         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
14085         (input_eh_region): Likewise.
14086         (input_eh_lp): Likewise.
14087         (make_new_block): Likewise.
14088         (unpack_ts_real_cst_value_fields): Likewise.
14089
14090         * lto-section-in.c (lto_new_in_decl_state): Likewise.
14091
14092         * lto-cgraph.c (input_node_opt_summary): Likewise.
14093
14094         * loop-init.c (loop_optimizer_init): Likewise.
14095
14096         * lambda.h (lambda_vector_new): Likewise.
14097
14098         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
14099
14100         * ira.c (update_equiv_regs): Likewise.
14101
14102         * ipa.c (cgraph_node_set_new): Likewise.
14103         (cgraph_node_set_add): Likewise.
14104         (varpool_node_set_new): Likewise.
14105         (varpool_node_set_add): Likewise.
14106
14107         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
14108         (duplicate_ipa_jump_func_array): Likewise.
14109         (ipa_read_node_info): Likewise.
14110
14111         * ipa-cp.c (ipcp_create_replace_map): Likewise.
14112
14113         * integrate.c (get_hard_reg_initial_val): Likewise.
14114
14115         * gimple.c (gimple_alloc_stat): Likewise.
14116         (gimple_build_omp_for): Likewise.
14117         (gimple_seq_alloc): Likewise.
14118         (gimple_copy): Likewise.
14119
14120         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
14121         (gsi_insert_after_without_update): Likewise.
14122
14123         * function.c (add_frame_space): Likewise.
14124         (insert_temp_slot_address): Likewise.
14125         (assign_stack_temp_for_type): Likewise.
14126         (allocate_struct_function): Likewise.
14127         (types_used_by_var_decl_insert): Likewise.
14128
14129         * except.c (init_eh_for_function): Likewise.
14130         (gen_eh_region): Likewise.
14131         (gen_eh_region_catch): Likewise.
14132         (gen_eh_landing_pad): Likewise.
14133         (add_call_site): Likewise.
14134
14135         * emit-rtl.c (get_mem_attrs): Likewise.
14136         (get_reg_attrs): Likewise.
14137         (start_sequence): Likewise.
14138         (init_emit): Likewise.
14139
14140         * dwarf2out.c (new_cfi): Likewise.
14141         (queue_reg_save): Likewise.
14142         (dwarf2out_frame_init): Likewise.
14143         (new_loc_descr): Likewise.
14144         (find_AT_string): Likewise.
14145         (new_die): Likewise.
14146         (add_var_loc_to_decl): Likewise.
14147         (clone_die): Likewise.
14148         (clone_as_declaration): Likewise.
14149         (break_out_comdat_types): Likewise.
14150         (new_loc_list): Likewise.
14151         (loc_descriptor): Likewise.
14152         (add_loc_descr_to_each): Likewise.
14153         (add_const_value_attribute): Likewise.
14154         (tree_add_const_value_attribute): Likewise.
14155         (add_comp_dir_attribute): Likewise.
14156         (add_name_and_src_coords_attributes): Likewise.
14157         (lookup_filename): Likewise.
14158         (store_vcall_insn): Likewise.
14159         (dwarf2out_init): Likewise.
14160
14161         * dbxout.c (dbxout_init): Likewise.
14162
14163         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
14164
14165         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
14166
14167         * config/score/score7.c (score7_output_external): Likewise.
14168
14169         * config/score/score3.c (score3_output_external): Likewise.
14170
14171         * config/s390/s390.c (s390_init_machine_status): Likewise.
14172
14173         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
14174         (rs6000_init_machine_status): Likewise.
14175         (output_toc): Likewise.
14176
14177         * config/pa/pa.c (pa_init_machine_status): Likewise.
14178         (get_deferred_plabel): Likewise.
14179
14180         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
14181
14182         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
14183
14184         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
14185
14186         * config/mep/mep.c (mep_init_machine_status): Likewise.
14187         (mep_note_pragma_flag): Likewise.
14188
14189         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
14190
14191         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
14192
14193         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
14194
14195         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
14196         (i386_pe_maybe_record_exported_symbol): Likewise.
14197
14198         * config/i386/i386.c (get_dllimport_decl): Likewise.
14199         (ix86_init_machine_status): Likewise.
14200         (assign_386_stack_local): Likewise.
14201
14202         * config/frv/frv.c (frv_init_machine_status): Likewise.
14203
14204         * config/darwin.c (machopic_indirection_name): Likewise.
14205
14206         * config/cris/cris.c (cris_init_machine_status): Likewise.
14207
14208         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
14209
14210         * config/avr/avr.c (avr_init_machine_status): Likewise.
14211
14212         * config/arm/arm.c (arm_init_machine_status): Likewise.
14213
14214         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
14215         (alpha_need_linkage): Likewise.
14216         (alpha_use_linkage): Likewise.
14217
14218         * cgraph.c (cgraph_allocate_node): Likewise.
14219         (cgraph_create_edge_1): Likewise.
14220         (cgraph_create_indirect_edge): Likewise.
14221         (cgraph_add_asm_node): Likewise.
14222
14223         * cfgrtl.c (init_rtl_bb_info): Likewise.
14224
14225         * cfgloop.c (alloc_loop): Likewise.
14226         (rescan_loop_exit): Likewise.
14227
14228         * cfg.c (init_flow): Likewise.
14229         (alloc_block): Likewise.
14230         (unchecked_make_edge): Likewise.
14231
14232         * c-parser.c (c_parse_init): Likewise.
14233         (c_parse_file): Likewise.
14234
14235         * c-decl.c (bind): Likewise.
14236         (record_inline_static): Likewise.
14237         (push_scope): Likewise.
14238         (make_label): Likewise.
14239         (lookup_label_for_goto): Likewise.
14240         (finish_struct): Likewise.
14241         (finish_enum): Likewise.
14242         (c_push_function_context): Likewise.
14243
14244         * bitmap.c (bitmap_element_allocate): Likewise.
14245         (bitmap_gc_alloc_stat): Likewise.
14246
14247         * alias.c (record_alias_subset): Likewise.
14248         (init_alias_analysis): Likewise.
14249
14250 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
14251
14252         * fold-const.c (fold_comparison): Remove redundant parenthesis.
14253         * tree-inline.c (expand_call_inline): Pass translated return value of
14254         cgraph_inline_failed_string to diagnostic function.
14255
14256 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
14257             Shujing Zhao  <pearly.zhao@oracle.com>
14258
14259         PR c/37724
14260         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
14261         implicit bad conversions is initialization.
14262         (error_init): Use gmsgid instead of msgid for argument name and change
14263         the call for error.
14264         (pedwarn_init): Use gmsgid instead of msgid for argument name and
14265         change the call for pedwarn.
14266         (warning_init): Use gmsgid instead of msgid for argument name and
14267         change the call for warning.
14268
14269 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
14270
14271         * config/mips/mips-protos.h (mips_print_operand): Delete.
14272         (mips_print_operand_address): Delete.
14273         * config/mips/mips.h (mips_print_operand_punct): Delete.
14274         (PRINT_OPERAND): Delete.
14275         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14276         (PRINT_OPERAND_ADDRESS): Delete.
14277         * config/mips/mips.c (mips_print_operand_punct): Make static.
14278         (mips_print_operand_address): Make static.
14279         (mips_print_operand): Make static.  Call
14280         mips_print_operand_punct_valid_p.
14281         (mips_print_operand_punct_valid_p): New function.
14282         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
14283         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
14284
14285 2010-06-07  Jan Hubicka  <jh@suse.cz>
14286
14287         PR middle-end/44454
14288         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
14289         are allocated.
14290
14291 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
14292
14293         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
14294         name of RECORD.
14295
14296 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14297
14298         * doc/sourcebuild.texi (Effective-Target Keywords, Other
14299         attributes): Document gas.
14300
14301 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
14302
14303         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
14304         <TYPE_LEA>: Split instruction.
14305         <default>: Remove alternative 2 handling.
14306         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
14307         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
14308         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
14309
14310         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
14311         (ashift_zext lea splitter): Use DImode for multiplication.
14312
14313         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
14314         to generate addition.
14315
14316 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
14317
14318         * common.opt (fira-verbose): Use Var.
14319         (fpcc-struct-return): Use Init instead of VarExists.
14320         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
14321         toplev.c.
14322         * flags.h (flag_signed_char, flag_short_enums,
14323         flag_pcc_struct_return, flag_ira_verbose,
14324         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
14325         * toplev.c (flag_detailed_statistics, flag_signed_char,
14326         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
14327         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
14328         * toplev.h (flag_crossjumping, flag_if_conversion,
14329         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
14330         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
14331         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
14332         flag_cprop_registers, time_report, flag_ira_loop_pressure,
14333         flag_ira_coalesce, flag_ira_move_spills,
14334         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
14335
14336 2010-06-07  Jan Hubicka  <jh@suse.cz>
14337
14338         * df-core.c (df_analyze_problem): Do verification after allocation.
14339
14340         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
14341         (df_lr_alloc): Initialize problem data; move bitmaps to
14342         lr_bitmaps obstack.
14343         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
14344         (df_lr_verify_solution_start): Do not initialize problem data;
14345         allocate bitmaps in lr_bitmaps.
14346         (df_lr_verify_solution_end): Do not free problem data.
14347
14348 2010-06-07  Jan Hubicka  <jh@suse.cz>
14349
14350         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
14351         if caller is noreturn.
14352         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
14353         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
14354         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
14355         * ipa-pure-const.c (check_decl): Add IPA parameter.
14356         (state_from_flags): New function.
14357         (better_state, worse_state): New functions.
14358         (check_call): When in IPA mode, do not care about callees.
14359         (check_load, check_store): Update.
14360         (check_ipa_load, check_ipa_store): New.
14361         (check_stmt): When in IPA mode, use IPA checkers.
14362         (analyze_function): Use state_from_flags.
14363         (propagate): Check indirect edges and references.
14364
14365 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
14366
14367         PR rtl-optimization/44404
14368         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
14369         of count_occurrences to see if it's safe to modify mem_insn.
14370
14371 2010-06-07  Richard Guenther  <rguenther@suse.de>
14372
14373         * gimplify.c (gimplify_cleanup_point_expr): For empty body
14374         and EH-only cleanup drop the cleanup instead of inserting it
14375         unconditionally.
14376
14377 2010-06-07  Ira Rosen  <irar@il.ibm.com>
14378
14379         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
14380         documentation.
14381         * targhooks.c (default_builtin_vectorization_cost): New function.
14382         * targhooks.h (default_builtin_vectorization_cost): Declare.
14383         * target.h (enum vect_cost_for_stmt): Define.
14384         (builtin_vectorization_cost): Change argument and comment.
14385         * tree-vectorizer.h: Remove cost model macros.
14386         * tree-vect-loop.c: Include target.h.
14387         (vect_get_cost): New function.
14388         (vect_estimate_min_profitable_iters): Replace cost model macros with
14389         calls to vect_get_cost.
14390         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
14391         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
14392         default implementation.
14393         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
14394         calls to target hook builtin_vectorization_cost.
14395         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
14396         Likewise.
14397         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
14398         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
14399         implementation to return costs.
14400         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
14401         * config/spu/spu.h: Remove vectorizer cost model macros.
14402         * config/i386/i386.h: Likewise.
14403         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
14404         a call to target hook builtin_vectorization_cost.
14405
14406 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
14407
14408         PR target/44319
14409         * config/i386/i386.c (override_options): Turn zee pass on for level 2
14410         and above and defer till target is known.
14411         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
14412         turn off otherwise.
14413
14414 2010-05-25  Jan Hubicka  <jh@suse.cz>
14415
14416         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
14417         (df_compact_blocks): Likewise.
14418         * df.h (struct df): Turn hardware_regs_used,
14419         regular_block_artificial_uses, eh_block_artificial_uses,
14420         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
14421         bitmap_head.
14422         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
14423         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
14424         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
14425         df_scan_blocks, df_insn_delete, df_insn_rescan,
14426         df_insn_rescan_debug_internal, df_insn_rescan_all,
14427         df_process_deferred_rescans, df_process_deferred_rescans,
14428         df_notes_rescan, df_get_call_refs, df_get_call_refs,
14429         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
14430         df_record_entry_block_defs, df_record_exit_block_uses,
14431         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
14432         df_scan_verify): Update.
14433
14434 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
14435
14436         PR c++/44188
14437         * c-common.c (is_typedef_decl): Move this definition ...
14438         * tree.c (is_typedef_decl): ... here.
14439         (typdef_variant_p): Move definition here from cp/tree.c.
14440         * c-common.h (is_typedef_decl): Move this declaration ...
14441         * tree.h (is_typedef_decl): ... here.
14442         (typedef_variant_p): Move declaration here from cp/cp-tree.h
14443         * dwarf2out.c (is_naming_typedef_decl): New function.
14444         (gen_tagged_type_die): Split out of ...
14445         (gen_type_die_with_usage): ... this function. When an anonymous
14446         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
14447         is emitted for the typedef.
14448         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
14449         anonymous tagged types.
14450
14451 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14452
14453         PR c/20000
14454         * c-decl.c (grokdeclarator): Delete warning.
14455
14456 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
14457
14458         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
14459         newly built CALL_EXPR.
14460         * tree-profile.c (tree_profiling): Don't profile functions produced
14461         for built-in stuff.
14462
14463 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
14464
14465         PR bootstrap/44427
14466         PR bootstrap/44428
14467         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
14468         endianness-independent.
14469
14470 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
14471
14472         * c-common.c: Move to c-family/.
14473         * c-common.def: Likewise.
14474         * c-common.h: Likewise.
14475         * c-cppbuiltin.c: Likewise.
14476         * c-dump.c: Likewise.
14477         * c-format.c: Likewise.
14478         * c-format.h : Likewise.
14479         * c-gimplify.c: Likewise.
14480         * c-lex.c: Likewise.
14481         * c-omp.c: Likewise.
14482         * c.opt: Likewise.
14483         * c-opts.c: Likewise.
14484         * c-pch.c: Likewise.
14485         * c-ppoutput.c: Likewise.
14486         * c-pragma.c: Likewise.
14487         * c-pragma.h: Likewise.
14488         * c-pretty-print.c: Likewise.
14489         * c-pretty-print.h: Likewise.
14490         * c-semantics.c: Likewise.
14491         * stub-objc.c: Likewise.
14492
14493         * gengtype.c (get_file_langdir): Special-case files in c-family/.
14494         (get_output_file_with_visibility): Fix name for c-common.h.
14495         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
14496
14497         * c-tree.h: Update include path for moved files.
14498         * c-lang.c: Likewise.
14499         * c-lang.h: Likewise.
14500         * c-parser.c: Likewise.
14501         * c-convert.c: Likewise.
14502         * c-decl.c: Likewise.
14503         * c-objc-common.c: Likewise.
14504         * configure.ac: Make sure c-family/ exists in the build directory.
14505         * configure: Regenerate.
14506         * Makefile.in: Update paths for moved files.  Regroup files per
14507         location and update dependencies.  Move generated_files down after
14508         ALL_GTFILES_H.
14509
14510         * config/spu/spu-c.c: Update paths for moved files.
14511         * config/mep/mep-pragma.c: Likewise.
14512         * config/darwin-c.c: Likewise.
14513         * config/i386/msformat-c.c: Likewise.
14514         * config/i386/i386-c.c: Likewise.
14515         * config/avr/avr-c.c: Likewise.
14516         * config/sol2-c.c: Likewise.
14517         * config/ia64/ia64-c.c: Likewise.
14518         * config/rs6000/rs6000-c.c: Likewise.
14519         * config/arm/arm.c: Likewise.
14520         * config/arm/arm-c.c: Likewise.
14521         * config/h8300/h8300.c: Likewise.
14522         * config/v850/v850-c.c: Likewise.
14523
14524         * config/t-darwin: Fix dependencies for moved files.
14525         * config/t-sol2: Fix dependencies for moved files.
14526         * config/mep/t-mep: Fix dependencies for moved files.
14527         * config/ia64/t-ia64: Fix dependencies for moved files.
14528         * config/rs6000/t-rs6000: Fix dependencies for moved files.
14529         * config/v850/t-v850: Fix dependencies for moved files.
14530         * config/v850/t-v850e: Fix dependencies for moved files.
14531
14532         * config/m32c/m32c-pragma.c
14533
14534         * po/exgettext: Look in c-family/ also.
14535
14536 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
14537
14538         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
14539         (mark_control_dependent_edges_necessary): Call it instead of marking
14540         the last statement manually.
14541         (propagate_necessity): Likewise.
14542
14543 2010-06-05  Jan Hubicka  <jh@suse.cz>
14544
14545         * basic-block.h (compute_dominance_frontiers): Updated.
14546         (compute_idf): Likewise.
14547
14548         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
14549         for dominance frontiers.
14550         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
14551         (insert_updated_phi_nodes_for): Likewise.
14552         (update_ssa): Likewise.
14553         * cfganal.c (compute_dominance_frontiers_1): Likewise.
14554         (compute_dominance_frontiers): Likewise.
14555         (compute_idf): Likewise.
14556         * df-problems.c (df_md_local_compute): Likewise.
14557
14558 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
14559
14560         * target.h (struct gcc_target): Add memory_move_cost field.
14561         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
14562         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
14563         * targhooks.c (default_memory_move_cost): New function.
14564         * targhooks.h (default_memory_move_cost): Declare function.
14565         * reload.h (memory_move_cost): Declare.
14566         (memory_move_secondary_cost): Change type of 'in' argument to bool.
14567         * reginfo.c (memory_move_cost): New function.
14568         (memory_move_secondary_cost): Change type of 'in' argument to bool.
14569         * ira.h (ira_memory_move_cost): Update comment.
14570         * ira.c (ira_memory_move_cost): Update comment.
14571         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
14572         with memory_move_cost.
14573         * postreload.c (reload_cse_simplify_set): (Ditto.).
14574         * reload1.c (choose_reload_regs): (Ditto.).
14575         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
14576         (MEMORY_MOVE_COST):  Revise documentation.
14577
14578         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
14579         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
14580         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
14581         type of 'in' argument to bool.
14582         (TARGET_MEMORY_MOVE_COST): Define.
14583
14584 2010-06-05  Jan Hubicka  <jh@suse.cz>
14585
14586         * ipa-pure-const.c (propagate): Fix typo in handling of functions
14587         that cannot return.  Be more careful when merging the results with
14588         previously known ones.
14589
14590 2010-06-05  Matthias Klose  <doko@ubuntu.com>
14591
14592         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
14593         function to add the -iplugindir option.
14594         (find_plugindir_spec_function): Add new declaration and function.
14595         (static_spec_func): Use it for "find-plugindir".
14596
14597 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
14598
14599         PR c++/44361
14600         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
14601         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
14602         statement expression.
14603
14604 2010-06-05  Jan Hubicka  <jh@suse.cz>
14605
14606         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
14607         (df_rd_problem_data): Convert sparse_invalidated_by_call,
14608         dense_invalidated_by_call to bitmap head.
14609         (df_rd_alloc, df_rd_bb_local_compute_process_def,
14610         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
14611         df_rd_start_dump, df_lr_verify_transfer_functions,
14612         df_live_verify_transfer_functions, df_chain_create_bb,
14613         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
14614         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
14615         df_simulate_one_insn_forwards, df_md_alloc,
14616         df_md_bb_local_compute_process_def,
14617         df_md_bb_local_compute_process_def, df_md_local_compute,
14618         df_md_transfer_function df_md_free): Update.
14619
14620 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
14621
14622         PR c/44322
14623         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
14624         target type for ADDR_EXPR; require no changes to qualifiers except
14625         for function types.
14626         * c-tree.h (c_build_type_variant): Remove.
14627
14628 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
14629
14630         * genautomata.c (get_excl_set): Do work per element, not per char.
14631         (check_presence_pattern_sets): Similar.
14632         (check_absence_pattern_sets): Similar.
14633
14634 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
14635
14636         * genautomata.c (curr_state_pass_num): Delete.
14637         (min_issue_delay_pass_states): Delete.
14638         (min_issue_delay): Delete.
14639         (initiate_min_issue_delay_pass_states): Delete.
14640         (output_min_issue_delay_table): Compute min_issue_delay_vect
14641         using a breadth-first search variant.
14642         (output_tables): Don't call initiate_min_issue_delay_pass_states.
14643
14644 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
14645
14646         PR boostrap/44421
14647         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
14648         (df_byte_lr_bb_local_compute): Likewise.
14649
14650 2010-06-03  Jason Merrill  <jason@redhat.com>
14651
14652         Implement noexcept operator (5.3.7)
14653         * c-common.c (c_common_reswords): Add noexcept.
14654         * c-common.h (enum rid): Add RID_NOEXCEPT.
14655
14656 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
14657
14658         * config/darwin-driver.c (darwin_default_min_version): Use
14659         GCC-specific formats in diagnostics.
14660         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
14661         diagnostics.
14662         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
14663         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
14664         eval_spec_function, handle_braces, process_brace_body, main,
14665         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
14666         getenv_spec_function, compare_version_strings,
14667         version_compare_spec_function): Use GCC-specific formats in
14668         diagnostics.
14669
14670 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
14671
14672         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
14673         that operand 0 and operand 1 are equal.
14674         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
14675         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
14676         and operand 1 are equal.
14677         <default>: Ditto.  Remove ??? comment.
14678         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
14679         and operand 1 are equal.
14680         <default>: Ditto.  Remove ??? comment.
14681         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
14682         are equal.
14683         (*add<mode>_4) <default>: Ditto.
14684         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
14685
14686 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
14687
14688         * config/i386/i386-protos.h (ix86_print_operand): Declare.
14689         * config/i386/i386.c (ix86_print_operand): Make non-static.
14690         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
14691         * output.h (output_operand): Declare.
14692         * final.c (output_operand): Make non-static.
14693
14694 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
14695
14696         PR rtl-optimization/44013
14697         * sched-deps.c (add_dependence_list_and_free): Don't free lists
14698         when processing debug insns.
14699
14700         PR debug/41371
14701         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
14702         recursing.  Check that recursion is bounded.  Rename inner var
14703         to avoid hiding incoming argument.
14704
14705 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
14706
14707         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
14708         operands[2] == 255.
14709         (*addqi_3): Ditto.
14710         (*addqi_4): Ditto.
14711         (*addqi_5): Ditto.
14712         (*addqi_ext_1_rex64): Ditto.
14713         (*addqi_ext_1): Ditto.
14714
14715         (*addqi_4): Check for incdec_operand in QImode.
14716
14717         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
14718         using SWI mode iterator.
14719         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
14720         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
14721         mode iterator.
14722         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
14723         using SWI mode iterator.
14724
14725 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14726
14727         PR c/25880
14728         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
14729         * c-format.c (gcc_diag_flag_specs): Add hash.
14730         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
14731         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
14732         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
14733         pp_c_cv_qualifiers. Handle qualifiers spelling here.
14734         (pp_c_type_qualifier_list): Call the function above.
14735         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
14736         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
14737         (WARN_FOR_QUALIFIERS): New macro.
14738         (convert_for_assignment): Use it.
14739
14740 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
14741
14742         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
14743
14744 2010-06-04  Jan Hubicka  <jh@suse.cz>
14745
14746         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
14747         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
14748         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
14749         DF_BYTE_LR_OUT): Update for embedded bitmaps.
14750         * fwprop.c (single_def_use_enter_block): Likewise.
14751         * ddg.c (create_ddg_dep_from_intra_loop_link,
14752         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
14753         * loop-iv.c (latch_dominating_def): Likewise.
14754         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
14755         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
14756         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
14757         df_rd_transfer_function, df_rd_top_dump,
14758         df_rd_bottom_dump): Update.
14759         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
14760         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
14761         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
14762         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
14763         df_lr_verify_solution_start, df_lr_verify_solution_end,
14764         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
14765         df_live_free_bb_info, df_live_alloc, df_live_reset,
14766         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
14767         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
14768         df_live_verify_solution_start, df_live_verify_solution_end,
14769         df_live_verify_transfer_functions, df_chain_create_bb,
14770         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
14771         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
14772         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
14773         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
14774         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
14775         df_byte_lr_transfer_function, df_byte_lr_top_dump,
14776         df_byte_lr_bottom_dump, df_create_unused_note,
14777         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
14778         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
14779         df_md_transfer_function, df_md_init, df_md_confluence_0,
14780         df_md_confluence_n,
14781         df_md_top_dump, df_md_bottom_dump): Update.
14782         (struct df_lr_problem_data): Embedd bitmap headers.
14783
14784 2010-06-04  Jan Hubicka  <jh@suse.cz>
14785
14786         * dce.c (dce_process_block): Do not re-scan already marked
14787         instructions.
14788
14789 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
14790
14791         PR rtl-optimization/39871
14792         PR rtl-optimization/40615
14793         PR rtl-optimization/42500
14794         PR rtl-optimization/42502
14795         * ira.c (init_reg_equiv_memory_loc: New function.
14796         (ira): Call it twice.
14797         * reload.h (calculate_elim_costs_all_insns): Declare.
14798         * ira-costs.c: Include "reload.h".
14799         (regno_equiv_gains): New static variable.
14800         (init_costs): Allocate it.
14801         (finish_costs): Free it.
14802         (ira_costs): Call calculate_elim_costs_all_insns.
14803         (find_costs_and_classes): Take estimated elimination costs
14804         into account.
14805         (ira_adjust_equiv_reg_cost): New function.
14806         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
14807         * reload1.c (init_eliminable_invariants, free_reg_equiv,
14808         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
14809         (elim_bb): New static variable.
14810         (reload): Move code out of here into init_eliminable_invariants and
14811         free_reg_equiv.  Call them.
14812         (calculate_elim_costs_all_insns): New function.
14813         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
14814         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
14815         but call note_reg_elim_costly if we turned a valid memory address
14816         into an invalid one.
14817         * Makefile.in (ira-costs.o): Depend on reload.h.
14818
14819 2010-06-04  Julian Brown  <julian@codesourcery.com>
14820
14821         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
14822         for pool ranges.
14823
14824 2010-06-04  Richard Guenther  <rguenther@suse.de>
14825
14826         PR lto/41584
14827         * cgraph.h (struct varpool_node): Add lto_file_data field.
14828         * lto-cgraph.c (input_varpool_node): Initialize it.
14829
14830 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
14831
14832         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
14833         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
14834         predicate in "type" attribute calculation.
14835         (*addsi_1_zext): Ditto.
14836         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
14837         (*addsi_2_zext): Ditto.
14838         (*add<mode>_3): Ditto.
14839         (*addsi_3_zext): Ditto.
14840         (*add<mode>_5): Ditto.
14841
14842 2010-06-03  Jan Hubicka  <jh@suse.cz>
14843
14844         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
14845         of bitmap_bit_p.
14846         * cfganal.c (compute_dominance_frontiers_1): Likewise.
14847
14848 2010-06-03  Jan Hubicka  <jh@suse.cz>
14849
14850         * df-problems.c (df_create_unused_note, df_note_bb_compute):
14851         micro-optimize the checks when to add new note.
14852
14853 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
14854
14855         * final.c (output_asm_insn): Call
14856         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
14857         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
14858         (output_address): Call targetm.asm_out.print_operand_address.
14859         Update comments.
14860         * target.h (struct gcc_target): Add print_operand,
14861         print_operand_address, and print_operand_punct_valid_p fields.
14862         * targhooks.h (default_print_operand): Declare.
14863         (default_print_operand_address): Declare.
14864         (default_print_operand_punct_valid_p): Declare.
14865         * targhooks.c (default_print_operand): Define.
14866         (default_print_operand_address): Define.
14867         (default_print_operand_punct_valid_p): Define.
14868         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
14869         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
14870         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
14871         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
14872         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
14873         * vmsdbgout.c (addr_const_to_string): Update comment.
14874         * config/i386/i386.c (print_operand): Rename to...
14875         (ix86_print_operand): ...this.  Make static.
14876         (print_operand_address): Rename to...
14877         (ix86_print_operand_address): ...this.  Make static.  Call
14878         ix86_print_operand instead of PRINT_OPERAND.
14879         (ix86_print_operand_punct_valid_p): New function.
14880         (TARGET_PRINT_OPERAND): Define.
14881         (TARGET_PRINT_OPERAND_ADDRESS): Define.
14882         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
14883         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
14884         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14885         (PRINT_OPERAND): Delete.
14886         (PRINT_OPERAND_ADDRESS): Delete.
14887         * config/i386/i386-protos.h (print_operand): Delete prototype.
14888         (print_operand_address): Delete prototype.
14889
14890 2010-06-03  Richard Guenther  <rguenther@suse.de>
14891
14892         PR tree-optimization/44403
14893         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
14894         Preserve pointer qualifiers.
14895         (vect_create_data_ref_ptr): Likewise.
14896
14897 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
14898
14899         PR c++/44294
14900         * defaults.h (MAX_FIXED_MODE_SIZE): New.
14901
14902         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
14903
14904 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
14905
14906         PR debug/44375
14907         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
14908         return false if merging the bbs would lead to goto_locus
14909         location being lost from the IL.
14910
14911 2010-06-03  Jan Hubicka  <jh@suse.cz>
14912             Jakub Jelinek  <jakub@redhat.com>
14913
14914         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
14915         set->regs[i] is NULL or has just one entry.
14916
14917 2010-06-03  Jan Hubicka  <jh@suse.cz>
14918
14919         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
14920         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
14921
14922 2010-06-03  Paul Brook  <paul@codesourcery.com>
14923
14924         * config/arm/arm.c (FL_TUNE): Define.
14925         (arm_default_cpu, arm_cpu_select): Remove.
14926         (all_cores): Populate core field.
14927         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
14928         (arm_find_cpu): New function.
14929         (arm_handle_option): Lookup cpu/architecture names.
14930         (arm_override_options): Cleanup mcpu/march/mtune handling.
14931         (arm_file_start): Ditto.
14932
14933 2010-06-03  Alan Modra  <amodra@gmail.com>
14934
14935         PR target/44169
14936         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
14937         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
14938         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
14939         (rs6000_emit_load_toc_table): Likewise.
14940
14941 2010-06-02  Jan Hubicka  <jh@suse.cz>
14942
14943         * passes.c (init_optimization_passes): Put ipa reference
14944         after ipa pure-const.
14945
14946 2010-06-02  Jan Hubicka  <jh@suse.cz>
14947
14948         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
14949         calls_read_all and calls_write_all.
14950         (get_reference_optimization_summary): Fix formatting.
14951         (is_proper_for_analysis): Check that decl is not readonly.
14952         (propagate_bits): Check CONST/PURE/noreturn flags.
14953         (ipa_init): Move all_module_statics to optimization_summary_obstack.
14954         (analyze_function): Ignore indirect edges.
14955         (copy_global_bitmap): For all module statics, do nothing.
14956         (generate_summary): Do not print calls_read_all/calls_write_all.
14957         (read_write_all_from_decl): Take node as argument; check
14958         cgraph_node_cannot_return.
14959         (propagate): Reorganize read_all/write_all computation;
14960         check indirect edges; check ecf flags; use all_module_statics
14961         in the results; do not free all_module_statics.
14962         (stream_out_bitmap): Handle all_module_statics.
14963         (ipa_reference_write_optimization_summary): Likewise; use
14964         varpool/cgraph encoders to get boundaries.
14965         (ipa_reference_read_optimization_summary): Read in all_module_statics;
14966         use it when possible.
14967
14968 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
14969
14970         PR target/44218
14971         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
14972         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
14973
14974         * doc/extend.texi (powerpc builtins): Document vec_recip,
14975         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
14976
14977         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
14978         (rs6000_emit_swrsqrt): Ditto.
14979         (rs6000_emit_swdivsf): Delete.
14980         (rs6000_emit_swdivdf): Ditto.
14981         (rs6000_emit_swrsqrtsf): Ditto.
14982
14983         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
14984         describe the reciprocal estimate support for each type.
14985         (recip_options): Map -mrecip=<opt> into option bits.
14986         (gen_2arg_fn_t): New typedef for binary rtx gen function.
14987         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
14988         reciprocal estimate instructions.
14989         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
14990         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
14991         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
14992         cost information if -mdebug=cost or -mdebug=reg.
14993         (rs6000_override_options): Set -mrecip-precision for power6, and
14994         power7 machines.  If -mvsx or -mdfp, enable various options that
14995         came in previous instruction set ISAs, unless the option was
14996         explicitly disabled by the command line option.  Parse
14997         -mrecip=<opt> options.
14998         (rs6000_builtin_vectorized_function): Add support for vectorizing
14999         the reciprocal estimate builtins and expansions.
15000         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
15001         (bdesc_2arg): Add reciprocal estimate builtins.
15002         (bdesc_1arg): Add reciprocal square root estimate builtins.
15003         (rs6000_expand_builtin): Rewrite to use a switch statement,
15004         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
15005         (rs6000_init_builtins): Create declarations for reciprocal
15006         estimate builtins.
15007         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
15008         sized, prefer traditional floating point registers, if integer
15009         vector types, prefer altivec registers.  Don't actually look at
15010         the memory address any more.
15011         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
15012         builtins.
15013         (rs6000_load_constant_and_splat): New helper function to load up
15014         the constant for reciprocal estimate instructions.
15015         (rs6000_emit_madd): New helper function for generating
15016         multiply/add type instructions, based on the current switches.
15017         (rs6000_emit_msub): Ditto.
15018         (rs6000_emit_mnsub): Ditto.
15019         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
15020         replace a divide with a reciprocal estimate and fixup, adding
15021         support for machines with high precision and vectors.
15022         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
15023         low precision machines.
15024         (rs6000_emit_swdiv): New common function to be called to replace a
15025         division with reciprocal estimate and fixup.
15026         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
15027         for double and vector types.  Add support for high precision machines.
15028
15029         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
15030         the reciprocal estimate instructions can be generated.
15031         (TARGET_FRE): Ditto.
15032         (TARGET_FRSQRTES): Ditto.
15033         (TARGET_FRSQRTE): Ditto.
15034         (RS6000_RECIP_*): New macros for reciprocal estimate support.
15035
15036         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
15037         square root estimate on vectors.
15038         (re<mode>2): New insn for reciprocal division estimate on vectors.
15039
15040         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
15041         New builtin.
15042         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
15043         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
15044         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
15045         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
15046         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
15047         (RS6000_BUILTIN_RSQRT): Ditto.
15048         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
15049         floating point builtin.
15050
15051         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
15052         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
15053         __RECIP_PRECISION__ based on the command line switches.
15054         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
15055
15056         * config/rs6000/rs6000.opt (-mrecip): Document add support for
15057         replacing division instructions with reciprocal estimate and fixup.
15058         (-mrecip=<opt>): New option.
15059         (-mrecip-precision): Ditto.
15060
15061         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
15062         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
15063         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
15064         precision scalar.
15065
15066         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
15067         (UNSPEC_VREFP): Ditto.
15068         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
15069         conterparts with regard to support of -mno-fused-madd and -ffast-math.
15070         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
15071         reciprocal estimate instructions to be generated.
15072         (altivec_vrefp): Ditto.
15073
15074         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
15075         estimate support.
15076         (rreg): New mode attribute for reciprocal estimate support.
15077         (recip<mode>3): New insn for division using reciprocal estimate
15078         and fixup builtins.
15079         (divide define_split): New define_split to convert floating point
15080         division to use reciprocal estimate if the user used the
15081         appropriate options and the split is run when we can add new
15082         pseudo registers for the fixup.
15083         (rsqrt<mode>2): New insn for reciprocal square root support.
15084         (recipsf3): Move into recip<mode>3.
15085         (recipdf3): Ditto.
15086         (fres): Use TARGET_FRES.
15087         (rsqrtsf2): Move into rsqrt<mode>2.
15088         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
15089         (copysignsf3): Add support for VSX.
15090         (fred): Use TARGET_FRE.
15091         (fred_fpr): Ditto.
15092         (rsqrtdf_internal1): New function for frsqrte instruciton.
15093
15094         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
15095         (vec_rsqrt): Ditto.
15096
15097 2010-06-03  Richard Guenther  <rguenther@suse.de>
15098
15099         PR middle-end/44291
15100         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
15101         (set_user_assembler_libfunc): Likewise.
15102
15103 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
15104
15105         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
15106         defaults.h.
15107         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
15108         to defaults.h
15109         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
15110         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
15111         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
15112         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
15113         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
15114         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
15115         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
15116         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
15117         * defaults.h: Updated for above mentioned changes.
15118
15119 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
15120
15121         * c-common.c: Remove header include of tm_p.h.
15122         * Makefile.in (c-common.o): Remove TM_P_H dependency.
15123
15124 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
15125
15126         * tree.h (struct tree_decl_map): New type.
15127         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
15128         (tree_decl_map_hash): New prototype.
15129         (debug_expr_for_decl, value_expr_for_decl): Change into
15130         tree_decl_map hashtab from tree_map.
15131         (init_ttree): Adjust initialization.
15132         (tree_decl_map_hash): New function.
15133         (decl_debug_expr_lookup, decl_debug_expr_insert,
15134         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
15135
15136 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15137
15138         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
15139         linker emulations.
15140         * configure: Regenerate.
15141         * config.in: Regenerate.
15142
15143         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
15144         (X86_64_EMULATION): Define.
15145         (TARGET_LD_EMULATION): Use them.
15146
15147         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
15148         (SPARC64_EMULATION): Define.
15149         (LINK_ARCH_SPEC): Use them.
15150
15151 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
15152
15153         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
15154         smallest_mode_for_size for computing the precision types of new
15155         graphite IVs.  Do not call lang_hooks.types.type_for_size.
15156
15157 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
15158
15159         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
15160         information.
15161         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
15162
15163 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
15164
15165         PR middle-end/44363
15166         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
15167         return false instead.
15168
15169 2010-06-02  Jan Hubicka  <jh@suse.cz>
15170
15171         PR middle-end/44295
15172         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
15173         create new cgraph node to check callee.
15174
15175 2010-06-02  Richard Guenther  <rguenther@suse.de>
15176
15177         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
15178
15179 2010-06-02  Richard Guenther  <rguenther@suse.de>
15180
15181         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
15182         (lto_wrapper_cleanup): ... this.  Do not exit.
15183         (fatal): Adjust.  Exit here.
15184         (fatal_perror): Likewise.
15185         (fatal_signal): New function.
15186         (main): Set up signal handlers to cleanup temporary files.
15187         * Makefile.in (lto-wrapper.o): Adjust dependencies.
15188
15189 2010-06-02  Richard Guenther  <rguenther@suse.de>
15190
15191         PR tree-optimization/44377
15192         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
15193
15194 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15195
15196         * config/s390/2097.md (z10_fhex): Remove insn reservation.
15197         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
15198         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
15199         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
15200         instruction.
15201         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
15202
15203 2010-06-02  Jan Hubicka  <jh@suse.cz>
15204
15205         * bitmap.c (bitmap_descriptor): Add search_iter.
15206         (bitmap_find_bit): Increment it.
15207         (print_statistics): Print it.
15208
15209 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
15210
15211         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
15212         instead of gimple_build_call_vec.  Delete unnecessary local variable.
15213
15214 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
15215
15216         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
15217         change from yesterday.
15218
15219 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
15220
15221         * c-ada-spec.c: Clean up redundant includes.
15222
15223 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
15224
15225         * gimplify.c: Do not include except.h and optabs.h.
15226         (gimplify_body): Do not initialize RTL profiling.
15227         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
15228         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
15229         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
15230         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
15231         langhooks.h.
15232
15233         * tree-pretty-print.h: Include pretty-print.h.
15234         * gimple-pretty-print.h: Include pretty-print.h.
15235
15236         * tree-pretty-print.c: Do not include diagnostic.h.
15237         * tree-vrp.c: Likewise.
15238         * tree-tailcall.c: Likewise
15239         * tree-scalar-evolution.c: Likewise
15240         * tree-ssa-dse.c: Likewise
15241         * tree-chrec.c: Likewise
15242         * tree-ssa-sccvn.c: Likewise
15243         * tree-ssa-copyrename.c: Likewise
15244         * tree-nomudflap.c: Likewise
15245         * tree-call-cdce.c: Likewise
15246         * tree-stdarg.c: Likewise
15247         * tree-ssa-math-opts.c: Likewise
15248         * tree-nrv.c: Likewise
15249         * tree-ssa-sink.c: Likewise
15250         * tree-browser.c: Likewise
15251         * tree-ssa-loop-ivcanon.c: Likewise
15252         * tree-ssa-loop.c: Likewise
15253         * tree-parloops.c: Likewise
15254         * tree-ssa-address.c: Likewise
15255         * tree-ssa-ifcombine.c: Likewise
15256         * tree-if-conv.c: Likewise
15257         * tree-data-ref.c: Likewise
15258         * tree-affine.c: Likewise
15259         * tree-ssa-phiopt.c: Likewise
15260         * tree-ssa-coalesce.c: Likewise
15261         * tree-ssa-pre.c: Likewise
15262         * tree-ssa-live.c: Likewise
15263         * tree-predcom.c: Likewise
15264         * tree-ssa-forwprop.c: Likewise
15265         * tree-ssa-dce.c: Likewise
15266         * tree-ssa-ter.c: Likewise
15267         * tree-ssa-loop-prefetch.c: Likewise
15268         * tree-optimize.c: Likewise
15269         * tree-ssa-phiprop.c: Likewise
15270         * tree-object-size.c: Likewise
15271         * tree-outof-ssa.c: Likewise
15272         * tree-ssa-structalias.c: Likewise
15273         * tree-switch-conversion.c: Likewise
15274         * tree-ssa-reassoc.c: Likewise
15275         * tree-ssa-operands.c: Likewise
15276         * tree-vectorizer.c: Likewise
15277         * tree-vect-data-refs.c: Likewise
15278         * tree-vect-generic.c: Likewise
15279         * tree-vect-stmts.c: Likewise
15280         * tree-vect-patterns.c: Likewise
15281         * tree-vect-slp.c: Likewise
15282         * tree-vect-loop.c: Likewise
15283         * tree-ssa-loop-ivopts.c: Likewise
15284         * tree-ssa-loop-im.c: Likewise
15285         * tree-ssa-loop-niter.c: Likewise
15286         * tree-ssa-loop-unswitch.c: Likewise
15287         * tree-ssa-loop-manip.c: Likewise
15288         * tree-ssa-loop-ch.c: Likewise
15289         * tree-dump.c: Likewise
15290         * tree-complex.c: Likewise
15291
15292         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
15293         * tree-ssa-uninit.c: Likewise
15294         * tree-ssa-threadupdate.c: Likewise
15295         * tree-ssa-uncprop.c: Likewise
15296         * tree-ssa-ccp.c: Likewise
15297         * tree-ssa-dom.c: Likewise
15298         * tree-ssa-propagate.c: Likewise
15299         * tree-ssa-alias.c: Likewise
15300         * tree-dfa.c: Likewise
15301         * tree-cfgcleanup.c: Likewise
15302         * tree-sra.c: Likewise
15303         * tree-ssa-copy.c: Likewise
15304         * tree-ssa.c: Likewise
15305         * tree-profile.c: Likewise
15306         * tree-cfg.c: Likewise
15307         * tree-ssa-threadedge.c: Likewise
15308         * tree-vect-loop-manip.c: Likewise
15309
15310         * tree-inline.c: Do not include diagnostic.h and expr.h.
15311         Include rtl.h.
15312         (copy_decl_for_dup_finish): Do not use NULL_RTX.
15313
15314         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
15315         * tree-loop-distribution.c: Likewise.
15316
15317 2010-06-01  Jan Hubicka  <jh@suse.cz>
15318
15319         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
15320
15321 2010-06-01  Jan Hubicka  <jh@suse.cz>
15322
15323         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
15324         remove return value.
15325         (split_bbs_on_noreturn_calls) .... here.
15326         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
15327         * tree-flow.h (fixup_noreturn_call): New.
15328
15329 2010-06-01  Jan Hubicka  <jh@suse.cz>
15330
15331         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
15332
15333 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
15334
15335         * tree.h (build_nt_call_list): Delete.
15336         * tree.c (build_nt_call_list): Delete.
15337
15338 2010-06-01  Jan Hubicka  <jh@suse.cz>
15339
15340         * fwprop.c: Make emit-rtl.h include last.
15341         * rtlanal.c: Include emit-rtl.h.
15342         * genautomata.c: Output emit-rtl include into insn-automata.c
15343         * df-scan.c: Include emit-rtl.h.
15344         * haifa-sched.c: Indlude emit-rtl.h.
15345         * mode-switching.c: Indlude emit-rtl.h.
15346         * graph.c: Indlude emit-rtl.h.
15347         * sel-sched.c: Include emit-rtl.h.
15348         * sel-sched-ir.c: Include emit-rtl.h.
15349         * ira-build.c: Include emit-rtl.h.
15350         * emit-rtl.c (first_insn, last_insn): Remove defines.
15351         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
15352         Move to emit-rtl.h.
15353         (set_new_first_and_last_insn, get_last_insn_anywhere,
15354         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
15355         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
15356         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
15357         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
15358         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
15359         Use accessor functions.
15360         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
15361          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
15362         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
15363         mem_expr_equal_p): Move here from rtl.h.
15364         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
15365         Move here from emit-rtl.c; make inline.
15366         * cfglayout.h: Include emit-rtl.h.
15367         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
15368          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
15369         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
15370         mem_expr_equal_p, get_insns, set_first-insn,
15371         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
15372         * reg-stack.c: Include emit-rtl.h.
15373         * dce.c: Likewise.
15374
15375 2010-06-01  Jan Hubicka  <jh@suse.cz>
15376
15377         * cgraph.h (tree_function_versioning): Update prototype.
15378         (cgraph_function_versioning): Update prototype.
15379         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
15380         bitmap.
15381         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
15382         (cgraph_materialize_clone, save_inline_function_body): Update use of
15383         tree_function_versioning.
15384         * tree-inline.c (copy_bb): Look for previous copied block to link
15385         after; fix debug output.
15386         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
15387         (copy_body): Likewise.
15388         (expand_call_inline): Update use of copy_body.
15389         (tree_function_versioning): Update use of copy body; accept
15390         blocks_to_copy and new_entry.
15391
15392 2010-06-01  Jan Hubicka  <jh@suse.cz>
15393
15394         * gegenrtl.c: Remove unnecesary prototypes.
15395         (gendecl): Remove.
15396         (gendef): Produce static inline.
15397         (gencode): Remove.
15398         (main): Do not decode parameters; generate header only.
15399         * Makefile.in (genrtl.c): Remove.
15400
15401 2010-06-01  Jan Hubicka  <jh@suse.cz>
15402
15403         * tree-switch-conversion.c (build_one_array): Make it readonly.
15404
15405 2010-06-01  Richard Guenther  <rguenther@suse.de>
15406
15407         * optabs.c (init_optabs): Guard all accesses to reinit.
15408         * ipa-pure-const.c (propagate): Fix another typo.
15409         * opts.c (common_handle_option): Split assignment to bool.
15410         * c-opts.c (c_common_handle_option): Likewise.
15411
15412 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
15413             Matthew Gingell  <gingell@adacore.com>
15414
15415         * doc/invoke.texi: Mention -fdump-ada-spec.
15416         * tree-dump.c (dump_files): Add ada-spec.
15417         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
15418         * tree-pass.h (tree_dump_index): Add TDI_ada.
15419         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
15420         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
15421         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
15422         * c-decl.c: Include c-ada-spec.h.
15423         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
15424         functions.
15425         (c_write_global_declarations): Add handling of -fdump-ada-spec.
15426         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
15427         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
15428         * c-ada-spec.h, c-ada-spec.c: New files.
15429
15430 2010-06-01  Richard Guenther  <rguenther@suse.de>
15431
15432         PR lto/43853
15433         * ipa-pure-const.c (get_function_state): Hand back varying state
15434         if we do not have one.
15435         (has_function_state): New function.
15436         (duplicate_node_data): Adjust.
15437         (remove_node_data): Likewise.
15438         (pure_const_write_summary): Likewise.
15439         (propagate): Likewise.  Fix typo.
15440
15441 2010-06-01  Jan Hubicka  <jh@suse.cz>
15442
15443         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
15444         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
15445         (execute_all_ipa_transforms): Do not play with the states.
15446
15447 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
15448
15449         * config/arm/t-linux-androideabi: New.
15450         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
15451
15452 2010-06-01  Jan Hubicka  <jh@suse.cz>
15453
15454         * tree-inline.c (estimate_num_insns): For stdarg functions look
15455         into call statement to count cost of argument passing.
15456
15457 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
15458
15459         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
15460         argument for fprintf.
15461         (ix86_output_addr_diff_elt): Likewise.
15462         (x86_function_profiler): Likewise.
15463         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
15464         (LPREFIX): Likewise.
15465         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
15466
15467 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
15468
15469         PR target/44338
15470         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
15471         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
15472         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
15473         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
15474         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
15475         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
15476         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
15477         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
15478         TARGET_FUSED_MADD.
15479
15480 2010-05-31  Jan Hubicka  <jh@suse.cz>
15481
15482         * tree.h (tree_range_check_failed): Declare noreturn.
15483
15484 2010-05-31  Jan Hubicka  <jh@suse.cz>
15485
15486         * gimple.c (gimple_call_builtin_p): New function.
15487         * gimple.h (gimple_call_builtin_p): Declare.
15488         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
15489         to exit.
15490         (execute_warn_function_return): BUILT_IN_RETURN is return.
15491         (split_critical_edges): Return edges are not critical.
15492         (is_ctrl_altering_stmt): Builtin_in_return is altering.
15493         (gimple_verify_flow_info): Handle built_in_return.
15494         (execute_warn_function_return): Handle built_in_return.
15495         * ipa-pure-const.c (check_call): Ignore builtin_return.
15496
15497 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
15498
15499         PR middle-end/44337
15500         * expr.c (expand_assignment): Don't store anything for out-of-bounds
15501         array accesses with non-MEM.
15502
15503         PR tree-optimization/44182
15504         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
15505         newly needs to end a bb is followed by debug stmts, instead return
15506         true from the function at the end.
15507         (maybe_move_debug_stmts_to_successors): New function.
15508         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
15509
15510 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
15511
15512         PR target/44161
15513         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
15514
15515 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
15516
15517         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
15518         for nested functions in non-optimized compilation.
15519
15520 2010-05-31  Richard Guenther  <rguenther@suse.de>
15521
15522         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
15523
15524 2010-05-30  Jan Hubicka  <jh@suse.cz>
15525
15526         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
15527
15528 2010-05-30  Richard Guenther  <rguenther@suse.de>
15529
15530         PR lto/42975
15531         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
15532         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
15533         no longer needed.
15534
15535 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
15536
15537         * config/darwin.c (output_objc_section_asm_op): Add comment.
15538         (name_needs_quotes): Add '_' to list of valid comment chars.
15539         (machopic_output_function_base_name): Remove unneeded quotes.
15540         (darwin_encode_section_info): Adjust asm whitespace.
15541         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
15542         (ASM_OUTPUT_LOCAL): Ditto.
15543         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
15544         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
15545         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
15546
15547 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
15548
15549         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
15550         RS6000_OUTPUT_BASENAME unconditionally.
15551         (rs6000_output_function_epilogue): Likewise.
15552
15553 2010-05-30  Jan Hubicka  <jh@suse.cz>
15554
15555         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
15556         nodes.
15557
15558 2010-05-30  Richard Guenther  <rguenther@suse.de>
15559
15560         * tree-cfg.c (verify_gimple_assign_single): Implement
15561         verification for COND_EXPR rhs.
15562
15563 2010-05-30  Jan Hubicka  <jh@suse.cz>
15564
15565         * cgraph.h (cgraph_dump_file): Declare.
15566         * cgraphunit.c (cgraph_dump_file): Export.
15567         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
15568
15569 2010-05-30  Jan Hubicka  <jh@suse.cz>
15570
15571         * dwarf2out.c (reference_to_unused,
15572         premark_types_used_by_global_vars_helper): Avoid creation of new
15573         varpool nodes.
15574
15575 2010-05-30  Jan Hubicka  <jh@suse.cz>
15576
15577         * cgraph.h (cgraph_node_cannot_return,
15578         cgraph_edge_cannot_lead_to_return): New functions.
15579         * cgraph.c (cgraph_node_cannot_return,
15580         cgraph_edge_cannot_lead_to_return): Use them.
15581         * ipa-pure-const.c (pure_const_names): New static var.
15582         (check_call): Handle calls not leading to return.
15583         (pure_const_read_summary): Dump info read.
15584         (propagate): Dump info about propagation process; ignore side effects
15585         of functions not leading to exit; fix handling of pure functions.
15586
15587 2010-05-30  Jan Hubicka  <jh@suse.cz>
15588
15589         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
15590         for tail call epilogues.
15591
15592 2010-05-30  Jan Hubicka  <jh@suse.cz>
15593
15594         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
15595         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
15596         dump files.
15597
15598 2010-05-29  Jan Hubicka  <jh@suse.cz>
15599
15600         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
15601         node; remove references in node we no longer keep in cgrpah but need
15602         body of.
15603
15604 2010-05-29  Jan Hubicka  <jh@suse.cz>
15605
15606         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
15607
15608 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15609
15610         PR target/44165
15611         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
15612
15613 2010-05-29  Jan Hubicka  <jh@suse.cz>
15614
15615         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
15616         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
15617         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
15618         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
15619         debug_names_replaced_by, debug_update_ssa): Likewise.
15620         * sbitmap.c (debug_sbitmap): Likewise.
15621         * genrecog.c (debug_decision, debug_decision_list): Likewise.
15622         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
15623         debug_tree_chain): Likewise.
15624         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
15625         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
15626         * optabs.c (debug_optab_libfuncs): Likewise.
15627         (verify_loop_closed_ssa): Likewise.
15628         * value-prof.c (verify_histograms): Likewise.
15629         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
15630         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
15631         * cfghooks.c (verify_flow_info): Likewise.
15632         * fold-const.c (debug_fold_checksum): Likewise.
15633         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
15634         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
15635         Likewise.
15636         * omega.c (debug_omega_problem): Likewise.
15637         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
15638         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
15639         * dominance.c (verify_dominators, debug_dominance_info,
15640         debug_dominance_tree): Likewise.
15641         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
15642         * df_regno_debug, df_ref_debug,
15643         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
15644         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
15645         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
15646         * sel-sched.c (debug_state): Likewise.
15647         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
15648         Likewise.
15649         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
15650         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
15651         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
15652         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
15653         Likewise.
15654         * c-pretty-print.c (debug_c_tree): Likewise.
15655         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
15656         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
15657         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
15658         * ebitmap.c (debug_ebitmap): Likewise.
15659         * function.c (debug_find_var_in_block_tree): Likewise.
15660         * print-rtl.c (debug_rtx): Likewise.
15661         (debug_rtx_count): Likewise.
15662         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
15663         * stor-layout.c (debug_rli): Likewise.
15664         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
15665         * tree-data-ref.c (debug_data_references,
15666         debug_data_dependence_relations, debug_data_reference,
15667         debug_data_dependence_relation, debug_rdg_vertex,
15668         debug_rdg_component, debug_rdg): Likewise.
15669         * tree-affine.c (debug_aff): Likewise.
15670         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
15671         Likewise.
15672         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
15673         * emit-rtl.c (verify_rtl_sharing): Likewise.
15674         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
15675         debug_value_expressions): Likewise.
15676         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
15677         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
15678         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
15679         * cfglayout.c (verify_insn_chain): Likewise.
15680         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
15681         debug_clast_stmt, debug_generated_program): Likewise.
15682         * ggc-page.c (debug_print_page_list): Likewise.
15683         * tree-ssa-ter.c (debug_ter): Likewise.
15684         * graphite-dependences.c (debug_pddr): Likewise.
15685         * sched-deps.c (debug_ds): Likewise.
15686         * tree-ssa.c (verify_ssa): Likewise.
15687         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
15688         debug_scattering_functions, debug_iteration_domains, debug_pdr,
15689         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
15690         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
15691         * tree-inline.c (debug_find_tree): Likewise.
15692         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
15693         debug_ppl_powerset_matrix): Likewise.
15694         * var-tracking.c (debug_dv): Likewise.
15695         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
15696         * cfgloop.c (verify_loop_structure): Likewise.
15697         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
15698         * c-common.c (verify_sequence_points): Likewise.
15699         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
15700         debug_candidates, debug_rgn_dependencies): Likewise.
15701         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
15702         * debug_constraint_graph, debug_solution_for_var,
15703         debug_sa_points_to_info): Likewise.
15704         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
15705         Likewie.
15706         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
15707         debug_loops, debug_loop, debug_loop_num): Likewise.
15708         * passes.c (debug_pass): Likewise.
15709         (dump_properties): Likewise; add cfglayout property.
15710         (debug_properties): Likewise.
15711         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
15712         * varpool.c (debug_varpool): Likewise.
15713         * regcprop.c (debug_value_data): Likewise.
15714         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
15715         debug_immediate_uses_for): Likewise.
15716
15717 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
15718
15719         PR bootstrap/44315
15720         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
15721         Filter out insn-flags.h.
15722
15723 2010-05-29  Jan Hubicka  <jh@suse.cz>
15724
15725         * cgraph.h (struct varpool_node_set_def,
15726         struct cgraph_node_set_def): Remove unused AUX pointer.
15727         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
15728         VEC_empty macro.
15729
15730 2010-05-29  Jan Hubicka  <jh@suse.cz>
15731
15732         PR middle-end/44324
15733         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
15734
15735 2010-05-29  Richard Guenther  <rguenther@suse.de>
15736
15737         * lto-streamer.c (cached_bp): New global variable.
15738         (bitpack_create): Return the cached bitpack, if available.
15739         (bitpack_delete): Clear and cache the bitpack, if appropriate.
15740         (bp_pack_value): Remove redundant asserts.
15741
15742 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
15743
15744         PR middle-end/44306
15745         * tree-if-conv.c (is_true_predicate): New.
15746         (is_predicated): Use is_true_predicate.
15747         (add_to_predicate_list): Same.  Do not use unshare_expr.
15748         (add_to_dst_predicate_list): Same.
15749
15750 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
15751
15752         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
15753         field on edges.
15754         (predicate_bbs): Same.
15755         (clean_predicate_lists): Same.
15756         (find_phi_replacement_condition): Do not AND the predicate from
15757         edge->aux.
15758
15759 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
15760
15761         PR bootstrap/44315
15762         * Makefile.in (build/gencondmd.o): Add a missing `\'.
15763
15764 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15765
15766         PR target/44261
15767         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
15768         (negdf2): Adjust expander pattern and use negdf2_slow.
15769         (negsf2): Likewise.
15770
15771 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
15772
15773         * basic-block.h (struct control_flow_graph): Move last_label_uid field
15774         up.
15775         * df.h (struct df_base_ref): Move regno field up.
15776         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
15777         * expr.h (struct separate_ops): Move location field up.
15778         * optabs.h (struct optab_d): Move libcall_basename field down.
15779         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
15780         * config/i386/i386.h (struct machine_function): Convert call_abi field
15781         into a bitfield.  Move cfa field to the end of the structure.
15782
15783 2010-05-29  Jan Hubicka  <jh@suse.cz>
15784
15785         * varpool.c (varpool_get_node): Fix lookup.
15786
15787 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15788
15789         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
15790         RTL specific prototypes with #ifdef RTX_CODE.
15791         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
15792         * config/spu/t-spu-elf: Fix dependencies.
15793
15794         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
15795
15796 2010-05-29  Mike Stump  <mikestump@comcast.net>
15797
15798         PR bootstrap/44315
15799         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
15800         TM_H when building to avoid dependency loops.
15801
15802 2010-05-29  Jan Hubicka  <jh@suse.cz>
15803
15804         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
15805         refs and body; not the whole node for masters of materialized clones.
15806
15807 2010-05-29  Mike Stump  <mikestump@comcast.net>
15808
15809         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
15810
15811 2010-05-29  Jan Hubicka  <jh@suse.cz>
15812
15813         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
15814         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
15815         use of clone_function_name.
15816         * cgraph.h (cgraph_create_virtual_clone,
15817         cgraph_function_versioning): update prototypes.
15818         (clone_function_name): Declare.
15819         * ipa-cp.c (ipcp_insert_stage): Update call of
15820         cgraph_create_virtual_clone.
15821         * omp-low.c (create_omp_child_function_name): Use
15822         cgraph_create_virtual_clone.
15823         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
15824         (cgraph_function_versioning): Take SUFFIX argument; produce new name
15825         and make decl local.
15826
15827 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15828
15829         * vec.h: Include statistics.h
15830         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
15831         with VEC_H.
15832
15833 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15834
15835         * c-lex.c: Do not include c-tree.h.
15836         * c-pretty-print.c: Likewise.
15837         * c-opts.c: Likewise.
15838         * c-gimplify.c: Likewise.
15839         * c-common.c: Likewise.
15840         * c-dump.c: Likewise.  Include c-common.h.
15841
15842 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15843
15844         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
15845         before including diagnostic-core.h.
15846         (c_cpp_error): New prototype moved from c-tree.h.
15847         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
15848         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
15849         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
15850         (c_cpp_error): Prototype moved to c-common.h.
15851         * Makefile.in: Update dependency for C_COMMON_H.
15852
15853 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15854
15855         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
15856         * c-common.c (c_register_addr_space): Remove here.
15857         * c-decl.c (c_register_addr_space): Re-add here.
15858
15859 2010-05-28  Mike Stump  <mikestump@comcast.net>
15860
15861         * config/darwin-c.c: Remove c-tree.h include.
15862
15863 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
15864
15865         * gcc.c: Include diagnostic.h.
15866         (error_count): Remove.  All users changed to use errorcount.
15867         (programname): Remove.  All users changed to use progname.
15868         (fancy_abort, internal_error, fatal_error, error, warning, inform,
15869         fnotice): Remove.
15870         (execute): Don't include "Internal error" and bug reporting
15871         information in argument of internal_error call.
15872         (process_command): Don't increment error_count after calling
15873         perror_with_name.
15874         (input_filename): Rename to gcc_input_filename.  All users
15875         changed.
15876         (main): Call diagnostic_initialize.  Register delete_temp_files
15877         with atexit.  Use seen_error to test for errors.
15878         * gcc.h: Include diagnostic-core.h.
15879         (fatal_error, error, warning): Remove.
15880         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
15881         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
15882         (gcc.o): Update dependencies.
15883
15884 2010-05-28  Jeff Law  <law@redhat.com>
15885
15886         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
15887         functions.
15888         * ira.h (ira_bad_reload_regno): Declare
15889         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
15890
15891         * ira-color.c (update_curr_costs): Free updated hard reg costs.
15892         (ira_reassign_conflict_allocnos): Remove bogus asserts.
15893         (allocno_reload_assign): Likewise.
15894
15895 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
15896
15897         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
15898         build1_stat.
15899
15900 2010-05-28  Richard Guenther  <rguenther@suse.de>
15901
15902         PR lto/44312
15903         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
15904         Stream fixed-point constants mode.
15905         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
15906         and TYPE_PRECISION.
15907         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
15908         Stream fixed-point constants mode.
15909         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
15910         and TYPE_PRECISION.
15911
15912 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
15913
15914         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
15915         only place it was called from.
15916         (number_of_latch_executions): Do not return chrec_dont_know when the
15917         may_be_zero is a runtime condition: instead, return a COND_EXPR
15918         including the may_be_zero condition.
15919         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
15920         of nb_iterations.
15921         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
15922         COND_EXPRs.
15923
15924 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
15925
15926         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
15927         generate COND_EXPRs for degenerate_phi_result.
15928
15929 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
15930
15931         PR middle-end/44293
15932         * tree-if-conv.c (if_convertible_loop_p): Check the
15933         if-convertibility of phi nodes in non predicated BBs.
15934
15935 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
15936
15937         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
15938
15939 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
15940
15941         PR driver/15303
15942         * gcc.c (inform, warning, inform): New functions.
15943         (fatal_ice): Rename to internal_error; change cmsgid parameter to
15944         gmsgid.  All callers changed.
15945         (notice): Rename to fnotice; add parameter fp.  All callers changed.
15946         (fatal_error): Rename to fatal_signal.  All users changed.
15947         (fatal): Rename to fatal_error; change cmsgid parameter to
15948         gmsgid.  All callers changed.
15949         (process_command): Use warning instead of error for warnings.
15950         (end_going_arg): Don't use _() around argument of error.
15951         (do_spec_1): Use inform for message from %n specs.  Use warning
15952         instead of error for warnings.
15953         (main): Use inform for comparison messages.  Use warning for
15954         message about unused linker input.
15955         (error): Increment error_count.  Print "error: ".
15956         * gcc.h (fatal): Change to fatal_error.
15957         (warning): Declare.
15958         * config/darwin-driver.c (darwin_default_min_version): Use warning
15959         instead of fprintf for warnings.
15960         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
15961
15962 2010-05-28  Julian Brown  <julian@codesourcery.com>
15963
15964         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
15965         (*thumb2_addsi3_compare0_scratch): New.
15966         * config/arm/constraints.md (Pv): New.
15967         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
15968         for ARM mode only.
15969         (*addsi3_compare0_scratch): Likewise.
15970
15971 2010-05-28  Jan Hubicka  <jh@suse.cz>
15972
15973         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
15974         check.
15975         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
15976         only on local statics.
15977
15978 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
15979
15980         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
15981
15982 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
15983
15984         PR bootstrap/44314
15985         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
15986         (OPTION_GLIBC): Define.
15987
15988 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
15989
15990         PR debug/41048
15991         * dwarf2out.c (double_int_type_size_in_bits): New function.
15992         (round_up_to_align): Change first argument and return value to
15993         double_int.
15994         (field_byte_offset): Work internally on double_ints.
15995
15996         PR target/43636
15997         * builtins.c (expand_movstr): Use a temporary pseudo instead
15998         of target even when target is not NULL and not const0_rtx, but
15999         fails movstr predicate.
16000         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
16001
16002 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
16003
16004         * final.c (rest_of_clean_state): Use %m in errors instead of
16005         strerror (errno).
16006         * gengtype.c (read_input_list, close_output_files): Use xstrerror
16007         instead of strerror.
16008         * toplev.c (process_options): Use %m in errors instead of strerror
16009         (errno).
16010         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
16011         (errno).
16012
16013 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
16014
16015         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
16016         (ix86_canonical_va_list_type): Make static.  Add declaration.
16017         (ix86_enum_va_list): Make static.  Reindent.
16018         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
16019         (ix86_canonical_va_list_type): Ditto.
16020         (ix86_enum_va_list): Ditto.
16021
16022 2010-05-28  Richard Guenther  <rguenther@suse.de>
16023
16024         * lto-wrapper.c (run_gcc): With -save-temps generate a
16025         user-visible ltrans filename.  Fixup ltrans unit numbering.
16026
16027 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
16028
16029         * c-common.c (c_common_nodes_and_builtins): Replace use
16030         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
16031         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
16032         to ix86_enum_va_list.
16033         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
16034         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
16035         (TARGET_ENUM_VA_LIST_P): Add hook description.
16036         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
16037         * target.h (gcc_target): Add enum_va_list hook.
16038
16039         PR bootstrap/44299
16040         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
16041         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
16042         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
16043
16044 2010-05-28  Alan Modra  <amodra@gmail.com>
16045
16046         PR target/44266
16047         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
16048         emit_library_call machinery to set up __tls_get_addr calls.
16049
16050 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16051
16052         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
16053
16054 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
16055
16056         Revert fix for PR c++/44188
16057         * c-common.c (is_typedef_decl): Revert the moving of  this
16058         definition ...
16059         * tree.c (is_typedef_decl): ... here.
16060         (typdef_variant_p): Revert the moving of this  definition
16061         here from cp/tree.c.
16062         * c-common.h (is_typedef_decl): Revert the moving of this
16063         declaration ...
16064         * tree.h (is_typedef_decl): ... here.
16065         (typedef_variant_p): Revert the moving of this  declaration here
16066         from cp/cp-tree.h
16067         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
16068         (gen_tagged_type_die): Revert the splitting out of ...
16069         (gen_type_die_with_usage): ... this function. Revert the anonymous
16070         tagged type handling.
16071         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
16072         typedefs naming anonymous tagged types.
16073
16074 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
16075
16076         * config/rs6000/rs6000-modes.def (PSImode): Delete.
16077
16078 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
16079
16080         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
16081         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
16082         throughout.
16083         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
16084         "xer" to "ca".
16085         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
16086         XER_REGS to CA_REGS throughout.
16087         * config/rs6000/rs6000.h: Same.
16088         (ADDITIONAL_REGISTER_NAMES): Add "xer".
16089         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
16090         that mode_iterator "P" is the size for arithmetic carries as well.
16091         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
16092
16093 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
16094
16095         PR bootstrap/44255
16096         * combine.c (struct rtx_subst_pair): Define unconditionally.
16097         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
16098         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
16099         Call make_compound_operation on pair->to.
16100         (propagate_for_debug): Don't call make_compound_operation here.
16101         Always use simplify_replace_fn_rtx.
16102
16103 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
16104
16105         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
16106         * config/xtensa/xtensa.c (override_options): Check
16107           TARGET_FORCE_NO_PIC and set flag_pic.
16108         * config/xtensa/xtensa.opt: Document -mforce-no-pic
16109
16110 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
16111
16112         PR bootstrap/44299
16113         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
16114         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
16115
16116 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
16117
16118         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
16119         toplev.h.
16120         * diagnostic.c: Don't include toplev.h.
16121         (progname): Define.  Moved from toplev.c.
16122         (seen_error): New function.
16123         * diagnostic.h: Include diagnostic-core.h.
16124         (diagnostic_t, emit_diagnostic): Don't declare here.
16125         * toplev.c (progname): Move to toplev.c.
16126         (emit_debug_global_declarations, compile_file, finalize,
16127         do_compile, toplev_main): Use seen_error.
16128         * toplev.h: Include diagnostic-core.h.
16129         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
16130         internal_error, warning, warning_at, error, error_n, error_at,
16131         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
16132         verbatim, fnotice, progname): Move to diagnostic-core.h.
16133         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
16134         (expand_builtin_expect): Use seen_error.
16135         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
16136         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
16137         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
16138         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
16139         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
16140         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
16141         errorcount for errors.
16142         * c-opts.c (c_common_finish): Use seen_error.
16143         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
16144         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
16145         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
16146         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
16147         (get_coverage_counts): Use seen_error.
16148         * dwarf2out.c (dwarf2out_finish): Use seen_error.
16149         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
16150         gimplify_body): Use seen_error.
16151         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
16152         * ipa-pure-const.c (gate_pure_const): Use seen_error.
16153         * ipa-reference.c (gate_reference): Use seen_error.
16154         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
16155         * lambda-code.c: Include diagnostic-core.h instead of
16156         diagnostic.h.
16157         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
16158         * lto-compress.c: Include diagnostic-core.h instead of
16159         diagnostic.h.
16160         * lto-section-in.c: Include diagnostic-core.h instead of
16161         diagnostic.h.
16162         * lto-streamer-out.c: Include diagnostic-core.h instead of
16163         diagnostic.h.
16164         * lto-streamer.c: Include diagnostic-core.h instead of
16165         diagnostic.h.
16166         (gate_lto_out): Use seen_error.
16167         * matrix-reorg.c: Include diagnostic-core.h instead of
16168         diagnostic.h.
16169         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
16170         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
16171         (gate_expand_omp, lower_omp_1): Use seen_error.
16172         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
16173         (rest_of_decl_compilation, rest_of_type_compilation,
16174         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
16175         * tree-cfg.c (label_to_block_fn): Use seen_error.
16176         * tree-inline.c (optimize_inline_calls): Use seen_error.
16177         * tree-mudflap.c (mudflap_finish_file): Use
16178         seen_error.
16179         * tree-optimize.c (gate_all_optimizations,
16180         gate_all_early_local_passes, gate_all_early_optimizations): Use
16181         seen_error.
16182         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
16183         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
16184         (varpool_remove_unreferenced_decls,
16185         varpool_assemble_pending_decls): Use seen_error.
16186         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
16187         (TOPLEV_H, DIAGNOSTIC_H): Update.
16188         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
16189         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
16190         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
16191         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
16192         coverage.o, lambda-code.o): Update dependencies.
16193
16194 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
16195
16196         PR c++/44188
16197         * c-common.c (is_typedef_decl): Move this definition ...
16198         * tree.c (is_typedef_decl): ... here.
16199         (typdef_variant_p): Move definition here from cp/tree.c.
16200         * c-common.h (is_typedef_decl): Move this declaration ...
16201         * tree.h (is_typedef_decl): ... here.
16202         (typedef_variant_p): Move declaration here from cp/cp-tree.h
16203         * dwarf2out.c (is_naming_typedef_decl): New function.
16204         (gen_tagged_type_die): Split out of ...
16205         (gen_type_die_with_usage): ... this function. When an anonymous
16206         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
16207         is emitted for the typedef.
16208         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
16209         anonymous tagged types.
16210
16211 2010-05-27  Jason Merrill  <jason@redhat.com>
16212
16213         * print-tree.c (debug_vec_tree): New fn.
16214         (print_vec_tree): New fn.
16215         * tree.h: Declare them.
16216         * gdbinit.in (pvt): New command.
16217
16218         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
16219
16220         * gdbinit.in (pdd): New command.
16221
16222 2010-05-27  Jan Hubicka  <jh@suse.cz>
16223
16224         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
16225         (update_caller_keys): Return early if there are no callers;
16226         only update fibheap when decresing the key.
16227         (update_callee_keys): Avoid recursion.
16228         (decide_inlining_of_small_functions): When badness does not match;
16229         re-insert into fibheap.
16230
16231 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
16232
16233         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
16234         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
16235         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
16236         (ALL_HOST_OBJS): Now a union of the above two.
16237         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
16238         all files in ALL_HOST_FRONTEND_OBJS.
16239         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
16240
16241         * c-common.c: Pretend to be a backend file by undefining
16242         IN_GCC_FRONTEND (still need rtl.h here).
16243
16244 2010-05-27  Jan Hubicka  <jh@suse.cz>
16245
16246         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
16247         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
16248
16249 2010-05-27  Jan Hubicka  <jh@suse.cz>
16250
16251         * sched-ebb.c: Rename struct deps to struct deps_desc.
16252         * ddg.c: Likewise.
16253         * sel-sched-ir.c: Likewise.
16254         * sched-deps.c: Likewise.
16255         * sched-int.h: Likewise.
16256         * sched-rgn.c: Likewise.
16257
16258 2010-05-27  Jon Beniston  <jon@beniston.com>
16259
16260         PR 43726
16261         * config/lm32/lm32.h: Remove definition of
16262         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
16263
16264 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
16265
16266         PR lto/44230
16267         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
16268
16269 2010-05-27  Richard Guenther  <rguenther@suse.de>
16270
16271         PR tree-optimization/44284
16272         * tree-vect-stmts.c (vectorizable_assignment): Handle
16273         sign-changing conversions as simple copy.
16274
16275 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16276
16277         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
16278         Bionic C library.
16279         (__gthread_active_p): Check for pthread_create if compiling against
16280         Bionic C library.
16281
16282 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16283
16284         Support compilation for Android platform.  Reimplement -mandroid.
16285
16286         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
16287         (*android*): Set ANDROID_DEFAULT.
16288         (arm*-*-linux*): Include linux-android.h.
16289         (arm*-*-eabi*): Don't include previous -mandroid implementation.
16290         * config/arm/eabi.h: Remove, move Android-specific parts ...
16291         * config/linux-android.h: ... here.  New file.
16292         * config/arm/eabi.opt: Rename to ...
16293         * config/linux-android.opt: ... this.
16294         (mandroid): Allow -mno-android option.  Initialize based on
16295         ANDROID_DEFAULT.
16296         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
16297         Move logic to corresponding LINUX_TARGET_* macros.
16298         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
16299         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
16300         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
16301         Android definitions.
16302         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
16303         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
16304         Document.
16305
16306 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16307
16308         Add support for Bionic C library
16309
16310         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
16311         macro.
16312         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
16313         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
16314
16315         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
16316         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
16317         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
16318         to support multiple C libraries.  Handle Bionic.
16319         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
16320         (BIONIC_DYNAMIC_LINKER64): Define.
16321         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
16322         Update.
16323         (TARGET_HAS_SINCOS): Enable for Bionic.
16324
16325         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
16326         the last option specified on command line take effect.
16327         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
16328         (mbionic): New.
16329         (mglibc, muclibc): Update.
16330
16331         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
16332         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
16333         DEFAULT_LIBC.
16334
16335         * doc/invoke.texi (-mglibc, -muclibc): Update.
16336         (-mbionic): Document.
16337
16338 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16339
16340         * c-common.h (c_register_addr_space): Add prototype.
16341         (ADDR_SPACE_KEYWORD): Remove.
16342         * c-common.c (c_register_addr_space): New function.
16343         (c_addr_space_name): Reimplement.
16344         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
16345
16346         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
16347         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
16348
16349         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
16350         Remove TARGET_ADDR_SPACE_KEYWORDS.
16351
16352 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
16353
16354         * input.c: New file.
16355         * input.h (main_input_filename): Move declaration to toplev.h.
16356         * toplev.c (input_location, line_table): Move to input.c
16357         * toplev.h (main_input_filename): Move declaration from input.h.
16358         * tree.c (expand_location): Move to input.c.
16359         * Makefile.in (OBJS-common): Add input.o.
16360         (input.o): Add dependencies.
16361
16362 2010-05-27  Richard Guenther  <rguenther@suse.de>
16363
16364         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
16365         for non-existant files.
16366         (fork_execute): Mark args_name file as deleted.
16367
16368 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
16369
16370         PR bootstrp/44287
16371         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
16372         (narrow_signed_type): Likewise.
16373
16374 2010-05-26  Jan Hubicka  <jh@suse.cz>
16375
16376         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
16377         edge only when checking is enabled; check using former_clone_of;
16378         check inline clones too.
16379         (cgraph_materialize_clone): Record former_clone_of pointer.
16380         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
16381         combining redirections; dump args_to_skip bitmap
16382         (cgraph_materialize_all_clones): Do no redirection here.
16383         * ipa-inline.c (inline_transform): Do redirection here.
16384         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
16385         cheking only).
16386
16387 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
16388
16389         * config/avr/avr-c.c: Do not include regs.h.
16390         Include cpplib.h for cpp_define and tree.h for c-common.h.
16391         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
16392         * config/avr/t-avr: Fix dependencies for avr-c.o.
16393
16394 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
16395
16396         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
16397         string instead of SYMBOL_REF rtx.
16398         * rtl.h (set_stack_check_libfunc): Move prototype from here...
16399         * libfuncs.h: ...to here.  Adjust for explow.c change.
16400
16401 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
16402
16403         * pretty-print.c: Don't include ggc.h.
16404         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
16405         (identifier_to_locale): Use them for allocation.
16406         * pretty-print.h (identifier_to_locale_alloc,
16407         identifier_to_locale_free): Declare.
16408         * toplev.c (alloc_for_identifier_to_locale): New.
16409         (general_init): Set identifier_to_locale_alloc and
16410         identifier_to_locale_free.
16411         * Makefile.in (pretty-print.o): Update dependencies.
16412
16413 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
16414
16415         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
16416         pointer types if they have different alignment or mode.
16417
16418 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
16419
16420         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
16421         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
16422         * config/sparc/sparc-protos.h (function_value): Remove declaration.
16423         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
16424         sparc_function_value_regno_p): New functions.
16425         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16426         TARGET_FUNCTION_VALUE_REGNO_P): Define.
16427         (function_value): Rename to...
16428         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
16429         argument to 'outgoing'.
16430         (function_arg_record_value, function_arg_union_value,
16431         function_arg_vector_value): Update comment.
16432
16433 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
16434
16435         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
16436         (fde_needed_for_eh_p): New predicate.
16437         (output_call_frame_info): Use it throughout to decide whether FDEs
16438         are needed for EH purpose.
16439         (dwarf2out_begin_prologue): Reorder assignments.
16440
16441 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16442
16443         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
16444         special case loop->header.
16445         (is_predicated): New.
16446         (if_convertible_loop_p): Call it.
16447
16448 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16449
16450         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
16451         iterator in parameter.  Do not generate code during the analysis.
16452         (tree_if_convert_cond_stmt): Removed.
16453         (tree_if_convert_stmt): Removed.
16454         (predicate_bbs): New.
16455         (if_convertible_loop_p): Call predicate_bbs.
16456         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
16457         now contains all the analysis part.
16458
16459 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16460
16461         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
16462         statements in the analysis part.
16463         (tree_if_convert_stmt): Update comment.
16464         (remove_conditions_and_labels): New.
16465         (combine_blocks): Call remove_conditions_and_labels.
16466         (tree_if_conversion): Update comment.
16467
16468 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16469
16470         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
16471         than 2 predecessors or more than 2 successors.
16472
16473 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16474
16475         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
16476         of loops in which the data dependence analysis fails.
16477
16478 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16479
16480         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
16481         CDI_POST_DOMINATORS.
16482         (tree_if_conversion): Same.
16483
16484 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16485
16486         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
16487
16488 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16489
16490         * tree-if-conv.c: Update copyright years.  Fix comments.
16491         Fix indentation.
16492
16493 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
16494
16495         * builtin-types.def (BT_INT128): New primitive type.
16496         (BT_UINT128): Likewise.
16497         * c-common.c (c_common_r): Add __int128 keyword.
16498         (c_common_type_for_size): Handle __int128.
16499         (c_common_type_for_mode): Likewise.
16500         (c_common_signed_or_unsigned_type): Likewise.
16501         (c_common_nodes_and_builtins): Add builtin type
16502         if target supports 128-bit integer scalar.
16503         * c-common.h (enum rid): Add RID_INT128.
16504         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
16505         if target supports 128-bit integer scalar.
16506         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
16507         (finish_declspecs): Likewise.
16508         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
16509         (c_token_starts_declspecs): Likewise.
16510         (c_parser_declspecs): Likewise.
16511         (c_parser_attributes): Likewise.
16512         (c_parser_objc_selector): Likewise.
16513         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
16514         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
16515         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
16516         * tree.c (make_or_reuse_type): Likewise.
16517         (make_unsigned_type): Likewise.
16518         (build_common_tree_nodes_2): Likewise.
16519         * tree.h (enum integer_type_kind): Add itk_int128 and
16520         itk_unsigned_int128.
16521         (int128_integer_type_node): New define.
16522         (int128_unsigned_type_node): New define.
16523         * doc/extend.texi: Add documentation about __int128 type.
16524
16525 2010-05-26  Richard Guenther  <rguenther@suse.de>
16526
16527         * tree-ssa-sccvn.c (copy_nary): Adjust.
16528         (copy_phis): Rename to ...
16529         (copy_phi): ... this.  Adjust.
16530         (copy_references): Rename to ...
16531         (copy_reference): ... this.  Adjust.
16532         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
16533         result into the valid table.
16534
16535 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
16536
16537         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
16538         insn-config.h, insn-codes.h, recog.h, and optabs.h.
16539
16540 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16541
16542         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
16543
16544 2010-05-26  Richard Guenther  <rguenther@suse.de>
16545
16546         * opts.c (common_handle_option): Handle OPT_Ofast.
16547
16548 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
16549
16550         * diagnostic.c: Don't include opts.h.
16551         (permissive_error_option): Define.
16552         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
16553         for classify_diagnostic.  Don't use memset for
16554         classify_diagnostic.  Initialize new and recently added fields.
16555         (diagnostic_classify_diagnostic): Use context->n_opts instead of
16556         N_OPTS.
16557         (diagnostic_report_diagnostic): Pass context parameter to
16558         diagnostic_report_warnings_p.  Use option_enabled and option_name
16559         hooks from context.
16560         (emit_diagnostic): Use permissive_error_option.
16561         (permerror): Likewise.
16562         * diagnostic.h: Don't include options.h.
16563         (struct diagnostic_context): Add n_opts, opt_permissive,
16564         inhibit_warnings, warn_system_headers, option_enabled and
16565         option_name fields.  Change classify_diagnostic to a pointer.
16566         * opts-diagnostic.h: New file.
16567         * opts.c: Include opts-diagnostic.h.
16568         (common_handle_option): Set global_dc fields for -Wfatal-errors,
16569         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
16570         (option_name): New function.
16571         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
16572         (c_common_handle_option): Set global_dc->permissive for
16573         -fpermissive.
16574         * c-common.c (c_cpp_error): Save and restore
16575         global_dc->warn_system_headers, not variable warn_system_headers.
16576         * toplev.c: Include opts-diagnostic.h.
16577         (general_init): Update call to diagnostic_initialize.  Set
16578         global_dc->show_column, global_dc->option_enabled and
16579         global_dc->option_name.
16580         (process_options): Don't set global_dc fields here.
16581         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
16582         (diagnostic.o, opts.o, toplev.o): Update dependencies.
16583
16584 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
16585
16586         * config/picochip/picochip.md (movsi): Split a movsi from a
16587         const after reload.
16588
16589 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16590
16591         * ggc-zone.c: Update copyright year.
16592         (poison_region): Mark memory for Valgrind as undefined before
16593         memset () call and inaccessible afterwards.
16594         (ggc_pch_total_size): Change type of i to int.
16595
16596 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16597
16598         * ggc-common.c (ggc_free_overhead): Allow empty slot.
16599
16600 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16601
16602         * ggc-common.c: Update copyright year.
16603         (ggc_rlimit_bound): Remove prototype.  Compile only if
16604         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
16605         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
16606         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
16607         (ggc_min_heapsize_heuristic): Likewise.
16608
16609 2010-05-26  Richard Guenther  <rguenther@suse.de>
16610
16611         PR rtl-optimization/44164
16612         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
16613         no-common access-path disambiguation.
16614         (indirect_ref_may_alias_decl_p): Adjust.
16615         (indirect_refs_may_alias_p): Likewise.
16616         (refs_may_alias_p_1): Likewise.
16617
16618 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
16619
16620         * c-typeck.c: Do not include expr.h.
16621
16622 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
16623
16624         * rtl.h (decl_default_tls_model): Move prototype from here...
16625         * output.h: ...to here.
16626         * c-decl.c: Do not include rtl.h.
16627         * c-pragma.c: Likewise.
16628         * c-parser.c: Likewise.
16629         * c-gimplify.c: Likewise.  And also not hard-reg-set.
16630         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
16631         FIXME note for it.  Add a FIXME note for expr.h.
16632         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
16633         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
16634         defined.
16635
16636 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
16637
16638         PR target/44199
16639         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
16640         or total_size is larger than red zone size for non-V4 ABI, emit a
16641         stack_tie resp. frame_tie insn before stack pointer restore.
16642         * config/rs6000/rs6000.md (frame_tie): New insn.
16643
16644 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
16645
16646         * function.h (struct function): Add can_throw_non_call_exceptions bit.
16647         * lto-streamer-in.c (input_function): Stream it in.
16648         * lto-streamer-out.c (output_function): Stream it out.
16649         * function.c (allocate_struct_function): Set it.
16650         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
16651         for flag_non_call_exceptions.
16652         * cfgbuild.c (control_flow_insn_p): Likewise.
16653         (make_edges): Likewise.
16654         * cfgexpand.c (expand_stack_alignment): Likewise.
16655         * combine.c (distribute_notes): Likewise.
16656         * cse.c (cse_extended_basic_block): Likewise.
16657         * except.c (insn_could_throw_p): Likewise.
16658         * gcse.c (simple_mem): Likewise.
16659         * ipa-pure-const.c (check_call): Likewise.
16660         (check_stmt ): Likewise.
16661         * lower-subreg.c (lower-subreg.c): Likewise.
16662         * optabs.c (emit_libcall_block): Likewise.
16663         (prepare_cmp_insn): Likewise.
16664         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
16665         * postreload.c (rest_of_handle_postreload): Likewise.
16666         * reload1.c (reload_as_needed): Likewise.
16667         (emit_input_reload_insns): Likewise.
16668         (emit_output_reload_insns): Likewise.
16669         (fixup_abnormal_edges): Likewise.
16670         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
16671         * store-motion.c (find_moveable_store): Likewise.
16672         * tree-eh.c (stmt_could_throw_p): Likewise.
16673         (tree_could_throw_p): Likewise.
16674         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
16675         * config/arm/arm.c (arm_expand_prologue): Likewise.
16676         (thumb1_expand_prologue): Likewise.
16677         * config/rx/rx.md (cbranchsf4): Likewise.
16678         (cmpsf): Likewise.
16679         * config/s390/s390.c (s390_emit_prologue): Likewise.
16680         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
16681         (inline_forbidden_into_p): New predicate.
16682         (expand_call_inline): Use it to forbid inlining.
16683         (tree_can_inline_p): Likewise.
16684
16685 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
16686
16687         * config/i386/i386-c.c: Do not include rtl.h.
16688         * config/i386/t-i386: Update dependencies.
16689
16690 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
16691
16692         * attribs.c: Do not include rtl.h.
16693         * Makefile.in: Update dependencies.
16694
16695 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
16696
16697         * double-int.h (double_int_and): New.
16698         * combine.c (try_combine): Clean up, use double_int_* and
16699         immed_double_int_const functions.
16700
16701 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16702
16703         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
16704         stderr to /dev/null instead of grep -q.
16705         * configure: Regenerate.
16706
16707 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
16708
16709         * Makefile.in (EXCEPT_H): Fix typo.
16710
16711 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
16712
16713         * ira-build.c (update_conflict_hard_reg_costs): New.
16714         (ira_build): Call update_conflict_hard_reg_costs.
16715
16716 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
16717
16718         PR debug/41371
16719         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
16720         ENABLE_CHECKING.
16721         (intersect_loc_chains): Walk the s2var's loc_chain together
16722         with s1node chain as long as the locations are equal, don't
16723         call find_loc_in_1pdv in that case.
16724
16725         PR debug/42801
16726         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
16727         (copy_bind_expr): ... instead of here.
16728         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
16729         if the block hasn't been remapped.
16730         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
16731         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
16732
16733 2010-05-25  Richard Guenther  <rguenther@suse.de>
16734
16735         PR middle-end/44069
16736         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
16737         out-of-bounds array accesses.
16738
16739 2010-05-25  Richard Guenther  <rguenther@suse.de>
16740
16741         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
16742         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
16743         (run_gcc): Re-organize to make cleanup easier.
16744
16745 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16746
16747         * config/s390/s390.c (optimization_options): Fix and move the
16748         flag_prefetch_loop_arrays override ...
16749         (override_options): ... here.
16750
16751 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
16752
16753         * diagnostic.c: Don't include plugin.h.
16754         (diagnostic_report_diagnostic): Don't handle plugins specially
16755         here.  Pass context to internal_error callback.
16756         * diagnostic.h (struct diagnostic_context): Add context parameter
16757         to internal_error callback.
16758         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
16759         * plugin.h (struct diagnostic_context): Declare.
16760         (warn_if_plugins, plugins_internal_error_function): Declare.
16761         * toplev.c (general_init): Set global_dc->internal_error.
16762         * Makefile.in (diagnostic.o): Update dependencies.
16763
16764 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
16765
16766         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
16767         * config/rs6000/t-darwin64: New.
16768         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
16769         build crt2.
16770
16771 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
16772
16773         PR 44203
16774         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
16775         match the original (and intended) behaviour before r159557.  This
16776         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
16777         in two ways.
16778
16779 2010-05-25  Richard Guenther  <rguenther@suse.de>
16780
16781         * doc/invoke.texi: Document -Ofast.
16782         * target.h (struct gcc_target): Add handle_ofast.
16783         * target-def.h (TARGET_HANDLE_OFAST): Add.
16784         (TARGET_INITIALIZER): Adjust.
16785         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
16786         * common.opt (Ofast): Add.
16787
16788 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
16789
16790         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
16791         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
16792
16793 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
16794
16795         PR target/43610
16796         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
16797         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
16798         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
16799         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
16800
16801 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
16802
16803         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
16804         DW_OP_minus with negated offset instead of DW_OP_plus.
16805         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
16806
16807 2010-05-25  Wei Guozhi  <carrot@google.com>
16808
16809         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
16810         tst instruction and a new alternative.
16811         * config/arm/constraints.md (Pu): New constraint.
16812
16813 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
16814
16815         * function.c (assign_stack_local_1): Initialize variable
16816         to avoid warning when bootstrapping at -O3.
16817
16818 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
16819
16820         * configure.ac (all_lang_makefiles): Remove everything related to it.
16821         * configure: Regenerate.
16822         * Makefile.in: Fix reference to ada Make-lang.in.
16823         Remove support for LANG_MAKEFILES.
16824
16825 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
16826             Sandra Loosemore  <sandra@codesourcery.com>
16827
16828         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
16829         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
16830         description.  Add arm_neon_fp16_ok.
16831         (Add Options): Add arm_neon and arm_neon_fp16.
16832
16833 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
16834
16835         * diagnostic.c: Don't include flags.h.
16836         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
16837         context parameters.  Check flags in the context passed as a parameter.
16838         (diagnostic_build_prefix): Add context parameter.  Check
16839         show_column flag in context.
16840         (diagnostic_action_after_output): Check fatal_errors flag in context.
16841         (diagnostic_report_current_module): Check show_column flag in context.
16842         (default_diagnostic_starter): Update call to
16843         diagnostic_build_prefix.
16844         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
16845         (emit_diagnostic): Pass context to permissive_error_kind.
16846         (permerror): Pass context to permissive_error_kind.
16847         * diagnostic.h (struct diagnostic_context): Add show_column,
16848         pedantic_errors, permissive and fatal_errors fields.
16849         (diagnostic_build_prefix): Update prototype.
16850         * langhooks.c
16851         * toplev.c (process_options): Set flags in global_dc from
16852         flag_show_column, flag_pedantic_errors, flag_permissive,
16853         flag_fatal_errors.
16854         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
16855         to diagnostic_build_prefix.
16856         * Makefile.in (diagnostic.o): Update dependencies.
16857
16858 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
16859
16860         * config/i386/ia32intrin.h (__crc32q): Define only if
16861         __SSE4_2__ is defined.
16862
16863 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
16864
16865         PR target/44132
16866         PR middle-end/43602
16867         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
16868         DECL_VISIBILITY_SPECIFIED.
16869         (emutls_decl): Set DECL_PRESERVE_P and copy
16870         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
16871         (emutls_finalize_control_var): New callback.
16872         (emutls_finish): Finalize emutls control variables.
16873         * toplev.c (compile_file): Move the call to emutls_finish ()
16874         before varpool_assemble_pending_decls ().
16875
16876 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
16877
16878         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
16879         added to the preprocessor condition.
16880
16881 2010-05-24  Paul Brook  <paul@codesourcery.com>
16882
16883         * gengtype-lex.l: Add HARD_REG_SET.
16884         * expr.c (expand_expr_real_1): Record writes to hard registers.
16885         * function.c (rtl_data): Add asm_clobbers.
16886         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
16887         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
16888         Use crtl->asm_clobbers.
16889
16890 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16891
16892         * doc/makefile.texi (Makefile): Mention stages 'profile'
16893         and 'feedback' for profiledbootstrap.
16894
16895 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
16896
16897         PR target/44245
16898         * config/i386/i386.c (def_builtin): Properly check
16899         OPTION_MASK_ISA_64BIT.
16900
16901 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
16902
16903         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
16904         typedefs with different but compatible types.  Allow duplicate
16905         typedefs with the same type except for pedantic non-C1X, but give
16906         warning for variably modified types.
16907         * c-typeck.c (tagged_types_tu_compatible_p,
16908         function_types_compatible_p, type_lists_compatible_p,
16909         comptypes_internal): Add parameter different_types_p; set
16910         *different_types_p for different but compatible types.  All
16911         callers changed.
16912         (comptypes_check_different_types): New.
16913         * c-tree.h (comptypes_check_different_types): Declare.
16914
16915 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
16916
16917         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
16918         * jump.c: Include basic-block.h.
16919         * profile.c: Likewise.
16920         * tree-profile.c: Likewise.
16921         * coverage.c: Likewise.
16922         * basic-block.h (optimize_function_for_size_p): Move to function.h.
16923         (optimize_function_for_speed_p): Likewise.
16924         * function.h (optimize_function_for_size_p,
16925         optimize_function_for_speed_p): Moved here from basic-block.h.
16926         * Makefile.in: Update dependencies.
16927
16928 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16929
16930         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
16931         before calling make; allow override through $MAKE.
16932         * doc/invoke.texi (Optimize Options): Document override.
16933
16934 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
16935
16936         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
16937         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
16938         (rs6000_mode_dependent_address_ptr): Make static.
16939         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
16940         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
16941         Remove.
16942
16943 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
16944
16945         PR target/43869
16946         * config/i386/i386.c: Make sure that the correct regparm is passed.
16947
16948 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
16949
16950         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
16951         * sbitmap.c: ...to here to internalize sbitmap element access.
16952         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
16953         Explain why basic-block.h is included.
16954         * function.h: Include tm.h for CUMULATIVE_ARGS.
16955         * Makefile.in: Update dependencies.
16956
16957 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
16958
16959         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
16960         New core types.
16961         * sbitmap.h (struct sbitmap_def): Do not typedef here.
16962         * sbitmap.c: Include sbitmap.h.
16963         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
16964         hard-reg-set.h.  Split everything related to regsets out from here...
16965         * regset.h: ...to here.  New file.
16966         * df.h: Include regset.h and sbitmap.h.
16967         * tree-flow.h: Likewise.
16968         * cfgloop.h: Likewise.
16969         * except.h: Do not include sbitmap.h.  Include hashtab.h.
16970         * cgraph.h: Include vec.h and function.h.
16971         * reload.h (struct insn_chain): Change types of live_throughout
16972         and dead_or_set from regset_head to bitmap_head.
16973         (compute_use_by_pseudos): Be defined also if regset.h is not included.
16974         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
16975         spilled_regs from regset_head to bitmap_head to avoid dependency
16976         in regset.h.
16977         * sel-sched-ir.h: Include regset.h.
16978         * reload.c: Include df.h before reload.h.
16979         * caller-save.c: Likewise.
16980         * reload1.c: Likewise.
16981         * ira.c: Likewise.
16982         (mark_elimination): Update type of r to bitmap, consistent with
16983         DF_LR_IN.
16984         * dominance.c: Include bitmap.h.
16985         * modulo-sched.c: Include df.h.
16986         * cfganal.c: Include bitmap.h and sbitmap.h.
16987         * cfgbuild.c: Include sbitmap.h.
16988         * lcm.c: Include sbitmap.h.
16989         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
16990         * domwalk.c: Include sbitmap.h, exclude ggc.h.
16991         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
16992         * cselib.c: Include bitmap.h.
16993         * tree-optimize.c: Include regset.h.
16994         * stmt.c: Include bitmap.h.
16995         * Makefile.in: Update dependencies.
16996
16997 2010-05-22  Jan Hubicka  <jh@suse.cz>
16998
16999         * cgraph.h (struct varpool_node): Add same_comdat_group.
17000         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
17001         pointer.
17002         (output_varpool): Update call of lto_output_varpool_node.
17003         (input_varpool): Read same_comdat_group pointer.
17004         (input_varpool_1): Fixup same_comdat_group pointer.
17005         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
17006         group is needed, all are.
17007         * varpool.c (varpool_remove_node): Remove node from same comdat group
17008         linklist too.
17009         (varpool_analyze_pending_decls): Walk same comdat groups.
17010
17011 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
17012
17013         * rtl.h (union rtunion_def): Remove rt_bit member.
17014         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
17015         * print-rtl (print_rtx): Do not print the member.
17016         * gengtype.c (adjust_field_rtx_def): Do not handle it.
17017         * gengenrtl.c (type_from_format): Likewise.
17018         (accessor_from_format): Likewise.
17019
17020 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
17021
17022         * dbgcnt.c: Include toplev.h instead of errors.h.
17023         * ira-emit.c: Don't include errors.h.
17024         * ira.c: Include toplev.h instead of errors.h.
17025         * lto-compress.c: Include toplev.h instead of errors.h.
17026         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
17027         ira.o, dbgcnt.o): Update dependencies.
17028
17029 2010-05-22  Richard Guenther  <rguenther@suse.de>
17030
17031         * gimple.c (gimple_types_compatible_p): Check type qualifications
17032         before merging pointer to complete and pointer to incomplete type.
17033         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
17034         we use our own resolution algorithm.  The gold linker plugin
17035         doesn't do the job we want it to do here.
17036
17037 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
17038
17039         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
17040         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17041         (sparc_mode_dependent_address_p): New function.
17042
17043 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
17044
17045         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
17046
17047         * timevar.c: Do not include any core headers.
17048         (timevar_print): De-i18n-ize.
17049         (print_time): Likewise.
17050         * timevar.h (timevar_push, timevar_pop): Make inline functions.
17051
17052 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
17053
17054         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
17055         langhooks-def.h.
17056         (diagnostic_initialize): Initialize x_data not last_function.
17057         (diagnostic_report_current_function): Move to tree-diagnostic.c.
17058         (default_diagnostic_starter): Call
17059         diagnostic_report_current_module not
17060         diagnostic_report_current_function.
17061         (diagnostic_report_diagnostic): Initialize x_data not
17062         abstract_origin.
17063         (verbatim): Likewise.
17064         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
17065         x_data.
17066         (struct diagnostic_context): Change last_function to x_data.
17067         (diagnostic_auxiliary_data): Replace with
17068         diagnostic_context_auxiliary_data and
17069         diagnostic_info_auxiliary_data.
17070         (diagnostic_last_function_changed, diagnostic_set_last_function,
17071         diagnostic_report_current_function): Move to tree-diagnostic.h.
17072         (print_declaration, dump_generic_node, print_generic_stmt,
17073         print_generic_stmt_indented, print_generic_expr,
17074         print_generic_decl, debug_c_tree, dump_omp_clauses,
17075         print_call_name, debug_generic_expr, debug_generic_stmt,
17076         debug_tree_chain, default_tree_printer): Move to
17077         tree-pretty-print.h.
17078         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
17079         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
17080         gimple-pretty-print.h.
17081         * pretty-print.c: Don't include tree.h
17082         (pp_base_format): Don't handle %K here.
17083         (pp_base_tree_identifier): Move to tree-pretty-print.c.
17084         * pretty-print.h (text_info): Change abstract_origin to x_data.
17085         (pp_tree_identifier, pp_unsupported_tree,
17086         pp_base_tree_identifier): Move to tree-pretty-print.h.
17087         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
17088         tree-pretty-print.h: New files.
17089         * tree-pretty-print.c: Include tree-pretty-print.h.
17090         (percent_K_format): New.  Moved from pretty-print.c.
17091         (pp_base_tree_identifier): Move from pretty-print.c.
17092         * c-objc-common.c: Include tree-pretty-print.h.
17093         (c_tree_printer): Handle %K here.
17094         * langhooks.c: Include tree-diagnostic.h.
17095         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
17096         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
17097         (default_tree_printer): Handle %K using percent_K_format.
17098         (general_init): Use default_tree_diagnostic_starter.
17099         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
17100         (free_lang_data): Use default_tree_diagnostic_starter.
17101         * c-pretty-print.c: Include tree-pretty-print.h.
17102         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
17103         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
17104         * dwarf2out.c: Include tree-pretty-print.h.
17105         * except.c: Include tree-pretty-print.h.
17106         * gimple-pretty-print.c: Include tree-pretty-print.h and
17107         gimple-pretty-print.h.
17108         * gimplify.c: Include tree-pretty-print.h.
17109         * graphite-poly.c: Include tree-pretty-print.h and
17110         gimple-pretty-print.h.
17111         * ipa-cp.c: Include tree-pretty-print.h.
17112         * ipa-inline.c: Include gimple-pretty-print.h.
17113         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
17114         * ipa-pure-const.c: Include gimple-pretty-print.h.
17115         * ipa-struct-reorg.c: Include tree-pretty-print.h and
17116         gimple-pretty-print.h.
17117         * ipa-type-escape.c: Include tree-pretty-print.h.
17118         * print-rtl.c: Include tree-pretty-print.h.
17119         * print-tree.c: Include gimple-pretty-print.h.
17120         * sese.c: Include tree-pretty-print.h.
17121         * tree-affine.c: Include tree-pretty-print.h.
17122         * tree-browser.c: Include tree-pretty-print.h.
17123         * tree-call-cdce.c: Include gimple-pretty-print.h.
17124         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
17125         * tree-chrec.c: Include tree-pretty-print.h.
17126         * tree-data-ref.c: Include tree-pretty-print.h and
17127         gimple-pretty-print.h.
17128         * tree-dfa.c: Include tree-pretty-print.h.
17129         * tree-if-conv.c: Include tree-pretty-print.h and
17130         gimple-pretty-print.h.
17131         * tree-inline.c: Include tree-pretty-print.h.
17132         * tree-into-ssa.c: Include tree-pretty-print.h and
17133         gimple-pretty-print.h.
17134         * tree-nrv.c: Include tree-pretty-print.h.
17135         * tree-object-size.c: Include tree-pretty-print.h and
17136         gimple-pretty-print.h.
17137         * tree-outof-ssa.c: Include tree-pretty-print.h and
17138         gimple-pretty-print.h.
17139         * tree-parloops.c: Include tree-pretty-print.h and
17140         gimple-pretty-print.h.
17141         * tree-predcom.c: Include tree-pretty-print.h and
17142         gimple-pretty-print.h.
17143         * tree-scalar-evolution.c: Include tree-pretty-print.h and
17144         gimple-pretty-print.h.
17145         * tree-sra.c: Include tree-pretty-print.h.
17146         * tree-ssa-address.c: Include tree-pretty-print.h.
17147         * tree-ssa-alias.c: Include tree-pretty-print.h.
17148         * tree-ssa-ccp.c: Include tree-pretty-print.h and
17149         gimple-pretty-print.h.
17150         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
17151         * tree-ssa-copy.c: Include tree-pretty-print.h and
17152         gimple-pretty-print.h.
17153         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
17154         * tree-ssa-dce.c: Include tree-pretty-print.h and
17155         gimple-pretty-print.h.
17156         * tree-ssa-dom.c: Include tree-pretty-print.h and
17157         gimple-pretty-print.h.
17158         * tree-ssa-dse.c: Include gimple-pretty-print.h.
17159         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
17160         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
17161         * tree-ssa-live.c: Include tree-pretty-print.h and
17162         gimple-pretty-print.h.
17163         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
17164         gimple-pretty-print.h.
17165         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
17166         gimple-pretty-print.h.
17167         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
17168         gimple-pretty-print.h.
17169         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
17170         gimple-pretty-print.h.
17171         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
17172         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
17173         * tree-ssa-operands.c: Include tree-pretty-print.h and
17174         gimple-pretty-print.h.
17175         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
17176         gimple-pretty-print.h.
17177         * tree-ssa-pre.c: Include tree-pretty-print.h and
17178         gimple-pretty-print.h.
17179         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
17180         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
17181         gimple-pretty-print.h.
17182         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
17183         gimple-pretty-print.h.
17184         * tree-ssa-sink.c: Include gimple-pretty-print.h.
17185         * tree-ssa-ter.c: Include tree-pretty-print.h and
17186         gimple-pretty-print.h.
17187         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
17188         * tree-ssa.c: Include tree-pretty-print.h and
17189         gimple-pretty-print.h.
17190         * tree-stdarg.c: Include gimple-pretty-print.h.
17191         * tree-switch-conversion.c: Include gimple-pretty-print.h.
17192         * tree-tailcall.c: Include tree-pretty-print.h and
17193         gimple-pretty-print.h.
17194         * tree-vect-data-refs.c: Include tree-pretty-print.h and
17195         gimple-pretty-print.h.
17196         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
17197         gimple-pretty-print.h.
17198         * tree-vect-loop.c: Include tree-pretty-print.h and
17199         gimple-pretty-print.h.
17200         * tree-vect-patterns.c: Include gimple-pretty-print.h.
17201         * tree-vect-slp.c: Include tree-pretty-print.h and
17202         gimple-pretty-print.h.
17203         * tree-vect-stmts.c: Include tree-pretty-print.h and
17204         gimple-pretty-print.h.
17205         * tree-vectorizer.c: Include tree-pretty-print.h.
17206         * tree-vrp.c: Include tree-pretty-print.h and
17207         gimple-pretty-print.h.
17208         * value-prof.c: Include tree-pretty-print.h and
17209         gimple-pretty-print.h.
17210         * var-tracking.c: Include tree-pretty-print.h.
17211         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
17212         (tree-diagnostic.o): New dependencies.
17213         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
17214         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
17215         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
17216         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
17217         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
17218         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
17219         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
17220         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
17221         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
17222         tree-ssa-address.o, tree-ssa-loop-niter.o,
17223         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
17224         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
17225         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
17226         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
17227         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
17228         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
17229         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
17230         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
17231         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
17232         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
17233         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
17234         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
17235         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
17236         tree-switch-conversion.o, var-tracking.o, value-prof.o,
17237         cfgexpand.o, pretty-print.o): Update dependencies.
17238
17239 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
17240
17241         * tree-ssa-structalias.c: Remove tm_p.h from include.
17242
17243 2010-05-21  Jeff Law  <law@redhat.com>
17244
17245         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
17246
17247 2010-05-21  Jason Merrill  <jason@redhat.com>
17248
17249         * tree-eh.c (cleanup_is_dead_in): New.
17250         (lower_try_finally): Don't generate a dead cleanup region.
17251         (lower_cleanup): Likewise.
17252
17253 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
17254
17255         PR debug/44223
17256         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
17257         unchain each use from the cyclic next_regno_use chain first.
17258
17259 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
17260
17261         * real: Do not include gmp.h, mpfr.h, and mpc.h.
17262         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
17263         (real_value_negate, real_value_abs): New prototypes.
17264         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
17265         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
17266         new include file for interface between MPFR and REAL_VALUE_TYPE.
17267         * real.c: Include realmpfr.h.
17268         (real_arithmetic2): Remove legacy function.
17269         (real_value_negate): New.
17270         (real_value_abs): New.
17271         (mfpr_from_real, real_from_mpfr): Move from here...
17272         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
17273         * builtins.c: Include realmpfr.h.
17274         * fold-const.c: Include realmpfr.h.
17275         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
17276         (fold_negate_const): Likewise.
17277         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
17278         * toplev.c: Include realmpfr.h.
17279         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
17280         and real_value_negate.
17281         * fixed-value.c (check_real_for_fixed_mode): Likewise.
17282         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
17283         (vfp3_const_double_index): Likewise.
17284         (arm_print_operand): Likewise.
17285         * Makefile.in: Update dependencies.
17286
17287 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17288
17289         * config/s390/s390.c (override_options): Increase the default
17290         of max-completely-peel-times.
17291
17292 2010-05-21  Julian Brown  <julian@codesourcery.com>
17293             Mark Mitchell  <mark@codesourcery.com>
17294
17295         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
17296         sibling calls for Thumb-1.
17297         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
17298         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
17299         Thumb-2.
17300         (*call_insn, *call_value_insn): Don't use for Thumb-2.
17301         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
17302         for Thumb-2.
17303         (return): New expander.
17304         (*arm_return): New name for ARM return insn.
17305         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
17306
17307 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
17308
17309         * config.gcc (sparc64-*-rtems*): New target.
17310
17311 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
17312
17313         * tree.c (build_function_decl_skip_args): Fix grammar.
17314         (build_function_type_list_1): Fix typos, adjust formatting.
17315
17316 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
17317
17318         * tree.h: Include real.h and fixed-value.h as basic datatypes.
17319         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
17320         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
17321         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
17322         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
17323         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
17324         tree-pretty-print.c, tree-loop-distribution.c,
17325         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
17326         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
17327         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
17328         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
17329         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
17330         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
17331         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
17332         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
17333         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
17334         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
17335         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
17336         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
17337         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
17338         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
17339         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
17340         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
17341         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
17342         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
17343         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
17344         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
17345         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
17346         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
17347         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
17348         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
17349         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
17350         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
17351         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
17352         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
17353         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
17354         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
17355         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
17356         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
17357         config/score/score7.c, config/score/score.c, config/arm/arm.c,
17358         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
17359         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
17360         config/bfin/bfin.c: Clean up redundant includes.
17361         * Makefile.in: Update accordingly.
17362
17363 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
17364
17365         PR middle-end/44204
17366         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
17367         statement has no arguments.
17368
17369 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
17370
17371         PR/44139
17372         * varasm.c (emutls_decl): Merge attributes to new decl.
17373
17374 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
17375
17376         PR middle-end/44101
17377         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
17378         around the uniquized constructor if its type requires a conversion.
17379
17380 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
17381
17382         PR debug/44205
17383         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
17384         at -O0 goto_locus of any of the incoming edges differs from
17385         goto_locus of outgoing edge, or gimple_location of any of the
17386         labels differs.
17387
17388 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
17389
17390         * ira.c (ira_non_ordered_class_hard_regs): Define.
17391         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
17392         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
17393         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
17394         cost of unaligned hard regs when allocating multi-reg pseudos.
17395
17396 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
17397
17398         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
17399         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
17400         for TARGET_NO_FLOAT.
17401         * config/mips/mips.c (mips_file_start): Expand conditional expression
17402         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
17403         (mips_override_options): Move -mno-float override -msoft-float and
17404         -mhard-float.
17405         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
17406         Condition(TARGET_SUPPORTS_NO_FLOAT).
17407         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
17408         __mips_no_float here.
17409         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
17410         (TARGET_SUPPORTS_NO_FLOAT): Define.
17411         * config/mips/sdemtk.opt: Delete.
17412
17413 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
17414
17415         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
17416
17417 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
17418
17419         PR target/43733
17420         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
17421         * configure: Regenerate.
17422         * config.in: Regenerate.
17423         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
17424         instead of sahf only for 64bit targets.
17425
17426 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
17427
17428         PR debug/44178
17429         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
17430         setup_ref_regs for DEBUG_INSNs.
17431
17432 2010-05-20  Jan Hubicka  <jh@suse.cz>
17433
17434         PR middle-end/44197
17435         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
17436
17437 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
17438
17439         PR bootstrap/43870
17440         * df-scan.c (df_ref_compare): Stabilize sort.
17441
17442 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
17443
17444         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
17445         argument.  Don't use DW_OP_piece if offset is non-zero,
17446         put offset into second DW_OP_bit_piece argument.
17447         (dw_sra_loc_expr): Adjust callers.  For memory expressions
17448         compute offset.
17449
17450 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
17451
17452         PR target/44202
17453         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
17454         settings for 16-bit-constant "addo" alternative.
17455
17456 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
17457
17458         * config/mips/mips-dsp.md (add<DSPV:mode>3,
17459         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
17460
17461         PR target/43764
17462         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
17463         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
17464         Use it.
17465
17466 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
17467
17468         * diagnostic.c (FLOAT, FFS): Don't undefine.
17469         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
17470         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
17471         include ordering.
17472
17473 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
17474
17475         * combine.c (propagate_for_debug): Call make_compound_operation
17476         on the source value.
17477         (try_combine): When implementing a split chosen by find_split_point,
17478         either copy i2src or set it to null.  Assert that i2src is not null
17479         before substituting into CALL_INSN_FUNCTION_USAGE.
17480
17481 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
17482
17483         * double-int.h (double_int_ior): New function.
17484         * tree.h (build_int_cst_wide_type): Remove.
17485         * tree.c (build_int_cst_wide_type): Remove.
17486         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
17487         of build_int_cst_wide_type.
17488         * stor-layout.c (set_sizetype): (Ditto.).
17489         * dojump.c (do_jump): Use build_int_cstu instead of
17490         build_int_cst_wide_type.
17491
17492 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
17493
17494         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
17495         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
17496         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
17497         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
17498         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
17499         propagate the 'data' argument to copy_tree_r.
17500         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
17501         Propagate 'data' argument to walk_tree.
17502         (copy_if_shared): New function.
17503         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
17504         (unmark_visited): New function.
17505         (unshare_body): Call copy_if_shared instead of doing it manually.
17506         (unvisit_body): Call unmark_visited instead of doing it manually.
17507
17508 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
17509
17510         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
17511         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
17512         * hooks.c: Likewise.
17513         * target-def.h (TARGET_FOLD_BUILTIN): Define to
17514         hook_tree_tree_int_treep_bool_null.
17515         * target.h (struct gcc_target): Update signature of fold_builtin
17516         field.
17517         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
17518         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
17519         instead of the call expression.
17520         (fold_builtin_call_array): Pass n and argarray directly.
17521         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
17522         consing a list.
17523         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
17524         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
17525         `i' and use it in place of `arity'.
17526         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
17527         Dereference `args' directly.
17528         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
17529
17530 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17531
17532         * doc/sourcebuild.texi (Effective-Target Keywords): Document
17533         3dnow, sse3, sse2.
17534         (Directives): Document optional dg-require-effective-target
17535         selector.
17536
17537 2010-05-19  Richard Guenther  <rguenther@suse.de>
17538
17539         PR lto/44196
17540         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
17541
17542 2010-05-19  Richard Guenther  <rguenther@suse.de>
17543
17544         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
17545         * common.opt (fwhopr=): New.
17546         * opts.c (common_handle_option): Handle OPT_fwhopr.
17547         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
17548         * collect2.c (main): Match -fwhopr*.
17549         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
17550         Execute ltrans stage in parallel when jobs is bigger than 1.
17551
17552 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17553
17554         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
17555         pentiumpro on Solaris 8/x86 with Sun as.
17556         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
17557         hidden alias bug.
17558         (gcc_cv_as_ix86_quad): Check for .quad directive.
17559         * configure: Regenerate.
17560         * config.in: Regenerate.
17561         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
17562
17563 2010-05-19  Martin Jambor  <mjambor@suse.cz>
17564
17565         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
17566         also for indirect edges.  Actual printing moved...
17567         (ipa_print_node_jump_functions_for_edge): ...here.
17568         (ipa_compute_jump_functions): Renamed to
17569         ipa_compute_jump_functions_for_edge and made static.
17570         (ipa_compute_jump_functions): New function.
17571         (make_edge_direct_to_target): Check if the number of arguments on
17572         the newly direct edge is the same as the number of parametrs of
17573         the callee.
17574         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
17575         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
17576         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
17577         analysis functions unconditionally, call the new
17578         ipa_analyze_params_uses on the node instead of every edge.
17579
17580 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
17581
17582         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
17583         to tree.
17584         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
17585         also checks for a constant int vs.  non-constant but
17586         loop-invariant steps.
17587         (find_or_create_group): Change the sort algorithm to only consider
17588         steps that are constant ints.
17589         (idx_analyze_ref): Adopt code to handle a tree instead of a
17590         HOST_WIDE_INT for step.
17591         (gather_memory_references_ref): Handle tree instead of int and be
17592         prepared to see a NULL_TREE.
17593         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
17594         prefetches if the step cannot be calculated at compile time.
17595         (issue_prefetch_ref): Issue prefetches for non-constant but
17596         loop-invariant steps.
17597
17598 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
17599
17600         Revert:
17601         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
17602
17603         * tree.h (build_call_list): Remove.
17604         * tree.c (build_call_list): Remove.
17605
17606 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
17607
17608         * tree.h (build_call_list): Remove.
17609         * tree.c (build_call_list): Remove.
17610
17611 2010-05-18  Jan Hubicka  <jh@suse.cz>
17612
17613         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
17614
17615 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
17616
17617         PR rtl-optimization/43332
17618         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
17619
17620 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
17621
17622         * tree.h (build_int_cstu): Implement as static inline.
17623         * tree.c (build_int_cstu): Remove function.
17624         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
17625         sign extended.
17626
17627 2010-05-18  Richard Guenther  <rguenther@suse.de>
17628
17629         PR lto/44143
17630         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
17631         (debug): Initialize from -save-temps.
17632         (collect_execute): Print command-line when verbose.
17633         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
17634         for ltrans invocation.  Produce -dumpbase flag again.
17635         (process_args): Remove.
17636         (main): Simplify.
17637         * collect2.c (maybe_run_lto_and_relink): Only pass object
17638         files to lto-wrapper.
17639         * gcc.c (LINK_COMMAND_SPEC): Likewise.
17640
17641 2010-05-18  Jan Hubicka  <jh@suse.cz>
17642
17643         * opts.c (decode_options): Do not disable whopr at ipa_cp.
17644         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
17645
17646 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
17647
17648         PR lto/44184
17649         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
17650         in a GIMPLE_ASM.
17651         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
17652         in a GIMPLE_ASM.
17653
17654 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
17655
17656         PR debug/41371
17657         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
17658         rtx_equal_p inline.
17659
17660 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
17661
17662         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
17663         lto-macho as lto_binary_reader.
17664
17665         * darwin.c (darwin_asm_named_section): Do not add assembler comment
17666         after .section directive; just print it before the directive instead.
17667
17668 2010-05-17  Jan Hubicka  <jh@suse.cz>
17669
17670         * cgraph.c (cgraph_create_virtual_clone): Only check
17671         versionable_function_p when not in wpa and checking is enabled.
17672         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
17673         there are no more functions to materialize.
17674
17675 2010-05-17  Jan Hubicka  <jh@suse.cz>
17676
17677         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
17678         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
17679         New functions.
17680         (output_cgraph): Call output_cgraph_opt_summary.
17681         (input_cgrpah): Call input_cgraph_opt_summary.
17682         (output_cgraph_opt_summary_p, output_node_opt_summary,
17683         input_node_opt_summary, input_cgraph_opt_section): New functions.
17684         * lto-section-in.c (lto_section_name): Add cgraphopt.
17685         * tree-inline.c (tree_function_versioning): Handle parm_num.
17686         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
17687         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
17688
17689 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
17690
17691         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
17692         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
17693         the insn to prefetch ratio heuristic to loops with known trip count.
17694
17695 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
17696
17697         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
17698         (schedule_prefetches): Do not generate a prefetch if the unroll factor
17699         is far from what is required by the prefetch.
17700
17701 2010-05-17  Jan Hubicka  <jh@suse.cz>
17702
17703         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
17704         (ipcp_estimate_growth): Likewise.
17705         (ipcp_const_param_count): Likewise.
17706         (ipcp_insert_stage): Likewise.
17707         * ipa-prop.c (visit_load_for_mod_analysis): New function.
17708         (visit_store_addr_for_mod_analysis): Set used flag.
17709         (ipa_detect_param_modifications): Set used flag for SSE params;
17710         update use of walk_stmt_load_store_addr_ops.
17711         (ipa_print_node_params): Print used flag.
17712         (ipa_write_node_info): Stream used flag.
17713         (ipa_read_node_info): Likewise.
17714         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
17715         (ipa_is_param_used): New function.
17716         (lto_ipa_fixup_call_notes): Remove unused declaration.
17717
17718 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17719
17720         PR target/44074
17721         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
17722         * configure: Regenerate.
17723         * config.in: Regenerate.
17724         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
17725         !HAVE_AS_IX86_REP_LOCK_PREFIX.
17726         Don't emit whitespace.
17727         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
17728         (*rep_movsi): Likewise.
17729         (*rep_movsi_rex64): Likewise.
17730         (*rep_movqi): Likewise.
17731         (*rep_movqi_rex64): Likewise.
17732         (*rep_stosdi_rex64): Likewise.
17733         (*rep_stossi): Likewise.
17734         (*rep_stossi_rex64): Likewise.
17735         (*rep_stosqi): Likewise.
17736         (*rep_stosqi_rex64): Likewise.
17737         (*cmpstrnqi_nz_1): Use {%;} after repz.
17738         (*cmpstrnqi_nz_rex_1): Likewise.
17739         (*cmpstrnqi_1): Likewise.
17740         (*cmpstrnqi_rex_1): Likewise.
17741         (*strlenqi_1): Use {%;} after repnz.
17742         (*strlenqi_rex_1): Likewise.
17743         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
17744         (*sync_compare_and_swap<mode>): Likewise.
17745         (sync_double_compare_and_swap<mode>): Likewise.
17746         (*sync_double_compare_and_swapdi_pic): Likewise.
17747         (sync_old_add<mode>): Likewise.
17748         (sync_add<mode>): Likewise.
17749         (sync_sub<mode>): Likewise.
17750         (sync_<code><mode>): Likewise.
17751
17752 2010-05-17  Martin Jambor  <mjambor@suse.cz>
17753
17754         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
17755         otr_token and polymorphic.
17756         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
17757         (cgraph_clone_edge): Copy the above fields.
17758         * tree.c (get_binfo_at_offset): New function.
17759         * tree.h (get_binfo_at_offset): Declare.
17760         * ipa-prop.h (enum jump_func_type): Added known_type jump function
17761         type, reordered items, updated comments.
17762         (union jump_func_value): Added base_type field, reordered fields.
17763         (enum ipa_lattice_type): Moved down in the file.
17764         (struct ipa_param_descriptor): New field polymorphic.
17765         (ipa_is_param_polymorphic): New function.
17766         * ipa-prop.c: Include gimple.h and gimple-fold.h.
17767         (ipa_print_node_jump_functions): Print known type jump functions.
17768         (compute_complex_pass_through): Renamed to...
17769         (compute_complex_assign_jump_func): this.
17770         (compute_complex_ancestor_jump_func): New function.
17771         (compute_known_type_jump_func): Likewise.
17772         (compute_scalar_jump_functions): Create known type and complex ancestor
17773         jump functions.
17774         (ipa_note_param_call): New parameter polymorphic, set the corresponding
17775         flag in the call note accordingly.
17776         (ipa_analyze_call_uses): Renamed to...
17777         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
17778         variable var only in the block where it is used.
17779         (ipa_analyze_virtual_call_uses): New function.
17780         (ipa_analyze_call_uses): Likewise.
17781         (combine_known_type_and_ancestor_jfs): Likewise.
17782         (update_jump_functions_after_inlining): Implemented handling of a
17783         number of new jump function types combination.
17784         (print_edge_addition_message): Removed.
17785         (make_edge_direct_to_target): New function.
17786         (try_make_edge_direct_simple_call): Likewise.
17787         (try_make_edge_direct_virtual_call): Likewise.
17788         (update_call_notes_after_inlining): Renamed to...
17789         (update_indirect_edges_after_inlining): this.  Moved edge creation for
17790         indirect calls to try_make_edge_direct_simple_call, also calls
17791         try_make_edge_direct_virtual_call for virtual calls.
17792         (ipa_print_node_params): Changed the header message.
17793         (ipa_write_jump_function): Stream also known type jump functions.
17794         (ipa_read_jump_function): Likewise.
17795         (ipa_write_indirect_edge_info): Stream new fields in
17796         cgraph_indirect_call_info.
17797         (ipa_read_indirect_edge_info): Likewise.
17798         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
17799         GIMPLE_FOLD_H.
17800
17801 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17802
17803         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
17804
17805 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
17806
17807         * tree.h (CALL_EXPR_ARGS): Delete.
17808         (call_expr_arglist): Delete.
17809         * tree.c (call_expr_arglist): Delete.
17810         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
17811         targetm.fold_builtin.
17812         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
17813         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
17814         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
17815         arglist parameter.  Use CALL_EXPR_ARG.
17816         (picochip_expand_builtin_3op): Likewise.
17817         (picochip_expand_builtin_2opvoid): Likewise.
17818         (picochip_expand_array_get): Likewise.
17819         (picochip_expand_array_put): Likewise.
17820         (picochip_expand_array_testport): Likewise.
17821         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
17822         rather than arglist.
17823         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
17824         CALL_EXPR_ARGS.
17825         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
17826         than TREE_VALUE and TREE_CHAIN.
17827         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
17828         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
17829         the arglist.
17830
17831 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
17832
17833         PR bootstrap/42347
17834         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
17835         to have no fallthru edge.
17836
17837         PR middle-end/44102
17838         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
17839         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
17840         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
17841         add BARRIER after previous bb if needed.
17842
17843 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
17844
17845         * tree.c (build_function_type_list_1): Remove bogus assert condition.
17846
17847 2010-05-17  Alan Modra  <amodra@gmail.com>
17848
17849         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
17850         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
17851         with copy_reg rtx param.
17852         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
17853         Correct cases where code for ABI_V4 did not initialise the reg
17854         used to access frame.  Also leave frame_reg_rtx as sp for large
17855         frames that save no regs.
17856
17857 2010-05-17  Martin Jambor  <mjambor@suse.cz>
17858
17859         PR middle-end/44133
17860         * tree-sra.c (create_access_replacement): New parameter rename, mark
17861         the replaement for renaming only when it is true.
17862         (get_access_replacement): Pass true in the rename parameter of
17863         create_access_replacement.
17864         (get_unrenamed_access_replacement): New function.
17865         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
17866         replacement declaration from it.
17867
17868 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
17869
17870         * function.c (try_fit_stack_local, add_frame_space): New static
17871         functions.
17872         (assign_stack_local_1): Use them.  Look for opportunities to use
17873         space previously wasted on alignment.
17874         * function.h (struct frame_space): New.
17875         (struct rtl_data): Add FRAME_SPACE_LIST member.
17876         * reload1.c (something_was_spilled): New static variable.
17877         (alter_reg): Set it.
17878         (reload): Test it in addition to testing if the frame size changed.
17879
17880 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
17881
17882         * config/s390/s390.c: Define sane prefetch settings and activate
17883         flag_prefetch_loop_arrays on -O3.
17884         * config/s390/s390.h: Declare that read can use write prefetch.
17885
17886 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
17887
17888         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
17889         build.
17890
17891 2010-05-16  Jan Hubicka  <jh@suse.cz>
17892
17893         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
17894         function body; do not check stdarg field of struct function.
17895
17896 2010-05-16  Jan Hubicka  <jh@suse.cz>
17897
17898         * cgraph.c (dump_cgraph_node): Dump versionable flag.
17899         * cgraph.h (cgraph_local_info): Add versionable flag.
17900         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
17901         (ipcp_versionable_function_p): Use it.
17902         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
17903         versionable flag.
17904
17905 2010-05-16  Jan Hubicka  <jh@suse.cz>
17906
17907         * cgraph.c (cgraph_clone_node): Take decl argument and insert
17908         clone into hash when it is different from orig.
17909         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
17910         * cgraph.h (cgraph_clone_node): Update prototype.
17911         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
17912         (lto_cgraph_encoder_delete): Delete body map.
17913         (lto_cgraph_encoder_size): Move to header.
17914         (lto_cgraph_encoder_encode_body_p,
17915         lto_set_cgraph_encoder_encode_body): New.
17916         (lto_output_node): Do not take written_decls argument; output clone_of
17917         pointer.
17918         (add_node_to): Add include_body_argument; call
17919         lto_set_cgraph_encoder_encode_body on master of the clone.
17920         (add_references): Update use of add_node_to.
17921         (compute_ltrans_boundary): Likewise.
17922         (output_cgraph): Do not create written_decls bitmap.
17923         (input_node): Take nodes argument; stream in clone_of correctly.
17924         (input_cgraph_1): Update use of input_node.
17925         * lto-streamer-out.c (lto_output): Use encoder info to decide
17926         what bodies to output.
17927         * ipa-inline.c (cgraph_clone_inlined_nodes,
17928         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
17929         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
17930         (lto_cgraph_encoder_size): Define here.
17931         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
17932         Declare.
17933
17934 2010-05-16  Richard Guenther  <rguenther@suse.de>
17935
17936         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
17937         -fipa-type-escape.
17938         * ipa-type-escape.c (gate_type_escape_vars): Run when
17939         -fipa-struct-reorg runs.
17940         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
17941         * common.opt (fipa-type-escape): Remove.
17942
17943 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
17944
17945         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
17946         (decode_options): Likewise.
17947         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
17948
17949 2010-05-16  Jan Hubicka  <jh@suse.cz>
17950
17951         * ipa.c (function_and_variable_visibility): Also bring local all
17952         aliases.
17953
17954 2010-05-16  Richard Guenther  <rguenther@suse.de>
17955
17956         * alias.c (nonoverlapping_memrefs_p): Remove use of
17957         IPA type-escape information.
17958
17959 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
17960
17961         * c-common.c (c_common_reswords): Add _Static_assert for C.
17962         * c-parser.c (c_token_starts_declaration,
17963         c_parser_next_token_starts_declaration,
17964         c_parser_static_assert_declaration_no_semi,
17965         c_parser_static_assert_declaration): New.
17966         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
17967         Handle static assertions if static_assert_ok.
17968         (c_parser_external_declaration, c_parser_declaration_or_fndef,
17969         c_parser_compound_statement_nostart, c_parser_label,
17970         c_parser_for_statement, c_parser_objc_methodprotolist,
17971         c_parser_omp_for_loop): All callers of
17972         c_parser_declaration_or_fndef changed.
17973         (c_parser_struct_declaration): Handle static assertions.
17974         (c_parser_compound_statement_nostart): Use
17975         c_parser_next_token_starts_declaration and
17976         c_token_starts_declaration to detect start of declarations.
17977         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
17978         Likewise.
17979
17980 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
17981
17982         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
17983         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
17984         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17985         TARGET_FUNCTION_VALUE_REGNO_P): Define.
17986         (mmix_function_outgoing_value): Rename to...
17987         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
17988         (mmix_function_value_regno_p): Make static.
17989         (mmix_libcall_value): New function.
17990         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
17991         mmix_function_value_regno_p): Remove declaration.
17992
17993 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
17994
17995         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
17996         BUILT_IN_ALLOCA if stack checking is enabled.
17997
17998 2010-05-16  Richard Guenther  <rguenther@suse.de>
17999
18000         * var-tracking.c (vars_copy_1): Inline ...
18001         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
18002         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
18003         (variable_merge_over_cur): Adjust.  Merge asserts.
18004         (variable_merge_over_src): Likewise.
18005         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
18006         (variable_post_merge_new_vals): Merge asserts.
18007         (variable_post_merge_perm_vals): Likewise.
18008         (find_mem_expr_in_1pdv): Likewise.
18009         (dataflow_set_different_value): Remove.
18010         (onepart_variable_different_p): Merge asserts.
18011         (variable_different_p): Likewise.
18012         (dataflow_set_different_1): Inline ...
18013         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
18014         (emit_notes_for_differences_1): Merge asserts.
18015
18016 2010-05-16  Richard Guenther  <rguenther@suse.de>
18017
18018         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
18019         * optabs.c (libfunc_decl_hash): Likewise.
18020         * varasm.c (emutls_decl): Likewise.
18021
18022 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
18023
18024         * c-decl.c: Don't include gimple.h.
18025         (merge_decls): Do not copy gimple_body.
18026
18027 2010-05-15  Jason Merrill  <jason@redhat.com>
18028
18029         * c.opt: Add -fnothrow-opt.
18030
18031 2010-05-15  Jan Hubicka  <jh@suse.cz>
18032
18033         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
18034         analyzed.
18035         * passes.c (ipa_write_summaries): Write all analyzed nodes.
18036
18037 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
18038
18039         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
18040         * Makefile.in: Add it.
18041         Fix all other Makefile dependencies for changes below.
18042         * tree.h: Include it instead of defining VEC primitives here.
18043         * gimple.h: Likewise.
18044         * rtl.h: Likewise.
18045         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
18046         * except.h: Include vecir.h, break dependence on tree.h.
18047
18048         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
18049         Move from here...
18050         * tree-iterator.c: ...to here.
18051         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
18052
18053         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
18054         tm_p.h.
18055         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
18056         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
18057         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
18058         tree-mudflap.h, and target.h.
18059         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
18060         predict.h, tree-inline.h, gimple.h, and langhooks.h.
18061         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
18062         Add FIXME for why gimple.h is still included (should be unnecessary
18063         since GCC 4.5 gimplification unit-at-a-time).
18064         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
18065         * c-pragma.c: Add FIXME for why function.h needs to be included just
18066         for cfun, at front-end level.
18067         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
18068         Do not include ggc.h, but include vecprim.h for VEC(char).
18069         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
18070         Explain why target.h is included.
18071         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
18072         Explain why gimple.h is included.
18073         * c-ppoutput.c: Do not include tm.h.
18074         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
18075         * c-parses.c: Explain why rtl.h is included, and that this (and only
18076         this) is also why tm.h must be included.
18077         Do not include except.h.
18078         * c-lang.c: Do not include ggc.h.
18079
18080 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
18081
18082         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
18083
18084 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
18085
18086         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
18087         unions by default if those structs and unions have no tags.  Do
18088         not condition anonymous struct and unions handling on flag_iso.
18089         Allow anonymous structs and unions for C1X.
18090         (finish_struct): Do not diagnose lack of named fields when
18091         anonymous structs and unions present for C1X.  Accept flexible
18092         array members in structure with anonymous structs or unions but no
18093         directly named fields.
18094         * doc/extend.texi (Unnamed Fields): Update.
18095
18096 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
18097
18098         * gimple.h (compare_field_offset): Rename into...
18099         (gimple_compare_field_offset): ...this.
18100         * gimple.c (compare_field_offset): Rename into...
18101         (gimple_compare_field_offset): ...this.  Compare the full access if
18102         the offset is self-referential.
18103         (gimple_types_compatible_p): Adjust for above renaming.
18104         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
18105         DECL_NONADDRESSABLE_P flag of fields before merging them.
18106
18107 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
18108
18109         * tree.h (ctor_to_list): Delete.
18110         * tree.c (ctor_to_list): Delete.
18111
18112 2010-05-15  Jan Hubicka  <jh@suse.cz>
18113
18114         * ipa-reference.c: Include toplev.h
18115         (is_proper_for_analysis): Only add to all_module_statics
18116         if it is allocated.
18117         (write_node_summary_p, stream_out_bitmap,
18118         ipa_reference_write_optimization_summary,
18119         ipa_reference_read_optimization_summary): New.
18120         (struct ipa_opt_pass_d pass_ipa_reference): Add
18121         optimization summary streaming.
18122         * lto-cgraph.c (referenced_from_this_partition_p,
18123         reachable_from_this_partition_p): New functions.
18124         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
18125         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
18126         * opts.c (decode_options): Enable ipa_reference.
18127         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
18128         * lto-streamer.h (referenced_from_this_partition_p,
18129         reachable_from_this_partition_p): Declare.
18130
18131 2010-05-15  Richard Guenther  <rguenther@suse.de>
18132
18133         PR tree-optimization/44038
18134         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
18135         taking the address of a V_C_E of a constant.
18136
18137 2010-05-14  Jan Hubicka  <jh@suse.cz>
18138
18139         * tree.h (memory_identifier_string): Remove.
18140         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
18141         (ipa_reference_global_vars_info_d): Remove statics_not_read and
18142         statics_not_written.
18143         (ipa_reference_optimization_summary_d): New structure.
18144         (ipa_reference_optimization_summary_t): New type and vector.
18145         (ipa_reference_vars_info_d): Embedd structures instead of using
18146         pointers.
18147         (reference_vars_to_consider): Remove out of GGC space.
18148         (module_statics_escape): Remove.
18149         (global_info_obstack): Rename to ...
18150         (optimization_summary_obstack): ... this one.
18151         (initialization_status_t): Remove.
18152         (memory_identifier_string): Remove.
18153         (get_reference_vars_info): Fix indenting.
18154         (set_reference_vars_info): Likewise.
18155         (get_reference_optimization_summary): New.
18156         (set_reference_optimization_summary): New.
18157         (get_global_reference_vars_info): Remove.
18158         (ipa_reference_get_read_global): Remove.
18159         (ipa_reference_get_written_global): Remove.
18160         (ipa_reference_get_not_read_global): Update.
18161         (ipa_reference_get_not_written_global): Update.
18162         (is_proper_for_analysis): Outlaw addressable.
18163         (propagate_bits): Update for new datastructures.
18164         (analyze_variable): Remove.
18165         (init_function_info): Update for new datastructures.
18166         (clean_function_local_data): Remove.
18167         (clean_function): Remove.
18168         (copy_global_bitmap): Use optimizations_summary_obstack.
18169         (duplicate_node_data): Duplicate optimization summary only.
18170         (remove_node_data): Remove optimization summary only.
18171         (generate_summary): Do not analyze variables; do not compute
18172         module_statics_escape; do not prune solutions by it.
18173         (read_write_all_from_decl): Fix typos in comments.
18174         (propagate): Doscover readonly and nonaddressable first;
18175         update for new datastructures; share global bitmaps.
18176         * ipa-reference.h (ipa_reference_get_read_global,
18177         ipa_reference_get_written_global): Remove.
18178         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
18179         * Makefile.in: Remove ipa-refereference from GT files.
18180
18181 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
18182
18183         PR debug/44112
18184         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
18185         for all SYMBOL_REF_DECLs.
18186
18187 2010-05-14  Jan Hubicka  <jh@suse.cz>
18188
18189         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
18190         (varpool_all_refs_explicit_p): New inline function.
18191         * ipa-reference.c: Update comment.
18192         (module_statics_written): Remove.
18193         (get_static_decl): Remove.
18194         (ipa_init): Do not initialize module_statics_written.
18195         (analyze_function): Likewise.
18196         (generate_summary): Likewise; do not compute module_statics_readonly
18197         and do not update variable flags.
18198         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
18199         * ipa.c: Inlucde flags.h
18200         (cgraph_local_node_p): New.
18201         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
18202         promote functions to local.
18203         (ipa_discover_readonly_nonaddressable_vars): New function.
18204         (function_and_variable_visibility): Use cgraph_local_node_p.
18205         * varpool.c (varpool_finalize_decl): Set force_output for
18206         DECL_PRESERVE_P vars.
18207
18208 2010-05-14  Jan Hubicka  <jh@suse.cz>
18209
18210         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
18211
18212 2010-05-14  Richard Guenther  <rguenther@suse.de>
18213
18214         PR tree-optimization/44119
18215         * tree-ssa-pre.c (eliminate): Properly mark replacement of
18216         a PHI node necessary.
18217
18218 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
18219
18220         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
18221
18222 2010-05-14  Jason Merrill  <jason@redhat.com>
18223
18224         PR c++/44127
18225         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
18226         (gimple_call_set_nothrow): New.
18227         * gimple.c (gimple_build_call_from_tree): Call it.
18228         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
18229
18230         PR c++/44127
18231         * gimplify.c (gimplify_seq_add_stmt): No longer static.
18232         * gimple.h: Declare it.
18233         * gimple.c (gimple_build_eh_filter): No ops.
18234
18235 2010-05-14  Jan Hubicka  <jh@suse.cz>
18236
18237         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
18238         nodes already in queue.
18239         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
18240         re-enqueueing node.
18241
18242 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
18243
18244         PR debug/44136
18245         * cfgexpand.c (expand_debug_expr): If non-memory op0
18246         has BLKmode, return NULL.
18247
18248 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
18249
18250         * config.gcc: Add support for --with-cpu option for bdver1.
18251         * config/i386/i386.h (TARGET_BDVER1): New macro.
18252         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
18253         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
18254         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
18255         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
18256         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
18257         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
18258         (processor_type): Add PROCESSOR_BDVER1.
18259         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
18260         processor_type in config/i386/i386.h.
18261         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
18262         movaps <reg, reg> instead of movapd <reg, reg> when replacing
18263         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
18264         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
18265         to emit packed xor instead of packed double/packed integer
18266         xor for SSE and AVX when moving a zero value.
18267         * config/i386/sse.md: Add check for
18268         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
18269         movapd/movdqa for SSE and AVX.
18270         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
18271         single logical operations i.e and, or and xor instead of packed double
18272         logical operations for SSE and AVX.
18273         * config/i386/i386-c.c (ix86_target_macros_internal):
18274         Add PROCESSOR_BDVER1.
18275         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
18276         (has_fma4, has_xop): New.
18277         * config/i386/i386.c (bdver1_cost): New variable.
18278         (m_BDVER1): New macro.
18279         (m_AMD_MULTIPLE): Add m_BDVER1.
18280         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
18281         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
18282         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
18283         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
18284         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
18285         x86_tune_sse_partial_reg_dependency,
18286         x86_tune_sse_unaligned_load_optimal,
18287         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
18288         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
18289         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
18290         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
18291         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
18292         Enable/disable for bdver1.
18293         (processor_target_table): Add bdver1_cost.
18294         (cpu_names): Add bdver1.
18295         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
18296          processor_alias_table.
18297         (ix86_expand_vector_move_misalign): Change.
18298         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
18299         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
18300         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
18301         of movupd/movdqu for SSE and AVX.
18302         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
18303         (ix86_tune_adjust_cost): Add code for bdver1.
18304         (standard_sse_constant_opcode): Add check for
18305         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
18306         of packed double xor for SSE and AVX.
18307
18308 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
18309
18310         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
18311         result to unsigned.
18312
18313 2010-05-14  Tristan Gingold  <gingold@adacore.com>
18314
18315         * toplev.c (default_debug_hooks): Remove this variable.
18316         (process_options): Remove assignments to default_debug_hooks.
18317
18318 2010-05-14  Martin Jambor  <mjambor@suse.cz>
18319
18320         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
18321         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
18322         * langhooks.h (struct lang_hooks_for_decls): Removed field
18323         fold_obj_type_ref.
18324         * tree.c (free_lang_data): Remove assignment to
18325         lang_hooks.fold_obj_type_ref.
18326         * tree.def (OBJ_TYPE_REF): Update comment.
18327
18328 2010-05-14  Richard Guenther  <rguenther@suse.de>
18329
18330         PR tree-optimization/44124
18331         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
18332
18333 2010-05-14  Alan Modra  <amodra@gmail.com>
18334
18335         PR target/44075
18336         * config/rs6000/rs6000.c (struct machine_function): Reorder
18337         fields for better packing.  Add lr_save_state.
18338         (rs6000_ra_ever_killed): Return lr_save_state if set.
18339         (rs6000_emit_eh_reg_restore): Set lr_save_state.
18340
18341 2010-05-13  Jan Hubicka  <jh@suse.cz>
18342
18343         * varpool.c (decide_is_variable_needed): Drop code checking
18344         TREE_SYMBOL_REFERENCED.
18345
18346 2010-05-13  Jan Hubicka  <jh@suse.cz>
18347
18348         * final.c (output_addr_const): Do not call mark_decl_referenced.
18349         * cgraphunit.c (process_function_and_variable_attributes): Use
18350         mark_needed_node dirrectly.
18351         (assemble_thunk): Do not call mark_decl_referenced.
18352
18353 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
18354
18355         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
18356
18357 2010-05-13  Jeff Law  <law@redhat.com>
18358
18359         * ira-conflicts.c (print_allocno_conflicts): New function broken out
18360         from...
18361         (print_conflicts): Call print_allocno_conflicts.
18362
18363 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
18364
18365         PR debug/44104
18366         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
18367         if it is NULL.
18368
18369 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
18370
18371         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
18372         t-mingw-w64 or t-mingw-w32 for multilib configuration.
18373         * config/i386/t-mingw-w32: New.
18374         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
18375
18376 2010-05-13  Martin Jambor  <mjambor@suse.cz>
18377
18378         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
18379         gimple-fold.c).
18380         * gimple-fold.c (get_base_binfo_for_type): New function.
18381         (gimple_get_relevant_ref_binfo): Likewise.
18382         (gimple_fold_obj_type_ref_known_binfo): Likewise.
18383         (gimple_fold_obj_type_ref): Likewise.
18384         (fold_gimple_call): Simplify condition for folding virtual calls
18385         and call gimple_fold_obj_type_ref.
18386         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
18387         (gimple_fold_obj_type_ref_known_binfo): Likewise.
18388
18389 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
18390
18391         * config/rs6000/rs6000-protos.h
18392         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
18393         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
18394         (rs6000_debug_mode_dependent_address)
18395         (rs6000_mode_dependent_address_ptr): Likewise.
18396
18397 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
18398
18399         PR debug/43983
18400         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
18401         by SRA.
18402         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
18403         * tree-sra.c (create_access_replacement): Call unshare_expr before
18404         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
18405         * dwarf2out.c: Include tree-flow.h.
18406         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
18407         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
18408         Handle DW_OP_bit_piece.
18409         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
18410         construct_piece_list, adjust_piece_list): New functions.
18411         (add_var_loc_to_decl): Handle SRA optimized variables.
18412         Adjust for var_loc_note to loc field renaming.
18413         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
18414         in VAR_LOCATION note.
18415         (new_loc_descr_op_bit_piece): New function.
18416         (dw_sra_loc_expr): New function.
18417         (dw_loc_list): Use it.  Don't handle the last range after the
18418         loop, handle it inside of the loop.  Adjust for var_loc_note
18419         to loc field renaming.
18420         (add_location_or_const_value_attribute): Only special case
18421         single entry loc lists if loc is NOTE_P.  Adjust for
18422         var_loc_note to loc field renaming.
18423         (dwarf2out_var_location): Don't set newloc->var_loc_note
18424         and newloc->next here.
18425
18426 2010-05-12  Jan Hubicka  <jh@suse.cz>
18427
18428         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
18429         flag.
18430         * cgraph.h (cgraph_only_called_directly_p,
18431         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
18432         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
18433         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
18434         (assemble
18435         * ipa.c (cgraph_remove_unreachable_nodes): Use
18436         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
18437         flags.
18438         * tree-inline.c (copy_bb): Check address_taken flag.
18439         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
18440         externally_visible flag.
18441
18442 2010-05-12  Jason Merrill  <jason@redhat.com>
18443
18444         PR bootstrap/44048
18445         PR target/44099
18446         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
18447         * sdbout.c (plain_type_1): Likewise.
18448         * dwarf2out.c (is_base_type): Likewise.
18449         (gen_type_die_with_usage): Likewise.  Generate
18450         DW_TAG_unspecified_type for any LANG_TYPE.
18451
18452 2010-05-12  Jan Hubicka  <jh@suse.cz>
18453
18454         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
18455         indrect edges too.
18456         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
18457         (cgraph_clone_edge): Update.
18458         (cgraph_node_remove_callees): Remove indirect calls too.
18459         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
18460         (cgraph_create_indirect_edge): Update prototype.
18461         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
18462         is_proper_for_analysis.
18463         (add_new_function, visited_nodes, function_insertion_hook_holder,
18464         get_local_reference_vars_info, mark_address_taken, mark_address,
18465         mark_load, mark_store, check_asm_memory_clobber, check_call,
18466         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
18467         (ipa_init): Do not initialize visited_nodes;
18468         function_insertion_hook_holder.
18469         (analyze_variable): Rewrite.
18470         (analyze_function): Rewrite.
18471         (copy_local_bitmap): Remove.
18472         (duplicate_node_dat): Do not duplicate local info.
18473         (generate_summary): Simplify to only walk cgraph.
18474         (write_node_summary_p, ipa_reference_write_summary,
18475         ipa_reference_read_summary): Remove.
18476         (propagate): Do not remove function insertion;
18477         generate summary.
18478         (pass_ipa_reference): NULLify summary handling fields.
18479         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
18480         (input_edge): Input ecf_flags.
18481         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
18482         (update_indirect_edges_after_inlining): Ignore edges with unknown
18483         param.
18484
18485 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
18486
18487         * implicit-zee.c: New file.
18488         * tree-pass.h (pass_implicit_zee): Declare.
18489         * passes.c (init_optimization_passes): Add zee pass.
18490         * common.opt (fzee): New flag.
18491         * timevar.def (TV_ZEE): Define.
18492         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
18493         and beyond.
18494         * Makefile.in (implicit-zee.o): Add new build file.
18495
18496 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
18497             Nathan Froyd  <froydnj@codesourcery.com>
18498
18499         * c-common.c (sync_resolve_params): Remove write-only variable.
18500
18501 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
18502
18503         * target.h (struct gcc_target): Add mode_dependent_address_p field.
18504         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
18505         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
18506         * targhooks.c (default_mode_dependent_address_p): New function.
18507         * targhooks.h (default_mode_dependent_address_p): Declare function.
18508         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
18509         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
18510         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
18511         target hook. Change return type to bool.
18512         * recog.h (mode_dependent_address_p): Change return type to bool.
18513
18514 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
18515             Nathan Froyd  <froydnj@codesourcery.com>
18516
18517         * tree-mudflap.c (build_function_type_0, build_function_type_1,
18518         build_function_type_2, build_function_type_3): Remove.
18519         (mudflap_init): Use build_function_type_list.
18520
18521 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
18522             Nathan Froyd  <froydnj@codesourcery.com>
18523
18524         * coverage.c (build_fn_info_value): Call build_constructor instead of
18525         build_constructor_from_list.
18526         (build_ctr_info_value): Likewise.
18527         (build_gcov_info): Likewise.
18528
18529 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
18530
18531         * tree.c (build_constructor): Compute TREE_CONSTANT for the
18532         resultant constructor.
18533         (build_constructor_single): Don't set TREE_CONSTANT.
18534         (build_constructor_from_list): Don't compute TREE_CONSTANT.
18535
18536 2010-05-12  Jan Hubicka  <jh@suse.cz>
18537
18538         * cgraph.h (struct varpool_node): Add aux.
18539         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
18540         * varpool.c (varpool_remove_node): Do not remove initializer.
18541         (varpool_reset_queue): Export.
18542         (varpool_finalize_decl): Volatile vars are forced to be output.
18543         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
18544         replaced decl.
18545         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
18546         process_references, varpool_can_remove_if_no_refs): New functions.
18547         (cgraph_remove_unreachable_nodes): Handle variables too.
18548
18549 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
18550
18551         PR target/44088
18552         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
18553
18554 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
18555
18556         PR middle-end/44085
18557         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
18558         change value of ORT_TASK.
18559         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
18560         (omp_notice_threadprivate_variable): New function.
18561         (omp_notice_variable): Call it for threadprivate variables.
18562         If enclosing ctx is a task, print enclosing task rather than
18563         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
18564         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
18565         if task has untied clause.
18566
18567         PR debug/42278
18568         * dwarf2out.c (base_type_die): Don't add name attribute here.
18569         (modified_type_die): Instead of sizetype use
18570         its underlying original type.  If a DW_TAG_base_type doesn't
18571         have name added, add __unknown__.
18572         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
18573         always call force_type_die instead.
18574
18575 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
18576
18577         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
18578         for __stack_chk_guard.
18579
18580 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
18581
18582         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
18583         don't call start_source_file debug hook here...
18584         (finish_options): ... but here, after outputting predefined and
18585         command line defines and undefs.
18586
18587         PR middle-end/44071
18588         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
18589         no fallthru edge.
18590         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
18591         optimizing away empty bb with no successors, move over its
18592         footer chain to fallthru predecessor.
18593         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
18594         (rtl_split_edge): For asm goto call patch_jump_insn even if
18595         splitting fallthru edge.
18596
18597         PR c++/44059
18598         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
18599         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
18600         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
18601         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
18602         on DW.ref.* decls.
18603
18604         PR c++/44062
18605         * c-parser.c (c_parser_expression): Mark LHS of a comma
18606         expression as read if it is a decl, handled component or
18607         COMPOUND_EXPR with that on the RHS.
18608         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
18609         if it is a decl or handled component.
18610
18611 2010-05-11  Jan Hubicka  <jh@suse.cz>
18612
18613         * lto-symtab.c (lto_symtab_free): New function.
18614         * lto-streamer.h (lto_symtab_free): Declare.
18615
18616 2010-05-11  Jan Hubicka  <jh@suse.cz>
18617
18618         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
18619         that if function is needed it is reachable.
18620         (lto_output_node): See if it the function is reachable or referenced.
18621         (output_cgraph): Update call of lto_output_node.
18622         * lto-streamer.h (reachable_from_other_partition_p): Declare.
18623
18624 2010-05-11  Jan Hubicka  <jh@suse.cz>
18625
18626         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
18627         Mark as used.
18628
18629 2010-05-11  Jan Hubicka  <jh@suse.cz>
18630
18631         PR tree-optimize/44063
18632         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
18633         queue.
18634         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
18635         limits.
18636         (estimate_function_body_sizes): Compute sizes even when disregarding.
18637
18638 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
18639
18640         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
18641
18642 2010-05-11  Jan Hubicka  <jh@suse.cz>
18643
18644         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
18645         into every boundary.
18646
18647 2010-05-11  Jan Hubicka  <jh@suse.cz>
18648
18649         * matrix-reorg.c (matrix_reorg): Rebuild edges.
18650
18651 2010-05-11  Jan Hubicka  <jh@suse.cz>
18652
18653         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
18654         lto_streamer_cache_delete): Put nodes into heap.
18655         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
18656         heap.
18657
18658 2010-05-11  Jan Hubicka  <jh@suse.cz>
18659
18660         * cgraphbuild.c (cgraph_rebuild_references): New.
18661         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
18662         out extern inlines.
18663         * cgraph.h (cgraph_rebuild_references): Declare.
18664         * tree-inline.c (tree_function_versioning): Use it.
18665         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
18666
18667 2010-05-11  Jan Hubicka  <jh@suse.cz>
18668
18669         * cgraph.c: Include ipa-utils.h
18670         (cgraph_create_virtual_clone): Update references.
18671         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
18672
18673 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
18674
18675         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
18676         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
18677         cache size.
18678
18679 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
18680
18681         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
18682
18683 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
18684
18685         * gcc.c (execute): For -### don't quote arguments that
18686         contain just alphanumerics and _/-. characters.
18687         * doc/invoke.texi: Document that change for -###.
18688
18689         PR debug/44023
18690         * df-problems.c (struct dead_debug): Add to_rescan field.
18691         (dead_debug_init): Clear to_rescan field.
18692         (dead_debug_finish): Rescan all debug insns in to_rescan
18693         bitmap and free the bitmap.
18694         (dead_debug_insert_before): Instead of rescanning debug insns
18695         immediately queue their rescanning until dead_debug_finish.
18696         (df_note_bb_compute): After dead_debug_add do continue instead
18697         of break.
18698
18699 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
18700
18701         PR debug/44028
18702         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
18703         clear also INSN_REG_USE_LIST.
18704
18705 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18706
18707         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
18708
18709 2010-05-10  Jan Hubicka  <jh@suse.cz>
18710
18711         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
18712         commited change.
18713
18714 2010-05-10  Jan Hubicka  <jh@suse.cz>
18715
18716         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
18717         Allocate encoders.
18718         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
18719         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
18720         (lto_streamer_cache_create): Init alloc pool.
18721         (lto_streamer_cache_delete): Free alloc pool.
18722         * lto-streamer.h: Include alloc pool.
18723         (lto_streamer_cache_d): Use alloc pool.
18724         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
18725
18726 2010-05-10  Jan Hubicka  <jh@suse.cz>
18727
18728         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
18729         * cgraphbuild.c: Include except.h
18730         (record_type_list, record_eh_tables): New function.
18731         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
18732
18733 2010-05-10  Jan Hubicka  <jh@suse.cz>
18734
18735         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
18736         __frame_dummy_init_array_entry, force_to_data): Attribute as used
18737         rather than unused.
18738
18739 2010-05-10  Michael Matz  <matz@suse.de>
18740
18741         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
18742         (can_reassociate_p): Use FLOAT_TYPE_P.
18743         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
18744         (vect_force_simple_reduction): ... this.
18745         * tree-parloops.c (gather_scalar_reductions): Use
18746         vect_force_simple_reduction.
18747         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
18748         vect_is_simple_reduction, add modify argument, if true rewrite
18749         "a-b" into "a+(-b)".
18750         (vect_is_simple_reduction, vect_force_simple_reduction): New
18751         functions.
18752         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
18753
18754 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
18755             Vladimir Makarov  <vmakarov@redhat.com>
18756
18757         PR rtl-optimization/44012
18758         * ira-build.c (remove_unnecessary_allocnos): Nullify
18759         regno_allocno_map of the removed allocno.
18760
18761 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18762
18763         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
18764         to /dev/null.
18765         * configure: Regenerate.
18766
18767 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18768
18769         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
18770         unused.
18771         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
18772         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
18773         support in Sun ld.
18774         * configure: Regenerate.
18775
18776 2010-05-10  Richard Guenther  <rguenther@suse.de>
18777
18778         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
18779         marked if the entry identifier is marked.
18780
18781 2010-05-10  Richard Guenther  <rguenther@suse.de>
18782
18783         * c-common.c (struct c_common_attributes): Add fnspec attribute.
18784         (handle_fnspec_attribute): New function.
18785         * gimple.h (gimple_call_return_flags): Declare.
18786         (gimple_call_arg_flags): Likewise.
18787         * gimple.c (gimple_call_arg_flags): New function.
18788         (gimple_call_return_flags): Likewise.
18789         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
18790         New argument flags.
18791         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
18792         return value flags.
18793         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
18794         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
18795         main work to ...
18796         (make_heapvar_for): ... this new function.
18797         (handle_rhs_call): Handle fnspec attribute argument specifiers.
18798         (handle_lhs_call): Likewise.
18799         (find_func_aliases): Adjust.
18800
18801 2010-05-10  Richard Guenther  <rguenther@suse.de>
18802
18803         PR tree-optimization/44050
18804         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
18805
18806 2010-05-10  Wei Guozhi  <carrot@google.com>
18807
18808         PR target/42879
18809         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
18810
18811 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
18812
18813         PR c/10676
18814         * c-typeck.c (lookup_field): Take a type directly.  Update
18815         recursive calls.
18816         (build_component_ref): Update call to lookup_field.
18817         (set_init_label): Use lookup_field to find initialized field.
18818         Handle returned list of fields like a sequence of designators.
18819
18820 2010-05-09  Richard Guenther  <rguenther@suse.de>
18821
18822         PR middle-end/44024
18823         * fold-const.c (tree_single_nonzero_warnv_p): Properly
18824         handle &FUNCTION_DECL.
18825
18826 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
18827
18828         PR c/4784
18829         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
18830         structures and unions recursively.
18831         (detect_field_duplicates): Move duplicate detection with a hash to
18832         detect_field_duplicates_hash.  Always use a hash if anonymous
18833         structures or unions are present.
18834         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
18835         give errors.
18836
18837 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
18838
18839         PR target/44046
18840         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
18841         detect Atom, Core 2 and Core i7.
18842
18843 2010-05-09  Richard Guenther  <rguenther@suse.de>
18844
18845         * gcc.c (store_arg): Handle temporary file deletion for
18846         joined arguments.
18847
18848 2010-05-09  Richard Guenther  <rguenther@suse.de>
18849
18850         PR middle-end/44043
18851         * ipa-inline.c (estimate_function_body_sizes): Return after
18852         disregarding inline limits.
18853
18854 2010-05-09  Richard Guenther  <rguenther@suse.de>
18855
18856         * gcc.c (store_arg): Revert last change.
18857
18858 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
18859
18860         PR middle-end/28685
18861         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
18862         (optimize_ops_list): Call it.
18863
18864 2010-05-08  Richard Guenther  <rguenther@suse.de>
18865
18866         PR tree-optimization/44030
18867         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
18868         NECESSARY flag if we propagate from a inserted expression.
18869
18870 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
18871
18872         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
18873         domain types as equal if they are both PLACEHOLDER_EXPRs.
18874
18875 2010-05-08  Richard Guenther  <rguenther@suse.de>
18876
18877         * lto-wrapper.c (run_gcc): Remove linker output from
18878         command line for LTRANS invocation.
18879
18880 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
18881
18882         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
18883         lto-macho as lto_binary_reader.
18884         * target.h (struct gcc_target): New hooks lto_start and lto_end.
18885         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
18886         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
18887         in lto_start and lto_end calls.
18888         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
18889         magic numbers.
18890         (scan_prog_file): Update is_elf_or_coff call.
18891         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
18892
18893         * collect2.c (main): Fix enum comparison.
18894
18895         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
18896         Add prototypes.
18897         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
18898         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
18899         and TARGET_ASM_LTO_END.
18900         * darwin.c: Include obstack.h and lto-streamer.h.
18901         (lto_section_names_offset, lto_section_names_obstack,
18902         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
18903         global variables.
18904         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
18905         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
18906         to a temporary file.
18907         (darwin_asm_lto_end): New function.  Restore asm_out_file.
18908         (darwin_asm_named_section): For LTO sections, replace the name with
18909         the offset of the section name in a string table, and build this
18910         table.
18911         (darwin_file_start): Initialize global vars for LTO support.
18912         (darwin_file_end): If output to asm_out_file was redirected, append it
18913         to the proper asm_out_file here.  Add the section names section.
18914
18915 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
18916
18917         * c-pragma.c (pending_weak_d, pending_weak): New.
18918         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
18919         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
18920         handle_pragma_weak): Update the uses of pending_weaks.
18921
18922 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18923
18924         PR documentation/44016
18925         * doc/standards.texi (Standards): Link to unversioned
18926         cxx0x_status.html page.
18927
18928 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
18929
18930         PR target/43708
18931         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
18932         in addition to TREE_USED, to avoid "set but unused" warnings.
18933
18934 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
18935
18936         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
18937         (is_loop_prefetching_profitable): Do not insert prefetches
18938         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
18939         times the prefetch ahead distance.
18940
18941 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
18942
18943         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
18944         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
18945         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
18946         the unroll_factor.
18947
18948 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
18949
18950         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
18951         a diagnostic info when the insn-to-mem ratio is too small.
18952
18953 2010-05-07  Richard Guenther  <rguenther@suse.de>
18954
18955         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
18956         the linker plugin.
18957         (store_arg): Queue temp_filename for deletion instead of
18958         the whole argument.
18959
18960 2010-05-07  Richard Guenther  <rguenther@suse.de>
18961
18962         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
18963         (run_gcc): Handle LTRANS phase invocation.
18964         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
18965
18966 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
18967
18968         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
18969         this is also meaningful on PARM_DECLs and RESULT_DECLs.
18970
18971 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18972
18973         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
18974
18975 2010-05-07  Richard Guenther  <rguenther@suse.de>
18976
18977         PR tree-optimization/44020
18978         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
18979         code when PRE is not yet initialized.
18980
18981 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18982
18983         * config/mips/dbxmdebug.h: Remove.
18984         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
18985
18986 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
18987
18988         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
18989         with null pointer and also warn about ordered comparison of zero with
18990         pointer if -Wextra.
18991
18992 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
18993
18994         * graphite-blocking.c
18995         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
18996         * graphite-clast-to-gimple.c
18997         (clast_to_gcc_expression): Same.
18998         (precision_for_value): Same.
18999         (precision_for_interval): Same.
19000         (gcc_type_for_interval): Same.
19001         (graphite_create_new_guard): Same.
19002         (compute_bounds_for_level): Same.
19003         (graphite_create_new_loop_guard): Same.
19004         * graphite-interchange.c
19005         (build_linearized_memory_access): Same.
19006         (pdr_stride_in_loop): Same.
19007         (memory_strides_in_loop_1): Same.
19008         (memory_strides_in_loop): Same.
19009         (extend_scattering): Same.
19010         (psct_scattering_dim_for_loop_depth): Same.
19011         (pbb_number_of_iterations): Same.
19012         * graphite-poly.h
19013         (debug_iteration_domains): Same.
19014         * graphite-ppl.c
19015         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
19016         (ppl_set_inhomogeneous_gmp): Same.
19017         (ppl_strip_loop): Same.
19018         (ppl_lexico_compare_linear_expressions): Same.
19019         (ppl_read_polyhedron_matrix): Same.
19020         (ppl_max_for_le_pointset): Same.
19021         * graphite-ppl.h
19022         (ppl_read_polyhedron_matrix): Same.
19023         (tree_int_to_gmp): Same.
19024         (gmp_cst_to_tree): Same.
19025         (ppl_set_inhomogeneous): Same.
19026         (ppl_set_inhomogeneous_tree): Same.
19027         (ppl_set_coef): Same.
19028         (ppl_set_coef_tree): Same.
19029         * graphite-sese-to-poly.c
19030         (build_pbb_scattering_polyhedrons): Same.
19031         (build_scop_scattering): Same.
19032         (scan_tree_for_params_right_scev): Same.
19033         (scan_tree_for_params): Same.
19034         (find_params_in_bb): Same.
19035         (find_scop_parameters): Same.
19036         (add_upper_bounds_from_estimated_nit): Same.
19037         (build_loop_iteration_domains): Same.
19038         (add_condition_to_domain): Same.
19039         (pdr_add_memory_accesses): Same.
19040
19041 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
19042
19043         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
19044         CLooG's value_* macros to their respective mpz_* counterparts.
19045         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
19046         (graphite_create_new_loop_guard): Same.
19047         * graphite-interchange.c (build_linearized_memory_access): Same.
19048         (pdr_stride_in_loop): Same.
19049         (memory_strides_in_loop_1): Same.
19050         (1st_interchange_profitable_p): Same.
19051         * graphite-poly.c (extend_scattering): Same.
19052         (psct_scattering_dim_for_loop_depth): Same.
19053         (pbb_number_of_iterations): Same.
19054         (pbb_number_of_iterations_at_time): Same.
19055         * graphite-poly.h (new_1st_loop): Same.
19056         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
19057         (oppose_constraint): Same.
19058         (insert_constraint_into_matrix): Same.
19059         (ppl_set_inhomogeneous_gmp): Same.
19060         (ppl_set_coef_gmp): Same.
19061         (ppl_strip_loop): Same.
19062         (ppl_lexico_compare_linear_expressions): Same.
19063         (ppl_max_for_le_pointset): Same.
19064         (ppl_min_for_le_pointset): Same.
19065         (ppl_build_realtion): Same.
19066         * graphite-ppl.h (gmp_cst_to_tree): Same.
19067         (ppl_set_inhomogeneous): Same.
19068         (ppl_set_inhomogeneous_tree): Same.
19069         (ppl_set_coef): Same.
19070         (ppl_set_coef_tree): Same.
19071         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
19072         (build_scop_scattering): Same.
19073         (add_value_to_dim): Same.
19074         (scan_tree_for_params_right_scev): Same.
19075         (scan_tree_for_params_int): Same.
19076         (scan_tree_for_params): Same.
19077         (find_params_in_bb): Same.
19078         (find_scop_parameters): Same.
19079         (add_upper_bounds_from_estimated_nit): Same.
19080         (build_loop_iteration_domains): Same.
19081         (create_linear_expr_from_tree): Same.
19082         (add_condition_to_domain): Same.
19083         (pdr_add_memory_accesses): Same.
19084
19085 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
19086             Jason Merrill  <jason@redhat.com>
19087
19088         * c-common.c (c_common_reswords): Add nullptr.
19089         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
19090         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
19091         (gen_type_die_with_usage): Likewise.
19092         * dbxout.c (dbxout_type): Likewise.
19093         * sdbout.c (plain_type_1): Likewise.
19094
19095 2010-05-06  Jason Merrill  <jason@redhat.com>
19096
19097         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
19098         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
19099         ret appropriately.
19100         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
19101
19102         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
19103         stripping WITH_SIZE_EXPR.
19104         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
19105         change.
19106
19107 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19108
19109         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
19110         list of obsolete configurations.
19111         Disabled check for obsolete configurations.
19112         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
19113         Removed support for previous versions.
19114         * config/mips/iris.h: Removed.
19115         * config/mips/iris5.h: Removed.
19116         * config/mips/iris6.h: Merged old iris.h contents.
19117         (TARGET_IRIX): Removed.
19118         (DRIVER_SELF_SPECS): Removed mabi=32.
19119         (IDENT_ASM_OP): Removed undef.
19120         (STARTFILE_SPEC): Removed mabi=32.
19121         (ENDFILE_SPEC): Likewise.
19122         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
19123         (MACHINE_TYPE): Update for IRIX 6.5.
19124         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
19125         TARGET_IRIX by TARGET_IRIX6.
19126         (mips_file_start): Likewise.
19127         (mips_output_external): Remove IRIX 5/6 O32 support.
19128         (mips_output_function_prologue): Likewise.
19129         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
19130         TARGET_IRIX6.
19131         (TARGET_CPU_CPP_BUILTINS): Likewise.
19132         (TARGET_IRIX): Removed.
19133         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
19134         (MULTILIB_DIRNAMES): Removed 32.
19135         (MULTILIB_OSDIRNAMES): Removed ../lib.
19136         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
19137         (Specific, mips-sgi-irix5): Document removal.
19138         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
19139         Remove references to older IRIX 6 releases and the O32 ABI.
19140
19141 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
19142
19143         PR bootstrap/43994
19144         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
19145         instead of DF_REF_REAL_REG.
19146
19147 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
19148
19149         PR target/43888
19150         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
19151         handling to still return true for x64 targets.
19152
19153 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
19154
19155         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
19156
19157 2010-05-06  Jan Hubicka  <jh@suse.cz>
19158
19159         PR tree-optimization/43791
19160         * ipa-inline.c (update_caller_keys): Remove bogus
19161         disregard_inline_limits check.
19162
19163 2010-05-06  Michael Matz  <matz@suse.de>
19164
19165         PR tree-optimization/43984
19166         * tree-ssa-pre.c (inserted_phi_names): Remove.
19167         (inserted_exprs): Change to bitmap.
19168         (create_expression_by_pieces): Set bits, don't append to vector.
19169         (insert_into_preds_of_block): Don't handle inserted_phi_names.
19170         (eliminate): Don't look at inserted_phi_names, remove deleted
19171         insns from inserted_exprs.
19172         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
19173         (init_pre, fini_pre): Allocate and free bitmaps.
19174         (execute_pre): Insert insns on edges before elimination.
19175
19176 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
19177
19178         * tree.c (initializer_zerop): Handle STRING_CST.
19179
19180 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19181
19182         PR 40989
19183         * doc/invoke.texi (Wimplicit): Document as C only.
19184         * opts.c (common_handle_option): Add argument kind.
19185         (handle_option): Rename as read_cmdline_option. Factor out code to...
19186         (handle_option): ... here. New.
19187         (handle_options): Rename as read_cmdline_options.
19188         (decode_options): Update call.
19189         (set_option): Use option index instead of option pointer. Classify
19190         diagnostics correctly.
19191         (enable_warning_as_error): Call handle_option.
19192         * opts.h (set_option): Update declaration.
19193         (handle_option): Declare.
19194         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
19195         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
19196         * c-opts.c (set_Wimplicit): Delete.
19197         (c_family_lang_mask): New static constant.
19198         (c_common_handle_option): Add argument kind. Use handle_option
19199         instead of set_Wimplicit.
19200         (c_common_post_options): warn_implicit and warn_implicit_int
19201         are disabled by default.
19202         * c-common.c (warn_implicit): Do not define here.
19203         * c-common.h (warn_implicit): Do not declare here.
19204         (c_common_handle_option): Update declaration.
19205         * lto-opts.c (lto_reissue_options): Update call to set_option.
19206
19207 2010-05-06  Richard Guenther  <rguenther@suse.de>
19208
19209         PR tree-optimization/43571
19210         * domwalk.c (walk_dominator_tree): Walk the dominator
19211         sons in more optimal order.
19212
19213 2010-05-06  Richard Guenther  <rguenther@suse.de>
19214
19215         PR tree-optimization/43934
19216         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
19217         (stmt_cost): Likewise.
19218         (extract_true_false_args_from_phi): New helper.
19219         (determine_max_movement): For PHI nodes verify we can hoist them
19220         and compute their cost.
19221         (determine_invariantness_stmt): Handle PHI nodes.
19222         (move_computations_stmt): Likewise.  Hoist PHI nodes in
19223         if-converted form using COND_EXPRs.
19224         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
19225         (tree_ssa_lim): Likewise.
19226         * tree-flow.h (tree_ssa_lim): Adjust prototype.
19227         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
19228
19229 2010-05-06  Richard Guenther  <rguenther@suse.de>
19230
19231         PR tree-optimization/43987
19232         * tree-ssa-structalias.c (could_have_pointers): For possibly
19233         address-taken variables force pointers to be recorded.
19234         (create_variable_info_for_1): Likewise.
19235         (push_fields_onto_fieldstack): Pass in wheter all fields
19236         must have pointers.
19237         (find_func_aliases): Query types instead of vars whether
19238         they contain pointers where appropriate.
19239
19240 2010-05-06  Jan Hubicka  <jh@suse.cz>
19241
19242         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
19243         (record_reference, mark_address, mark_load, mark_store): Record
19244         references.
19245         (record_references_in_initializer): Update call of record_references.
19246         (rebuild_cgraph_edges): Remove all references before rebuiding.
19247         * cgraph.c (cgraph_create_node): Clear ref list.
19248         (cgraph_remove_node): Remove references.
19249         (dump_cgraph_node): Dump references.
19250         (cgraph_clone_node): Clone references.
19251         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
19252         (struct cgraph_node, varpool_node): Add ref_lst.
19253         * ipa-ref.c: New file.
19254         * ipa-ref.h: New file.
19255         * ipa-ref-inline.h: New file.
19256         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
19257         (referenced_from_other_partition_p): New function.
19258         (lto_output_varpool_node): Take set arugment; call
19259         referenced_from_other_partition.
19260         (lto_output_ref): New.
19261         (add_references): New.
19262         (output_refs): New.
19263         (output_cgraph): Compute boundary based on references; output refs.
19264         (output_varpool): Accept cgraph_node_set argument.
19265         (input_ref): New.
19266         (input_refs): New.
19267         (input_cgraph): Call input_refs.
19268         * lto-section-in.c (lto_section_name): Add refs.
19269         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
19270         (ipa-ref.o): New file.
19271         * varpool.c (varpool_node): Clear ipa ref list.
19272         (varpool_remove_node): Remove references.
19273         (dump_varpool_node): Dump references.
19274         (varpool_assemble_decl): Only compile finalized ones.
19275         (varpool_extra_name_alias): Initialize ref list.
19276         * lto-streamer.c (lto-get_section_name): Add .refs section.
19277         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
19278         (referenced_from_other_partition_p): Declared.
19279
19280 2010-05-06  Ira Rosen  <irar@il.ibm.com>
19281
19282         PR tree-optimization/43901
19283         * tree-vect-stmts.c (vectorizable_call): Assert that vector
19284         type is not NULL if it's transformation phase, and return
19285         FALSE if it's analysis.
19286         (vectorizable_conversion, vectorizable_operation,
19287         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
19288
19289 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
19290
19291         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
19292         Delete.
19293         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
19294         New define.
19295         * config/mips/mips-protos.h
19296         (mips_small_register_classes_for_mode_p): Delete prototype.
19297
19298 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
19299
19300         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
19301         * config/arm/arm.c (multiple_operation_profitable_p,
19302         compute_offset_order): New static functions.
19303         (load_multiple_sequence, store_multiple_sequence): Use them.
19304         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
19305         memory offsets, not register numbers.
19306         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
19307
19308 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
19309
19310         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
19311         (get_pending_sizes, put_pending_size, put_pending_sizes):
19312         Update the uses of pending_sizes.
19313         * c-decl.c (store_parm_decls): Likewise.
19314         * c-tree.h (struct c_arg_info): Likewise.
19315         * tree.h: Update the prototype for get_pending_sizes and
19316         put_pending_sizes.
19317
19318 2010-05-05  Jason Merrill  <jason@redhat.com>
19319
19320         PR debug/43370
19321         * c-common.c (handle_aligned_attribute): Respect
19322         ATTR_FLAG_TYPE_IN_PLACE.
19323
19324         PR testsuite/43758
19325         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
19326         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
19327         (TARGET_INITIALIZER): Use it.
19328         * c-common.c (attribute_takes_identifier_p): Call it.
19329         * c-common.h: Update prototype.
19330         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
19331         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
19332
19333 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
19334
19335         PR debug/43950
19336         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
19337         DW_ID_down_case for Fortran compilation units.
19338
19339 2010-05-05  Jan Hubicka  <jh@suse.cz>
19340
19341         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
19342         handle aliases.
19343
19344 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
19345
19346         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
19347         a variable-sized RESULT_DECL.
19348
19349 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
19350
19351         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
19352
19353 2010-05-05  Jason Merrill  <jason@redhat.com>
19354
19355         PR c++/43787
19356         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
19357         returns GS_OK.
19358         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
19359
19360 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
19361             Jakub Jelinek  <jakub@redhat.com>
19362
19363         PR debug/43478
19364         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
19365         (dead_debug_init, dead_debug_finish): New functions.
19366         (dead_debug_add, dead_debug_insert_before): Likewise.
19367         (df_note_bb_compute): Initialize a dead_debug object, add dead
19368         debug uses to it, insert debug bind insns before death insns,
19369         reset debug insns that refer to pending uses at the end.
19370         * rtl.h (make_debug_expr_from_rtl): New prototype.
19371         * varasm.c (make_debug_expr_from_rtl): New function.
19372
19373 2010-05-05  Jan Hubicka  <jh@suse.cz>
19374
19375         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
19376         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
19377         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
19378         lto_varpool_encoder_deref, lto_varpool_encoder_size,
19379         lto_varpool_encoder_encode_initializer_p,
19380         lto_set_varpool_encoder_encode_initializer): New functions.
19381         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
19382         call output_varpool.
19383         (input_varpool_node): Do not always set analyzed.
19384         (input_cgraph_1): Return vector of cgraph nodes.
19385         (input_varpool_1): Return vector of varpools.
19386         (input_cgraph): Free the vectors.
19387         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
19388         output only initializers needed.
19389         (lto_output): Only call output_cgraph.
19390         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
19391         * lto-section-out.c (lto_new_out_decl_state): Initialize
19392         state->varpool_node_encoder.
19393         * lto-streamer.h (lto_varpool_encoder_d): New.
19394         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
19395         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
19396         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
19397         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
19398         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
19399         Declare.
19400         (output_varpool, input_varpool): Remove declarations.
19401
19402 2010-05-05  Jan Hubicka  <jh@suse.cz>
19403
19404         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
19405         with body can prevail.
19406
19407 2010-05-05  Jan Hubicka  <jh@suse.cz>
19408
19409         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
19410         size.
19411
19412 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
19413
19414         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
19415
19416         * gengtype.h (erro_at_line): Constify pos argument.
19417
19418         * gengtype.c: Include hashtab.h.
19419         (enum gc_used): Document GC_MAYBE_POINTED_TO.
19420         (error_at_line): Constify pos argument.
19421         (do_typedef): Initialize p->opt field.
19422         (get_file_gtfilename): Fix comment typo.
19423         (struct walk_type_data): Constify line field.
19424         (get_output_file_for_structure): New function.
19425         (write_local_func_for_structure): Constify orig_s argument.
19426         Use get_output_file_for_structure.
19427         (write_func_for_structure): Use get_output_file_for_structure.
19428         (INDENT): New define.
19429         (dump_pair, dump_type, dump_type_list, dump_typekind)
19430         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
19431         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
19432         functions.
19433         (seen_types): New variable.
19434         (main): New variable do_dump.  Process "-d" command line option.
19435         Call dump_everything if dump requested.
19436
19437 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
19438
19439         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
19440         in a temporary instead of invoking the macro multiple times.
19441         (track_expr_p): Likewise.
19442
19443 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
19444
19445         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
19446         per new semantics.
19447         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
19448         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
19449         conditions for printing notes.
19450         * common.opt (-Wcoverage-mismatch): Allow negative, default to
19451         true, update documentation.
19452         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
19453
19454 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
19455
19456         PR c/43981
19457         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
19458         on dimen.
19459
19460 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
19461
19462         PR target/43799
19463         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
19464         (*sse_prologue_save_insn1): Likewise.
19465         (SSE prologue save splitter): Likewise.
19466
19467 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
19468
19469         * tree.c (free_lang_data_in_one_sizepos): New inline function.
19470         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
19471         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
19472         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
19473         all decls.  Call it on DECL_FIELD_OFFSET of fields.
19474         (find_decls_types_r): Follow DECL_VALUE_EXPR.
19475         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
19476
19477 2010-05-04  Martin Jambor  <mjambor@suse.cz>
19478
19479         * tree-sra.c (build_access_from_expr_1): The first parameter type
19480         changed to simple tree.
19481         (build_access_from_expr): Likewise, gsi parameter was eliminated.
19482         (scan_assign_result): Renamed to assignment_mod_result, enum elements
19483         renamed as well.
19484         (build_accesses_from_assign): Removed all parameters except for a
19485         simple gimple statement.  Now returns a simple bool.
19486         (scan_function): All non-analysis parts moved to separate functions
19487         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
19488         parameters and updated both callers.
19489         (sra_modify_expr): Removed parameter data.
19490         (sra_modify_function_body): New function.
19491         (perform_intra_sra): Call sra_modify_function_body to modify the
19492         function body.
19493         (replace_removed_params_ssa_names): Parameter data changed into
19494         adjustments vector.
19495         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
19496         changed the parameter dont_convert to convert with the opposite
19497         meaning.
19498         (sra_ipa_modify_assign): Parameter data changed into adjustments
19499         vector, return value changed to bool.
19500         (ipa_sra_modify_function_body): New function.
19501         (sra_ipa_reset_debug_stmts): Updated a comment.
19502         (modify_function): Use ipa_sra_modify_function_body to modify function
19503         body.
19504
19505 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
19506
19507         PR middle-end/43671
19508         * alias.c (true_dependence): Handle the same VALUE in x and mem.
19509         (canon_true_dependence): Likewise.
19510         (write_dependence_p): Likewise.
19511
19512 2010-05-04  Jan Hubicka  <jh@suse.cz>
19513
19514         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
19515         * cgraphbuild.c: Include ipa-utils.h
19516         (record_reference_ctx): New struct.
19517         (record_reference): Simplify to work on initializers; not statements.
19518         (mark_address, mark_load, mark_store): New.
19519         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
19520         walk PHI nodes too.
19521         (record_references_in_initializer): Update use of record_reference.
19522         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
19523         walk PHI nodes too.
19524
19525 2010-05-04  Jan Hubicka  <jh@suse.cz>
19526
19527         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
19528         node will be removed anyway.
19529         (lto_varpool_replace_node): Allow also unanalyzed nodes;
19530         relink aliases of node into prevailing node.
19531         * varpool.c (varpool_remove_node): Remove aliases properly;
19532         when removing node, remove all its aliases too; remove DECL_INITIAL
19533         of removed node; ggc_free the varpool node.
19534
19535 2010-05-04  Richard Guenther  <rguenther@suse.de>
19536
19537         PR tree-optimization/43879
19538         * tree-ssa-structalias.c (alias_get_name): Use
19539         DECL_ASSEMBLER_NAME if available.
19540         (create_function_info_for): Return the varinfo node.
19541         (ipa_pta_execute): Associate same-body aliases and extra names
19542         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
19543
19544 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
19545
19546         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
19547
19548 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
19549
19550         PR bootstrap/43964
19551         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
19552         only if HONOR_REG_ALLOC_ORDER is not defined.
19553
19554 2010-05-04  Richard Guenther  <rguenther@suse.de>
19555
19556         PR tree-optimization/43949
19557         * tree-vrp.c (extract_range_from_binary_expr): Only handle
19558         TRUNC_MOD_EXPR.
19559
19560 2010-04-26  Jason Merrill  <jason@redhat.com>
19561
19562         * c.opt (-fstrict-enums): New.
19563         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
19564
19565 2010-05-03  David Ung  <davidu@mips.com>
19566             James E. Wilson  <wilson@codesourcery.com>
19567
19568         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
19569         emit the trap instruction before the divide for TUNE_74K.
19570
19571 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
19572
19573         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
19574         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
19575         based on the above, for new target hook.
19576
19577         * hooks.c (hook_bool_mode_true): New generic hook.
19578         * hooks.h (hook_bool_mode_true): Add prototype.
19579
19580         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
19581         target hook.
19582         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
19583         target hook, set to hook_bool_mode_false.
19584         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
19585         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
19586         with targetm.small_register_classes_for_mode_p.
19587         (find_reusable_reload): Likewise.
19588         (combine_reloads): Likewise.
19589         * reload1.c (reload_as_needed): Likewise.
19590         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
19591         * ifcvt.c (noce_process_if_block, check_cond_move_block,
19592         dead_or_predicable): Likewise.
19593         * regmove.c (optimize_reg_copy_1): Likewise.
19594         * calls.c (prepare_call_address): Likewise.
19595         (precompute_register_parameters): Likewise.
19596
19597         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
19598         hook definition.
19599         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
19600         implementation of the hook that considers all register classes
19601         small except for SH64.
19602         (sh_override_options): Use the new hook.
19603         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
19604         Add prototype.
19605
19606         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
19607         hook definition.
19608         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
19609         implementation of the hook that considers all register classes
19610         small for THUMB1.
19611         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
19612         Add prototype.
19613
19614         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
19615         hook definition.
19616         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
19617         implementation of the hook that considers all register classes
19618         small for MIPS16.
19619         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
19620         Add prototype.
19621
19622         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
19623         hook definition.
19624         * config/m32c/m32c.h: Likewise.
19625         * config/pdp11/pdp11.h: Likewise.
19626         * config/avr/avr.h: Likewise.
19627         * config/xtensa/xtensa.h: Likewise.
19628         * config/m68hc11/m68hc11.h: Likewise.
19629         * config/mn10300/mn10300.h: Likewise.
19630         * config/mcore/mcore.h: Likewise.
19631         * config/h8300/h8300.h: Likewise.
19632         * config/bfin/bfin.h: Likewise.
19633
19634         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
19635         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
19636
19637 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
19638
19639         * double-int.h (tree_to_double_int): Remove macro.
19640         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
19641         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
19642         (tree_to_double_int): New function.
19643         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
19644         Move ...
19645         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
19646
19647 2010-05-03  Richard Guenther  <rguenther@suse.de>
19648
19649         PR tree-optimization/43971
19650         * tree-ssa-structalias.c (get_constraint_for_1): Fix
19651         constraints in the !flag_delete_null_pointer_checks case.
19652
19653 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
19654
19655         PR debug/43972
19656         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
19657         result mode matches original rtl mode.
19658
19659 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
19660
19661         PR target/43888
19662         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
19663
19664 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
19665
19666         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
19667         when processing flag options.
19668
19669 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
19670
19671         * gcov-iov.c (main): Change format string placeholder
19672         from %#08x to 0x%08x.
19673         * genchecksum.c (dosum): Change format string placeholder
19674         from %#02x to 0x%02x.
19675
19676 2010-05-02  Richard Guenther  <rguenther@suse.de>
19677
19678         PR tree-optimization/43879
19679         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
19680
19681 2010-05-02  Bruno Haible  <bruno@clisp.org>
19682
19683         * doc/extend.texi (Function Attributes): Fix a typo.
19684
19685 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
19686
19687         Revert:
19688         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
19689         placeholder from 0x%x to %#x.
19690         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
19691         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
19692         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
19693         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
19694         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
19695         * config/i386/i386.c (ix86_target_string): Ditto.
19696         * config/i386/i386.c (output_pic_addr_const): Ditto.
19697         (print_operand): Ditto.
19698
19699 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
19700
19701         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
19702         placeholder from 0x%x to %#x.
19703         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
19704         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
19705         (ASM_OUTPUT_DEBUG_DATA): Ditto.
19706         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
19707         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
19708         * optc-gen.awk: Ditto.
19709         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
19710         (HOST_WIDE_INT_PRINT_HEX): Ditto.
19711         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
19712         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
19713
19714 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
19715
19716         * target.h (struct calls): Add function_value_regno_p field.
19717         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
19718         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
19719         * targhooks.c (default_function_value_regno_p): New function.
19720         * targhooks.h (default_function_value_regno_p): Declare function.
19721         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
19722         * builtins.c. (apply_result_size): (Ditto.).
19723         * combine.c. (likely_spilled_retval_p): (Ditto.).
19724         * mode-switching.c. Include 'target.h'.
19725         (create_pre_exit): Use function_value_regno_p hook.
19726         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
19727         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
19728         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
19729
19730         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
19731         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
19732         (ix86_function_value_regno_p): Declare as static, change argument
19733         type to const unsigned int.
19734         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
19735
19736 2010-05-01  Richard Guenther  <rguenther@suse.de>
19737
19738         PR tree-optimization/43949
19739         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
19740         types.
19741         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
19742
19743 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
19744
19745         * rtl.h (CONST_DOUBLE_P): Define.
19746         (rtx_to_double_int): Declare.
19747         * emit-rtl.c (rtx_to_double_int): New function.
19748         * dwarf2out.c (insert_double): New function.
19749         (loc_descriptor, add_const_value_attribute): Clean up, use
19750         rtx_to_double_int and insert_double functions.
19751
19752 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
19753
19754         * doc/extend.texi (Inline): Add missing return keyword to examples.
19755         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
19756         "command-line".
19757
19758 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
19759
19760         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
19761         the variable part of the offset as well.  Use highest_pow2_factor for
19762         all alignment checks.
19763
19764 2010-04-30  Richard Guenther  <rguenther@suse.de>
19765
19766         PR tree-optimization/43879
19767         * tree-ssa-structalias.c (type_could_have_pointers): Functions
19768         can have pointers.
19769
19770 2010-04-30  Jan Hubicka  <jh@suse.cz>
19771
19772         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
19773         varpool.
19774         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
19775
19776 2010-04-30  Jan Hubicka  <jh@suse.cz>
19777
19778         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
19779         New.
19780         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
19781         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
19782         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
19783         cgraph_node_set_needs_ltrans_p): Remove.
19784
19785 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
19786
19787         * sdbout.c: Include vec.h, do not include varray.h.
19788         (deferred_global_decls, sdbout_global_decl,
19789         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
19790         * toplev.c: Do not include varray.h.
19791         (dump_memory_report): Do not dump VARRAY statistics.
19792         * gengtype.c (open_base_file): Ignore varray.h.
19793         * Makefile.in: Update for abovementioned changes.
19794         Remove all traces of varray.c and varray.h.
19795         * varray.c: Remove file.
19796         * varray.h: Remove file.
19797
19798 2010-04-30  Jan Hubicka  <jh@suse.cz>
19799
19800         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
19801         references.
19802
19803 2010-04-30  Jan Hubicka  <jh@suse.cz>
19804
19805         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
19806         needed.
19807
19808 2010-04-30  Richard Guenther  <rguenther@suse.de>
19809
19810         * tree-ssa-structalias.c (get_constraint_for_1): Generate
19811         constraints for CONSTRUCTOR.
19812
19813 2010-04-30  Richard Guenther  <rguenther@suse.de>
19814
19815         PR lto/43946
19816         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
19817         first after all lowering passes.
19818
19819 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
19820
19821         * toplev.c: Include varray.h for statistics dumping.
19822         * tree.h: Do not declare varray_head_tag.
19823         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
19824         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
19825         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
19826         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
19827         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
19828         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
19829         c-common.c, c-common.h, reg-stack.c, basic-block.h,
19830         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
19831         include varray.h.
19832         * Makefile.in: Update for abovementioned changes.
19833
19834 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
19835
19836         PR debug/43942
19837         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
19838
19839 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
19840
19841         * config/picochip/picochip.c (picochip_legitimize_address): Define.
19842         Use this function to do machine-specific conversion.
19843         (picochip_legitimize_reload_address): Likewise.
19844         (picochip_legitimate_address_p): Check valid base register only if
19845         strict.
19846         (picochip_check_conditional_copy): Check for modw only if opnd is
19847         register.
19848         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
19849         to call the function in c.
19850         * config/picochip/picochip-protos.h
19851         (picochip_legitimize_reload_address): Define.
19852         * config/picochip/picochip.md (supported_compare1): Define.
19853
19854 2010-04-30  Jan Hubicka  <jh@suse.cz>
19855
19856         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
19857         (cgraph_global_info): Remove inlined.
19858         (LTO_cgraph_tag_names): Remove.
19859         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
19860         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
19861         simplify cgraph tags and document.
19862         (lto_output_node): Use only LTO_cgraph_unavail_node and
19863         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
19864         for_functions_valid, global info, process and output flags.
19865         (input_overwrite_node): Initialize estimated stack size and
19866         estimated growth.  Do not read flags we no longer store.
19867         (input_node): Likewise do not read info no longer stored.
19868         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
19869         flag.
19870
19871 2010-04-30  Richard Guenther  <rguenther@suse.de>
19872
19873         PR tree-optimization/43879
19874         * tree-ssa-structalias.c (get_constraint_for_1): Properly
19875         handle non-zero initializers.
19876
19877 2010-04-30  Richard Guenther  <rguenther@suse.de>
19878
19879         * builtins.c (fold_builtin_1): Delete free (0).
19880
19881 2010-04-29  Jan Hubicka  <jh@suse.cz>
19882
19883         * gengtype.c (open_base_files): Add lto-streamer.h
19884         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
19885         (pass_ipa_cp): GGC collect.
19886         * toplev. (compile_file): Do not output symbols.
19887         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
19888         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
19889         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
19890         * lto-section-in.c: Include ggc.h
19891         (lto_new_in_decl_state): Alloc in GGC.
19892         (lto_delete_in_decl_state): Likewise.
19893         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
19894         Collect.
19895
19896 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
19897
19898         PR target/42895
19899         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
19900         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
19901         (HONOR_REG_ALLOC_ORDER): Describe new macro.
19902         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
19903         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
19904         account only if HONOR_REG_ALLOC_ORDER is not defined.
19905         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
19906         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
19907
19908 2010-04-29  Jon Grant  <04@jguk.org>
19909
19910         * collect2.c (vflag): Change type from int to bool.
19911         (debug): Likewise.
19912         (helpflag): New global bool.
19913         (main): Set vflag and debug with boolean, not integer truth values.
19914         Accept new "--help" option and output usage text if found.
19915         * collect2.h (vflag): Update prototype.
19916         (debug): Likewise.
19917
19918 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
19919
19920         PR bootstrap/43936
19921         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
19922
19923 2010-04-29  Richard Guenther  <rguenther@suse.de>
19924
19925         PR bootstrap/43935
19926         * plugin.h (invoke_plugin_callbacks): Annotate arguments
19927         with ATTRIBUTE_UNUSED.
19928
19929 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
19930
19931         PR target/43921
19932         * config/i386/i386.c (get_some_local_dynamic_name): Replace
19933         INSN_P with NONDEBUG_INSN_P.
19934         (distance_non_agu_define): Likewise.
19935         (distance_agu_use): Likewise.
19936
19937 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
19938
19939         From Dominique d'Humieres  <dominiq@lps.ens.fr>
19940         PR bootstrap/43858
19941         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
19942         test_set.
19943
19944 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
19945
19946         * plugin.h (invoke_plugin_callbacks): New inline function.
19947         * plugin.c (flag_plugin_added): New global flag.
19948         (add_new_plugin): Initialize above flag.
19949         (invoke_plugin_callbacks): Rename to ...
19950         (invoke_plugin_callbacks_full): ... this.
19951
19952 2010-04-28  Jan Hubicka  <jh@suse.cz>
19953
19954         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
19955         (lto_varpool_replace_node): New.
19956         (lto_symtab_resolve_symbols): Resolve varpool nodes.
19957         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
19958         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
19959         * cgraph.h (varpool_node_ptr): New type.
19960         (varpool_node_ptr): New vector.
19961         (varpool_node_set_def): New structure.
19962         (varpool_node_set): New type.
19963         (varpool_node_set): New vector.
19964         (varpool_node_set_element_def): New structure.
19965         (varpool_node_set_element, const_varpool_node_set_element): New types.
19966         (varpool_node_set_iterator): New type.
19967         (varpool_node): Add prev pointers, add used_from_other_partition,
19968         in_other_partition.
19969         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
19970         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
19971         varpool_get_node, varpool_remove_node): Declare.
19972         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
19973         varpool_node_set_size): New inlines.
19974         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
19975         * tree-pass.h (varpool_node_set_def): Forward declare.
19976         (ipa_opt_pass_d): Summary writting takes vnode sets too.
19977         (ipa_write_optimization_summaries): Update prototype.
19978         * ipa-cp.c (ipcp_write_summary): Update.
19979         * ipa-reference.c (ipa_reference_write_summary): Update.
19980         * lto-cgraph.c (lto_output_varpool_node): New static function.
19981         (output_varpool): New function.
19982         (input_varpool_node): New static function.
19983         (input_varpool_1): New function.
19984         (input_cgraph): Input varpool.
19985         * ipa-pure-const.c (pure_const_write_summary): Update.
19986         * lto-streamer-out.c (lto_output): Update, output varpool too.
19987         (write_global_stream): Kill WPA hack.
19988         (produce_asm_for_decls): Update.
19989         (output_alias_pair_p): Handle variables.
19990         (output_unreferenced_globals): Output only needed partition of varpool.
19991         * ipa-inline.c (inline_write_summary): Update.
19992         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
19993         cgraph.
19994         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
19995         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
19996         varpool_node_set_new, varpool_node_set_add,
19997         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
19998         debug_varpool_node_set): New functions.
19999         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
20000         (execute_one_pass): Process new decls too.
20001         (ipa_write_summaries_2): Pass around vsets.
20002         (ipa_write_summaries_1): Likewise.
20003         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
20004         to add.
20005         (ipa_write_optimization_summaries_1): Pass around vsets.
20006         (ipa_write_optimization_summaries): Likewise.
20007         * varpool.c (varpool_get_node): New.
20008         (varpool_node): Update doubly linked lists.
20009         (varpool_remove_node): New.
20010         (dump_varpool_node): More dumping.
20011         (varpool_enqueue_needed_node): Update doubly linked lists.
20012         (decide_is_variable_needed): Kill ltrans hack.
20013         (varpool_finalize_decl): Kill lto hack.
20014         (varpool_assemble_decl): Skip decls in other partitions.
20015         (varpool_assemble_pending_decls): Update doubly linkes lists.
20016         (varpool_empty_needed_queue): Likewise.
20017         (varpool_extra_name_alias): Likewise.
20018         * lto-streamer.c (lto_get_section_name): Add vars section.
20019         * lto-streamer.h (lto_section_type): Update.
20020         (output_varpool, input_varpool): Declare.
20021
20022 2010-04-28  Mike Stump  <mikestump@comcast.net>
20023
20024         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
20025
20026 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
20027
20028         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
20029         record or union type with RECORD_OR_UNION_TYPE_P predicate.
20030         (lto_input_ts_type_tree_pointers): Likewise.
20031         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
20032         (lto_output_ts_type_tree_pointers): Likewise.
20033
20034 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
20035
20036         Uniquization of constants at the Tree level
20037         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
20038         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
20039         bit to the end.
20040         (tree_output_constant_def): Declare.
20041         * gimplify.c (gimplify_init_constructor): When using block copy, first
20042         uniquize the constant constructor on the RHS.
20043         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
20044         DECL_IN_CONSTANT_POOL flag.
20045         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
20046         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
20047         constant pool.
20048         (assemble_variable): Deal with symbols belonging to the tree constant
20049         pool.
20050         (get_constant_section): Add ALIGN parameter and simplify.
20051         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
20052         (assemble_constant_contents): Use the expression of the VAR_DECL.
20053         (output_constant_def_contents): Use the alignment of the VAR_DECL.
20054         (tree_output_constant_def): New global function.
20055         (mark_constant): Use the expression of the VAR_DECL.
20056         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
20057         its expression.
20058         (output_object_block): Likewise and assemble the expression.
20059
20060 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
20061
20062         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
20063         hash_tree, eq_tree): New tree hash table.
20064         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
20065         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
20066         lto_orig_address_remove): Reimplement.
20067
20068 2010-04-28  Xinliang David Li  <davidxl@google.com>
20069
20070         PR c/42643
20071         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
20072         (compute_uninit_opnds_pos): New function.
20073         (is_non_loop_exit_postdominating): New function.
20074         (compute_control_dep_chain): New function.
20075         (find_pdom): New function.
20076         (convert_control_dep_chain_into_preds): New function.
20077         (find_predicates): New function.
20078         (find_control_equiv_block): New function.
20079         (collect_phi_def_edges): New function.
20080         (find_def_preds): New function.
20081         (find_dom): New function.
20082         (dump_predicates): New function.
20083         (get_cmp_code): New function.
20084         (is_value_included_in): New function.
20085         (find_matching_predicate_in_rest_chains): New function.
20086         (use_pred_not_overlap_with_undef_path_pred): New function.
20087         (is_use_properly_guarded): New function.
20088         (normalize_cond_1): New function.
20089         (is_and_or_or): New function.
20090         (normalize_cond): New function.
20091         (is_gcond_subset_of): New function.
20092         (is_subset_of_any): New function.
20093         (is_or_set_subset_of): New function.
20094         (is_and_set_subset_of): New function.
20095         (is_norm_cond_subset_of): New function.
20096         (is_pred_expr_subset_of): New function.
20097         (is_pred_chain_subset_of): New function.
20098         (is_included_in): New function.
20099         (is_superset_of): New function.
20100         (find_uninit_use): New function.
20101         (warn_uninitialized_phi): New function.
20102         (compute_possibly_undefined_names): New function.
20103         (ssa_undefined_value_p): New function.
20104         (execute_late_warn_uninitialized): New function.
20105         * tree-ssa.c (ssa_undefined_value_p): Removed.
20106         (warn_uninit): Changed to extern.
20107         (warn_uninitialized_phi): Removed.
20108         (warn_uninitialized_vars): Changed to extern.
20109         (execute_late_warn_uninitialized): Removed
20110         * tree-flow.h: Add new prototypes.
20111         * timevar.def: Add new time variable.
20112         * Makefile.in: Add new build file.
20113
20114 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
20115
20116         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
20117         type if available.
20118
20119 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20120
20121         PR target/22224
20122         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
20123
20124 2010-04-28  Martin Jambor  <mjambor@suse.cz>
20125
20126         * cgraph.h (struct cgraph_node): New field indirect_calls.
20127         (struct cgraph_indirect_call_info): New type.
20128         (struct cgraph_edge): Removed field indirect_call. New fields
20129         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
20130         (cgraph_create_indirect_edge): Declare.
20131         (cgraph_make_edge_direct): Likewise.
20132         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
20133         * ipa-prop.h (struct ipa_param_call_note): Removed.
20134         (struct ipa_node_params): Removed field param_calls.
20135         (ipa_create_all_structures_for_iinln): Declare.
20136         * cgraph.c: Described indirect edges and uids in initial comment.
20137         (cgraph_add_edge_to_call_site_hash): New function.
20138         (cgraph_edge): Search also among the indirect edges, use
20139         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
20140         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
20141         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
20142         site hash.
20143         (initialize_inline_failed): Assign a reason to indirect edges.
20144         (cgraph_create_edge_1): New function.
20145         (cgraph_create_edge): Moved some functionality to
20146         cgraph_create_edge_1.
20147         (cgraph_create_indirect_edge): New function.
20148         (cgraph_edge_remove_callee): Add an assert checking for
20149         non-indirectness.
20150         (cgraph_edge_remove_caller): Special-case indirect edges.
20151         (cgraph_remove_edge): Likewise.
20152         (cgraph_set_edge_callee): New function.
20153         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
20154         (cgraph_make_edge_direct): New function.
20155         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
20156         the declaration of the call statement matches.
20157         (cgraph_node_remove_callees): Special-case indirect edges.
20158         (cgraph_clone_edge): Likewise.
20159         (cgraph_clone_node): Clone also the indirect edges.
20160         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
20161         indirect_call, dump count of indirect_calls edges.
20162         * ipa-prop.c (iinlining_processed_edges): New variable.
20163         (ipa_note_param_call): Create indirect edges instead of
20164         creating notes.  New parameter node.
20165         (ipa_analyze_call_uses): New parameter node, pass it on to
20166         ipa_note_param_call.
20167         (ipa_analyze_stmt_uses): Likewise.
20168         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
20169         (print_edge_addition_message): Work on edges rather than on notes.
20170         (update_call_notes_after_inlining): Likewise, renamed to
20171         update_indirect_edges_after_inlining.
20172         (ipa_create_all_structures_for_iinln): New function.
20173         (ipa_free_node_params_substructures): Do not free notes.
20174         (ipa_edge_duplication_hook): Propagate bits within
20175         iinlining_processed_edges bitmap.
20176         (ipa_node_duplication_hook): Do not duplicate notes.
20177         (free_all_ipa_structures_after_ipa_cp): Renamed to
20178         ipa_free_all_structures_after_ipa_cp.
20179         (free_all_ipa_structures_after_iinln): Renamed to
20180         ipa_free_all_structures_after_iinln.
20181         (ipa_write_param_call_note): Removed.
20182         (ipa_read_param_call_note): Removed.
20183         (ipa_write_indirect_edge_info): New function.
20184         (ipa_read_indirect_edge_info): Likewise.
20185         (ipa_write_node_info): Do not stream notes, do stream information
20186         in indirect edges.
20187         (ipa_read_node_info): Likewise.
20188         (lto_ipa_fixup_call_notes): Removed.
20189         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
20190         * ipa-inline.c (pass_ipa_inline): Likewise.
20191         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
20192         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
20193         * tree-inline.c (copy_bb): Removed an unnecessary double check for
20194         is_gimple_call.
20195         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
20196         edges.
20197         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
20198         (output_cgraph): Stream also indirect edges.
20199         (lto_output_edge): Added capability to stream indirect edges.
20200         (input_edge): Likewise.
20201         (input_cgraph_1): Likewise.
20202         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
20203         of indirect edges.
20204
20205 2010-04-28  Richard Guenther  <rguenther@suse.de>
20206
20207         PR tree-optimization/43879
20208         PR tree-optimization/43909
20209         * tree-ssa-structalias.c (struct variable_info): Add
20210         only_restrict_pointers flag.
20211         (new_var_info): Initialize it.  Increment stats.total_vars here.
20212         (create_function_info_for): Do not increment stats.total_vars here.
20213         (get_function_part_constraint): Fix build with C++.
20214         (insert_into_field_list): Remove.
20215         (push_fields_onto_fieldstack): Properly merge fields.
20216         (create_variable_info_for): Split and simplify.
20217         (create_variable_info_for_1): New piece.
20218         (intra_create_variable_infos): Properly make restrict constraints
20219         from parameters.
20220
20221 2010-04-28  Richard Guenther  <rguenther@suse.de>
20222
20223         PR c++/43880
20224         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
20225
20226 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20227             Jan Hubicka  <hubicka@ucw.cz>
20228
20229         * doc/invoke.texi (-Wsuggest-attribute=const,
20230         -Wsuggest-attribute=pure): Document.
20231         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
20232         (function_always_visible_to_compiler_p,
20233         suggest_attribute, warn_function_pure, warn_function_const):
20234         New functions.
20235         (check_call): Improve debug info.
20236         (analyze_function): Do not check availability.
20237         (add_new_function): Check availability.
20238         (propagate): Output warnings.
20239         (skip_function_for_local_pure_const): New function.
20240         (local_pure_const): Use it; output warnings.
20241         * common.opt (Wsuggest-attribute=const,
20242         Wsuggest-attribute=pure): New.
20243
20244 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
20245
20246         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
20247         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
20248         or DW_CFA_def_cfa_offset{,_sf}.
20249
20250 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
20251
20252         * tree.h: Fix truncated long macros.
20253
20254 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
20255
20256         * collect2.c (TARGET_64BIT): Redefine to target's default.
20257         * tlink.c: Likewise.
20258         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
20259         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
20260         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
20261         for underscoring __USER_LABEL_PREFIX__.
20262         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
20263         (SUB_LINK_ENTRY32): New.
20264         (SUB_LINK_ENTRY64): New.
20265         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
20266         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
20267         (SUB_LINK_ENTRY64): New.
20268         (SUB_LINK_ENTRY): New.
20269         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
20270         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
20271         x64 target is choosen.
20272         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
20273         * configure: Regenerated.
20274         * configure.ac (leading-mingw64-underscores): Option added.
20275
20276 2010-04-27  Jan Hubicka  <jh@suse.cz>
20277
20278         * doc/invoke.texi (-fipa-profile): Document.
20279         * opts.c (decode_options): Enable ipa-profile at -O1.
20280         * timevar.def (TV_IPA_PROFILE): Define.
20281         * common.opt (fipa-profile): Add.
20282         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
20283         flag for clones.
20284         (cgraph_propagate_frequency): Handle only local ones.
20285         * tree-pass.h (pass_ipa_profile): Declare.
20286         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
20287         (pass_ipa_profile): Use TV_IPA_PROFILE.
20288         * ipa.c (ipa_profile): New function.
20289         (gate_ipa_profile): Likewise.
20290         (pass_ipa_profile): New global variable.
20291         * passes.c (pass_ipa_profile): New.
20292
20293 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
20294
20295         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
20296
20297 2010-04-27  Martin Jambor  <mjambor@suse.cz>
20298
20299         PR middle-end/43812
20300         * ipa.c (dissolve_same_comdat_group_list): New function.
20301         (function_and_variable_visibility): Call
20302         dissolve_same_comdat_group_list when comdat group contains external or
20303         newly local nodes.
20304         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
20305         lists are circular and that they contain only DECL_ONE_ONLY nodes.
20306
20307 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
20308
20309         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
20310         (const_hash_1) <VECTOR_CST>: New case.
20311         (compare_constant) <VECTOR_CST>: Likewise.
20312         <ADDR_EXPR>: Deal with LABEL_REFs.
20313         (copy_constant) <VECTOR_CST>: New case.
20314
20315 2010-04-27  Jan Hubicka  <jh@suse.cz>
20316
20317         * cgraph.c (cgraph_propagate_frequency): New function.
20318         * cgraph.h (cgraph_propagate_frequency): Declare.
20319         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
20320         cgraph_propagate_frequency.
20321
20322 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
20323
20324         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
20325
20326 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
20327
20328         PR target/40657
20329         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
20330         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
20331         here to determine which regs to push and how much stack to reserve.
20332
20333 2010-04-27  Jie Zhang  <jie@codesourcery.com>
20334
20335         * doc/gimple.texi (gimple_statement_with_ops): Remove
20336         addresses_taken field.
20337         (gimple_statement_with_memory_ops): Likewise.
20338
20339 2010-04-27  Jan Hubicka  <jh@suse.cz>
20340
20341         * tree-inline.c (eni_inlining_weights): Remove.
20342         (estimate_num_insns): Special case more builtins.
20343
20344 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
20345
20346         PR c/32207
20347         * c-typeck.c (build_binary_op): Move forward check for comparison
20348         pointer with null pointer constant and adjust the diagnostic message.
20349
20350 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
20351
20352         PR lto/42776
20353         * configure.ac (gcc_cv_as_section_has_align): Set if installed
20354         binutils supports extended .section directive needed by LTO, or
20355         warn if older binutils found.
20356         (LTO_BINARY_READER): New AC_SUBST'd variable.
20357         (LTO_USE_LIBELF): Likewise.
20358         * config.gcc (lto_binary_reader): New target-specific configure
20359         variable.
20360         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
20361         (LTO_USE_LIBELF): Likewise.
20362         * configure: Regenerate.
20363
20364         * collect2.c (is_elf): Rename from this ...
20365         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
20366          object files in addition to ELF-formatted ones.
20367         (scan_prog_file): Caller updated.  Also allow for LTO info marker
20368         symbol to be prefixed or not by an extra underscore.
20369
20370         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
20371         * config/i386/winnt.c: Also #include lto-streamer.h
20372         (i386_pe_asm_named_section): Specify 1-byte section alignment for
20373         LTO named sections.
20374         (i386_pe_asm_output_aligned_decl_common): Add comment.
20375         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
20376
20377 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
20378
20379         PR target/43889
20380         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
20381         Add missing earlyclobber for second alternative.
20382
20383 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
20384
20385         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
20386         bits for artificial defs at the top of the block.
20387         * fwprop.c (single_def_use_enter_block): Don't call it.
20388
20389 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
20390
20391         PR 43715
20392         * configure.ac: Use "$gcc_cv_nm -g" on darwin
20393         instead of "$gcc_cv_objdump -T".
20394         Use "-undefined dynamic_lookup" on darwin.
20395         * configure: Regenerate.
20396
20397 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
20398
20399         PR c/43893
20400         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
20401
20402 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
20403
20404         * c-parser.c (struct c_token): Move location field up.
20405         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
20406         (struct c_declspecs): Convert typespec_word, storage_class, and
20407         default_int_p into bitfields.
20408         (struct c_declarator): Move loc field up.
20409
20410 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
20411
20412         * cfgloop.h (struct loop): Move can_be_parallel field up.
20413         * ipa-prop.h (struct ip_node_params): Move bitfields up.
20414         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
20415         down.
20416         (struct iv_cand): Convert pos field into a bitfield.
20417         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
20418         field up.
20419         (struct _stmt_vec_info): Shuffle fields for better packing.
20420
20421 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
20422
20423         * varasm.c (IN_NAMED_SECTION): Remove guard.
20424         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
20425         (IN_NAMED_SECTION_P): ...this.
20426         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
20427         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
20428
20429 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
20430
20431         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
20432         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
20433         of shadowing it.  Fix comments.
20434
20435 2010-04-26  Jan Hubicka  <jh@suse.cz>
20436
20437         * cgraph.c (cgraph_create_node): Set node frequency to normal.
20438         (cgraph_clone_node): Copy function frequency.
20439         * cgraph.h (node_frequency): New enum
20440         (struct cgraph_node): Add.
20441         * final.c (rest_of_clean_state): Update.
20442         * lto-cgraph.c (lto_output_node): Output node frequency.
20443         (input_overwrite_node): Input node frequency.
20444         * tre-ssa-loop-ivopts (computation_cost): Update.
20445         * lto-streamer-out.c (output_function): Do not output function
20446         frequency.
20447         * predict.c (maybe_hot_frequency_p): Update and handle functions
20448         executed once.
20449         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
20450         attribute lookup.
20451         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
20452         (compute_function_frequency): Set noreturn functions to be executed
20453         once.
20454         (choose_function_section): Update.
20455         * lto-streamer-in.c (input_function): Do not input function frequency.
20456         * function.c (allocate_struct_function): Do not initialize function
20457         frequency.
20458         * function.h (function_frequency): Remove.
20459         (struct function): Remove function frequency.
20460         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
20461         (try_update): Update.
20462         * tree-inline.c (initialize_cfun): Do not update function frequency.
20463         * passes.c (pass_init_dump_file): Update.
20464         * i386.c (ix86_compute_frame_layout): Update.
20465         (ix86_pad_returns): Update.
20466
20467 2010-04-26  Jie Zhang  <jie@codesourcery.com>
20468
20469         PR tree-optimization/43833
20470         * tree-vrp.c (range_int_cst_p): New.
20471         (range_int_cst_singleton_p): New.
20472         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
20473         when both operands are constants.  Use range_int_cst_p in
20474         BIT_IOR_EXPR case.
20475
20476 2010-04-26  Jan Hubicka  <jh@suse.cz>
20477
20478         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
20479
20480 2010-04-26  Richard Guenther  <rguenther@suse.de>
20481
20482         PR lto/43080
20483         * gimple.c (gimple_decl_printable_name): Deal gracefully
20484         with a NULL DECL_NAME.
20485
20486 2010-04-26  Richard Guenther  <rguenther@suse.de>
20487
20488         PR lto/42425
20489         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
20490         if emitting debug information and it is either a function
20491         or a namespace decl.
20492
20493 2010-04-26  Ira Rosen  <irar@il.ibm.com>
20494
20495         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
20496         determine if the statement is vectorizable, and a macro to access it.
20497         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
20498         Skip statements that can't be vectorized. If the analysis fails,
20499         mark the statement as unvectorizable if vectorizing basic block.
20500         (vect_compute_data_refs_alignment): Likewise.
20501         (vect_verify_datarefs_alignment): Skip statements marked as
20502         unvectorizable. Add print.
20503         (vect_analyze_group_access): Skip statements that can't be
20504         vectorized. If the analysis fails, mark the statement as
20505         unvectorizable if vectorizing basic block.
20506         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
20507         * tree-vect-stmts.c (vectorizable_store): Fix the number of
20508         generated stmts for SLP.
20509         (new_stmt_vec_info): Initialize the new field.
20510         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
20511         statements marked as unvectorizable.
20512
20513 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
20514
20515         * c-common.c (flag_isoc1x): New.
20516         (flag_isoc99): Update comment.
20517         * c-common.h (flag_isoc1x): New.
20518         (flag_isoc99): Update comment.
20519         * c-cppbuiltin.c (builtin_define_float_constants): Also define
20520         __<type>_DECIMAL_DIG__.
20521         * c-opts.c (set_std_c1x): New.
20522         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
20523         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
20524         * c.opt (-std=c1x, -std=gnu1x): New options.
20525         * doc/cpp.texi: Mention -std=c1x.
20526         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
20527         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
20528         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
20529         * doc/standards.texi: Mention C1X.
20530         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
20531         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
20532         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
20533         Define for C1X.
20534
20535 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
20536
20537         * config/i386/gmon-sol2.c (_mcleanup): Change format string
20538         placeholder from 0x%x to %#x.
20539         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
20540         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
20541         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
20542         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
20543         * config/i386/i386.c (ix86_target_string): Ditto.
20544         (output_pic_addr_const): Ditto.
20545         (print_operand): Ditto.
20546
20547 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
20548
20549         * combine.c (find_split_point): Add third argument.  Use it
20550         to find nested multiply-accumulate instructions.  Adjust calls.
20551         (try_combine): Adjust call to find_split_point.
20552
20553 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
20554
20555         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
20556
20557 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
20558
20559         PR tree-optimization/41442
20560         * fold-const.c (merge_truthop_with_opposite_arm): New function.
20561         (fold_binary_loc): Call it.
20562
20563 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20564
20565         * toplev.c (general_init): Set default for fdiagnostics-show-option.
20566         * opts.c (common_handle_option): Allow disabling it.
20567         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
20568
20569 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
20570
20571         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
20572         between modes if both types are integral.
20573
20574 2010-04-23  Richard Guenther  <rguenther@suse.de>
20575
20576         PR tree-optimization/43572
20577         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
20578
20579 2010-04-23  Richard Guenther  <rguenther@suse.de>
20580
20581         PR lto/43455
20582         * tree-inline.c (tree_can_inline_p): Also check compatibility
20583         of return types.
20584
20585 2010-04-23  Martin Jambor  <mjambor@suse.cz>
20586
20587         PR tree-optimization/43846
20588         * tree-sra.c (struct access): New flag grp_assignment_read.
20589         (build_accesses_from_assign): Set grp_assignment_read.
20590         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
20591         (enum mark_read_status): New type.
20592         (analyze_access_subtree): Propagate grp_assignment_read, create
20593         accesses also if both direct_read and root->grp_assignment_read.
20594
20595 2010-04-23  Martin Jambor  <mjambor@suse.cz>
20596
20597         PR middle-end/43835
20598         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
20599         function does not have type attributes.
20600
20601 2010-04-23  Richard Guenther  <rguenther@suse.de>
20602
20603         PR lto/42653
20604         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
20605         of FUNCTION_DECLs.
20606
20607 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
20608
20609         * sese.h (create_if_region_on_edge): Remove.
20610
20611         * sese.c (create_if_region_on_edge): Make static.
20612
20613         * tree-inline.c: Do not include ggc.h.
20614
20615         * expr.c: Do not include ggc.h.
20616
20617         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
20618         dependencies.
20619
20620 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
20621
20622         PR target/43744
20623         * config/sh/sh.c (find_barrier): Don't emit a constant pool
20624         in the middle of insns for casesi_worker_2.
20625
20626 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
20627
20628         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
20629
20630 2010-04-22  Ira Rosen  <irar@il.ibm.com>
20631
20632         PR tree-optimization/43842
20633         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
20634         loop unrolling in update of exit phis. Fix comment.
20635         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
20636         least two reduction statements in the loop before starting SLP
20637         analysis.
20638
20639 2010-04-22  Nick Clifton  <nickc@redhat.com>
20640
20641         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
20642
20643 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
20644
20645         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
20646         to simplify a + ~a.
20647
20648 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
20649
20650         * tree-parloops.c (loop_parallel_p): New argument
20651         parloop_obstack.  Pass it down.
20652         (parallelize_loops): New variable parloop_obstack.  Initialize it,
20653         pass it down, free it.
20654
20655         * tree-loop-linear.c (linear_transform_loops): Pass down
20656         lambda_obstack.
20657
20658         * tree-data-ref.h (lambda_compute_access_matrices): New argument
20659         of type struct obstack *.
20660
20661         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
20662         scratch_obstack.  Initialize it, pass down, free it.
20663
20664         * lambda.h (lambda_loop_new): Remove.
20665         (lambda_matrix_new, lambda_matrix_inverse)
20666         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
20667         argument of type struct obstack *.
20668
20669         * lambda-trans.c (lambda_trans_matrix_new): New argument
20670         lambda_obstack.  Pass it down, use obstack allocation for ret.
20671         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
20672         it down.
20673
20674         * lambda-mat.c (lambda_matrix_get_column)
20675         (lambda_matrix_project_to_null): Remove.
20676         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
20677         allocation for mat.
20678         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
20679         lambda_obstack.
20680
20681         * lambda-code.c (lambda_loop_new): New function.
20682         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
20683         (lambda_compute_auxillary_space, lambda_compute_target_space)
20684         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
20685         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
20686         (build_access_matrix): New argument lambda_obstack.  Use obstack
20687         allocation for am.
20688         (lambda_compute_step_signs, lambda_compute_access_matrices): New
20689         argument lambda_obstack.  Pass it down.
20690
20691 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
20692
20693         * optabs.h (expand_widening_mult): Declare.
20694
20695 2010-04-22  Richard Guenther  <rguenther@suse.de>
20696
20697         PR tree-optimization/43845
20698         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
20699         lookup the CALL_EXPR function and arguments.
20700
20701 2010-04-22  Nick Clifton  <nickc@redhat.com>
20702
20703         * config/stormy16/stormy16.c
20704         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
20705         * config/stormy16/stormy16.h: Tidy up formatting.
20706         (DONT_USE_BUILTIN_SETJMP): Remove definition.
20707         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
20708         (ineqbranchsi): Delete pattern.
20709         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
20710         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
20711         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
20712         stormy16-lib2-ucmpsi2.c.
20713
20714 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
20715
20716         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
20717         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
20718         extra set merge_set_noclobber, and use it to relax the final test
20719         slightly.
20720         * df.h (df_simulate_find_noclobber_defs): Declare.
20721         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
20722         conditional defs.
20723         (df_simulate_find_noclobber_defs): New function.
20724
20725 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
20726
20727         * config/i386/i386.md: Use {} around multi-line preparation statements.
20728
20729 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
20730
20731         * c-tree.h (push_init_level, pop_init_level, set_init_index)
20732         (process_init_element): New argument of type struct obstack *.
20733
20734         * c-typeck.c (push_init_level, pop_init_level, set_designator)
20735         (set_init_index, set_init_label, set_nonincremental_init)
20736         (set_nonincremental_init_from_string, find_init_member)
20737         (output_init_element, output_pending_init_elements)
20738         (process_init_element): New argument braced_init_obstack.  Pass it
20739         down.
20740         (push_range_stack, add_pending_init): New argument
20741         braced_init_obstack.  Use obstack allocation.
20742
20743         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
20744         braced_init_obstack.  Pass it down.
20745         (c_parser_braced_init): New variables ret, braced_init_obstack.
20746         Initialize obstack, pass it down and finally free it.
20747
20748 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
20749
20750         PR middle-end/29274
20751         * tree-pass.h (pass_optimize_widening_mul): Declare.
20752         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
20753         gate_optimize_widening_mul): New static functions.
20754         (pass_optimize_widening_mul): New.
20755         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
20756         <case MULT_EXPR>: Remove support for widening multiplies.
20757         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
20758         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
20759         simplify_gen_unary rather than directly building extensions.
20760         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
20761         WIDEN_MULT_EXPR.
20762         * expmed.c (expand_widening_mult): New function.
20763         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
20764
20765 2010-04-21  Jan Hubicka  <jh@suse.cz>
20766
20767         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
20768         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
20769         * lto-wpa-fixup.c: Remove.
20770         * Makefile.in (lto-wpa-fixup.o): Remove.
20771         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
20772         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
20773         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
20774
20775 2010-04-21  Jan Hubicka  <jh@suse.cz>
20776
20777         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
20778         add write_optimization_summary, read_optimization_summary.
20779         (ipa_write_summaries_of_cgraph_node_set): Remove.
20780         (ipa_write_optimization_summaries): Declare.
20781         (ipa_read_optimization_summaries): Declare.
20782         * ipa-cp.c (pass_ipa_cp): Update.
20783         * ipa-reference.c (pass_ipa_reference): Update.
20784         * ipa-pure-const.c (pass_ipa_pure_const): Update.
20785         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
20786         Update.
20787         * ipa-inline.c (pass_ipa_inline): Update.
20788         * ipa.c (pass_ipa_whole_program): Update.
20789         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
20790         * passes.c (ipa_write_summaries_1): Do not test wpa.
20791         (ipa_write_optimization_summaries_1): New.
20792         (ipa_write_optimization_summaries): New.
20793         (ipa_read_summaries): Do not test ltrans.
20794         (ipa_read_optimization_summaries_1): New.
20795         (ipa_read_optimization_summaries): New.
20796
20797 2010-04-21  Jan Hubicka  <jh@suse.cz>
20798
20799         * lto-cgraph.c (lto_output_node): Do not output comdat groups
20800         for boundary nodes.
20801         (output_cgraph): Do not arrange comdat groups for boundary nodes.
20802
20803 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
20804
20805         PR debug/40040
20806         * dwarf2out.c (add_name_and_src_coords_attributes): Add
20807         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
20808
20809 2010-04-21  Jan Hubicka  <jh@suse.cz>
20810
20811         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
20812
20813 2010-04-21  Jan Hubicka  <jh@suse.cz>
20814
20815         * varpool.c (decide_is_variable_needed): Variable is always needed
20816         during ltrans.
20817
20818 2010-04-21  Jan Hubicka  <jh@suse.cz>
20819
20820         * opts.c (decode_options): Enable pure-const pass for whopr.
20821
20822 2010-04-21  Jan Hubicka  <jh@suse.cz>
20823
20824         * cgraph.c (dump_cgraph_node): Dump also assembler name.
20825         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
20826         at WPA dumping.
20827         (cgraph_decide_inlining): Do not expect callee to be removed in all
20828         cases.
20829
20830 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
20831
20832         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
20833
20834 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
20835
20836         * config/i386/i386.md (x86_shrd): Add athlon_decode and
20837         amdfam10_decode attributes.
20838
20839 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
20840
20841         PR middle-end/43570
20842         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
20843         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
20844         (lower_copyprivate_clauses): Use private var in outer
20845         context instead of original var.  Make sure the types
20846         are correct for VLAs.
20847
20848 2010-04-21  Richard Guenther  <rguenther@suse.de>
20849
20850         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
20851         to non-pointer objects.
20852
20853 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
20854
20855         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
20856         last chain entry if it starts with the still current label.
20857         (add_location_or_const_value_attribute): Check that
20858         loc_list->first->next is NULL instead of comparing ->first with ->last.
20859         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
20860         to add_var_loc_to_decl.
20861
20862         * dwarf2out.c (output_call_frame_info): For dw_cie_version
20863         >= 4 add also address size and segment size fields into CIE header.
20864
20865         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
20866         long as address size is the same as sizeof (void *) and
20867         segment size is 0.
20868         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
20869         address size or segment size is unexpected, return DW_EH_PE_omit.
20870         (classify_object_over_fdes): If get_cie_encoding returned
20871         DW_EH_PE_omit, return -1.
20872         (init_object): If classify_object_over_fdes returned -1,
20873         pretend there were no FDEs at all.
20874
20875 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
20876
20877         * config/i386/i386.md (bswap<mode>2): Macroize expander from
20878         bswap{si,di}2 using SWI48 mode iterator.
20879         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
20880         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
20881         set modrm attribute of bswap insn to 0 and remove length attribute.
20882         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
20883         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
20884         set mode attribute to <MODE> and remove length attribute.
20885
20886 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
20887
20888         PR rtl-optimization/43520
20889         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
20890         zero available registers.
20891
20892 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20893
20894         * builtins.c (fold_builtin_cproj): Fold more cases.
20895
20896 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20897
20898         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
20899         (fold_builtin_1): Fold builtin cproj.
20900         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
20901         Use ATTR_CONST_NOTHROW_LIST.
20902
20903 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
20904
20905         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
20906         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
20907         ffsi2_no_cmove for !TARGET_CMOVE.
20908         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
20909         (ffssi2): Remove expander.
20910         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
20911         mode iterator.
20912         (ctz<mode>2): Ditto from ctz{si,di}2.
20913         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
20914         mode iterator.
20915         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
20916         mode iterator.
20917
20918 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
20919
20920         * dwarf2out.c (AT_linkage_name): Define.
20921         (clone_as_declaration): Handle DW_AT_linkage_name.
20922         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
20923         of DW_AT_MIPS_linkage_name.
20924         (move_linkage_attr): Likewise.
20925         (dwarf2out_finish): Likewise.
20926
20927 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
20928
20929         PR middle-end/41952
20930         * fold-const.c (fold_comparison): New folding rule.
20931
20932 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
20933
20934         * double-int.h (double_int_setbit): Declare.
20935         * double-int.c (double_int_setbit): New function.
20936         * rtl.h (immed_double_int_const): Declare.
20937         * emit-rtl.c (immed_double_int_const): New function.
20938         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
20939         and immed_double_int_const functions.
20940         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
20941         expand_copysign_bit): (Ditto.).
20942         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
20943         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
20944         * dojump.c (prefer_and_bit_test): (Ditto.).
20945         * expr.c (convert_modes, reduce_to_bit_field_precision,
20946         const_vector_from_tree): (Ditto.).
20947         * expmed.c (mask_rtx, lshift_value): (Ditto.).
20948
20949 2010-04-20  Jan Hubicka  <jh@suse.cz>
20950
20951         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
20952         (dump_cgraph_node): Dump new flags.
20953         * cgraph.h (struct cgraph_node): Add flags
20954         reachable_from_other_partition and in_other_partition.
20955         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
20956         other partition can not be removed.
20957         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
20958         the other partition must be output; silence sanity checking on
20959         leaking functions bodies from other paritition.
20960         * lto-cgraph.c (reachable_from_other_partition_p): New function.
20961         (lto_output_node): Output new flags; do not sanity check that inline
20962         clones are output; drop lto_forced_extern_inline_p code; do not mock
20963         visibility flags at partition boundaries.
20964         (add_node_to): New function.
20965         (output_cgraph): Use it to sort functions so masters appear before
20966         clones.
20967         (input_overwrite_node): Input new flags.
20968         * passes.c (ipa_write_summaries): Do not call
20969         lto_new_extern_inline_states.
20970         * lto-section-out.c (forced_extern_inline,
20971         lto_new_extern_inline_states lto_delete_extern_inline_states,
20972         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
20973         * lto-streamer.h (lto_new_extern_inline_states,
20974         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
20975         lto_forced_extern_inline_p): Kill.
20976
20977 2010-04-20  Richard Guenther  <rguenther@suse.de>
20978
20979         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
20980         from vars that can have pointers.
20981         (process_constraint): Dump useless constraints.
20982
20983 2010-04-20  Richard Guenther  <rguenther@suse.de>
20984
20985         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
20986         (dump_sa_points_to_info): Remove asserts.
20987         (init_base_vars): nothing_id isn't an escape point nor does it
20988         have pointers.
20989
20990 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
20991
20992         * tree.h (TYPE_REF_IS_RVALUE): Define.
20993         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
20994         should_move_die_to_comdat, prune_unused_types_walk): Handle
20995         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
20996         (modified_type_die, gen_reference_type_die): Emit
20997         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
20998         if TYPE_REF_IS_RVALUE and -gdwarf-4.
20999
21000 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21001
21002         PR target/43635
21003         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
21004         calls for -fpic -m31 if they have been sibcall optimized.
21005
21006 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
21007
21008         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
21009         ar.lc fixed and call-used.
21010
21011         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
21012
21013 2010-04-19  Jan Hubicka  <jh@suse.cz>
21014
21015         * opts.c (decode_options): Disable whpr incompatible passes.
21016         * lto/lto.c (lto_1_to_1_map): Skip clones.
21017         (read_cgraph_and_symbols): Do not mark everything as needed.
21018         (do_whole_program_analysis): Do map only after optimizing;
21019         set proper cgraph_state; use passmanager.
21020
21021 2010-04-19  DJ Delorie  <dj@redhat.com>
21022
21023         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
21024         POINTER_PLUS_EXPR and fix them.
21025
21026 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
21027
21028         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
21029         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
21030         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
21031         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
21032         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
21033         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
21034         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
21035         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
21036         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
21037         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
21038         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
21039
21040 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
21041
21042         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
21043         (check_cond_move_block): Likewise.
21044         (cond_move_process_if_block): Likewise.
21045         (noce_find_if_block): Improve formatting.
21046         (find_if_header): Pass 0 to memset and tweak conditions.
21047         (cond_exec_find_if_block): Fix long lines and tweak conditions.
21048
21049 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
21050
21051         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
21052         for -gdwarf-4.
21053
21054         PR middle-end/43337
21055         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
21056         with non-local decl doesn't need chain.
21057
21058 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
21059
21060         * ira-color.c (allocno_reload_assign): Avoid accumulating
21061         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
21062
21063 2010-04-19  Martin Jambor  <mjambor@suse.cz>
21064
21065         * gimple.h (create_tmp_reg): Declare.
21066         * gimplify.c (create_tmp_reg): New function.
21067         (gimplify_return_expr): Use create_tmp_reg.
21068         (gimplify_omp_atomic): Likewise.
21069         (gimple_regimplify_operands): Likewise.
21070         * tree-dfa.c (make_rename_temp): Likewise.
21071         * tree-predcom.c (predcom_tmp_var): Likewise.
21072         (reassociate_to_the_same_stmt): Likewise.
21073         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
21074         (get_replaced_param_substitute): Likewise.
21075         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
21076         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
21077         * tree-ssa-pre.c (get_representative_for): Likewise.
21078         (create_expression_by_pieces): Likewise.
21079         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
21080         (create_tailcall_accumulator): Likewise.
21081
21082 2010-04-19  Martin Jambor  <mjambor@suse.cz>
21083
21084         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
21085         new_stmt.
21086         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
21087
21088 2010-04-19  Richard Guenther  <rguenther@suse.de>
21089
21090         PR tree-optimization/43796
21091         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
21092         from SCEV in the lattice.
21093         (vrp_visit_phi_node): Dump change.
21094
21095 2010-04-19  Richard Guenther  <rguenther@suse.de>
21096
21097         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
21098         * configure: Re-generated.
21099
21100 2010-04-19  Richard Guenther  <rguenther@suse.de>
21101
21102         PR tree-optimization/43783
21103         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
21104         constant ARRAY_REF operands two and three if possible.
21105
21106 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
21107
21108         PR target/43766
21109         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
21110
21111 2010-04-19  Jie Zhang  <jie@codesourcery.com>
21112
21113         PR target/43662
21114         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
21115
21116 2010-04-19  Ira Rosen  <irar@il.ibm.com>
21117
21118         PR tree-optimization/37027
21119         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
21120         and macro to access it.
21121         (vectorizable_reduction): Add argument.
21122         (vect_get_slp_defs): Likewise.
21123         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
21124         statements for possible use in SLP.
21125         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
21126         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
21127         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
21128         add new argument.
21129         (vectorizable_reduction): Likewise.
21130         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
21131         vect_get_slp_defs.
21132         (vectorizable_type_demotion, vectorizable_type_promotion,
21133         vectorizable_store): Likewise.
21134         (vect_analyze_stmt): Update call to vectorizable_reduction.
21135         (vect_transform_stmt): Likewise.
21136         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
21137         (vect_build_slp_tree): Fix indentation. Check that there are no loads
21138         from different interleaving chains in same node.
21139         (vect_slp_rearrange_stmts): New function.
21140         (vect_supported_load_permutation_p): Allow load permutations for
21141         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
21142         inside SLP nodes if necessary.
21143         (vect_analyze_slp_instance): Handle reductions.
21144         (vect_analyze_slp): Try to build SLP instances originating from groups
21145         of reductions.
21146         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
21147         (vect_get_constant_vectors): Create initial vectors for reductions
21148         according to reduction code. Add new argument.
21149         (vect_get_slp_defs): Add new argument, pass it to
21150         vect_get_constant_vectors.
21151         (vect_schedule_slp_instance): Remove SLP tree root statements.
21152
21153 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
21154
21155         * tree.h (ENUM_IS_SCOPED): Define.
21156         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
21157         for ENUM_IS_SCOPED enums.
21158
21159 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
21160
21161         * fold-const.c (fold_comparison): Use ssizetype.
21162         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
21163         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
21164         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
21165         * tree-object-size.c (compute_object_sizes): Use size_type_node.
21166
21167         * tree.h (initialize_sizetypes): Remove parameter.
21168         (build_common_tree_nodes): Remove second parameter.
21169         * stor-layout.c (initialize_sizetypes): Remove parameter.
21170         Always create an unsigned type.
21171         (set_sizetype): Assert that the passed type is unsigned and simplify.
21172         * tree.c (build_common_tree_nodes): Remove second parameter.
21173         Adjust call to initialize_sizetypes.
21174         * c-decl.c (c_init_decl_processing): Remove second argument in call to
21175         build_common_tree_nodes.
21176
21177 2010-04-18  Matthias Klose  <doko@ubuntu.com>
21178
21179         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
21180
21181 2010-04-18  Ira Rosen  <irar@il.ibm.com>
21182
21183         PR tree-optimization/43771
21184         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
21185         load permutation doesn't have gaps.
21186
21187 2010-04-18  Jan Hubicka  <jh@suse.cz>
21188
21189         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
21190         (sse_prologue_save_insn expander): Use new pattern.
21191         (sse_prologue_save_insn1): New pattern and splitter.
21192         (sse_prologue_save_insn): Update to deal also with 64bit aligned
21193         blocks.
21194         * i386.c (setup_incoming_varargs_64): Do not compute jump
21195         destination here.
21196         (ix86_gimplify_va_arg): Update alignment needed.
21197         (ix86_local_alignment): Do not align all local arrays to 128bit.
21198
21199 2010-04-17  Jan Hubicka  <jh@suse.cz>
21200
21201         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
21202
21203 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
21204
21205         * arm.md (negdi2): Remove redundant code to force values into a
21206         register.
21207
21208 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
21209
21210         * arm/bpabi.S: Add EABI alignment attributes to objects.
21211         * arm/bpabi-v6m.S: Likewise.
21212         * arm/crti.asm: Likewise.
21213         * arm/crtn.asm: Likewise.
21214         * arm/lib1funcs.asm: Likewise.
21215         * arm/libunwind.S: Likewise.
21216
21217 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
21218
21219         * arm-protos.h (tune_params): New structure.
21220         * arm.c (current_tune): New variable.
21221         (arm_constant_limit): Delete.
21222         (struct processors): Add pointer to the tune parameters.
21223         (arm_slowmul_tune): New tuning option.
21224         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
21225         (all_cores): Adjust to pick up the tuning model.
21226         (arm_constant_limit): New function.
21227         (arm_override_options): Select the appropriate tuning model.  Delete
21228         initialization of arm_const_limit.
21229         (arm_split_constant): Use the new constant-limit model.
21230         (arm_rtx_costs): Pick up the current tuning model.
21231         * arm.md (is_strongarm, is_xscale): Delete.
21232         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
21233         for Xscale variant architectures.
21234         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
21235
21236 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21237
21238         * config/arm/arm.c (arm_gen_constant): Remove unused variable
21239         can_shift.
21240         (arm_rtx_costs_1): Remove unused variable extra_cost.
21241         (arm_unwind_emit_set): Use variable offset.
21242         (thumb1_output_casesi): Remove unused variable flags.
21243
21244 2010-04-16  Jeff Law  <law@redhat.com>
21245
21246         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
21247         needing assignment rather than doing a two-phase assignment.  Remove
21248         unused variable 'm'.
21249
21250 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
21251
21252         PR bootstrap/43767
21253         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
21254
21255 2010-04-16  Doug Kwan  <dougkwan@google.com>
21256
21257         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
21258         (next_operand_entry_id): New static variable.
21259         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
21260         (add_to_ops_vec): Assigned unique ID to operand entry.
21261         (struct oecount_s): New field ID.
21262         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
21263         (undistribute_ops_list): Assign unique IDs to oecounts.
21264         (init_reassoc): reset next_operand_entry_id.
21265
21266 2010-04-16  Doug Kwan  <dougkwan@google.com>
21267
21268         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
21269         missing left parenthesis.
21270
21271 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
21272
21273         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
21274         *btdi_rex64 using SWI48 mode iterator.
21275         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
21276         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
21277         *jcc_btdi_mask_rex64.
21278
21279 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
21280
21281         * double-int.h (tree_to_double_int): Convert to macro.
21282         * double-int.c (tree_to_double_int): Remove.
21283
21284 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
21285
21286         PR debug/43762
21287         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
21288         with want_address 2 and in case a single element list might be
21289         possible, call it again with want_address 0.
21290
21291 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
21292
21293         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
21294         case 'W' print operands for HI mode.
21295         * config/h8300/h8300.h (Y0, Y2) : New constraints.
21296         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
21297         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
21298         * config/h8300/predicate.md (bit_register_indirect_operand): New.
21299
21300         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
21301
21302         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
21303         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
21304         #xx:3 and #xx:4 mode.
21305
21306         * config/h8300/h8300.md (inverted load with HImode dest): Add
21307         support for H8300SX.
21308
21309         * config/h8300/predicate.md (bit_operand): Allow immediate values that
21310         satisfy 'U' constraint.
21311
21312 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21313
21314         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
21315         * configure: Regenerate.
21316         * config.in: Regenerate.
21317         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
21318         works.
21319
21320 2010-04-16  Richard Guenther  <rguenther@suse.de>
21321
21322         * tree.h (struct tree_decl_minimal): Move pt_uid ...
21323         (struct tree_decl_common): ... here.
21324         (DECL_PT_UID): Adjust.
21325         (SET_DECL_PT_UID): Likewise.
21326         (DECL_PT_UID_SET_P): Likewise.
21327
21328 2010-04-16  Richard Guenther  <rguenther@suse.de>
21329
21330         PR tree-optimization/43572
21331         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
21332         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
21333         * tree-flow.h (is_call_clobbered): Remove.
21334         * tree-flow-inline.h (is_call_clobbered): Likewise.
21335         * tree-dfa.c (dump_variable): Do not dump call clobber state.
21336         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
21337         (execute_return_slot_opt): Adjust.
21338         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
21339         check for call clobbered vars here.
21340         (find_tail_calls): Move tailcall verification to the
21341         proper place.
21342
21343 2010-04-16  Diego Novillo  <dnovillo@google.com>
21344
21345         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
21346
21347 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
21348
21349         PR target/40603
21350         * config/arm/arm.md (cbranchqi4): New pattern.
21351         * config/arm/predicates.md (const0_operand,
21352         cbranchqi4_comparison_operator): New predicates.
21353
21354 2010-04-16  Richard Guenther  <rguenther@suse.de>
21355
21356         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
21357         (dump_gimple_stmt): Likewise.
21358
21359 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
21360
21361         * recog.h (struct recog_data): New field is_operator.
21362         (struct insn_operand_data): New field is_operator.
21363         * recog.c (extract_insn): Set recog_data.is_operator.
21364         * genoutput.c (output_operand_data): Emit code to set the
21365         is_operator field.
21366         * reload.c (find_reloads): Use it rather than testing for an
21367         empty constraint string.
21368
21369         PR target/41514
21370         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
21371         If the previous insn is a cbranchsi4_insn with the same arguments,
21372         omit the compare instruction.
21373
21374         * config/arm/arm.md (addsi3_cbranch): If destination is a high
21375         register, inputs must be low registers and we need a low register
21376         scratch.  Handle alternative 2 like alternative 3.
21377
21378 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
21379
21380         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
21381         don't call get_addr on both.  If one expression is a VALUE and
21382         the other a REG, check VALUE's locs if the REG isn't among them.
21383
21384 2010-04-16  Christian Bruel  <christian.bruel@st.com>
21385
21386         * config/sh/sh.h (sh_frame_pointer_required): New function.
21387         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
21388         (flag_omit_frame_pointer) Set.
21389         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
21390         (rounded_frame_size): Adjust size with outgoing_args_size.
21391         (sh_set_return_address): Must return from stack pointer.
21392         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
21393         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
21394         (ACCUMULATE_OUTGOING_ARGS): Define.
21395         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
21396         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
21397
21398 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
21399
21400         PR target/43471
21401         * config/sh/sh.c (sh_legitimize_reload_address): Use
21402         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
21403         Remove a unneeded check for offset_base.
21404
21405 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
21406
21407         * configure: Regenerated.
21408
21409 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21410
21411         * config/s390/s390.c (s390_call_save_register_used): Switch back
21412         to HARD_REGNO_NREGS.
21413
21414 2010-04-15  Richard Guenther  <rguenther@suse.de>
21415
21416         * alias.c (alias_set_subset_of): Handle alias-set zero
21417         child properly.
21418
21419 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
21420             Julian Brown  <julian@codesourcery.com>
21421
21422         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
21423         alternatives according to use of high and low regs.
21424         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
21425         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
21426         optimizing for size on Thumb-2.
21427
21428 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
21429
21430         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
21431
21432 2010-04-15  Richard Guenther  <rguenther@suse.de>
21433
21434         * tree-ssa-structalias.c (struct variable_info): Add
21435         is_fn_info flag.
21436         (new_var_info): Initialize it.
21437         (dump_constraints): Support printing last added constraints.
21438         (debug_constraints): Adjust.
21439         (dump_constraint_graph): Likewise.
21440         (make_heapvar_for): Check for NULL cfun.
21441         (get_function_part_constraint): New function.
21442         (get_fi_for_callee): Likewise.
21443         (find_func_aliases): Properly implement IPA PTA constraints.
21444         (process_ipa_clobber): New function.
21445         (find_func_clobbers): Likewise.
21446         (insert_into_field_list_sorted): Remove.
21447         (create_function_info_for): Properly allocate vars for IPA mode.
21448         Do not use insert_into_field_list_sorted.
21449         (create_variable_info_for): Properly generate constraints for
21450         global vars in IPA mode.
21451         (dump_solution_for_var): Always dump the solution.
21452         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
21453         (find_what_var_points_to): Adjust.
21454         (pt_solution_set): Change.
21455         (pt_solution_ior_into): New function.
21456         (pt_solution_empty_p): Export.
21457         (pt_solution_includes_global): Adjust.
21458         (pt_solution_includes_1): Likewise.
21459         (pt_solutions_intersect_1): Likewise.
21460         (dump_sa_points_to_info): Check some invariants.
21461         (solve_constraints): Move constraint dumping ...
21462         (compute_points_to_sets): ... here.
21463         (ipa_pta_execute): ... and here.
21464         (compute_may_aliases): Do not re-compute points-to info
21465         locally if IPA info is available.
21466         (ipa_escaped_pt): New global var.
21467         (ipa_pta_execute): Properly implement IPA PTA.
21468         * tree-into-ssa.c (dump_decl_set): Support dumping
21469         decls not in referenced-vars.
21470         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
21471         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
21472         (dump_points_to_solution): Likewise.
21473         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
21474         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
21475         (remap_gimple_stmt): Reset call clobber/use information if necessary.
21476         (copy_decl_to_var): Copy DECL_PT_UID.
21477         (copy_result_decl_to_var): Likewise.
21478         * tree.c (make_node_stat): Initialize DECL_PT_UID.
21479         (copy_node_stat): Copy it.
21480         * tree.h (DECL_PT_UID): New macro.
21481         (SET_DECL_PT_UID): Likewise.
21482         (DECL_PT_UID_SET_P): Likewise.
21483         (struct tree_decl_minimal): Add pt_uid member.
21484         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
21485         (pt_solution_empty_p): Declare.
21486         (pt_solution_set): Adjust.
21487         (ipa_escaped_pt): Declare.
21488         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
21489         * gimple-pretty-print.c (pp_points_to_solution): New function.
21490         (dump_gimple_call): Dump call clobber/use information.
21491         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
21492         * tree-pass.h (TDF_ALIAS): New dump option.
21493         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
21494         * doc/invoke.texi (-fipa-pta): Update documentation.
21495
21496 2010-04-15  Richard Guenther  <rguenther@suse.de>
21497
21498         * Makefile.in (OBJS-common): Add gimple-fold.o.
21499         (gimple-fold.o): New rule.
21500         * tree.h (maybe_fold_offset_to_reference,
21501         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
21502         prototypes ...
21503         * gimple.h: ... here.
21504         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
21505         may_propagate_address_into_dereference): Move prototypes ...
21506         * gimple.h: ... here.
21507         * tree-ssa-ccp.c (get_symbol_constant_value,
21508         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
21509         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
21510         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
21511         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
21512         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
21513         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
21514         gimplify_and_update_call_from_tree): Move ...
21515         * gimple-fold.c: ... here.  New file.
21516         (ccp_fold_builtin): Rename to ...
21517         (gimple_fold_builtin): ... this.
21518         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
21519
21520 2010-04-15  Richard Guenther  <rguenther@suse.de>
21521
21522         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
21523         fit_double_type, force_fit_type_double, add_double_with_sign,
21524         neg_double, mul_double_with_sign, lshift_double, rshift_double,
21525         lrotate_double, rrotate_double, div_and_round_double): Move ...
21526         * double-int.c: ... here.
21527         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
21528         add_double, neg_double, mul_double_with_sign, mul_double,
21529         lshift_double, rshift_double, lrotate_double, rrotate_double,
21530         div_and_round_double): Move prototypes ...
21531         * double-int.h: ... here.
21532
21533 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
21534
21535         PR target/43742
21536         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
21537         matching constraints to ensure inputs match the output.
21538
21539 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
21540
21541         PR target/43742
21542         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
21543         in an input-only operand.
21544
21545 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
21546
21547         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
21548         (double_int_not, double_int_lshift, double_int_rshift): Declare.
21549         (double_int_negative_p): Convert to static inline function.
21550         * double-int.c (double_int_lshift, double_int_lshift): New functions.
21551         (double_int_negative_p): Remove.
21552         * tree.h (lshift_double, rshift_double):
21553         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
21554         * fold-const.c (fold_convert_const_int_from_real,
21555         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
21556         (lshift_double): Change type of arith argument to bool.
21557         (rshift_double): Change type of arith argument to bool. Correct
21558         comment.
21559         * expmed.c (mask_rtx, lshift_value): (Ditto.).
21560
21561 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
21562
21563         PR target/21803
21564         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
21565         at the start and end of the then/else blocks, and omit them from the
21566         conversion.
21567         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
21568         argument; all callers changed.  Pass zero to old_insns_match_p instead.
21569         (flow_find_head_matching_sequence): New function.
21570         (old_insns_match_p): Check REG_EH_REGION notes for calls.
21571         * basic-block.h (flow_find_cross_jump,
21572         flow_find_head_matching_sequence): Declare functions.
21573
21574 2010-04-14  Jason Merrill  <jason@redhat.com>
21575
21576         PR c++/36625
21577         * c-common.c (attribute_takes_identifier_p): New fn.
21578         * c-common.h: Declare it.
21579
21580 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21581
21582         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
21583         splitter condition.
21584         (*udivmod<mode>4): Ditto.
21585
21586 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21587
21588         * config/i386/i386.md (maxmin_int): Rename code attribute from
21589         maxminiprefix and update all users.
21590         (maxmin_float): Ditto from maxminfprefix.
21591         (logic): Ditto from logicprefix.
21592         (absneg_mnemonic): Ditto from absnegprefix.
21593         * config/i386/mmx.md: Update all users of maxminiprefix,
21594         maxminfprefix and logicprefix for rename.
21595         * config/i386/sse.md: Ditto.
21596         * config/i386/sync.md (sync_<code><mode>): Update for
21597         logicprefix rename.
21598
21599 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21600
21601         PR 42966
21602         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
21603         warnings converted to errors.
21604
21605 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21606
21607         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
21608         used insn_type variable.
21609         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
21610         to avoid set-but-not-used warning.
21611
21612 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21613
21614         * df-core.c (df_ref_debug): Change format string placeholder
21615         from 0x%x to %#x.
21616         * dwarf2asm.c (dw2_asm_output_data_raw,
21617         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
21618         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
21619         * dwarf2out.c (output_cfi, output_cfi_directive,
21620         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
21621         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
21622         Ditto.
21623         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
21624         * print-rtl.c (print_rtx): Ditto.
21625
21626 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
21627
21628         PR middle-end/42694
21629         * builtins.c (expand_builtin_pow_root): New function to expand pow
21630         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
21631         series of sqrt and cbrt calls under -ffast-math.
21632         (expand_builtin_pow): Call it.
21633
21634 2010-04-14  Michael Matz  <matz@suse.de>
21635
21636         PR tree-optimization/42963
21637         * tree-cfg.c (touched_switch_bbs): New static variable.
21638         (group_case_labels_stmt): New function broken out from ...
21639         (group_case_labels): ... here, use the above.
21640         (start_recording_case_labels): Allocate touched_switch_bbs.
21641         (end_recording_case_labels): Deallocate it, call
21642         group_case_labels_stmt.
21643         (gimple_redirect_edge_and_branch): Remember index of affected BB.
21644
21645 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21646
21647         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
21648         from insn template.
21649
21650 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21651
21652         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
21653
21654 2010-04-13  Jan Hubicka  <jh@suse.cz>
21655
21656         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
21657         of optimized out static functions.
21658         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
21659         cost computation.  Also sanity check for overflows.
21660         (update_caller_keys): Update cgraph_edge_badness call; properly
21661         update fibheap and sanity check that it is up to date.
21662         (add_new_edges_to_heap): Update cgraph_edge_badness.
21663         (cgraph_decide_inlining_of_small_function): Likewise;
21664         add sanity checking that badness in heap is up to date;
21665         improve dumping of reason; Update badness of calls to the
21666         offline copy of function currently inlined; dump badness
21667         of functions not inlined because of unit growth limits.
21668
21669 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
21670
21671         PR middle-end/32628
21672         * c-common.c (pointer_int_sum): Disregard overflow that occured only
21673         because of sign-extension change when converting to sizetype here...
21674         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
21675
21676         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
21677         the folding to constants.  Remove redundant final conversion.
21678         (fold_binary) <associate>: Do not associate if the re-association of
21679         constants alone overflows.
21680         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
21681         to the end of the list.
21682         (multiple_of_p) <COND_EXPR>: New case.
21683
21684 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21685
21686         * opt-functions.awk (opt_sanitized_name): New.
21687         (opt_enum): New.
21688         * optc-gen.awk: Use it
21689         * opth-gen.awk: Use it.
21690
21691 2010-04-13  Martin Jambor  <mjambor@suse.cz>
21692
21693         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
21694         (sra_modify_assign): Delete stmts loading dead data even if racc has no
21695         children.  Call replace_uses_with_default_def_ssa_name to handle
21696         SSA_NAES on lhs.
21697
21698 2010-04-13  Michael Matz  <matz@suse.de>
21699
21700         PR middle-end/43730
21701         * builtins.c (expand_builtin_interclass_mathfn): Also create
21702         a register if the predicate doesn't match.
21703
21704 2010-04-13  Diego Novillo  <dnovillo@google.com>
21705
21706         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
21707         * c-pch.c: Include timevar.h.
21708         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
21709         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
21710         * ggc-common.c: Include timevar.h.
21711         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
21712         * timevar.def (TV_PCH_SAVE): Define.
21713         (TV_PCH_CPP_SAVE): Define.
21714         (TV_PCH_PTR_REALLOC): Define.
21715         (TV_PCH_PTR_SORT): Define.
21716         (TV_PCH_RESTORE): Define.
21717         (TV_PCH_CPP_RESTORE): Define.
21718
21719 2010-04-13  Michael Matz  <matz@suse.de>
21720
21721         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
21722         into MINUS_EXPRs.
21723         (can_reassociate_p): New function.
21724         (break_up_subtract_bb, reassociate_bb): Use it.
21725
21726 2010-04-13  Richard Guenther  <rguenther@suse.de>
21727
21728         PR bootstrap/43737
21729         * builtins.c (c_readstr): Fix assert.
21730
21731 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
21732
21733         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
21734         when generating cltd insn.
21735
21736         (*ashl<mode>3_1): Remove special handling for register operand 2.
21737         (*ashlsi3_1_zext): Ditto.
21738         (*ashlhi3_1): Ditto.
21739         (*ashlhi3_1_lea): Ditto.
21740         (*ashlqi3_1): Ditto.
21741         (*ashlqi3_1_lea): Ditto.
21742         (*<shiftrt_insn><mode>3_1): Ditto.
21743         (*<shiftrt_insn>si3_1_zext): Ditto.
21744         (*<shiftrt_insn>qi3_1_slp): Ditto.
21745         (*<rotate_insn><mode>3_1): Ditto.
21746         (*<rotate_insn>si3_1_zext): Ditto.
21747         (*<rotate_insn>qi3_1_slp): Ditto.
21748
21749 2010-04-13  Richard Guenther  <rguenther@suse.de>
21750
21751         * tree-ssa-structalias.c (callused_id): Remove.
21752         (call_stmt_vars): New.
21753         (get_call_vi): Likewise.
21754         (lookup_call_use_vi): Likewise.
21755         (lookup_call_clobber_vi): Likewise.
21756         (get_call_use_vi): Likewise.
21757         (get_call_clobber_vi): Likewise.
21758         (make_transitive_closure_constraints): Likewise.
21759         (handle_const_call): Adjust to do per-call call-used handling.
21760         (handle_pure_call): Likewise.
21761         (find_what_var_points_to): Remove general callused handling.
21762         (init_base_vars): Likewise.
21763         (init_alias_vars): Initialize call_stmt_vars.
21764         (compute_points_to_sets): Process call-used and call-clobbered
21765         vars for call statements.
21766         (delete_points_to_sets): Free call_stmt_vars.
21767
21768 2010-04-13  Richard Guenther  <rguenther@suse.de>
21769
21770         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
21771         Only add RW dependence for dependence distance zero.
21772         Adjust maximal vectorization factor according to dependences.
21773         Move alignment handling ...
21774         (vect_find_same_alignment_drs): ... here.  New function.
21775         (vect_analyze_data_ref_dependences): Adjust.
21776         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
21777         (vect_analyze_data_refs): Adjust minimal vectorization factor
21778         according to data references.
21779         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
21780         dependences before determining the vectorization factor.
21781         Analyze alignment after determining the vectorization factor.
21782         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
21783         dependences before alignment.
21784         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
21785         Adjust prototype.
21786         (vect_analyze_data_refs): Likewise.
21787         (MAX_VECTORIZATION_FACTOR): New define.
21788
21789 2010-04-13  Duncan Sands  <baldrick@free.fr>
21790
21791         * except.h (lang_eh_type_covers): Remove.
21792         * except.c (lang_eh_type_covers): Likewise.
21793
21794 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21795             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21796
21797         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
21798         * config/s390/s390.c: Replace UNTIS_PER_WORD with
21799         UNITS_PER_LONG where it is ABI relevant.
21800         (s390_return_addr_rtx): Likewise.
21801         (s390_back_chain_rtx): Likewise.
21802         (s390_frame_area): Likewise.
21803         (s390_frame_info): Likewise.
21804         (s390_initial_elimination_offset): Likewise.
21805         (save_gprs): Likewise.
21806         (s390_emit_prologue): Likewise.
21807         (s390_emit_epilogue): Likewise.
21808         (s390_function_arg_advance): Likewise.
21809         (s390_function_arg): Likewise.
21810         (s390_va_start): Likewise.
21811         (s390_gimplify_va_arg): Likewise.
21812         (s390_function_profiler): Likewise.
21813         (s390_optimize_prologue): Likewise.
21814         (s390_rtx_costs): Likewise.
21815         (s390_secondary_reload): Likewise.
21816         (s390_promote_function_mode): Likewise.
21817         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
21818         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
21819         registers available.
21820         (s390_unwind_word_mode): New function.
21821         (s390_function_value): Split 64 bit values into register pair if
21822         used as return value.
21823         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
21824         function call parameters.  Handle parallels.
21825         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
21826         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
21827         (DWARF_CIE_DATA_ALIGNMENT): New macro.
21828         (s390_expand_setmem): Remove unused variable src_addr.
21829         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
21830         deal with 64 bit registers.
21831         * config/s390/s390.h: Define __zarch__ predefined macro.
21832         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
21833         (UNITS_PER_LONG): New macro.
21834         * libjava/include/s390-signal.h: Define extended ucontext
21835         structure containing the upper halfs of the 64 bit registers.
21836
21837 2010-04-13  Simon Baldwin  <simonb@google.com>
21838
21839         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
21840
21841 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
21842
21843         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
21844         rvalue on the RHS if the LHS is of a non-renamable type.
21845         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
21846
21847 2010-04-13  Matthias Klose  <doko@ubuntu.com>
21848
21849         * gcc.c (cc1_options): Handle -iplugindir before processing
21850         the cc1 spec. Only add -iplugindir once.
21851         (cpp_unique_options): Add -iplugindir option if -fplugin* options
21852         found.
21853         * common.opt (iplugindir): Remove `Separate' property, initialize.
21854         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
21855         option.
21856         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
21857         (distclean): Remove plugin dir.
21858         * doc/invoke.texi: Document -iplugindir.
21859
21860 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
21861
21862         * doc/plugins.texi (Loading Plugins): Document short
21863         -fplugin=foo option.
21864         (Plugin API): Mention default_plugin_dir_name function.
21865
21866         * gcc.c (find_file_spec_function): Add new declaration.
21867         (static_spec_func): Use it for "find-file".
21868         (find_file_spec_function): Add new function.
21869         (cc1_options): Add -iplugindir option if -fplugin* options found.
21870
21871         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
21872
21873         * plugin.c (add_new_plugin): Updated comment, and handle short
21874         plugin name.
21875         (default_plugin_dir_name): Added new function.
21876
21877         * common.opt (iplugindir): New option to set the plugin directory.
21878
21879 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
21880
21881         * config/i386/i386.md (any_rotate): New code iterator.
21882         (rotate_insn): New code attribute.
21883         (rotate): Ditto.
21884         (SWIM124): New mode iterator.
21885         (<rotate_insn>ti3): New expander.
21886         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
21887         any_rotate code iterator.
21888         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
21889         using any_rotate code iterator and SWIM124 mode iterator.
21890         (ix86_rotlti3): New insn_and_split pattern.
21891         (ix86_rotrti3): Ditto.
21892         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
21893         ix86_rotl{di,ti}3 patterns.
21894         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
21895         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
21896         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
21897         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
21898         code iterator and SWI mode iterator.
21899         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
21900         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
21901         code iterator.
21902         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
21903         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
21904         (bswap rotatert splitter): Add splitter.
21905         (bswap splitter): Macroize splitter using any_rotate code iterator.
21906         Add insn predicate to split only for TARGET_USE_XCHGB or when
21907         optimizing function for size.
21908
21909 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
21910
21911         * config/pa/pa.c (emit_move_sequence): Remove use of
21912         deleted variable flag_argument_noalias.
21913
21914 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21915
21916         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
21917         configurations.
21918         Add to unsupported targets list.
21919         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
21920         sparc*-sun-solaris2.[567]* from target lists.
21921         * configure: Regenerate.
21922         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
21923         removal.
21924         Remove Solaris 7 patch references.
21925         (Specific, sparc-sun-solaris2.7): Removed.
21926         (sparc-sun-solaris2*): Update Solaris 7 example.
21927         (sparc64-*-solaris2*): Likewise.
21928
21929 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21930
21931         * config.build (alpha*-dec-osf4*): Remove.
21932         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
21933         of obsolete configurations.
21934         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
21935         support.
21936         * config/alpha/t-osf4: Renamed to ...
21937         * config/alpha/t-osf5: ... this.
21938         * config/alpha/osf.h: Renamed to ...
21939         * config/alpha/osf5.h: ... this.
21940         Merged old osf5.h contents.
21941         Update comments.
21942         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
21943         (EXTRA_SPECS): Removed.
21944         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
21945         reflect removal of Tru64 UNIX V4.0/V5.0 support.
21946         Document that.
21947
21948 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21949
21950         * doc/contrib.texi (Contributors, Rainer Orth): Update.
21951
21952 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
21953
21954         PR/43702
21955         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
21956         __thiscall convention.
21957
21958 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
21959
21960         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
21961         orig_base.
21962         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
21963
21964 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
21965
21966         * function.c (assign_parms_initialize_all): Add unused attribute
21967         to fntype.
21968
21969 2010-04-12  Richard Guenther  <rguenther@suse.de>
21970
21971         * gsstruct.def (GSS_CALL): New.
21972         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
21973         * gimple.h: Include tree-ssa-alias.h.
21974         (struct gimple_statement_call): New.
21975         (union gimple_statement_struct_d): Add gimple_call member.
21976         (gimple_call_reset_alias_info): Declare.
21977         (gimple_call_use_set): New function.
21978         (gimple_call_clobber_set): Likewise.
21979         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
21980         * gimple.c (gimple_call_reset_alias_info): New function.
21981         (gimple_build_call_1): Call it.
21982         * lto-streamer-in.c (input_gimple_stmt): Likewise.
21983         * tree-inline.c (remap_gimple_stmt): Likewise.
21984         (expand_call_inline): Remove callused handling.
21985         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
21986         * tree-dfa.c (dump_variable): Likewise.
21987         * tree-parloops.c (parallelize_loops): Likewise.
21988         * tree-ssa.c (init_tree_ssa): Likewise.
21989         (delete_tree_ssa): Likewise.
21990         * tree-flow-inline.h (is_call_used): Remove.
21991         * tree-flow.h (struct gimple_df): Remove callused member.
21992         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
21993         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
21994         (ref_maybe_used_by_call_p_1): Simplify.
21995         (call_may_clobber_ref_p_1): Likewise.
21996         * tree-ssa-structalias.c (compute_points_to_sets): Set
21997         the call stmt used and clobbered sets.
21998         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
21999         (find_tail_calls): Verify the tail call.
22000
22001 2010-04-12  Richard Guenther  <rguenther@suse.de>
22002
22003         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
22004         single-iteration always-inline inlining.
22005         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
22006         (cgraph_decide_inlining): Do not handle always-inline specially.
22007         (try_inline): Remove always-inline cycle detection special case.
22008         Do not recurse on always-inlines.
22009         (cgraph_early_inlining): Do not iterate if not optimizing.
22010         (cgraph_gate_early_inlining): remove.
22011         (pass_early_inline): Run unconditionally.
22012         (gate_cgraph_decide_inlining): New function.
22013         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
22014         not inlining or optimizing.
22015         (cgraph_decide_inlining_of_small_functions): Also consider
22016         always-inline functions.
22017         (cgraph_default_inline_p): Return true for nodes which should
22018         disregard inline limits.
22019         (estimate_function_body_sizes): Assume zero size and time for
22020         nodes which are marked as disregarding inline limits.
22021         (cgraph_decide_recursive_inlining): Do not perform recursive
22022         inlining on always-inline nodes.
22023
22024 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
22025
22026         PR bootstrap/43699
22027         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
22028         for exprs satisfying handled_component_p.
22029
22030 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
22031
22032         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
22033         non-constant aggregate elements.
22034
22035         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
22036         is a real initialization.
22037
22038 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
22039
22040         PR c/36774
22041         * c-decl.c (start_function): Move forward check for nested function.
22042
22043 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
22044
22045         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
22046         * config/sh/sh.c: Include reload.h.
22047         (sh_legitimize_reload_address): New.
22048         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
22049         sh_legitimize_reload_address.
22050
22051 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
22052
22053         * config/sh/sh.md (*movqi_pop): New insn pattern.
22054         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
22055
22056 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
22057
22058         * config/i386/i386.md (any_shiftrt): New code iterator.
22059         (shiftrt_insn): New code attribute.
22060         (shiftrt): Ditto.
22061         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
22062         using any_shiftrt code iterator.
22063         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
22064         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
22065         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
22066         pattern from corresponding peephole2 patterns.
22067         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
22068         using any_shiftrt code iterator.
22069         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
22070         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
22071         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
22072         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
22073         *{ashr,lshr}<mode>3_cmp_zext.
22074         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
22075
22076 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
22077
22078         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
22079         scratch register.
22080         (*lshr<mode>3_cconly): Ditto.
22081
22082 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
22083
22084         * config/i386/i386.md (lshr<mode>3): Macroize expander from
22085         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
22086         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
22087         pattern from *lshr{di,ti}3_1 and corresponding splitters using
22088         DWI mode iterator.
22089         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
22090         from corresponding peephole2 patterns.
22091         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
22092         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
22093         and *lshrdi3_1_rex64 using SWI mode iterator.
22094         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
22095         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
22096         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
22097         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
22098         and *lshrdi3_cmp_rex64 using SWI mode iterator.
22099         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
22100         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
22101         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
22102         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
22103         SWI mode iterator.
22104
22105 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
22106
22107         * config/i386/i386.md (ashr<mode>3): Macroize expander from
22108         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
22109         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
22110         pattern from *ashr{di,ti}3_1 and corresponding splitters using
22111         DWI mode iterator.
22112         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
22113         from corresponding peephole2 patterns.
22114         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
22115         (ashrsi3_cvt): Rename from ashrsi3_31.
22116         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
22117         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
22118         and x86_64_shift_adj_3 using SWI48 mode iterator.
22119         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
22120         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
22121         and *ashrdi3_1_rex64 using SWI mode iterator.
22122         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
22123         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
22124         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
22125         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
22126         and *ashrdi3_cmp_rex64 using SWI mode iterator.
22127         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
22128         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
22129         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
22130         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
22131         SWI mode iterator.
22132         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
22133         * config/i386/i386.c (ix86_split_ashr): Update for renamed
22134         x86_shift<mode>_adj_3 expanders.
22135
22136 2010-04-10  Wei Guozhi  <carrot@google.com>
22137
22138         PR target/42601
22139         * config/arm/arm.c (arm_pic_static_addr): New function.
22140         (legitimize_pic_address): Call arm_pic_static_addr when it detects
22141         a static symbol.
22142         (arm_output_addr_const_extra): Output expression for new pattern.
22143         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
22144
22145 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
22146
22147         * ira-costs.c (record_reg_classes): Ignore alternatives that are
22148         not enabled.
22149
22150         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
22151         * web.c: Include "insn-config.h" and "recog.h".
22152         (union_match_dups): New function.
22153         (web_main): Call it.
22154         (union_defs): Don't try to recognize match_dups.
22155
22156         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
22157         if doing so would replace the entire pattern.
22158
22159 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
22160
22161         PR target/43707
22162         PR target/43709
22163         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
22164         and splitter pattern.  Change splitter operand 1 predicate to
22165         nonmemory_operand.
22166
22167 2010-04-09  Martin Jambor  <mjambor@suse.cz>
22168
22169         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
22170         lattices are addresses of CONST_DECLs with the same initial value.
22171         (ipcp_print_all_lattices): Print values of CONST_DECLs.
22172         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
22173
22174 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
22175             Bernd Schmidt  <bernds@codesourcery.com>
22176
22177         * loop-invariant.c (replace_uses): New static function.
22178         (move_invariant_reg): Use it to ensure we can replace the uses.
22179
22180 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
22181
22182         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
22183         function template.
22184         (picochip_override_options): Enable section anchors only above -O1.
22185         (picochip_reorg): Fixed a couple of build warnings.
22186
22187 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22188
22189         * configure.ac (plugin -rdynamic test): Log result.
22190         * configure: Regenerate.
22191         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
22192         (RDYNAMIC_SPEC): Define.
22193         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
22194
22195 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22196
22197         * configure.ac: Determine Sun ld version numbers.
22198         (comdat_group): Restrict GNU ld version checks to gld.
22199         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
22200         (enable_comdat): Support --enable-comdat.
22201         * configure: Regenerate.
22202         * doc/install.texi (Configuration): Document --enable-comdat.
22203
22204 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22205
22206         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
22207         * config/sol2-gld.h: ... here.
22208         * config.gcc (sparc*-*-solaris2*): Reflect this.
22209         (i[34567]86-*-solaris2*): Use it.
22210
22211 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
22212
22213         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
22214         setup_clocks_p.
22215         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
22216
22217 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22218
22219         PR 42965
22220         * diagnostic.c (diagnostic_initialize): Initialize
22221         some_warnings_are_errors.
22222         (diagnostic_finish): New.
22223         (diagnostic_action_after_output): Call it before exiting.
22224         (diagnostic_report_diagnostic): Do not print message here. Set
22225         some_warnings_are_errors.
22226         * diagnostic.h (diagnostic_context): Delete
22227         issue_warnings_are_errors_message. Add some_warnings_are_errors.
22228         (diagnostic_finish): Declare.
22229         * toplev.c (toplev_main): Call it before exit.
22230
22231 2010-04-09  Jason Merrill  <jason@redhat.com>
22232
22233         PR c++/42623
22234         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
22235         for incomplete type.
22236
22237         PR c++/41788
22238         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
22239         based on a warning flag.
22240
22241 2010-04-09  Richard Guenther  <rguenther@suse.de>
22242
22243         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
22244
22245 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
22246
22247         PR bootstrap/43684
22248         * varasm.c (default_assemble_visibility): Wrap vars that are
22249         set, but unused, by targets without GAS.
22250         * config/rs6000/rs6000.c (paired_emit_vector_compare):
22251         Remove set, but unused, vars.
22252         (rs6000_legitimize_tls_address): Likewise.
22253         (altivec_expand_dst_builtin): Likewise.
22254         * config/darwin.c (machopic_classify_symbol): Likewise.
22255         (machopic_indirection_name): Likewise.
22256
22257 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
22258
22259         * config/i386/i386.md (DWI): New mode iterator.
22260         (S): New mode attribute.
22261         (shift_operand): Ditto.
22262         (shift_immediate_operand): Ditto.
22263         (ashl_input_operand): Ditto.
22264         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
22265         using SDWIM mode iterator.
22266         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
22267         pattern from *ashl{di,ti}3_1 and corresponding splitters using
22268         DWI mode iterator.
22269         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
22270         from corresponding peephole2 patterns.
22271         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
22272         and x86_64_shift_adj_1 using SWI48 mode iterator.
22273         (x86_shift<mode>_adj_2): Ditto.
22274         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
22275         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
22276         using SWI48 mode iterator.
22277         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
22278         *ashldi3_cmp_rex64 using SWI mode iterator.
22279         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
22280         *ashldi3_cconly_rex64 using SWI mode iterator.
22281         * config/i386/i386.c (ix86_split_ashl): Update for renamed
22282         x86_shift<mode>_adj_{1,2}.
22283         (ix86_split_ashr): Ditto.
22284         (ix86_split_lshr): Ditto.
22285
22286 2010-04-09  Richard Guenther  <rguenther@suse.de>
22287
22288         * target.h (builtin_conversion): Pass in input and output types.
22289         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
22290         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
22291         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
22292         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
22293
22294         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
22295         Handle AVX modes.
22296         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
22297
22298 2010-04-09  Richard Guenther  <rguenther@suse.de>
22299
22300         PR target/43152
22301         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
22302
22303 2010-04-09  Richard Guenther  <rguenther@suse.de>
22304
22305         * tree-vectorizer.h (struct _stmt_vec_info): Document
22306         that vectype is the type of the LHS.
22307         (supportable_widening_operation, supportable_narrowing_operation):
22308         Get both input and output vector types as arguments.
22309         (vect_is_simple_use_1): Declare.
22310         (get_same_sized_vectype): Likewise.
22311         * tree-vect-loop.c (vect_determine_vectorization_factor):
22312         Set STMT_VINFO_VECTYPE to the vector type of the def.
22313         (vectorizable_reduction): Adjust.
22314         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
22315         Adjust.  Specify the output vector type.
22316         (vect_pattern_recog_1): Adjust.
22317         * tree-vect-stmts.c (get_same_sized_vectype): New function.
22318         (vectorizable_call): Adjust.
22319         (vectorizable_conversion): Likewise.
22320         (vectorizable_operation): Likewise.
22321         (vectorizable_type_demotion): Likewise.
22322         (vectorizable_type_promotion): Likewise.
22323         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
22324         the def.
22325         (vect_is_simple_use_1): New function.
22326         (supportable_widening_operation): Get both input and output
22327         vector types.
22328         (supportable_narrowing_operation): Likewise.
22329         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
22330
22331 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
22332
22333         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
22334         __thiscall and _thiscall as predefined macros.
22335         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
22336         thiscall attribute handling.
22337         (ix86_comp_type_attributes): Likewise.
22338         (ix86_function_regparm): Likewise.
22339         (ix86_return_pops_args): Likewise.
22340         (init_cumulative_args): Likewise.
22341         (find_drap_reg): Likewise.
22342         (ix86_static_chain): Likewise.
22343         (x86_this_parameter): Likewise.
22344         (x86_output_mi_thunk): Likewise.
22345         (ix86_attribute_table): Add description for thiscall attribute.
22346         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
22347         * doc/extend.texi: Add documentation for thiscall.
22348
22349 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22350
22351         PR c++/28584
22352         * c.opt (Wint-to-pointer-cast): Available in C++.
22353         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
22354
22355 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
22356
22357         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
22358         * calls.c (expand_call): Pass the function type to aggregate_value_p.
22359         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
22360         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
22361         function type instead.  Reorder and simplify checks.
22362
22363         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
22364
22365 2010-04-08  Jing Yu  <jingyu@google.com>
22366             Zdenek Dvorak  <ook@ucw.cz>
22367
22368         PR tree-optimization/42720
22369         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
22370         loop unswitch conditions here from ...
22371         (tree_unswitch_single_loop): ... here.
22372
22373 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
22374
22375         * tree-if-conv.c: Fix comments and simplify logic.
22376
22377 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
22378
22379         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
22380         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
22381         (main_tree_if_conversion): Update call to tree_if_conversion.
22382
22383 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22384
22385         PR 42485
22386         * doc/invoke.texi (-b,-V): Delete.
22387         * doc/tm.texi: Do not mention -b.
22388         * gcc.c (display_help): Delete -b and -V.
22389         (process_command): Delete -b and -V.
22390         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
22391
22392 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
22393             Wolfgang Gellerich  <gellerich@de.ibm.com>
22394
22395         Implement target hook for loop unrolling
22396         * target.h (loop_unroll_adjust): Add a new target hook function.
22397         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
22398         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
22399         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
22400         (s390_loop_unroll_adjust): Implement the new target hook for s390.
22401         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
22402         target hook.
22403         (decide_unroll_stupid): Likewise.
22404
22405 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22406
22407         PR target/43643
22408         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
22409
22410 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22411
22412         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
22413         (Specific, *-*-solaris2*): Likewise.
22414         Don't prefer Sun as over GNU as.
22415
22416 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
22417
22418         * config/s390/s390.c (override_options): Adjust the z10 defaults
22419         for max-unroll-times, max-completely-peeled-insns
22420         and max-completely-peel-times.
22421
22422 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22423
22424         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
22425         instructions for z10.
22426         (s390_expand_setmem): Likewise.
22427         (s390_expand_cmpmem): Likewise.
22428
22429 2010-04-08  Richard Guenther  <rguenther@suse.de>
22430
22431         PR tree-optimization/43679
22432         * tree-ssa-pre.c (eliminate): Only propagate copies.
22433
22434 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
22435
22436         PR bootstrap/43681
22437         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
22438         set but not used variable warning.
22439
22440 2010-04-08  Wei Guozhi  <carrot@google.com>
22441
22442         PR target/41653
22443         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
22444         (arm_size_rtx_costs): Call the new function when optimized for size.
22445
22446 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
22447
22448         PR debug/43670
22449         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
22450         op0 is not a MEM, just return NULL instead of assertion
22451         failure.
22452         (discover_nonconstant_array_refs): Don't walk debug stmts.
22453
22454 2010-04-08  Doug Kwan  <dougkwan@google.com>
22455
22456         * configure.ac: Recognize gold and do not use its version number
22457         to test ld features.
22458         * configure: Regenerate.
22459
22460 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
22461
22462         PR middle-end/40815
22463         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
22464         (negate_value): Move code to push elements to broken_up_substracts ...
22465         (eliminate_plus_minus_pair): ... here.  Push operands that have no
22466         negative pair to plus_negates.
22467         (repropagate_negates, init_reassoc, fini_reassoc): Update.
22468
22469 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22470
22471         * doc/install.texi (Configuration): Move description of
22472         --enable-lto, --with-libelf*, --enable-gold from Java section to
22473         general section.
22474
22475         * doc/generic.texi (Working with declarations)
22476         (Function Properties, C and C++ Trees): Fix typos.
22477         * doc/sourcebuild.texi (Top Level): Likewise.
22478
22479 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
22480
22481         PR c/18624
22482         * tree.h (DECL_READ_P): Define.
22483         (struct tree_decl_common): Add decl_read_flag.
22484         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
22485         a set but not used warning.
22486         (merge_decls): Merge DECL_READ_P flag.
22487         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
22488         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
22489         * c-common.c (handle_used_attribute, handle_unused_attribute):
22490         Likewise.
22491         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
22492         New prototypes.
22493         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
22494         New functions.
22495         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
22496         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
22497         c_parser_binary_expression, c_parser_cast_expression,
22498         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
22499         Call default_function_array_read_conversion instead of
22500         default_function_array_conversion where needed.
22501         (c_parser_unary_expression, c_parser_conditional_expression,
22502         c_parser_postfix_expression_after_primary, c_parser_initelt):
22503         Likewise.  Call mark_exp_read where needed.
22504         (c_parser_statement_after_labels, c_parser_asm_operands,
22505         c_parser_typeof_specifier, c_parser_sizeof_expression,
22506         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
22507         where needed.
22508         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
22509         New.
22510         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
22511         (warn_unused_but_set_parameter): Default to warn_unused
22512         && extra_warnings.
22513         * doc/invoke.texi: Document -Wunused-but-set-variable and
22514         -Wunused-but-set-parameter.
22515
22516         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
22517         used count variable.
22518         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
22519         when operandN variables aren't used in the body of the expander
22520         or splitter.
22521         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
22522         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
22523         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
22524         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
22525         FOR_EACH_IMM_USE_ON_STMT): Likewise.
22526         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
22527         * tree.c (PROCESS_ARG): Likewise.
22528
22529 2010-04-07  Simon Baldwin  <simonb@google.com>
22530
22531         * diagnostic.h (diagnostic_override_option_index): New macro to
22532         set a diagnostic's option_index.
22533         * c-tree.h (c_cpp_error): Add warning reason argument.
22534         * opts.c (_warning_as_error_callback): New.
22535         (register_warning_as_error_callback): Store callback for
22536         warnings enabled via enable_warning_as_error.
22537         (enable_warning_as_error): Call callback, minor code tidy.
22538         * opts.h (register_warning_as_error_callback): Declare.
22539         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
22540         response to -Werror=.
22541         (c_common_init_options): Register warning_as_error_callback in opts.c.
22542         * common.opt: Add -Wno-cpp option.
22543         * c-common.c (struct reason_option_codes_t): Map cpp warning
22544         reason codes to gcc option indexes.
22545         * (c_option_controlling_cpp_error): New function, lookup the gcc
22546         option index for a cpp warning reason code.
22547         * (c_cpp_error): Add warning reason argument, call
22548         c_option_controlling_cpp_error for diagnostic_override_option_index.
22549         * doc/invoke.texi: Document -Wno-cpp.
22550
22551 2010-04-07  Richard Guenther  <rguenther@suse.de>
22552
22553         * ipa-reference.c (mark_load): Use get_base_address.
22554         (mark_store): Likewise.
22555
22556         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
22557         inserting GIMPLE_NOPs into the IL.
22558         * tree-ssa-structalias.c (get_constraint_for_component_ref):
22559         Explicitly strip handled components and indirect references.
22560
22561         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
22562         folding address expressions.
22563         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
22564         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
22565         operand_equal_p to compare decls.
22566         (ptr_deref_may_alias_decl_p): Likewise.
22567         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
22568         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
22569         Handle reversed comparison ops.
22570         * tree-sra.c (asm_visit_addr): Use get_base_address.
22571         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
22572         * ipa-reference.c (mark_address): Use get_base_address.
22573
22574 2010-04-07  Richard Guenther  <rguenther@suse.de>
22575
22576         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
22577         Propagate constants everywhere.
22578
22579 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
22580
22581         PR debug/43516
22582         * tree.c (MAX_INT_CACHED_PREC): Define.
22583         (nonstandard_integer_type_cache): New array.
22584         (build_nonstandard_integer_type): Cache results for precision
22585         <= MAX_INT_CACHED_PREC.
22586
22587 2010-04-07  Richard Guenther  <rguenther@suse.de>
22588
22589         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
22590         -fargument-noalias-global, -fargument-noalias-anything): Remove.
22591         * common.opt: Likewise.
22592         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
22593         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
22594         (nonoverlapping_memrefs_p): Likewise.
22595         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
22596         * opts.c (common_handle_option): Handle OPT_fargument_alias,
22597         OPT_fargument_noalias, OPT_fargument_noalias_anything and
22598         OPT_fargument_noalias_global for backward compatibility.
22599
22600 2010-04-07  Richard Guenther  <rguenther@suse.de>
22601
22602         PR tree-optimization/43270
22603         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
22604         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
22605         * tree-ssa-pre.c (phi_translate_1): Adjust.
22606         (fully_constant_expression): Split out vn_reference handling to ...
22607         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
22608         Fold reads from constant strings.
22609         (vn_reference_lookup): Handle fully constant references.
22610         (vn_reference_lookup_pieces): Likewise.
22611         * Makefile.in (expmed.o-warn): Add -Wno-error.
22612
22613 2010-04-07  Martin Jambor  <mjambor@suse.cz>
22614
22615         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
22616
22617 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
22618
22619         PR driver/41594
22620         * gcc.c: Add -static-libstdc++ to list of recognized options.
22621
22622 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22623
22624         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
22625
22626 2010-04-07  Richard Guenther  <rguenther@suse.de>
22627
22628         PR middle-end/42617
22629         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
22630         bases build simple mem attributes to retain points-to information.
22631
22632 2010-04-07  Richard Guenther  <rguenther@suse.de>
22633
22634         PR middle-end/42617
22635         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
22636         preserve points-to related information.
22637
22638 2010-04-07  Richard Guenther  <rguenther@suse.de>
22639
22640         PR middle-end/42617
22641         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
22642         discard plain indirect references.
22643         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
22644         * tree.c (tree_nop_conversion): Likewise.
22645
22646 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
22647
22648         PR debug/43628
22649         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
22650
22651 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
22652
22653         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
22654         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
22655
22656 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
22657
22658         * tree-if-conv.c: Fix indentation and comments.
22659
22660 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
22661
22662         * tree-if-conv.c: Sort static functions in topological order.
22663
22664 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
22665
22666         * tree-if-conv.c: Fix indentation and comments.
22667
22668 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22669
22670         PR middle-end/43519
22671         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
22672         lang_hooks.types.type_for_size instead of
22673         build_nonstandard_integer_type.
22674         When converting an unsigned type to signed, double its precision.
22675         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
22676         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
22677         (graphite_create_new_loop_guard): When ub + 1 wraps around,
22678         use lb <= ub.
22679
22680 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22681
22682         PR middle-end/43519
22683         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
22684         POINTER_PLUS_EXPR for pointer types.
22685
22686 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22687
22688         PR middle-end/43519
22689         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
22690         * graphite-clast-to-gimple.c: Include langhooks.h.
22691         (max_signed_precision_type): New.
22692         (max_precision_type): Takes two types as arguments.
22693         (precision_for_value): New.
22694         (precision_for_interval): New.
22695         (gcc_type_for_interval): New.
22696         (gcc_type_for_value): New.
22697         (gcc_type_for_clast_term): New.
22698         (gcc_type_for_clast_red): New.
22699         (gcc_type_for_clast_bin): New.
22700         (gcc_type_for_clast_expr): Split up into several functions.
22701         (gcc_type_for_clast_eq): Rewritten.
22702         (compute_bounds_for_level): New.
22703         (compute_type_for_level_1): New.
22704         (compute_type_for_level): New.
22705         (gcc_type_for_cloog_iv): Removed.
22706         (gcc_type_for_iv_of_clast_loop): Rewritten.
22707         (graphite_create_new_loop): Compute the lower and upper bound types
22708         with gcc_type_for_clast_expr.
22709         (graphite_create_new_loop_guard): Same.
22710         (find_cloog_iv_in_expr): Removed.
22711         (compute_cloog_iv_types_1): Removed.
22712         (compute_cloog_iv_types): Removed.
22713         (gloog): Do not call compute_cloog_iv_types.
22714         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
22715         GBB_CLOOG_IV_TYPES.
22716         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
22717         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
22718         (GBB_CLOOG_IV_TYPES): Removed.
22719
22720 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22721
22722         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
22723         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
22724         (detect_commutative_reduction): Same.
22725
22726 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22727
22728         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
22729         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
22730         argument.
22731         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
22732         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
22733         (rewrite_commutative_reductions_out_of_ssa): Same.
22734         * passes.c (execute_function_todo): Call verify_ssa for every pass
22735         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
22736         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
22737         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
22738         with an extra argument.
22739         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
22740         verify_ssa only when the extra argument is true.
22741         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
22742         with an extra argument.
22743         (tree_transform_and_unroll_loop): Same.
22744
22745 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22746
22747         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
22748         for all the passes of the LNO having LOOP_CLOSED_SSA.
22749         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
22750         * tree-loop-distribution.c (pass_loop_distribution): Same.
22751         * tree-pass.h (TODO_verify_loops): Removed.
22752         * tree-ssa-loop.c (pass_tree_loop_init): Same.
22753         (pass_lim): Same.
22754         (pass_tree_unswitch): Same.
22755         (pass_predcom): Same.
22756         (pass_vectorize): Same.
22757         (pass_linear_transform): Same.
22758         (pass_graphite_transforms): Same.
22759         (pass_iv_canon): Same.
22760         (pass_complete_unroll): Same.
22761         (pass_complete_unrolli): Same.
22762         (pass_parallelize_loops): Same.
22763         (pass_loop_prefetch): Same.
22764         (pass_iv_optimize): Same.
22765
22766 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
22767
22768         PR middle-end/32824
22769         * passes.c (init_optimization_passes): Move pass_lim before
22770         pass_copy_prop and pass_dce_loop.
22771
22772 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
22773
22774         PR target/43667
22775         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
22776         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
22777         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
22778         MULTI_* defines for 4 argument vpermil2p* builtins.
22779
22780 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
22781
22782         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
22783         * config/i386/i386.c (x86_maybe_negate_const_int): New.
22784         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
22785         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
22786         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
22787         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
22788         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
22789         Use x86_maybe_negate_const_int to output insn mnemonic.
22790         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
22791         check from instruction predicate.  Update comments.
22792         * config/i386/sync.md (sync_add<mode>): Use
22793         x86_maybe_negate_const_int to output insn mnemonic.
22794
22795 2010-04-06  Jan Hubicka  <jh@suse.cz>
22796
22797         PR tree-optimization/42906
22798         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
22799         IGNORE_SELF argument.  Set visited_control_parents for fully
22800         processed BBs.
22801         (find_obviously_necessary_stmts): Update call of
22802         mark_control_dependent_edges_necessary.
22803         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
22804
22805 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
22806
22807         * config/i386/i386.md: Remove comment about 'e' and 'E'
22808         operand modifier.
22809
22810 2010-04-06  Richard Guenther  <rguenther@suse.de>
22811
22812         PR tree-optimization/43627
22813         * tree-vrp.c (extract_range_from_unary_expr): Widenings
22814         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
22815         not varying.
22816
22817 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
22818
22819         * BASE-VER: Change to 4.6.0.
22820
22821         PR target/43638
22822         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
22823         handling.
22824
22825 2010-04-06  Richard Guenther  <rguenther@suse.de>
22826
22827         PR middle-end/43661
22828         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
22829
22830 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22831
22832         * doc/invoke.texi (Optimize Options): Document that LTO
22833         won't remove object access purely due to incompatible
22834         declarations.
22835
22836 2010-04-04  Matthias Klose  <doko@ubuntu.com>
22837
22838         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
22839         Initialize variable.
22840
22841 2010-04-03  Richard Guenther  <rguenther@suse.de>
22842
22843         PR middle-end/42509
22844         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
22845         require a non-NULL MEM_OFFSET.
22846
22847 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
22848
22849         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
22850         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
22851         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
22852         config/alpha/predicates.md, config/arm/arm.md,
22853         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
22854         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
22855         config/darwin9.h, config/darwin.c, config/darwin.h,
22856         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
22857         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
22858         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
22859         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
22860         config/mips/mips.md, config/mn10300/mn10300.c,
22861         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
22862         config/rs6000/aix.h, config/rs6000/dfp.md,
22863         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
22864         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
22865         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
22866         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
22867         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
22868         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
22869         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
22870         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
22871         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
22872         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
22873         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
22874         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
22875         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
22876         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
22877         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
22878         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
22879         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
22880         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
22881         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
22882         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
22883         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
22884         opt-functions.awk, opth-gen.awk, params.def, passes.c,
22885         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
22886         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
22887         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
22888         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
22889         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
22890         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
22891         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
22892         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
22893         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
22894         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
22895         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
22896         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
22897         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
22898         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
22899
22900 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22901
22902         PR other/43620
22903         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
22904         * aclocal.m4: Regenerate.
22905
22906 2010-04-02  Richard Guenther  <rguenther@suse.de>
22907
22908         PR tree-optimization/43629
22909         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
22910         if we have seen a constant value.
22911
22912 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
22913
22914         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
22915
22916 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
22917
22918         PR target/43469
22919         * arm.c (legitimize_tls_address): Adjust call to
22920         gen_tls_load_dot_plus_four.
22921         (arm_note_pic_base): New function.
22922         (arm_cannot_copy_insn_p): Use it.
22923         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
22924         constraint.
22925
22926 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22927
22928         PR bootstrap/43531
22929
22930         Revert:
22931         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22932
22933         * Makefile.in ($(out_object_file)): Depend on
22934         gt-$(basename $(notdir $(out_file))).h.
22935
22936 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
22937
22938         * config.gcc (lm32-*-rtems*): Add t-lm32.
22939
22940 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
22941
22942         * config.gcc: Add lm32-*-rtems*.
22943         * config/lm32/rtems.h: New file.
22944
22945 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
22946
22947         PR target/42609
22948         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
22949
22950 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
22951
22952         * dwarf2out.c (output_compilation_unit_header): For
22953         -gdwarf-4 use version 4 instead of version 3.
22954         (output_line_info): For version 4 and above emit additional
22955         maximum ops per insn header field.
22956         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
22957
22958         * dwarf2out.c (is_c_family, is_java): Remove.
22959         (lower_bound_default): New function.
22960         (add_bound_info, gen_descr_array_type_die): Use it.
22961
22962 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
22963
22964         PR debug/43325
22965         * dwarf2out.c (gen_variable_die): Allow debug info for variable
22966         re-declaration when it happens in a function.
22967
22968 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
22969
22970         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
22971         (cgraph_remove_function_insertion_hook): Same.
22972         (cgraph_call_function_insertion_hooks): Same.
22973
22974 2010-04-01  Richard Guenther  <rguenther@suse.de>
22975
22976         PR middle-end/43614
22977         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
22978         and TREE_THIS_VOLATILE.
22979         (copy_ref_info): Likewise.
22980         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
22981         * tree.c (build6_stat): Ignore side-effects of all but arg5
22982         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
22983         TARGET_MEM_REF.
22984
22985 2010-04-01  Richard Guenther  <rguenther@suse.de>
22986
22987         PR tree-optimization/43607
22988         * ipa-type-escape.c (check_call): Do not access non-existing
22989         arguments.
22990
22991 2010-04-01  Richard Guenther  <rguenther@suse.de>
22992
22993         PR middle-end/43602
22994         Revert
22995         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
22996                     Jack Howarth  <howarth@bromo.med.uc.edu>
22997
22998         * tree-profile.c (tree_init_ic_make_global_vars): Make static
22999         variables TLS.
23000
23001 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23002
23003         * doc/install.texi (Prerequisites): Document libelf usability on
23004         IRIX 5/6 and Solaris 2.
23005         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
23006         Update GNU as, GNU ld requirements.
23007         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
23008         Document Sun Studio compiler download.
23009         Update and simplify as, ld recommendations.
23010         (Specific, *-*-solaris2.7): Note obsoletion, removal.
23011
23012 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23013
23014         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
23015         with_tune_32 to pentium4.
23016
23017 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
23018
23019         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
23020
23021 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23022
23023         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
23024         obsoletion, removal.
23025         Update IDO URL.
23026         Document GNU as requirement.
23027         Update configure requirements.
23028         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
23029         Recomment IRIX 6.5.18+.
23030         Document IDF/IDL requirement.
23031         Document GNU as requirement.
23032         Document GNU ld bootstrap failure.
23033         Remove freeware.sgi.com reference.
23034
23035 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23036
23037         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
23038         UNIX V4.0, V5.0 obsoletion, removal.
23039         Remove --with-gc=simple reference.
23040         Update VM requirements during bootstrap.
23041         Remove -oldas bootstrap description.
23042         Update binutils reference.
23043         Remove comparison failure note.
23044
23045 2010-03-31  Richard Guenther  <rguenther@suse.de>
23046             Zdenek Dvorak  <ook@ucw.cz>
23047             Sebastian Pop  <sebastian.pop@amd.com>
23048
23049         PR middle-end/43464
23050         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
23051         with multiple arguments.
23052         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
23053
23054 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
23055
23056         * graphite-dependences.c (print_pddr): Call print_pdr with an
23057         extra argument.
23058         * graphite-poly.c (debug_pdr): Add an extra argument for the
23059         verbosity level.
23060         (print_pdr): Same.
23061         (print_pbb_domain): Same.
23062         (print_pbb): Same.
23063         (print_scop_context): Same.
23064         (print_scop): Same.
23065         (print_cloog): Same.
23066         (debug_pbb_domain): Same.
23067         (debug_pbb): Same.
23068         (print_pdrs): Same.
23069         (debug_pdrs): Same.
23070         (debug_scop_context): Same.
23071         (debug_scop): Same.
23072         (debug_cloog): Same.
23073         (print_scop_params): Same.
23074         (debug_scop_params): Same.
23075         (print_iteration_domain): Same.
23076         (print_iteration_domains): Same.
23077         (debug_iteration_domain): Same.
23078         (debug_iteration_domains): Same.
23079         (print_scattering_function): Same.
23080         (print_scattering_functions): Same.
23081         (debug_scattering_function): Same.
23082         (debug_scattering_functions): Same.
23083         * graphite-poly.h (debug_pdr): Update declaration.
23084         (print_pdr): Same.
23085         (print_pbb_domain): Same.
23086         (print_pbb): Same.
23087         (print_scop_context): Same.
23088         (print_scop): Same.
23089         (print_cloog): Same.
23090         (debug_pbb_domain): Same.
23091         (debug_pbb): Same.
23092         (print_pdrs): Same.
23093         (debug_pdrs): Same.
23094         (debug_scop_context): Same.
23095         (debug_scop): Same.
23096         (debug_cloog): Same.
23097         (print_scop_params): Same.
23098         (debug_scop_params): Same.
23099         (print_iteration_domain): Same.
23100         (print_iteration_domains): Same.
23101         (debug_iteration_domain): Same.
23102         (debug_iteration_domains): Same.
23103         (print_scattering_function): Same.
23104         (print_scattering_functions): Same.
23105         (debug_scattering_function): Same.
23106         (debug_scattering_functions): Same.
23107
23108 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
23109
23110         * graphite-poly.c (print_scattering_function_1): New.
23111         (print_scattering_function): Call it.
23112         (print_scop_params): Remove spaces at the end of lines.
23113         (print_cloog): New.
23114         (debug_cloog): New.
23115         * graphite-poly.h (print_cloog): Declared.
23116         (debug_cloog): Declared.
23117
23118 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
23119
23120         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
23121         in loop->header.
23122         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
23123         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
23124         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
23125         to switch between adding the IV bump in loop->latch or in loop->header.
23126
23127 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
23128
23129         * graphite-poly.c (print_scattering_function): Pretty print following
23130         the scoplib format.
23131         (print_pdr): Same.
23132         (print_pbb_domain): Same.
23133         (dump_gbb_cases): Same.
23134         (dump_gbb_conditions): Same.
23135         (print_pdrs): Same.
23136         (print_pbb): Same.
23137         (print_scop_params): Same.
23138         (print_scop_context): Same.
23139         (print_scop): Same.
23140         (print_pbb_body): New.
23141         (lst_indent_to): New.
23142         (print_lst): Start new lines with a #.
23143         * graphite-poly.h (pbb_bb): New.
23144         (pbb_index): Use pbb_bb.
23145         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
23146         disjuncts.
23147         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
23148
23149 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
23150
23151         * dwarf2out.c (size_of_die): For -gdwarf-4 use
23152         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
23153         and 0 instead of 1 for dw_val_class_flag.
23154         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
23155         dw_val_class_range_list, dw_val_class_loc_list,
23156         dw_val_class_lineptr and dw_val_class_macptr, use
23157         DW_FORM_flag_present for dw_val_class_flag and
23158         DW_FORM_exprloc for dw_val_class_loc.
23159         (output_die): For -gdwarf-4 print dw_val_class_loc
23160         size as uleb128 instead of 1 or 2 bytes and don't print
23161         anything for dw_val_class_flag.
23162
23163         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
23164         instead of cselib_lookup following by tweaking locs->setting_insn.
23165
23166         PR bootstrap/43596
23167         * cselib.c (cselib_process_insn): Clear cselib_current_insn
23168         even before returning from label, setjmp call or volatile asm
23169         handling.
23170
23171 2010-03-31  Richard Guenther  <rguenther@suse.de>
23172
23173         PR middle-end/43600
23174         * cgraphunit.c (cgraph_output_in_order): Do not allocate
23175         temporary data on stack.
23176
23177 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23178
23179         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
23180         (PUSHSECTION_ASM_OP): Remove.
23181         (POPSECTION_ASM_OP): Remove.
23182         (PUSHSECTION_FORMAT): Remove.
23183         * config/sol2.h (PUSHSECTION_FORMAT): Define.
23184         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
23185         * config/sol2.c (solaris_output_init_fini): Use it.
23186
23187 2010-03-31  Jie Zhang  <jie@codesourcery.com>
23188
23189         PR 43574
23190         * opt-functions.awk (var_type_struct): Use signed char type
23191         for simple variables.
23192
23193 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23194
23195         * config/sol2.c: Include output.h.
23196         (solaris_assemble_visibility): New function.
23197         * config/t-sol2 (sol2.o): Add output.h dependency.
23198         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
23199         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
23200         Redefine.
23201
23202 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
23203
23204         PR target/43580
23205         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
23206         V2SImode or XFmode on PRE_DEC.
23207
23208         PR debug/43557
23209         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
23210         BLKmode.
23211
23212 2010-03-31  Jie Zhang  <jie@codesourcery.com>
23213
23214         PR 43562
23215         * reload.h (caller_save_initialized_p): Declare.
23216         * toplev.c (backend_init_target): Don't call
23217         init_caller_save but set caller_save_initialized_p to false.
23218         * caller-save.c (caller_save_initialized_p): Define.
23219         (init_caller_save): Check caller_save_initialized_p.
23220         * ira.c (ira): Call init_caller_save if flag_caller_saves.
23221
23222 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23223
23224         PR target/39048
23225         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
23226         and soft-fp/t-softfp to tmake_file.
23227         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
23228         (LIBGCC2_TF_CEXT): Define.
23229         (TF_SIZE): Define.
23230
23231 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
23232
23233         PR debug/42977
23234         * cselib.c (n_useless_values): Document handling of debug locs.
23235         (n_useless_debug_values, n_debug_values): New variables.
23236         (new_elt_loc_list): Don't add to debug values, keep count.
23237         (promote_debug_loc): New.
23238         (cselib_reset_table): Zero new variables.
23239         (entry_and_rtx_equal_p): Promote debug locs.
23240         (discard_useless_locs): Increment n_useless_debug_values for
23241         debug values.
23242         (remove_useless_values): Adjust n_useless_values and n_debug_values
23243         with n_useless_debug_values.
23244         (add_mem_for_addr): Promote debug locs.
23245         (cselib_lookup_mem): Likewise.
23246         (cselib_lookup_addr): Renamed to...
23247         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
23248         (cselib_log_lookup): ... this.  Turn into...
23249         (cselib_lookup_addr): ... new wrapper.
23250         (cselib_lookup_from_insn): New.
23251         (cselib_invalidate_regno): Increment n_useless_debug_values for
23252         debug values.
23253         (cselib_invalidate_mem): Likewise.
23254         (cselib_process_insn): Take n_deleted and n_debug_values into
23255         account to guard remove_useless_value call.
23256         (cselib_finish): Zero n_useless_debug_values.
23257         * cselib.h (cselib_lookup_from_insn): Declare.
23258         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
23259         (sched_analyze_2): Likewise.
23260
23261 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
23262
23263         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
23264         functions.
23265         (adjust_mems): Replace narrowing SUBREG of expression containing
23266         just PLUS, MINUS, MULT and ASHIFT of registers and constants
23267         with operations in the narrower mode.
23268
23269         PR debug/43593
23270         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
23271         regs_invalidated_by_call instead all call_used_reg_set registers.
23272
23273 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
23274
23275         PR middle-end/43430
23276         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
23277         pointer comparisons with types_compatible_p.
23278         * tree-vect-stmts.c (vectorizable_call): Same.
23279         (vectorizable_condition): Same.
23280
23281 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23282
23283         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
23284         stack check if the mask would be zero.
23285
23286 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
23287             Jack Howarth  <howarth@bromo.med.uc.edu>
23288
23289         * tree-profile.c (tree_init_ic_make_global_vars): Make static
23290         variables TLS.
23291
23292 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
23293
23294         PR other/25232
23295         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
23296         and __unordtf2.
23297         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
23298         Include ___unordxf2 and ___unordtf2.
23299         * config/i386/libgcc-glibc.ver: Do not define inheritance from
23300         GCC_4.4.0 here.
23301
23302 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
23303
23304         * config/lm32/t-lm32: New file.
23305         * config.gcc: Use the above file when targetting lm32.
23306
23307 2010-03-28  Duncan Sands  <baldrick@free.fr>
23308
23309         * Makefile.in (PLUGIN_HEADERS): Add except.h.
23310
23311 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
23312
23313         PR middle-end/43431
23314         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
23315         Improve vectorization cost model diagnostic.
23316
23317 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
23318
23319         PR middle-end/43436
23320         * tree-vect-data-refs.c (vect_analyze_data_refs): When
23321         compute_data_dependences_for_loop returns false, early exit
23322         and output an extra diagnostic for the failed data reference
23323         analysis.
23324
23325 2010-03-29  Richard Guenther  <rguenther@suse.de>
23326
23327         PR tree-optimization/43560
23328         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
23329         (can_sm_ref_p): Treat stores to readonly locations as trapping.
23330
23331 2010-03-29  Jie Zhang  <jie@codesourcery.com>
23332
23333         PR 43564
23334         * toplev.c (process_options): Set optimization_default_node
23335         and optimization_current_node.
23336         * opts.c (decode_options): Don't set optimization_default_node
23337         and optimization_current_node.
23338
23339 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
23340
23341         * config/rtems.h: Abandon -qrtems_debug.
23342
23343 2010-03-28  Jan Hubicka  <jh@suse.cz>
23344
23345         PR tree-optimization/43505
23346         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
23347         map should not be copied.
23348
23349 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23350
23351         PR middle-end/41674
23352         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
23353         cdtors, set DECL_PRESERVE_P.
23354         * ipa.c (cgraph_externally_visible_p): Return true if declaration
23355         should be preseved.
23356
23357 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
23358
23359         PR tree-optimization/43528
23360         * stor-layout.c (place_field): Check that constant fits into
23361         unsigned HWI when skipping calculation of MS bitfield layout.
23362
23363 2010-03-27  Jan Hubicka  <jh@suse.cz>
23364
23365         PR middle-end/43391
23366         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
23367         notice_global_symbol work.
23368
23369 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
23370
23371         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
23372         instead of dwarf2out_decl.
23373         (struct var_loc_node): Remove section_label field.
23374         (dwarf2out_function_decl): New function.
23375         (dwarf2out_var_location): Don't set section_label field.
23376         (dwarf2out_begin_function): Don't empty decl_loc_table here.
23377
23378 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
23379
23380         PR tree-optimization/43544
23381         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
23382         First argument for builtin vectorized function hook is now a
23383         tree to be able to distinguish between machine specific and
23384         standard builtins.
23385         * targhooks.c (default_builtin_vectorized_function): Ditto.
23386         * targhooks.h (default_builtin_vectorized_function): Ditto.
23387         * target.h (struct gcc_target): Ditto.
23388         * tree-vect-stmts.c (vectorizable_function): Ditto.
23389         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
23390         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
23391         Ditto.
23392
23393 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
23394
23395         PR c/43381
23396         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
23397         nested binding iff it is a FUNCTION_DECL.
23398         (store_parm_decls_newstyle): Pass nested=true to bind for
23399         FUNCTION_DECLs amongst parameters.
23400
23401 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
23402
23403         * var-tracking.c (vt_expand_loc_callback): Don't run
23404         cselib_expand_value_rtx_cb in dummy mode if
23405         cselib_dummy_expand_value_rtx_cb returned false.
23406
23407         * var-tracking.c (emit_note_insn_var_location): For one part
23408         notes with offset 0, don't add EXPR_LIST around the location.
23409         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
23410         add_location_or_const_value_attribute): Adjust for that change.
23411
23412         PR debug/43540
23413         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
23414         into first operand and location into second.
23415         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
23416         dw_cfi_oprnd_loc for DW_CFA_expression.
23417         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
23418         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
23419         assume first argument is regnum and second argument is location.
23420
23421 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
23422
23423         PR target/42113
23424         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
23425         of scratch register to DImode.  Split to DImode comparison operator.
23426         Use SImode subreg of scratch register in the multiplication.
23427         (*cmp_sadd_sidi): Ditto.
23428         (*cmp_ssub_si): Ditto.
23429         (*cmp_ssub_sidi): Ditto.
23430
23431 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
23432
23433         PR target/43524
23434         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
23435         Remove invalid assert and wrong comment.
23436
23437 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
23438
23439         PR debug/43516
23440         * flags.h (final_insns_dump_p): New extern.
23441         * final.c (final_insns_dump_p): New variable.
23442         (rest_of_clean_state): Set it before -fdump-final-insns=
23443         dumping, clear afterwards.
23444         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
23445         MEM_ALIAS_SET on MEMs.
23446
23447 2010-03-26  David S. Miller  <davem@davemloft.net>
23448
23449         * configure.ac: Fix sparc GOTDATA_OP bug check.
23450         * configure: Rebuild.
23451
23452 2010-03-26  Alan Modra  <amodra@gmail.com>
23453
23454         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
23455
23456 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23457
23458         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
23459         TLS_SECTION_ASM_FLAG.
23460
23461 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
23462
23463         PR bootstrap/43511
23464         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
23465         Clear first_function_block_is_cold.
23466
23467         PR c/43385
23468         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
23469         argument if the argument is truth_value_p.
23470
23471 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
23472
23473         * config/rs6000/constraints.md: Update copyright year for my changes.
23474
23475         PR target/43484
23476         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
23477         used in reg+reg addressing, swap registers.
23478
23479 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
23480
23481         PR debug/43293
23482         * target.h (struct gcc_target): Add code_end hook.
23483         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
23484         if not yet defined.
23485         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
23486         * toplev.c (compile_file): Call targetm.asm_out.code_end
23487         hook before unwind info/debug info output.
23488         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
23489         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
23490         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
23491         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
23492         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
23493         * config/i386/i386.c (ix86_file_end): Renamed to...
23494         (ix86_code_end): ... this.  Make static.  Don't call
23495         file_end_indicate_exec_stack.  Emit unwind info using
23496         final_start_function/final_end_function.
23497         (darwin_x86_file_end): Remove.
23498         (TARGET_ASM_CODE_END): Define.
23499         * config/i386/i386.h (TARGET_ASM_FILE_END,
23500         NEED_INDICATE_EXEC_STACK): Don't define.
23501         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
23502         (TARGET_ASM_FILE_END): Define to darwin_file_end.
23503         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
23504         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
23505
23506         PR target/43498
23507         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
23508         at the beginning and final_end_function at the end.
23509         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
23510
23511 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23512
23513         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
23514         and Sun as TLS syntax.
23515         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
23516         * configure: Regenerate.
23517         * config.in: Regenerate.
23518         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
23519         (default_elf_asm_named_section): Use it.
23520         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
23521         (i386_output_dwarf_dtprel): Likewise.
23522         (output_addr_const_extra): Likewise.
23523         (output_pic_addr_const): Lowercase @GOTTPOFF.
23524         (output_addr_const_extra): Likewise.
23525         (output_pic_addr_const): Lowercase @GOTNTPOFF.
23526         (output_addr_const_extra): Likewise.
23527         (output_pic_addr_const): Lowercase @INDNTPOFF.
23528         (output_addr_const_extra): Likewise.
23529         (output_pic_addr_const): Lowercase @NTPOFF.
23530         (output_addr_const_extra): Likewise.
23531         (output_pic_addr_const): Lowercase @TPOFF.
23532         (output_addr_const_extra): Likewise.
23533         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
23534         (*tls_global_dynamic_64): Likewise.
23535         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
23536         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
23537
23538         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
23539         (ASM_OUTPUT_TLS_COMMON): Use it.
23540         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
23541
23542         PR target/38118
23543         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
23544         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
23545         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
23546         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
23547         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
23548         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
23549
23550 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23551
23552         * config/i386/i386.c (override_options): Don't accept
23553         -mtls-dialect=sun any longer.
23554         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
23555         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
23556         (*tls_local_dynamic_base_32_sun): Likewise.
23557         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
23558
23559 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
23560
23561         PR debug/43508
23562         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
23563         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
23564
23565         PR debug/43479
23566         * ira.c (adjust_cleared_regs): New function.
23567         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
23568
23569         PR debug/19192
23570         PR debug/43479
23571         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
23572         from gimple_block.
23573         * expr.c (expand_expr_real): Restore previous
23574         curr_insn_source_location and curr_insn_block after
23575         expand_expr_real_1 call.
23576         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
23577         instead of expand_expr_real_1.
23578
23579 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
23580
23581         PR rtl-optimization/43413
23582         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
23583         hard regs too.
23584
23585 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
23586
23587         PR target/43348
23588         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
23589         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
23590
23591 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
23592
23593         * config/i386/i386.c (ix86_target_string): Add -mfma.
23594         Fix a typo in comment.
23595
23596 2010-03-22  Mike Stump  <mikestump@comcast.net>
23597
23598         PR target/23071
23599         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
23600         Don't overly align based upon packed packed fields.
23601
23602 2010-03-22  Jason Merrill  <jason@redhat.com>
23603
23604         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
23605         Use () rather than [], and move before the element type.
23606
23607 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23608
23609         * doc/configfiles.texi (Configuration Files): Removed
23610         fixinc/Makefile*, intl/Makefile.*.
23611         * doc/makefile.texi: Fixed markup. Abstract from version
23612         control system used.
23613         (Makefile): Removed obsolete java/parse.y example.
23614         * doc/sourcebuild.texi: Likewise.
23615         (Top Level): Added config, gnattools, libdecnumber, libgcc,
23616         libgomp, libssp.  Removed fastjar.
23617         (Miscellaneous Docs): Clarify location.
23618         Added COPYING3, COPYING3.LIB.
23619         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
23620
23621 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23622
23623         PR target/38085
23624         * config/i386/i386.c (x86_function_profiler)
23625         [!NO_PROFILE_COUNTERS]: Fix typo.
23626         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
23627         instead of callq.
23628
23629 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
23630             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23631
23632         * doc/sourcebuild.texi (Test Directives): Split into six
23633         subsections, with most of the current text in new subsections
23634         Directives, Selectors, and Final Actions.
23635         (Directives): Split list of test directives into multiple
23636         subsubsections.
23637         (Selectors): Describe use and syntax of selectors.
23638         (Effective-Target Keywords): Describe all existing keywords.
23639         (Add Options): Describe features for dg-add-options.
23640         (Require Support): Describe variants of dg-require-support.
23641         (Final Actions): Describe commands to use in dg-final.
23642
23643 2010-03-22  Michael Matz  <matz@suse.de>
23644
23645         PR middle-end/43475
23646         * recog.c (validate_replace_rtx_group): Replace also in
23647         REG_EQUAL and REG_EQUIV notes.
23648
23649 2010-03-22  Richard Guenther  <rguenther@suse.de>
23650
23651         PR tree-optimization/43390
23652         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
23653         sure vector extracts are type correct.
23654
23655 2010-03-22  Richard Guenther  <rguenther@suse.de>
23656
23657         PR middle-end/40106
23658         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
23659         x * sqrt (x) even when optimizing for size if the target
23660         has native support for sqrt.
23661
23662 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
23663
23664         * varasm.c (make_decl_rtl_for_debug): Also clear
23665         flag_mudflap for the duration of make_decl_rtl call.
23666
23667         PR debug/43443
23668         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
23669         locs from preserved VALUEs.
23670
23671 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23672
23673         PR middle-end/42718
23674         * pa.md (movmemsi): Set align to one if zero.
23675         (movmemdi): Likewise.
23676
23677 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
23678
23679         PR target/42321
23680         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
23681         with their corresponding prologue pushes.
23682
23683 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
23684
23685         PR target/43156
23686         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
23687         at the begining or end.
23688         (spu_expand_epilogue): Likewise.
23689
23690 2010-03-20  Richard Guenther  <rguenther@suse.de>
23691
23692         PR rtl-optimization/43438
23693         * combine.c (make_extraction): Properly zero-/sign-extend an
23694         extraction of the low part of a CONST_INT.  Also handle
23695         CONST_DOUBLE.
23696
23697 2010-03-19  Mike Stump  <mikestump@comcast.net>
23698
23699         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
23700         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
23701         (override_options): Use SUBTARGET32_DEFAULT_CPU.
23702
23703 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
23704
23705         PR c/43211
23706         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
23707         an error.
23708
23709 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
23710
23711         PR rtl-optimization/42258
23712         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
23713         use that may match DEF.
23714
23715         PR target/40697
23716         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
23717         the cost of loading the constant rather than assuming
23718         COSTS_N_INSNS (1).
23719         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
23720         outer code is AND, do the same tests as the andsi3 expander and
23721         return COSTS_N_INSNS (1) if and is cheap.
23722
23723         * optabs.c (avoid_expensive_constant): Fix formatting.
23724
23725 2010-03-19  Michael Matz  <matz@suse.de>
23726
23727         PR c++/43116
23728         * attribs.c (decl_attributes): When rebuilding a function pointer
23729         type use the same qualifiers as the original pointer type.
23730
23731 2010-03-19  Martin Jambor  <mjambor@suse.cz>
23732
23733         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
23734         and is_gimple_ip_invariant_address.
23735
23736 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23737
23738         Revert
23739         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23740
23741         * config/arm/arm.c (arm_override_options): Turn off
23742         flag_dwarf2_cfi_asm for AAPCS variants.
23743
23744 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23745
23746         PR target/43399
23747         * config/arm/arm.c (emit_multi_reg_push): Update comments.
23748         Use PRE_MODIFY instead of PRE_DEC.
23749         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
23750         (vfp_emit_fstmd): Likewise.
23751
23752 2010-03-19  Michael Matz  <matz@suse.de>
23753
23754         PR target/43305
23755         * builtins.c (expand_builtin_interclass_mathfn,
23756         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
23757         if that fails.
23758
23759 2010-03-19  Richard Guenther  <rguenther@suse.de>
23760
23761         PR tree-optimization/43415
23762         * tree-ssa-pre.c (phi_translate): Split out worker to ...
23763         (phi_translate_1): ... this.
23764         (phi_translate): Move all caching here.  Cache all NARY
23765         and REFERENCE translations.
23766
23767 2010-03-19  David S. Miller  <davem@davemloft.net>
23768
23769         With help from Eric Botcazou.
23770         * config/sparc/sparc.c: Include dwarf2out.h.
23771         (emit_pic_helper): Delete.
23772         (pic_helper_symbol_name): Delete.
23773         (pic_helper_emitted_p): Delete.
23774         (pic_helper_needed): New.
23775         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
23776         (get_pc_thunk_name): New.
23777         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
23778         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
23779         Set pic_helper_needed to true.  Don't call emit_pic_helper.
23780         (sparc_expand_prologue): Update load_pic_register call.
23781         (sparc_output_mi_thunk): Likewise.
23782         (sparc_file_end): Emit a hidden comdat symbol for the PIC
23783         thunk if possible.  Output CFI information as needed.
23784
23785 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
23786             Jack Howarth  <howarth@bromo.med.uc.edu>
23787
23788         PR target/36399
23789         * config/i386/i386.h: Fix ABI on darwin x86-32.
23790
23791 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
23792
23793         * tree.h: Declare make_decl_rtl_for_debug.
23794         * varasm.c (make_decl_rtl_for_debug): New.
23795         * dwarf2out.c (rtl_for_decl_location): Call it.
23796         * cfgexpand.c (expand_debug_expr): Call it.
23797
23798 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
23799
23800         PR bootstrap/43399
23801         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
23802         mem_mode.
23803
23804         PR bootstrap/43403
23805         * var-tracking.c (vt_init_cfa_base): Do nothing if
23806         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
23807
23808 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
23809
23810         PR debug/42873
23811         * var-tracking.c (canonicalize_vars_star): New.
23812         (dataflow_post_merge_adjust): Use it.
23813
23814 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
23815
23816         PR debug/43058
23817         * var-tracking.c (non_suitable_const): New function.
23818         (add_uses): For DEBUG_INSNs with constants, don't record any
23819         value, instead just the constant value itself.
23820         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
23821         is not VAR_LOC_UNKNOWN_P, set var to the constant.
23822         (emit_notes_in_bb): Likewise.
23823         (emit_note_insn_var_location): For onepart variables if
23824         cur_loc is a VOIDmode constant, use DECL_MODE.
23825
23826 2010-03-18  Martin Jambor  <mjambor@suse.cz>
23827
23828         PR middle-end/42450
23829         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
23830         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
23831         all non-clones.  Moved call redirection...
23832         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
23833         (cgraph_materialize_all_clones): Dispose of all
23834         combined_args_to_skip bitmaps.
23835         (verify_cgraph_node): Do not check for edges pointing to wrong
23836         nodes in inline clones.
23837         * tree-inline.c (copy_bb): Call
23838         cgraph_redirect_edge_call_stmt_to_callee.
23839         * ipa.c (cgraph_remove_unreachable_nodes): Call
23840         cgraph_node_remove_callees even when there are used clones.
23841
23842 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
23843
23844         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
23845
23846 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
23847
23848         PR target/43383
23849         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
23850         for 32bit.
23851
23852 2010-03-18  Michael Matz  <matz@suse.de>
23853
23854         PR middle-end/43419
23855         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
23856         into sqrt(x) if we need to preserve signed zeros.
23857
23858 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
23859             Eric Botcazou  <ebotcazou@adacore.com>
23860
23861         PR rtl-optimization/43360
23862         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
23863         note if we don't know its invariant status.
23864
23865 2010-03-18  Michael Matz  <matz@suse.de>
23866
23867         PR tree-optimization/43402
23868         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
23869         PHI chains of ssa names registered for update.
23870
23871 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
23872
23873         PR target/42427
23874         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
23875         non-offsettable and pre_modify update addressing.
23876         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
23877         and "2" alternatives "#".
23878         (*movdd_softfloat32): Make all alternatives "#";
23879         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
23880         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
23881         (*movdf_softfloat32): Make all alternatives "#";
23882         (movdi): Use the new DIFD mode iterator to create a common splitter
23883         for movdi, movdf and movdd patterns.
23884
23885 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
23886
23887         * common.opt (dumpdir): Remove redundant tab.
23888
23889 2010-03-17  Martin Jambor  <mjambor@suse.cz>
23890
23891         PR tree-optimization/43347
23892         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
23893         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
23894
23895 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
23896
23897         PR rtl-optimization/42216
23898         * regrename.c (create_new_chain): New function, broken out from...
23899         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
23900         appending a use to an empty chain.
23901         (build_def_use): Remove previous changes that convert OP_INOUT to
23902         OP_OUT operands; instead detect the case where an OP_INOUT operand
23903         uses a previously untracked register and create an empty chain for it.
23904
23905 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23906
23907         * doc/extend.texi (Function Attributes): Rewrite unfinished
23908         sentence in ms_abi documentation.
23909
23910 2010-03-17  Alan Modra  <amodra@gmail.com>
23911
23912         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
23913         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
23914         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
23915         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
23916
23917 2010-03-16  Richard Henderson  <rth@redhat.com>
23918
23919         PR middle-end/43365
23920         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
23921         (lower_try_finally): Save and restore eh_seq around the expansion
23922         of the try-finally.
23923
23924 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
23925
23926         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
23927         statements before splitting block.
23928
23929 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23930
23931         * doc/sourcebuild.texi (Testsuites): Fix markup.
23932         Use pathnames relative to gcc/testsuite.
23933         (Test Directives): Move description of how timeout is determined.
23934         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
23935         (C Tests): Correct gcc.misc-tests directory.
23936         Framework tests now live in gcc.test-framework.
23937
23938 2010-03-16  Richard Guenther  <rguenther@suse.de>
23939
23940         PR middle-end/43379
23941         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
23942         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
23943
23944 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
23945             Alexandre Oliva  <aoliva@redhat.com>
23946
23947         PR tree-optimization/42917
23948         * lambda-code.c (remove_iv): Skip debug statements.
23949         (lambda_loopnest_to_gcc_loopnest): Likewise.
23950         (not_interesting_stmt): Debug statements are not interesting.
23951
23952 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
23953
23954         PR debug/43051
23955         PR debug/43092
23956         * cselib.c (cselib_preserve_constants,
23957         cfa_base_preserved_val): New static variables.
23958         (preserve_only_constants): New function.
23959         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
23960         clear its REG_VALUES.  If cselib_preserve_constants, don't
23961         empty the whole hash table, but preserve there VALUEs with constants,
23962         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
23963         (cselib_preserve_cfa_base_value): New function.
23964         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
23965         (cselib_init): Change argument to int bitfield.  Set
23966         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
23967         is in it.
23968         (cselib_finish): Clear cselib_preserve_constants and
23969         cfa_base_preserved_val.
23970         * cselib.h (enum cselib_record_what): New enum.
23971         (cselib_init): Change argument to int.
23972         (cselib_preserve_cfa_base_value): New prototype.
23973         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
23974         * dse.c (dse_step1): Likewise.
23975         * cfgcleanup.c (thread_jump): Likewise.
23976         * sched-deps.c (sched_analyze): Likewise.
23977         * gcse.c (local_cprop_pass): Likewise.
23978         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
23979         If FN is non-NULL, call the callback always and whenever it returns
23980         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
23981         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
23982         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
23983         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
23984         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
23985         * var-tracking.c: Include recog.h.
23986         (bb_stack_adjust_offset): Remove.
23987         (vt_stack_adjustments): Don't call it, instead just gather the
23988         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
23989         (adjust_stack_reference): Remove.
23990         (compute_cfa_pointer): New function.
23991         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
23992         (struct adjust_mem_data): New type.
23993         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
23994         functions.
23995         (get_address_mode): New function.
23996         (replace_expr_with_values): Use it.
23997         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
23998         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
23999         (adjust_sets): Remove.
24000         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
24001         Use get_address_mode.
24002         (get_adjusted_src): Remove.
24003         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
24004         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
24005         (add_with_sets): Don't call adjust_sets.
24006         (fp_setter, vt_init_cfa_base): New functions.
24007         (vt_initialize): Change return type to bool.  Move most of pool etc.
24008         initialization to the beginning of the function from end.  Pass
24009         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
24010         If !frame_pointer_needed, call vt_stack_adjustment before mos
24011         vector is filled, call vt_init_cfa_base if argp/framep has been
24012         eliminated to sp.  If frame_pointer_needed and argp/framep has
24013         been eliminated to hard frame pointer, set
24014         hard_frame_pointer_adjustment and call vt_init_cfa_base after
24015         encountering fp setter in the prologue.  For MO_ADJUST, call
24016         log_op_type before pusing the op into mos vector, not afterwards.
24017         Call adjust_insn before cselib_process_insn/add_with_sets,
24018         call cancel_changes (0) afterwards.
24019         (variable_tracking_main_1): Adjust for vt_initialize calling
24020         vt_stack_adjustments and returning whether it succeeded or not.
24021
24022 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
24023
24024         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
24025         debug statements.
24026
24027 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
24028
24029         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
24030         has been set.
24031         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
24032         drap_reg has not been set.
24033
24034 2010-03-15  Michael Matz  <matz@suse.de>
24035
24036         PR middle-end/43300
24037         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
24038         use it to expand block copies.
24039         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
24040         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
24041         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
24042
24043 2010-03-15  Richard Guenther  <rguenther@suse.de>
24044
24045         PR tree-optimization/43367
24046         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
24047         elimination check.
24048
24049 2010-03-15  Richard Guenther  <rguenther@suse.de>
24050
24051         PR tree-optimization/43317
24052         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
24053
24054 2010-03-15  Martin Jambor  <mjambor@suse.cz>
24055
24056         PR tree-optimization/43141
24057         * tree-sra.c (create_abstract_origin): New function.
24058         (modify_function): Call create_abstract_origin.
24059
24060 2010-03-15  Chris Demetriou  <cgd@google.com>
24061
24062         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
24063         wasn't copied.
24064
24065 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
24066
24067         PR middle-end/43354
24068         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
24069         call insert_out_of_ssa_copy for default definitions.
24070
24071 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
24072
24073         * graphite-clast-to-gimple.c (my_long_long): Defined.
24074         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
24075         * graphite-sese-to-poly.c (my_long_long): Defined.
24076         (scop_ivs_can_be_represented): Use it.
24077
24078 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
24079
24080         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
24081         graphite-max-bbs-per-function, and loop-block-tile-size.
24082         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
24083         with "maximum".
24084         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
24085
24086 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
24087
24088         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
24089         forward declaration.
24090         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
24091         (add_upper_bounds_from_estimated_nit): New.
24092         (build_loop_iteration_domains): Use it.
24093
24094 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
24095
24096         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
24097
24098 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
24099
24100         PR middle-end/43306
24101         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
24102         should be an INTEGER_CST.  Also handle CASE_CONVERT.
24103
24104 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
24105
24106         * graphite.c (graphite_initialize): To bound the number of bbs per
24107         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
24108         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
24109         * doc/invoke.texi: Document it.
24110
24111 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
24112
24113         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
24114         * graphite-sese-to-poly.h (build_poly_scop): Same.
24115
24116 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
24117
24118         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
24119         the number of parameters in the scop.  Use as an upper bound
24120         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
24121         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
24122         * doc/invoke.texi: Document it.
24123
24124 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
24125
24126         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
24127         * doc/c-tree.texi: Remove.
24128         * doc/generic.texi: Merge c-tree.texi here.
24129         * doc/gccint.texi (Trees): Remove menu entry.
24130         (c-tree.texi): Remove @include.
24131         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
24132         * doc/languages.texi (Reading RTL): Ditto.
24133
24134 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
24135
24136         PR target/42869
24137         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
24138
24139 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
24140
24141         PR middle-end/42431
24142         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
24143         code added to work around reload clobbering CONST insns.
24144
24145 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
24146
24147         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
24148         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
24149         (cselib_preserve_only_values): Remove retain argument, don't
24150         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
24151         * cselib.h (cselib_preserve_only_values): Remove retain argument.
24152         * var-tracking.c (micro_operation): Move insn field before union.
24153         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
24154         (struct variable_tracking_info_def): Remove n_mos field, change
24155         mos into a vector of micro_operations.
24156         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
24157         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
24158         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
24159         changing into a vector.
24160         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
24161         come before all other uops generated by add_stores.
24162         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
24163         argument removal.
24164         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
24165         a vector.  Run just one pass over the bbs instead of separate counting
24166         and computation phase.
24167         (vt_finalize): Free VTI (bb)->mos vector instead of array.
24168
24169         PR debug/43329
24170         * tree-inline.c (remap_decls): Put old_var rather than origin_var
24171         into *nonlocalized_list vector.
24172         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
24173         even if origin is non-NULL.
24174         (gen_variable_die): Likewise.
24175         (process_scope_var): Don't change origin.
24176         (gen_decl_die): Likewise.
24177         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
24178         before adding new edges instead of after it, fix moving over
24179         debug stmts.
24180
24181 2010-03-11  David S. Miller  <davem@davemloft.net>
24182
24183         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
24184         of four.
24185         * configure: Rebuild.
24186
24187 2010-03-11  Martin Jambor  <mjambor@suse.cz>
24188
24189         PR tree-optimization/43257
24190         * tree.c (assign_assembler_name_if_neeeded): New function.
24191         (free_lang_data_in_cgraph): Assembler name assignment moved to the
24192         above new function.
24193         * tree.h (assign_assembler_name_if_neeeded): Declare.
24194         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
24195         the function if needed.
24196
24197 2010-03-11  Chris Demetriou  <cgd@google.com>
24198
24199         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
24200         include/stdint-gcc.h, and include/stdint.h world-readable.
24201
24202 2010-03-11  Richard Guenther  <rguenther@suse.de>
24203
24204         PR tree-optimization/43255
24205         * tree-vrp.c (process_assert_insertions_for): Do not insert
24206         asserts for trivial conditions.
24207
24208 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24209
24210         PR tree-optimization/43280
24211         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
24212         generation.  Move calculation of size out of the if branch.
24213         (find_bswap): Modify compare number generation.
24214
24215 2010-03-11  Richard Guenther  <rguenther@suse.de>
24216
24217         PR lto/43200
24218         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
24219         (input_gimple_stmt): Fixup handled component types during
24220         operand read.  Also fix up decls in ADDR_EXPRs.
24221
24222 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
24223
24224         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
24225         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
24226
24227 2010-03-10  Jan Hubicka  <jh@suse.cz>
24228
24229         PR c/43288
24230         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
24231         * varasm.c (get_variable_section): Don't do that here...
24232         (make_decl_rtl): ... and here.
24233         (do_assemble_alias): Produce decl RTL.
24234         (assemble_alias): Likewise.
24235
24236 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
24237
24238         PR debug/43290
24239         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
24240         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
24241         of fde->vdrap_reg.
24242         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
24243         (based_loc_descr): Only express drap or vdrap regno based expressions
24244         using DW_OP_fbreg when not optimizing.
24245         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
24246         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
24247         REG_CFA_SET_VDRAP note.
24248
24249 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
24250
24251         PR tree-optimization/43236
24252         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
24253         error in calculation of base address in reverse iteration case.
24254         (generate_builtin): Take number of latch executions if the statement
24255         is in the latch.
24256
24257 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
24258
24259         PR middle-end/42859
24260         * tree-eh.c: Include pointer-set.h.
24261         (lower_eh_dispatch): Filter out duplicate case labels and
24262         remove the unneeded edge when the label is unused.  Return
24263         true when some edges are removed.
24264         (execute_lower_eh_dispatch): When any lowering resulted in
24265         removing an edge, also delete unreachable blocks.
24266
24267 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
24268
24269         PR bootstrap/43287
24270         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
24271         UNSPEC_MACHOPIC_OFFSET.
24272
24273 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
24274
24275         PR target/43294
24276         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
24277         (m68k_delegitimize_address): New function.
24278
24279 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
24280
24281         PR debug/43299
24282         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
24283
24284         PR debug/43299
24285         * var-tracking.c (adjust_sets): New function.
24286         (count_with_sets, add_with_sets): Use it.
24287         (get_adjusted_src): New inline function.
24288         (add_stores): Use it.
24289
24290         PR debug/43304
24291         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
24292         call cselib_dummy_expand_value_rtx_cb instead of
24293         cselib_expand_value_rtx_cb.
24294
24295         PR debug/43293
24296         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
24297         * config/i386/i386.c: Include debug.h and dwarf2out.h.
24298         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
24299         and .cfi_endproc around the pic thunks.
24300         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
24301         all queued unwind info register saves are saved before the call.
24302         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
24303         considered as sp-=4 for unwind info and the pop as sp+=4 which
24304         also clobbers dest, but doesn't actually restore it.
24305
24306         PR debug/43290
24307         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
24308         RTX_FRAME_RELATED_P.
24309
24310 2010-03-09  Jie Zhang  <jie@codesourcery.com>
24311
24312         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
24313         whitespaces in output template.
24314
24315 2010-03-09  Jie Zhang  <jie@codesourcery.com>
24316
24317         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
24318         out array boundary.
24319
24320 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
24321
24322         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
24323         builtins.exp in a separate job.
24324
24325 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24326
24327         * graphite-sese-to-poly.c (add_param_constraints): Use
24328         lower_bound_in_type and upper_bound_in_type.
24329
24330 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24331
24332         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
24333         instead of unsigned_type_node.
24334
24335 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24336             Reza Yazdani  <reza.yazdani@amd.com>
24337
24338         PR middle-end/43065
24339         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
24340         on pointer type parameters.
24341
24342 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
24343
24344         PR middle-end/42644
24345         PR middle-end/42130
24346         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
24347         handle conversions from pointer to integers.
24348         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
24349         induction variable, to be able to work with code generated by CLooG.
24350         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
24351         (build_poly_scop): Bail out if we cannot codegen a loop.
24352
24353 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
24354
24355         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
24356         code generation with gloog_error.
24357
24358 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24359
24360         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
24361         Call fold_convert on all the returned values.
24362         (expand_scalar_variables_expr): Pass to
24363         expand_scalar_variables_ssa_name the type of the resulting expression.
24364
24365 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24366
24367         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
24368         ppl_min_for_le_pointset.
24369         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
24370         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
24371
24372 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24373
24374         * graphite-dependences.c (map_into_dep_poly): Removed.
24375         (dependence_polyhedron_1): Use combine_context_id_scat.
24376
24377 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24378
24379         * graphite-poly.h (struct poly_scattering): Add layout documentation.
24380         (struct poly_bb): Same.
24381         (combine_context_id_scat): New.
24382
24383 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24384
24385         PR middle-end/42326
24386         * sese.c (name_defined_in_loop_p): Return false for default
24387         definitions.
24388
24389 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24390
24391         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
24392         and clean up the logic.
24393
24394 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24395
24396         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
24397         early return.
24398
24399 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
24400
24401         * var-tracking.c (remove_cselib_value_chains): Define only for
24402         ENABLE_CHECKING.
24403         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
24404         delete_slot_part, emit_notes_for_differences_1): Don't call
24405         remove_cselib_value_chains here.
24406         (set_slot_part, emit_notes_for_differences_2): Don't call
24407         add_cselib_value_chains here.
24408         (preserved_values): New vector.
24409         (preserve_value): New function.
24410         (add_uses, add_stores, vt_add_function_parameters): Use it
24411         instead of cselib_preserve_value.
24412         (changed_values_stack): New vector.
24413         (check_changed_vars_0): New function.
24414         (check_changed_vars_1, check_changed_vars_2): Use it.
24415         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
24416         changed_values_stack VALUEs.
24417         (vt_emit_notes): For all preserved_values call
24418         add_cselib_value_chains.  If ENABLE_CHECKING call
24419         remove_cselib_value_chains before verifying value_chains is empty.
24420         Initialize and free changed_values_stack.
24421         (vt_initialize): Initialize preserved_values.
24422         (vt_finalize): Free preserved_values.
24423
24424 2010-03-08  Richard Guenther  <rguenther@suse.de>
24425
24426         PR tree-optimization/43269
24427         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
24428         region detection.
24429
24430 2010-03-08  Martin Jambor  <mjambor@suse.cz>
24431
24432         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
24433         (ipa_is_param_called): Removed.
24434         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
24435         (ipa_print_node_params): Do not print the called flag.
24436         (ipa_write_node_info): Do not stream the called flag.
24437         (ipa_read_node_info): Likewise.
24438
24439 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
24440
24441         PR debug/43176
24442         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
24443         * cselib.c (struct expand_value_data): Add dummy field.
24444         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
24445         dummy to false.
24446         (cselib_dummy_expand_value_rtx_cb): New function.
24447         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
24448         any rtl.
24449         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
24450         * var-tracking.c: Include pointer-set.h.
24451         (variable): Change n_var_parts to char from int.  Add
24452         cur_loc_changed and in_changed_variables fields.
24453         (variable_canonicalize): Remove.
24454         (shared_var_p): New inline function.
24455         (unshare_variable): Maintain cur_loc_changed and
24456         in_changed_variables fields.  If var was in changed_variables,
24457         replace it there with new_var.  Just copy cur_loc instead of
24458         resetting it to something else.
24459         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
24460         (dataflow_set_union): Don't call variable_canonicalize.
24461         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
24462         of their DEBUG_EXPR_TREE_DECLs.
24463         (canonicalize_loc_order_check): Verify that cur_loc is NULL
24464         and in_changed_variables and cur_loc_changed is false.
24465         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
24466         and cur_loc_changed.  Don't update cur_loc here.
24467         (variable_merge_over_src): Don't call variable_canonicalize.
24468         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
24469         removing loc that is equal to cur_loc, clear cur_loc,
24470         set cur_loc_changed and ensure variable_was_changed is called.
24471         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
24472         compare pointers in cur_loc check, if it is equal to loc,
24473         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
24474         (variable_different_p): Remove compare_current_location argument,
24475         don't compare cur_loc.
24476         (dataflow_set_different_1): Adjust variable_different_p caller.
24477         (variable_was_changed): If dv had some var in changed_variables
24478         already, reset in_changed_variables flag for it and propagate
24479         cur_loc_changed over to the new variable.  On empty var
24480         always set cur_loc_changed.  Set in_changed_variables on whatever
24481         var is added to changed_variables.
24482         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
24483         Use shared_var_p.  When removing loc that is equal to cur_loc,
24484         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
24485         end, don't set it to something else, just call variable_was_changed.
24486         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
24487         loc being removed, clear cur_loc and set cur_loc_changed.
24488         Set cur_loc_changed if all locations have been removed.
24489         (struct expand_loc_callback_data): New type.
24490         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
24491         allocated.  Always create SUBREGs if simplify_subreg failed.
24492         Prefer to use cur_loc, when that fails and still in
24493         changed_variables (and seen first time) recompute it.  Set
24494         cur_loc_changed of variables which had to change cur_loc and
24495         compute elcd->cur_loc_changed if any of the subexpressions used
24496         had to change cur_loc.
24497         (vt_expand_loc): Adjust to pass arguments in
24498         expand_loc_callback_data structure.
24499         (vt_expand_loc_dummy): New function.
24500         (emitted_notes): New variable.
24501         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
24502         that weren't used for any other decl in current
24503         emit_notes_for_changes call call vt_expand_loc_dummy to update
24504         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
24505         first loc_chain location if NULL before.  Always use just
24506         cur_loc instead of first loc_chain location.  When cur_loc_changed
24507         is false, when not --enable-checking=rtl just don't emit any note.
24508         When rtl checking, compute the note and assert it is the same
24509         as previous note.  Clear cur_loc_changed and in_changed_variables
24510         at the end before removing from changed_variables.
24511         (check_changed_vars_3): New function.
24512         (emit_notes_for_changes): Traverse changed_vars to call
24513         check_changed_vars_3 on each changed var.
24514         (emit_notes_for_differences_1): Clear cur_loc_changed and
24515         in_changed_variables.  Recompute cur_loc of new_var.
24516         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
24517         (vt_emit_notes): Initialize and destroy emitted_notes.
24518
24519 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
24520
24521         PR rtl-optimization/42220
24522         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
24523         Use verify_reg_tracked to determine if we should use OP_OUT rather
24524         than OP_INOUT.
24525         (build_def_use): If we see an in-out operand for a register that we
24526         know nothing about, treat is an output if possible, fail the block if
24527         not.
24528
24529 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
24530
24531         PR debug/42897
24532         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
24533         permanently.
24534
24535 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
24536
24537         PR debug/42897
24538         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
24539         uses of relevant DEFs that are dead outside the loop too.
24540
24541 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
24542
24543         * var-tracking.c (dataflow_set_merge): Swap src and src2.
24544         Reverted:
24545         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
24546         PR debug/41371
24547         * var-tracking.c (values_to_unmark): New variable.
24548         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
24549         values_to_unmark vector.  Moved body to...
24550         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
24551         instead queue it into values_to_unmark vector.
24552         (vt_find_locations): Free values_to_unmark vector.
24553
24554 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
24555
24556         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
24557         (site.exp): Export them when plugins are enabled.
24558
24559 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
24560
24561         PR middle-end/42326
24562         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
24563         that contain scevs.
24564         (chrec_fold_multiply): Same.
24565
24566 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
24567
24568         PR c/43248
24569         * c-decl.c (build_compound_literal): Return early if init is
24570         an error_mark_node.
24571
24572 2010-03-04  Martin Jambor  <mjambor@suse.cz>
24573
24574         PR tree-optimization/43164
24575         PR tree-optimization/43191
24576         * tree-sra.c (type_consists_of_records_p): Reject records with
24577         zero-size bit-fields at the end.
24578
24579 2010-03-04  Mike Stump  <mikestump@comcast.net>
24580
24581         * Makefile.in (TAGS): Remove *.y.
24582
24583 2010-03-04  Richard Guenther  <rguenther@suse.de>
24584
24585         PR tree-optimization/40761
24586         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
24587         in reverse order.
24588         (my_rev_post_order_compute): New function.
24589         (init_pre): Call it.
24590
24591 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
24592
24593         PR middle-end/43209
24594         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
24595         decrease the cost of an IV candidate when the cost is infinite.
24596
24597 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24598
24599         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
24600         Use '3DNow!' for the extension of that name, ensure normal space
24601         after the string.
24602         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
24603
24604 2010-03-03  Jeff Law  <law@redhat.com>
24605
24606         * PR middle-end/32693
24607         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
24608         than gen_rtx_SUBREG.
24609         (extract_bit_field_1): Likewise.
24610
24611 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
24612
24613         * doc/sourcebuild.texi (Test directives): Document that arguments
24614         include-opts and exclude-opts are now optional for dg-skip-if,
24615         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
24616
24617 2010-03-03  Jason Merrill  <jason@redhat.com>
24618
24619         PR c++/12909
24620         * cgraph.h (varpool_node): Add extra_name field.
24621         * varpool.c (varpool_extra_name_alias): New.
24622         (varpool_assemble_decl): Emit extra name aliases.
24623         (varpool_mark_needed_node): Look past an extra name alias.
24624         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
24625         * lto-streamer-in.c (lto_input_tree): Read it.
24626         * lto-streamer-out.c (output_unreferenced_globals): Write it.
24627
24628 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
24629
24630         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
24631         (sparc*-*-solaris2*): ...this.
24632
24633 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
24634
24635         PR debug/43229
24636         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
24637         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
24638         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
24639         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
24640
24641         PR debug/43237
24642         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
24643         fallthrough to default handling, just with want_address 0 instead of 2.
24644         For single element lists, add_AT_loc directly, otherwise create an
24645         artificial variable DIE and stick location list to it.
24646
24647         PR debug/43177
24648         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
24649         (VAL_EXPR_HAS_REVERSE): Define.
24650         (reverse_op): New function.
24651         (add_stores): For reversible operations add an extra MO_VAL_USE.
24652
24653 2010-03-02  Jason Merrill  <jason@redhat.com>
24654
24655         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
24656
24657 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
24658
24659         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
24660         (sparc64-*-linux*): Likewise.
24661         (sparc64-*-solaris2*): Include assembler files before linker ones.
24662         (sparc-*-solaris2*): Simplify and reorder to match previous case.
24663         * config/sparc/gas.h: Delete.
24664         * config/sparc/sol2-64.h: Add copyright notice.
24665         * config/sparc/sol2-gas-bi.h: Likewise.
24666         * config/sparc/sol2-gld.h: Likewise.
24667         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
24668         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
24669         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
24670         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
24671         (sparc_elf_asm_named_section): Rename into...
24672         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
24673
24674 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
24675
24676         * config/alpha/alpha.c (override_options): Fix -mtune error message.
24677
24678 2010-03-02  Jeff Law  <law@redhat.com>
24679
24680         PR middle-end/42431
24681         * reload1.c (rtx_p, substitute_stack): Declare.
24682         (substitute): Record addresses of changed rtxs.
24683         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
24684         Restore the original rtx when complete.
24685         (reload): Free subsitute_stack when complete.
24686
24687 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
24688
24689         * doc/gccint.texi (menu): Add Testsuites as a chapter.
24690         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
24691         new chapter.
24692         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
24693         LTO Testing, gcov Testing, profopt Testing, compat Testing,
24694         Torture Tests): Change from subsection to section.
24695
24696 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
24697             Steven Bosscher  <steven@gcc.gnu.org>
24698
24699         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
24700         instead of bb.
24701
24702 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
24703
24704         PR middle-end/42640
24705         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
24706         the assignment from the new induction variable to the assignment
24707         of the value from the original loop PHI function.
24708
24709 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
24710             Daniel Jacobowitz  <dan@codesourcery.com>
24711
24712         * doc/sourcebuild.texi (Test directives): Clarify options to
24713         dg-skip-if.
24714
24715 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24716
24717         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
24718         Disable cfi directives unless GCC and gas agree on using read-only
24719         .eh_frame sections for 64-bit.
24720         * configure: Regenerate.
24721
24722 2010-03-01  Richard Guenther  <rguenther@suse.de>
24723
24724         PR tree-optimization/43220
24725         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
24726         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
24727
24728 2010-03-01  Richard Guenther  <rguenther@suse.de>
24729             Martin Jambor  <mjambor@suse.cz>
24730
24731         PR middle-end/41250
24732         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
24733         gimplified parameters.
24734
24735 2010-03-01  Christian Bruel  <christian.bruel@st.com>
24736
24737         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
24738
24739 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
24740
24741         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
24742
24743 2010-03-01  Richard Guenther  <rguenther@suse.de>
24744
24745         PR middle-end/43213
24746         * expr.c (expand_assignment): Use the alias-oracle to tell
24747         if the rhs aliases the result decl.
24748
24749 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24750
24751         PR pch/14940
24752         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
24753         to sol_gt_pch_get_address.
24754         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
24755         64-bit, SPARC and x86.
24756         (sol_gt_pch_get_address): New function.
24757
24758 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
24759
24760         * toplev.h (inform_n, error_n): Declare.
24761         * diagnostic.c (inform_n, error_n): New function.
24762
24763 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
24764
24765         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
24766         has no rtl yet when processing local_decls, queue it and recheck
24767         if deferred stack allocation hasn't assigned it rtl.
24768
24769 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
24770
24771         * config/sh/sh.c (unspec_bbr_uid): New.
24772         (gen_block_redirect): Use it instead of INSN_UID.
24773         (gen_far_branch): Likewise.
24774
24775 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
24776
24777         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
24778         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
24779
24780 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24781
24782         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
24783         (Warning Options): -Wno-conversion-null is valid for
24784         Objective-C++ as well.
24785         * doc/tm.texi (Named Address Spaces): Likewise.
24786         * doc/plugins.texi (Plugins): Replace TABs with spaces.
24787         * doc/tree-ssa.texi (Tree SSA): Likewise.
24788
24789 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
24790
24791         PR bootstrap/43202
24792         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
24793         by default.  Don't set the default arch for
24794         i[34567]86-*-darwin*|x86_64-*-darwin*.
24795
24796 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
24797
24798         PR bootstrap/43202
24799         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
24800         default.  Set the default 32bit/64bit archs with $with_arch
24801         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
24802
24803 2010-02-27  Richard Guenther  <rguenther@suse.de>
24804
24805         PR tree-optimization/43186
24806         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
24807         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
24808         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
24809         unroller iterations.
24810
24811 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
24812
24813         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
24814         required and i[34567]86-*-* targets don't support 64bit ISA.
24815
24816 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
24817
24818         PR ada/43096
24819         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
24820         the same alias set.
24821
24822 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
24823
24824         * config.gcc: Set the default arch at least to Prescott for
24825         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
24826         if SSE math is enabled.
24827
24828 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24829
24830         * diagnostic.c (diagnostic_initialize): Update.
24831         (diagnostic_report_diagnostic): Test inhibit_notes_p for
24832         informative notes.
24833         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
24834         (diagnostic_inhibit_notes): New.
24835         * toplev.c (process_options): inhibit notes with -fcompare-debug.
24836
24837 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24838
24839         PR c/20631
24840         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
24841         * doc/standards.texi: Likewise.
24842         * doc/extend.texi: Likewise.
24843         * doc/trouble.texi: Likewise.
24844         * doc/cppopts.texi: Likewise.
24845         * doc/install.texi: Likewise.
24846         * c.opt (std=c90,std=gnu90): New options.
24847         * c-opts.c (c_common_handle_option): Handle them.
24848
24849 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24850
24851         PR c/24577
24852         * c-decl.c (undeclared_variable): Use an informative note.
24853
24854 2010-02-26  Richard Guenther  <rguenther@suse.de>
24855
24856         PR tree-optimization/43186
24857         * gimple.h (gimple_fold): Remove.
24858         * gimple.c (gimple_fold): Remove.  Inline into single user ...
24859         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
24860         Try harder for conditions.
24861
24862 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
24863
24864         PR debug/43190
24865         * function.c (used_types_insert): Don't skip through named pointer
24866         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
24867         and it is different from the main variant's type.
24868
24869 2010-02-26  Nick Clifton  <nickc@redhat.com>
24870
24871         * config/rx/rx.md (sminsi3): Remove bogus alternative.
24872
24873 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
24874
24875         * config.gcc: Support --with-fpmath=sse for x86.
24876
24877         * config/i386/ssemath.h: New.
24878
24879         * doc/install.texi (--with-fpmath=sse): Documented.
24880
24881 2010-02-26  Richard Guenther  <rguenther@suse.de>
24882
24883         PR tree-optimization/43188
24884         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
24885         vector types of over-aligned element type.
24886
24887 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
24888
24889         PR target/43175
24890         * config/i386/i386.c (expand_vec_perm_blend): Use correct
24891         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
24892
24893 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
24894
24895         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
24896
24897 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
24898
24899         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
24900         * var-tracking.c: Include diagnostic.h.
24901         (debug_dv): New function.
24902         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
24903
24904         PR debug/43160
24905         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
24906         (add_value_chain, add_value_chains, remove_value_chain,
24907         remove_value_chains): Handle DEBUG_EXPRs.
24908         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
24909
24910         PR debug/43161
24911         * regcprop.c (struct queued_debug_insn_change): New type.
24912         (struct value_data_entry): Add debug_insn_changes field.
24913         (struct value_data): Add n_debug_insn_changes field.
24914         (debug_insn_changes_pool): New variable.
24915         (free_debug_insn_changes, apply_debug_insn_changes,
24916         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
24917         (kill_value_one_regno): Call free_debug_insn_changes if needed.
24918         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
24919         fields.
24920         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
24921         changes for them.
24922         (copyprop_hardreg_forward_1): Don't call apply_change_group for
24923         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
24924         changes, call cprop_find_used_regs via note_stores.
24925         (copyprop_hardreg_forward): When copying vd from predecessor
24926         which has any queued DEBUG_INSN changes, make sure the pointers are
24927         cleared.  At the end call df_analyze and then if there are any
24928         DEBUG_INSN changes queued at the end of some basic block for still
24929         live registers, apply them.
24930         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
24931
24932 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
24933
24934         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
24935         (arm*-*-*): Ditto.
24936
24937 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
24938
24939         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
24940         targets.  Set the default with_cpu/with_arch from arch/cpu.
24941         Allow x86-64 and native for with_cpu/with_arch.
24942
24943 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
24944
24945         * ebitmap.c: Change calls to verify_popcount with calls to
24946         sbitmap_verify_popcount.
24947         (ebitmap_clear_bit): Fixed map->cacheindex test and
24948         map>cache update when bit clearing results in an empty
24949         element.
24950
24951 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
24952
24953         PR target/43154
24954         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
24955         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
24956         and support both V2DF and V2DI modes.
24957         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
24958         support both V2DF and V2DI modes.
24959         (general): Delete trailing whitespace from a few patterns.
24960
24961         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
24962         V2DF/V2DI interleave high/low builtins.
24963
24964         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
24965         new VSX builtins.
24966
24967         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
24968         interleave high/low functions.
24969
24970 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
24971
24972         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
24973         #pragma extern_prefix.
24974
24975 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
24976
24977         PR debug/43166
24978         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
24979         BLKmode, assert op0 is a MEM and just adjust its mode.
24980
24981         PR debug/43165
24982         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
24983         if bitpos isn't multiple of mode's bitsize.
24984
24985 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24986
24987         * c.opt (-ftemplate-depth=): New.
24988         (-ftemplate-depth-): Deprecate.
24989         * optc-gen.awk: Handle -ftemplate-depth=.
24990         * opth-gen.awk: Likewise.
24991         * c-opts.c (c_common_handle_option): Likewise.
24992         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
24993
24994 2010-02-24  Jason Merrill  <jason@redhat.com>
24995
24996         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
24997
24998 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24999
25000         * cfg.c (alloc_aux_for_block): Remove inline.
25001         (alloc_aux_for_edge): Likewise.
25002
25003 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25004
25005         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
25006
25007 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25008
25009         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
25010         * config/i386/sol2-gas.h: New file.
25011         * config.gcc (i[34567]86-*-solaris2*): Use it.
25012
25013 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25014
25015         PR c/43128
25016         * c-typeck.c (ep_convert_and_check): New.
25017         (build_conditional_expr): Use it.
25018         (build_binary_op): Likewise.
25019
25020 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
25021
25022         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
25023
25024         PR debug/43150
25025         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
25026         bounds even for -O+.
25027         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
25028         expr needs to have DECL_NAME set.
25029
25030 2010-02-24  Nick Clifton  <nickc@redhat.com>
25031
25032         * config/mep/mep.c: Include gimple.h.
25033         (mep_function_uses_sp): Delete unused function.
25034         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
25035         parameters.  Use unsigned integers to count args.  Return a
25036         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
25037
25038 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
25039
25040         PR target/43107
25041         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
25042         greater or equal to nelt instead of 2 * nelt.
25043         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
25044         with nelt - 1.
25045
25046 2010-02-23  Jason Merrill  <jason@redhat.com>
25047
25048         PR debug/42800
25049         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
25050         in cfun->local_decls even if they have register types.
25051
25052         PR c++/42837
25053         * stor-layout.c (place_field): Don't warn about unnecessary
25054         DECL_PACKED if the type is packed.
25055
25056 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
25057
25058         PR target/43139
25059         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
25060         GOTOFF relocs, even when the base reg isn't pic pointer.
25061
25062 2010-02-23  Michael Matz  <matz@suse.de>
25063
25064         PR debug/43077
25065         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
25066         (expand_gimple_basic_block): Generate and use debug temps if there
25067         are debug uses left after the last real use of TERed ssa names.
25068         Unlink debug immediate uses when they are expanded.
25069
25070 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25071
25072         PR 43123
25073         * config/i386/i386.c (override_options): Reorganise to provide
25074         better error messages.
25075
25076 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
25077
25078         PR middle-end/43083
25079         * graphite-scop-detection.c (create_single_exit_edge): Move
25080         the call to find_single_exit_edge to....
25081         (create_sese_edges): ...here.  Don't handle multiple edges
25082         exiting the function.
25083         (build_graphite_scops): Don't handle multiple edges
25084         exiting the function.
25085
25086 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
25087
25088         PR middle-end/43097
25089         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
25090         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
25091
25092 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
25093
25094         PR middle-end/43026
25095         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
25096
25097 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25098
25099         PR c++/43126
25100         * c-typeck.c (convert_arguments): Print declaration location.
25101         * c-common.c (validate_nargs): Rename as
25102         builtin_function_validate_nargs.
25103         (check_builtin_function_arguments): Update.
25104
25105 2010-02-22  Richard Guenther  <rguenther@suse.de>
25106
25107         PR lto/43045
25108         * tree-inline.c (declare_return_variable): Use the type of
25109         the call stmt lhs if available.
25110
25111 2010-02-22  Duncan Sands  <baldrick@free.fr>
25112
25113         * passes.c (register_pass): Always consider all pass lists when
25114         ref_pass_instance_number is zero.
25115
25116 2010-02-22  Richard Guenther  <rguenther@suse.de>
25117
25118         PR tree-optimization/42749
25119         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
25120         parameter.  Do arithmetic in the original type.
25121         (update_accumulator_with_ops): Likewise.
25122         (adjust_accumulator_values): Adjust.
25123
25124 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25125
25126         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
25127         (QI to BLKmode splitter): New splitter.
25128
25129 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
25130
25131         * config/i386/i386.c (initial_ix86_tune_features): Turn on
25132         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
25133
25134 2010-02-22  Richard Guenther  <rguenther@suse.de>
25135
25136         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
25137
25138 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
25139
25140         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
25141         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
25142         ($(T)crti.o, $(T)crtn.o): Remove rules.
25143
25144 2010-02-21  Tobias Burnus  <burnus@net-b.de>
25145
25146         PR fortran/35259
25147         * doc/invoke.texi (-fassociative-math): Document that this
25148         option is automatically enabled for Fortran.
25149
25150 2010-02-20  David S. Miller  <davem@davemloft.net>
25151
25152         * configure.ac: Test if linker and assembler properly support
25153         GOTDATA_OP relocations.
25154         * configure: Rebuild.
25155         * config.in: Likewise.
25156         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
25157         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
25158         (movsi_high_pic): Likewise.
25159         (movdi_lo_sum_pic): Likewise.
25160         (movdi_high_pic): Likewise.
25161         (movsi_pic_gotdata_op): New pattern.
25162         (movdi_pic_gotdata_op): Likewise.
25163         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
25164         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
25165
25166 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
25167
25168         PR target/43067
25169         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
25170         attribute to ssemul.
25171         (xop_mulv2div2di3_high): Ditto.
25172
25173 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25174
25175         PR c++/35669
25176         * c.opt (Wconversion-null): New option.
25177         * doc/invoke.texi (Wconversion-null): Document.
25178
25179 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25180
25181         * common.opt (Wlarger-than-): Add Undocumented.
25182
25183 2010-02-19  Mike Stump  <mikestump@comcast.net>
25184
25185         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
25186
25187 2010-02-19  Jason Merrill  <jason@redhat.com>
25188
25189         PR target/40332
25190         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
25191         * configure: Likewise.
25192
25193 2010-02-20  Alan Modra  <amodra@gmail.com>
25194
25195         PR middle-end/42344
25196         * cgraph.h (cgraph_make_decl_local): Declare.
25197         * cgraph.c (cgraph_make_decl_local): New function.
25198         (cgraph_make_node_local): Use it.
25199         * cgraphunit.c (cgraph_function_versioning): Likewise.
25200         * ipa.c (function_and_variable_visibility): Likewise.
25201
25202 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
25203
25204         PR bootstrap/43121
25205         * except.c (sjlj_emit_function_enter): Don't call
25206         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
25207         directly.
25208         * rtl.h (add_reg_br_prob_note): Remove prototype.
25209
25210 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25211
25212         PR 41779
25213         * c-common.c (conversion_warning): Remove widening conversions
25214         before checking the conversion of integers to reals.
25215
25216 2010-02-19  Mike Stump  <mikestump@comcast.net>
25217
25218         PR middle-end/43125
25219         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
25220
25221         PR objc/43061
25222         * cgraphunit.c (process_function_and_variable_attributes): Check
25223         DECL_PRESERVE_P instead of looking up attribute "used".
25224         * ipa-pure-const.c (check_decl): Likewise.
25225         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
25226         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
25227         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
25228         instead of attribute "used".
25229         * config/sol2-c.c (solaris_pragma_init): Likewise.
25230         (solaris_pragma_fini): Likewise.
25231
25232 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
25233
25234         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
25235         Use XCNEW instead of xcalloc.
25236         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
25237         XNEW instead of xmalloc.
25238         (get_fields): Use XNEWVEC instead of xmalloc.
25239
25240         PR debug/43084
25241         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
25242         populate vars array.
25243         (create_new_general_access): For debug stmts just reset value.
25244         (get_stmt_accesses): For accesses within debug stmts just record them
25245         using add_access_to_acc_sites instead of preventing the peeling or
25246         counting them as accesses.
25247
25248         PR middle-end/42233
25249         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
25250
25251 2010-02-19  Richard Guenther  <rguenther@suse.de>
25252
25253         PR tree-optimization/42916
25254         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
25255         instructions.
25256
25257 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
25258
25259         * configure.ac: Replace all uses of changequote in macro arguments
25260         with proper quoting.
25261
25262 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
25263
25264         PR middle-end/42233
25265         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
25266
25267 2010-02-19  Richard Guenther  <rguenther@suse.de>
25268
25269         PR tree-optimization/42944
25270         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
25271         test for aliasing with errno.
25272
25273 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
25274
25275         PR middle-end/42233
25276         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
25277         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
25278         * dojump.c: Include output.h.
25279         (inv): New inline function.
25280         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
25281         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
25282         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
25283         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
25284         argument, pass it down to other calls.
25285         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
25286         add REG_BR_PROB note to the conditional jump.
25287         * cfgexpand.c (add_reg_br_prob_note): Removed.
25288         (expand_gimple_cond): Don't call it, add the probability
25289         as last argument to jumpif_1/jumpifnot_1.
25290         * Makefile.in (dojump.o): Depend on output.h.
25291         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
25292         callers.
25293         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
25294         * stmt.c (do_jump_if_equal): Likewise.
25295         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
25296         * loop-unswitch.c (compare_and_jump_seq): Likewise.
25297         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
25298         Likewise.
25299         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
25300         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
25301         jumpifnot_1 callers.
25302         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
25303         callers.
25304         (store_expr): Adjust jumpifnot caller.
25305         (store_constructor): Adjust jumpif caller.
25306
25307         PR middle-end/42233
25308         * gimplify.c (gimple_boolify): For __builtin_expect call
25309         gimple_boolify also on its first argument.
25310
25311 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
25312
25313         * configure.ac (gnu-unique-object): Wrap regexps using [] in
25314         changequote block.
25315         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
25316         * configure: Regenerated.
25317
25318 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25319
25320         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
25321         lang_hooks.types_compatible_p instead of comptypes.
25322
25323 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
25324
25325         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
25326         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
25327         if __prefer_thumb__ is defined.
25328
25329 2010-02-18  Martin Jambor  <mjambor@suse.cz>
25330
25331         PR tree-optimization/43066
25332         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
25333         array with zero-sized element type.
25334
25335 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
25336
25337         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
25338         rtx, allocate struct var_loc_node here and return it to the
25339         caller, and only if it is actually needed.
25340         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
25341         move it earlier and return immediately if it returns NULL.
25342
25343 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
25344
25345         * config/sparc/gas.h: New file.  Restore
25346         TARGET_ASM_NAMED_SECTION to its ELF default.
25347         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
25348         check !HAVE_GNU_AS.
25349         * config/sparc/sparc.c (sparc_elf_asm_named_section):
25350         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
25351         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
25352         after sparc/sysv4.h.
25353
25354 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
25355
25356         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
25357
25358 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
25359
25360         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
25361         patterns from predicated pattern.
25362
25363 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
25364
25365         PR target/43103
25366         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
25367         for insn mnemonic suffix.
25368
25369 2010-02-17  Richard Guenther  <rguenther@suse.de>
25370
25371         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
25372         to loop PHI nodes.
25373
25374 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
25375
25376         PR debug/42918
25377         * caller-save.c (save_call_clobbered_regs): If BB ends with
25378         a DEBUG_INSN, move any notes in between last real insn and the last
25379         DEBUG_INSN after the last DEBUG_INSN.
25380
25381 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
25382
25383         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
25384         Fix return type.  Fix argument type.  Explain meaning of return value.
25385
25386 2010-02-16  Richard Guenther  <rguenther@suse.de>
25387
25388         PR tree-optimization/41043
25389         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
25390         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
25391         statements ...
25392         (vrp_visit_phi_node): ... but only for loop PHI nodes.
25393
25394 2010-02-16  Ira Rosen  <irar@il.ibm.com>
25395
25396         PR tree-optimization/43074
25397         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
25398         * tree-vect-loop.c (vect_analyze_loop_operations): Add
25399         vectorizable cycles in hybrid SLP check.
25400         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
25401
25402 2010-02-16  Richard Guenther  <rguenther@suse.de>
25403
25404         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
25405         (true_dependence): If memrefs_conflict_p computes must-alias
25406         trust it.  Move TBAA check after offset-based disambiguation.
25407         (canon_true_dependence): Likewise.
25408
25409 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
25410
25411         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
25412         * doc/invoke.texi: Document it.
25413         * var-tracking.c: Include toplev.h and params.h.
25414         (vt_find_locations): Return bool indicating success.  Compute
25415         hash sizes unconditionally.  Check new parameter, report.
25416         (variable_tracking_main_1): Check vt_find_locations results and
25417         retry.  Renamed from...
25418         (variable_tracking_main): ... this.  New wrapper to preserve
25419         flag_var_tracking_assignments.
25420         * Makefile.in (var-tracking.o): Adjust dependencies.
25421
25422 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
25423             Jakub Jelinek  <jakub@redhat.com>
25424
25425         PR target/42854
25426         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
25427         if weak_import attribute is present.
25428         * config/darwin.c (machopic_select_section): Likewise.
25429
25430 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
25431
25432         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
25433         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
25434         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
25435         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
25436
25437         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
25438         types.
25439
25440         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
25441         Fix argument types.
25442
25443         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
25444         Rewrite text to refer to the names.
25445
25446 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
25447
25448         * config/i386/i386-builtin-types.def
25449         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
25450         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
25451         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
25452         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
25453         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
25454         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
25455         IX86_BUILTIN_VPERMIL2PS256.
25456         (MULTI_ARG_4_DF2_DI_I): Defined.
25457         (MULTI_ARG_4_DF2_DI_I1): Defined.
25458         (MULTI_ARG_4_SF2_SI_I): Defined.
25459         (MULTI_ARG_4_SF2_SI_I1): Defined.
25460         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
25461         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
25462         __builtin_ia32_vpermil2ps256.
25463         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
25464         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
25465         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
25466         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
25467         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
25468         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
25469         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
25470         CODE_FOR_xop_vpermil2v8sf3.
25471         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
25472         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
25473         * config/i386/xopintrin.h (_mm_permute2_pd): New.
25474         (_mm256_permute2_pd): New.
25475         (_mm_permute2_ps): New.
25476         (_mm256_permute2_ps): New.
25477
25478 2010-02-15  Nick Clifton  <nickc@redhat.com>
25479
25480         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
25481         boolean parameters.  Use emit_jump_insn when emitting a pop
25482         instruction containing a return insn.
25483         (push): Use 'true' rather than '1' as second parameter to F.
25484         (h8300_expand_prologue): Likewise.
25485         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
25486         (h8300_expand_epilogue): Likewise.
25487
25488 2010-02-15  Richard Guenther  <rguenther@suse.de>
25489
25490         PR middle-end/43068
25491         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
25492         if that is zero.
25493
25494 2010-02-15  Nick Clifton  <nickc@redhat.com>
25495
25496         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
25497         delta.
25498
25499 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
25500
25501         * intl.c (fake_ngettext): New function.
25502         * intl.h (fake_ngettext): Declare.
25503         (ngettext): Define macro.
25504         * collect2.c (notice_translated): New function.
25505         (main): Use notice_translated and ngettext.
25506         * collect2.h (notice_translated): Declare.
25507
25508 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
25509
25510         * reorg.c (delete_computation): Comment fixes.
25511         * caller-save.c (setup_save_areas): Idem.
25512         * sel-sched-dump.c (dump_lv_set): Idem.
25513         * rtl.def: Idem.
25514
25515 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25516
25517         * config/s390/s390.c (s390_sched_init): New function.
25518         (TARGET_SCHED_INIT): Target hook defined.
25519
25520 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
25521             Jack Howarth  <howarth@bromo.med.uc.edu>
25522             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
25523
25524         PR target/42982
25525         Partial revert of unintended change in fix for PR41605.
25526         * config/darwin.h: Fix typo.
25527         * config/darwin9.h: Same.
25528
25529 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
25530
25531         * c-pch.c (pch_init): Clear v.
25532
25533 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
25534
25535         PR middle-end/42930
25536         * graphite-scop-detection.c (graphite_can_represent_scev): Call
25537         graphite_can_represent_init for MULT_EXPR.
25538
25539 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
25540
25541         PR middle-end/42914
25542         PR middle-end/42530
25543         * graphite-sese-to-poly.c (remove_phi): New.
25544         (translate_scalar_reduction_to_array): Call remove_phi.
25545
25546 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
25547
25548         PR middle-end/42771
25549         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
25550         * graphite-clast-to-gimple.h (gloog): Update declaration.
25551         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
25552         * graphite-poly.h (struct poly_bb): Add missing comments.
25553         (struct scop): Add poly_scop_p field.
25554         (POLY_SCOP_P): New.
25555         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
25556         * graphite.c (graphite_transform_loops): Build the polyhedral
25557         representation for each scop before code generation.
25558         * sese.c (rename_variables_in_operand): Removed.
25559         (rename_variables_in_expr): Return the renamed expression.
25560         (rename_sese_parameters): New.
25561         * sese.h (rename_sese_parameters): Declared.
25562
25563 2010-02-11  Richard Guenther  <rguenther@suse.de>
25564
25565         PR tree-optimization/42998
25566         * tree-ssa-pre.c (create_expression_by_pieces): Treat
25567         POINTER_PLUS_EXPR properly.
25568
25569 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
25570             Changpeng Fang  <changpeng.fang@amd.com>
25571
25572         PR middle-end/40886
25573         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
25574         the cost of an IV candidate when the IV is used in a test against zero.
25575
25576         * gcc.dg/tree-ssa/ivopts-3.c: New.
25577
25578 2010-02-11  Richard Guenther  <rguenther@suse.de>
25579
25580         PR lto/41664
25581         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
25582         pointer-vs-decl case by swapping refs.  Handle some cases
25583         of pointer-vs-decl disambiguations more conservatively.
25584         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
25585         to false after expanding.
25586
25587 2010-02-11  Richard Guenther  <rguenther@suse.de>
25588
25589         PR driver/43021
25590         * gcc.c (process_command): Handle LTO file@offset case more
25591         appropriately.
25592
25593 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
25594
25595         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
25596         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
25597         of DEBUG_INSNs.
25598         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
25599
25600         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
25601         if MEM's mode size isn't DWARF2_ADDR_SIZE.
25602         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
25603         Optimize eq/ne comparisons when both arguments are known to be
25604         zero-extended.
25605         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
25606         Don't mask operands unnecessarily if they are known to be already
25607         zero-extended.
25608
25609 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
25610
25611         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
25612         instead of loop.
25613
25614 2010-02-10  Richard Guenther  <rguenther@suse.de>
25615
25616         PR tree-optimization/43017
25617         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
25618         for wrapping signed arithmetic.
25619
25620 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
25621
25622         PR debug/43010
25623         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
25624         if no debug info should be emitted for it.
25625
25626 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
25627
25628         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
25629         note when flag_exceptions is set.
25630
25631 2010-02-10  Duncan Sands  <baldrick@free.fr>
25632
25633         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
25634
25635 2010-02-10  Richard Guenther  <rguenther@suse.de>
25636
25637         PR c/43007
25638         * tree.c (get_unwidened): Handle constants.
25639         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
25640
25641 2010-02-10  Martin Jambor  <mjambor@suse.cz>
25642
25643         PR lto/42985
25644         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
25645         check for variable argument counts independently.
25646
25647 2010-02-10  Christian Bruel  <christian.bruel@st.com>
25648
25649         PR target/42841
25650         * config/sh/sh.c (find_barrier): Increase length for non delayed
25651         conditional branches.
25652
25653 2010-02-10  Christian Bruel  <christian.bruel@st.com>
25654
25655         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
25656
25657 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
25658
25659         * builtins.c (set_builtin_user_assembler_name): Also handle
25660         ffs if int is smaller than word.
25661
25662 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
25663
25664         PR middle-end/42973
25665         * ira-conflicts.c (get_dup): Remove.
25666         (process_reg_shuffles): Add new parameter.  Use it as an
25667         additional guard for copy generation.
25668         (add_insn_allocno_copies): Rewrite.
25669
25670 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
25671
25672         * common.opt (fsched2-use-traces): Preserved for backward
25673         compatibility.
25674         * doc/invoke.texi: Remove the documentation about option
25675         -fsched2-use-traces.
25676         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
25677         flag_sched2_use_traces.
25678         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
25679         the backward compatibility flag section.
25680
25681 2010-02-09  Richard Guenther  <rguenther@suse.de>
25682
25683         PR tree-optimization/43008
25684         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
25685         make HEAP variables initialized from global memory if they
25686         are not known builtin functions.
25687         (find_func_aliases): Adjust.
25688
25689 2010-02-09  Richard Guenther  <rguenther@suse.de>
25690
25691         PR tree-optimization/43000
25692         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
25693         arithmetic manually.
25694
25695 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
25696
25697         PR tree-optimization/42931
25698         * tree-loop-linear.c (try_interchange_loops): Don't call
25699         double_int_mul if estimated_loop_iterations failed.
25700
25701 2010-02-08  Martin Jambor  <mjambor@suse.cz>
25702
25703         PR middle-end/42898
25704         * tree-sra.c (build_accesses_from_assign): Do not mark in
25705         should_scalarize_away_bitmap if stmt has volatile ops.
25706         (sra_modify_assign): Do not process assigns piecemeal if if stmt
25707         has volatile ops.
25708
25709 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
25710
25711         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
25712
25713 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
25714
25715         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
25716         before the pattern.
25717
25718 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
25719
25720         PR middle-end/42946
25721         * df-core.c (df_finish_pass): Change type of saved_flags to int.
25722
25723 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
25724
25725         PR middle-end/42988
25726         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
25727         to unknown_dependence.
25728         (graphite_legal_transform_dr): Handle the unknown_dependence.
25729         (graphite_carried_dependence_level_k): Same.
25730
25731 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
25732
25733         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
25734
25735 2010-02-07  Richard Guenther  <rguenther@suse.de>
25736
25737         PR middle-end/42991
25738         * expr.c (get_inner_reference): Always initialize *pbitsize.
25739
25740 2010-02-07  Richard Guenther  <rguenther@suse.de>
25741
25742         PR middle-end/42956
25743         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
25744         new ARRAY_REFs on variable size element or minimal index arrays.
25745         Complete.
25746         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
25747         gimple_fold_indirect_ref.
25748
25749 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
25750
25751         PR target/42957
25752         * arm.c (arm_override_options): Just return if the user has specified
25753         an invalid fpu name.
25754
25755 2010-02-03  Jason Merrill  <jason@redhat.com>
25756
25757         PR c++/42870
25758         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
25759         i386_pe_maybe_record_exported_symbol.
25760
25761 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
25762
25763         PR target/42924
25764         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
25765         (pa_delegitimize_address): New function.
25766
25767 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
25768
25769         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
25770         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
25771
25772 2010-02-05  Richard Guenther  <rguenther@suse.de>
25773
25774         PR lto/42762
25775         * lto-streamer-in.c (get_resolution): Deal with references
25776         to undefined functions.
25777
25778 2010-02-05  Richard Guenther  <rguenther@suse.de>
25779
25780         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
25781         (fold_const_aggregate_ref): Likewise.
25782         (ccp_fold_stmt): Substitute loads.
25783         (maybe_fold_reference): Verify types before substituting.
25784         Unshare properly.
25785         (fold_gimple_assign): Unshare properly.
25786         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
25787
25788 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
25789
25790         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
25791         for rs6000_gen_cell_microcode.
25792
25793 2010-02-04  Richard Guenther  <rguenther@suse.de>
25794
25795         PR rtl-optimization/42952
25796         * dse.c (const_or_frame_p): Remove MEM handling.
25797
25798 2010-02-04  Nick Clifton  <nickc@redhat.com>
25799
25800         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
25801         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
25802         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
25803         (mn10300_asm_output_mi_thunk): New function.
25804         (mn10300_can_output_mu_thunk): New function.
25805         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
25806         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
25807         (FUNCTION_ARG): Delete incorrect comment.
25808
25809 2010-02-03  Jason Merrill  <jason@redhat.com>
25810
25811         PR c++/40138
25812         * fold-const.c (operand_equal_p): Handle erroneous types.
25813
25814 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
25815
25816         * config/h8300/h8300.md (can_delay): Fix attibute condition.
25817
25818 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
25819
25820         PR rtl-optimization/42941
25821         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
25822         of xmalloc.
25823
25824 2010-02-03  Jason Merrill  <jason@redhat.com>
25825
25826         PR c++/35652
25827         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
25828
25829 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
25830
25831         PR debug/42896
25832         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
25833         (cselib_reset_table): Renamed from...
25834         (cselib_reset_table_with_next_value): ... this.
25835         (cselib_get_next_uid): Renamed from...
25836         (cselib_get_next_unknown_value): ... this.
25837         * cselib.c (next_uid): Renamed from...
25838         (next_unknown_value): ... this.
25839         (cselib_clear_table): Adjust.
25840         (cselib_reset_table): Adjust.  Renamed from...
25841         (cselib_reset_table_with_next_value): ... this.
25842         (cselib_get_next_uid): Adjust.  Renamed from...
25843         (cselib_get_next_unknown_value): ... this.
25844         (get_value_hash): Use hash.
25845         (cselib_hash_rtx): Likewise.
25846         (new_cselib_val): Adjust.  Set and dump uid.
25847         (cselib_lookup_mem): Pass next_uid as hash.
25848         (cselib_subst_to_values): Likewise.
25849         (cselib_log_lookup): Dump uid.
25850         (cselib_lookup): Pass next_uid as hash.  Adjust.
25851         (cselib_process_insn): Adjust.
25852         (cselib_init): Initialize next_uid.
25853         (cselib_finish): Adjust.
25854         (dump_cselib_table): Likewise.
25855         * dse.c (canon_address): Dump value uid.
25856         * print-rtl.c (print_rtx): Print value uid.
25857         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
25858         (dvuid): New type.
25859         (dv_uid): New function, sort of renamed from...
25860         (dv_htab_hash): ... this, reimplemented in terms of it and...
25861         (dv_uid2hash): ... this.  New.
25862         (variable_htab_eq): Drop excess assertions.
25863         (tie_break_pointers): Removed.
25864         (canon_value_cmp): Compare uids.
25865         (variable_post_merge_New_vals): Print uids.
25866         (vt_add_function_parameters): Adjust.
25867         (vt_initialize): Reset table.  Adjust.
25868
25869 2010-02-03  Richard Guenther  <rguenther@suse.de>
25870
25871         PR tree-optimization/42944
25872         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
25873         (call_may_clobber_ref_p_1): Likewise.  Properly handle
25874         malloc and calloc clobbering errno.
25875
25876 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
25877
25878         * doc/invoke.texi: Fix name of sched1 dump.
25879
25880         * opts.c (decode_options): Set flag_tree_switch_conversion
25881         only conditionally on optimize >= 2.
25882
25883         * gcse.c: Assorted comment fixes in pass description.
25884
25885 2010-02-03  Anthony Green  <green@moxielogic.com>
25886
25887         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
25888         nop padding in order to maintain alignment of storage location of
25889         target function address.
25890         (moxie_trampoline_init): Store target function address at newly
25891         aligned location.
25892         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
25893         to 32.
25894         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
25895
25896 2010-02-03  Richard Guenther  <rguenther@suse.de>
25897
25898         PR middle-end/42927
25899         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
25900
25901 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25902
25903         * config.gcc: Reenable check for obsolete targets.
25904         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
25905         mips-sgi-irix6.[0-4]*.
25906
25907 2010-02-02  Nick Clifton  <nickc@redhat.com>
25908
25909         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
25910         constant size of 4 as being the same as 0.
25911         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
25912         can take values in the range 0..4.
25913
25914 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
25915
25916         PR java/41991
25917         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
25918         as _darwin10_Unwind_FindEnclosingFunction().
25919         * libgcc-libsystem.ver: New.
25920
25921 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
25922
25923         PR target/41399
25924         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
25925         implicitly set registers.
25926
25927 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
25928
25929         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
25930         (arm_override_options): Allow automatic selection of the thread
25931         pointer register if thumb2.
25932         (legitimize_pic_address): Improve code sequences for Thumb2.
25933         (arm_call_tls_get_addr): Likewise.
25934         (legitimize_tls_address): Likewise.
25935         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
25936         (pic_load_addr_32bit): ... this.  New named pattern.
25937         * thumb2.md (pic_load_addr_thumb2): Delete.
25938         (pic_load_dot_plus_four): Delete.
25939         (tls_load_dot_plus_four): New named pattern.
25940
25941 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25942
25943         PR libgomp/29986
25944         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
25945         Document fix for TLS bug.
25946
25947 2010-01-31  Richard Guenther  <rguenther@suse.de>
25948
25949         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
25950         conservatively correct.
25951
25952 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25953
25954         PR target/42850
25955         Revert:
25956         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25957
25958         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
25959
25960 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25961
25962         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
25963
25964 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
25965
25966         * config.gcc: Adjust order of makefile fragments for mingw targets.
25967
25968 2010-01-31  Richard Guenther  <rguenther@suse.de>
25969
25970         PR middle-end/42898
25971         * gimplify.c (gimplify_init_constructor): For volatile LHS
25972         initialize a temporary.
25973
25974 2010-01-31  Matthias Klose  <doko@ubuntu.com>
25975
25976         * configure.ac: Fix __stack_chk_fail check for cross builds configured
25977         --with-headers
25978         * configure: Regenerate.
25979
25980 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
25981
25982         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
25983         the same alias set and their sizes different constantness.
25984         (aliasing_component_refs_p): Revert 2009-10-24 change.
25985
25986 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25987
25988         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
25989         unused.
25990
25991 2010-01-29  Richard Guenther  <rguenther@suse.de>
25992
25993         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
25994         Assert we successfully updated the call.
25995
25996 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
25997
25998         PR rtl-optimization/42889
25999         * df.h (df_set_bb_dirty_nonlr): New prototype.
26000         * df-core.c (df_set_bb_dirty_nonlr): New function.
26001         * df-scan.c (df_insn_rescan): Call it instead of
26002         df_set_bb_dirty for DEBUG_INSNs.
26003
26004 2010-01-29  Richard Guenther  <rguenther@suse.de>
26005
26006         PR middle-end/37448
26007         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
26008         quadratic behavior in most cases.
26009
26010 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
26011
26012         PR target/42891
26013         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
26014         in the call to gen_x86_movsicc_0_m1.
26015
26016 2010-01-28  Richard Guenther  <rguenther@suse.de>
26017
26018         PR tree-optimization/42871
26019         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
26020
26021 2010-01-28  Richard Guenther  <rguenther@suse.de>
26022
26023         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
26024         into call arguments.
26025
26026 2010-01-28  Richard Guenther  <rguenther@suse.de>
26027
26028         PR middle-end/42883
26029         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
26030         the forwarder if the destination is an EH landing pad.
26031
26032 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
26033
26034         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
26035         block list passed to gimple_duplicate_sese_tail.
26036         (parallelize_loops): Avoid parallelization when the function
26037         has_nonlocal_label.
26038         Avoid parallelization when the preheader is IRREDUCIBLE.
26039         Try to optimize when estimated_loop_iterations_int is unresolved.
26040         Add the loop's location to the dump file.
26041         * tree-cfg.c (add_phi_args_after_redirect): Remove.
26042         (gimple_duplicate_sese_tail): Remove the check for the latch.
26043         Redirect nexits to the exit block.
26044         Remove handling of the incoming edges to the latch.
26045         Redirect the backedge from the copied latch to the exit bb.
26046
26047 2010-01-28  Michael Matz  <matz@suse.de>
26048
26049         PR target/42881
26050         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
26051         Wrap force_reg into a sequence, emit it before user.
26052
26053 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
26054
26055         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
26056         (arm_rev): New.
26057         (arm_legacy_rev): Likewise.
26058         (thumb_legacy_rev): Likewise.
26059
26060 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
26061
26062         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
26063         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
26064         on MEM's address failed, try avoid_constant_pool_reference and
26065         recurse if it returned something different.
26066         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
26067         address, try avoid_constant_pool_reference and recurse if it
26068         returned something different.
26069         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
26070         address and avoid_constant_pool_reference returned something
26071         different, don't set have_address.
26072
26073 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
26074
26075         PR debug/42861
26076         * var-tracking.c (val_store): Add modified argument, obey it.
26077         Adjust callers.
26078         (count_uses): Move down logging of main.
26079         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
26080         don't need resolution.
26081         (emit_notes_in_bb): Likewise.
26082
26083 2010-01-27  Richard Guenther  <rguenther@suse.de>
26084
26085         PR middle-end/42878
26086         * tree-inline.c (remap_decl): Delay remapping of SSA name
26087         default definitions until we need them.
26088
26089 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
26090
26091         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
26092         (rs6000_delegitimize_address): New function.
26093
26094         * config/s390/s390.c (s390_delegitimize_address): Call
26095         delegitimize_mem_from_attrs.
26096
26097         PR middle-end/42874
26098         * tree-inline.c (cannot_copy_type_1): Removed.
26099         (copy_forbidden): Don't forbid copying of functions containing
26100         records/unions with variable length fields.
26101
26102 2010-01-27  Christian Bruel  <christian.bruel@st.com>
26103
26104         Revert:
26105         PR target/42841
26106         * config/sh/sh.c (find_barrier): Increase length for non delayed
26107         conditional branches.
26108
26109 2010-01-27  Matthias Klose  <doko@ubuntu.com>
26110
26111         * configure.ac (gnu-unique-object): Fix ldd version check.
26112         * configure: Regenerate.
26113
26114 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26115
26116         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
26117         HAVE_GNU_AS value.
26118         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
26119         Test for HAVE_GNU_AS value.
26120
26121 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26122
26123         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
26124         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
26125         INT64_TYPE): Define.
26126         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
26127         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
26128         INT_LEAST64_TYPE): Define.
26129         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
26130         UINT_LEAST64_TYPE): Define.
26131         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
26132         INT_FAST64_TYPE): Define.
26133         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
26134         UINT_FAST64_TYPE): Define.
26135         (INTMAX_TYPE, UINTMAX_TYPE): Define.
26136         (INTPTR_TYPE, UINTPTR_TYPE): Define.
26137         (SIG_ATOMIC_TYPE): Define.
26138
26139 2010-01-26  Richard Guenther  <rguenther@suse.de>
26140
26141         * df-scan.c (df_scan_set_bb_info): Remove assert.
26142         (df_insn_rescan_debug_internal): Merge asserts.
26143         (df_install_ref): Likewise.
26144         (df_mark_reg): Use bitmap_set_range.
26145         (df_hard_reg_used_p): Remove assert.
26146         (df_hard_reg_used_count): Likewise.
26147
26148 2010-01-26  Richard Guenther  <rguenther@suse.de>
26149
26150         PR rtl-optimization/42685
26151         * web.c (web_main): Ignore DEBUG_INSNs.
26152
26153 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
26154
26155         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
26156
26157         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
26158         Fix types of fndecl and arglist parameters.
26159
26160 2010-01-26  Richard Guenther  <rguenther@suse.de>
26161
26162         PR middle-end/42806
26163         * tree-eh.c (unsplit_eh): Skip debug insns.
26164
26165 2010-01-26  Richard Guenther  <rguenther@suse.de>
26166
26167         PR tree-optimization/42250
26168         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
26169
26170 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
26171
26172         PR fortran/42866
26173         * omp-low.c (expand_omp_sections): Only use single_pred if
26174         l2_bb is single_pred_p.
26175
26176 2010-01-25  Christian Bruel  <christian.bruel@st.com>
26177
26178         PR target/42841
26179         * config/sh/sh.c (find_barrier): Increase length for non delayed
26180         conditional branches.
26181         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
26182
26183 2010-01-24  David S. Miller  <davem@davemloft.net>
26184
26185         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
26186         define if not using GAS.
26187         * config/sparc/sparc.c (sparc_elf_asm_named_section):
26188         Likewise.  Delete SECTION_MERGE code, which is only applicable
26189         when using GAS.
26190
26191 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
26192
26193         PR c++/42748
26194         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
26195         mangling of va_list in system headers.
26196
26197 2010-01-23  Toon Moene  <toon@moene.org>
26198
26199         * tree-predcom.c (combine_chains): Return NULL, not false.
26200
26201 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
26202
26203         * tree-loop-distribution.c (distribute_loop): Fix declaration and
26204         initialization of variable res to agree with return type.
26205
26206 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
26207
26208         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
26209         * tree-sra.c: Add include of expr.h.
26210
26211 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
26212
26213         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
26214         insert the debug stmt on the single non-EH edge from the stmt.
26215
26216 2010-01-22  Richard Henderson  <rth@redhat.com>
26217
26218         PR tree-opt/42833
26219         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
26220         the RHS until after generate_subtree_copies has insertted its
26221         code before the current statement.
26222
26223 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
26224
26225         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
26226
26227         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
26228
26229 2010-01-21  Martin Jambor  <mjambor@suse.cz>
26230
26231         PR tree-optimization/42585
26232         * tree-sra.c (struct access): New field grp_total_scalarization.
26233         (dump_access): Dump the new field.
26234         (should_scalarize_away_bitmap): New variable.
26235         (cannot_scalarize_away_bitmap): Likewise.
26236         (sra_initialize): Allocate new bitmaps.
26237         (sra_deinitialize): Free new bitmaps.
26238         (create_access_1): New function.
26239         (create_access): Parts moved to create_access_1.
26240         (type_consists_of_records_p): New function.
26241         (completely_scalarize_record): Likewise.
26242         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
26243         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
26244         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
26245         access.
26246         (analyze_all_variable_accesses): Completely scalarize small eligible
26247         records.
26248
26249 2010-01-21  Martin Jambor  <mjambor@suse.cz>
26250
26251         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
26252
26253 2010-01-21  Andrew Haley  <aph@redhat.com>
26254
26255         * gcc.c (process_command): Move lang_specific_driver before
26256         setting cc_libexec_prefix.
26257
26258 2010-01-21  Richard Guenther  <rguenther@suse.de>
26259
26260         PR middle-end/19988
26261         * fold-const.c (negate_expr_p): Pretend only negative
26262         real constants are easily negatable.
26263
26264 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
26265             Jason Merrill  <jason@redhat.com>
26266
26267         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
26268         (TYPE_TRANSPARENT_AGGR): this, for union and record.
26269         * calls.c (initialize argument_information): Handle it.
26270         * c-common.c (handle_transparent_union_attribute): Use new name.
26271         * c-decl.c (finish_struct): Ditto.
26272         * c-typeck.c (type_lists_compatible_p): Ditto.
26273         (convert_for_assignment): Use new name and also handle record.
26274         * function.c (aggregate_value_p): Handle it.
26275         (pass_by_reference): Ditto.
26276         (assign_parm_data_types): Ditto.
26277         * print-tree.c (print_node): Ditto.
26278         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
26279         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
26280         * tree.c (first_field): New fn.
26281
26282 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
26283
26284         PR target/42818
26285         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
26286         even when linking statically, for now.
26287
26288 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
26289
26290         PR debug/42715
26291         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
26292         without a cselib val.
26293         (count_uses): Accept MO_VAL_SET with no val on stores.
26294         (add_stores): Likewise.
26295
26296 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
26297
26298         * var-tracking.c (check_value_val): Add a compile time assertion.
26299         (dv_is_decl_p): Simplify.
26300         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
26301         gcc_assert if ENABLE_CHECKING.
26302
26303 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
26304
26305         PR debug/42782
26306         * var-tracking.c: Include tree-flow.h.
26307         (mem_dies_at_call): New.
26308         (dataflow_set_preserve_mem_locs): Use it.
26309         (dataflow_set_remove_mem_locs): Likewise.
26310         (dump_var): Renamed from dump_variable.  Adjust all callers.
26311         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
26312         * Makefile.in (var-tracking.o): Adjust deps.
26313
26314 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
26315
26316         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
26317
26318 2010-01-20  Richard Guenther  <rguenther@suse.de>
26319
26320         PR tree-optimization/42717
26321         * tree-ssa-dce.c (get_live_post_dom): Remove.
26322         (forward_edge_to_pdom): Take an arbitrary edge to copy
26323         degenerate PHI args from.
26324         (remove_dead_stmt): Use the first post-dominator even if it
26325         does not contain live statements as redirection destination.
26326
26327 2010-01-20  Richard Guenther  <rguenther@suse.de>
26328
26329         * tree-inline.c (estimate_num_insns): Handle EH builtins.
26330
26331 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
26332
26333         * sel-sched.c (create_speculation_check): Remove set but not used
26334         variable twin.
26335         (try_transformation_cache): Remove set but not used variable ds.
26336         (calculate_privileged_insns): Remove set but not used variables
26337         cur_insn and min_spec_insn.
26338         (find_best_expr): Remove set but not used variable avail_n.
26339         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
26340         variable e.
26341         * cgraphunit.c (assemble_thunk): Remove set but not used variable
26342         false_label.
26343         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
26344         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
26345         new_scop_exit_edge.
26346
26347 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
26348
26349         PR bootstrap/42786
26350         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
26351         cpu types.  Add support for *-sse3 cpu types.
26352         (x86_64-*-*): Ditto.
26353
26354 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
26355
26356         PR middle-end/42803
26357         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
26358         argument, call initializer_constant_valid_p_1 instead of
26359         initializer_constant_valid_p, pass CACHE to it, return NULL
26360         immediately if first call returns NULL.
26361         (initializer_constant_valid_p_1): New function.
26362         (initializer_constant_valid_p): Use it.
26363
26364 2010-01-20  Thomas Quinot  <quinot@adacore.com>
26365
26366         * tree.def (PLACEHOLDER_EXPR): Fix comment.
26367
26368 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
26369
26370         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
26371         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
26372         (loc_list_from_tree): Don't handle unsigned division.  Handle
26373         signed modulo using DW_OP_{over,over,div,mul,minus}.
26374         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
26375         modulo instead of signed.
26376
26377 2010-01-20  DJ Delorie  <dj@redhat.com>
26378
26379         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
26380         (Fpa): Pass it
26381         (h8300_emit_stack_adjustment): Propogate it.
26382         (push): Pass it.
26383         (h8300_expand_prologue): Likewise.
26384         (h8300_expand_epilogue): Likewise.
26385
26386 2010-01-19  Michael Matz  <matz@suse.de>
26387
26388         PR tree-optimization/41783
26389         * tree-data-ref.c (toplevel): Include flags.h.
26390         (dump_data_dependence_relation):  Also dump the inputs if the
26391         result will be unknown.
26392         (split_constant_offset_1): Look through some conversions.
26393         * tree-predcom.c (determine_roots_comp): Restart a new chain if
26394         the offset from last element is too large.
26395         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
26396         (reassociate_to_the_same_stmt): Handle vector registers.
26397         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
26398         (e.g. conversions).
26399         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
26400         wide_prolog_niters argument, emit widening instructions.
26401         (vect_do_peeling_for_alignment): Adjust caller, use widened
26402         variant of the iteration cound.
26403         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
26404
26405 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26406
26407         PR target/38697
26408         * config/arm/neon-testgen.m (emit_automatics): New parameter
26409         features. Adjust for Fixed_return_reg feature.
26410         (test_intrinsic): Call emit_automatics with new feature.
26411         * config/arm/neon.ml: Update copyright years.
26412         (features): New Fixed_return_reg feature.
26413         (ops): Update feature for Vget_low.
26414
26415 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
26416
26417         PR tree-optimization/42719
26418         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
26419         stmt uses.
26420
26421         PR debug/42728
26422         * fwprop.c (all_uses_available_at): Return false if def_set dest
26423         is a REG that is used in def_insn.
26424
26425 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
26426
26427         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
26428
26429         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
26430         Add argument names.
26431
26432         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
26433
26434         * target.h (struct gcc_target) <secondary_reload>: Change type
26435         of last argument to secondary_reload_info *.
26436
26437 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
26438
26439         PR target/42774
26440         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
26441         memory references with unaligned offsets.  Remove CQImode handling.
26442         (unaligned_memory_operand): Return 1 for memory references with
26443         unaligned offsets.  Remove CQImode handling.
26444
26445 2010-01-18  Richard Guenther  <rguenther@suse.de>
26446
26447         PR middle-end/39954
26448         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
26449         builtin calls.
26450
26451 2010-01-18  Richard Guenther  <rguenther@suse.de>
26452
26453         PR tree-optimization/42781
26454         * tree-ssa-structalias.c (find_what_var_points_to): Skip
26455         restrict processing only if the original variable was artificial.
26456
26457 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
26458
26459         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
26460         find number of popped argument bytes.
26461
26462         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
26463         Fix the text that describes the return value for invalid insns.
26464
26465         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
26466
26467         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
26468         Clarify what 'cost of the -dependence' is.  Fix quoting.
26469
26470         * toplev.c (default_get_pch_validity): Rename argument to "sz".
26471         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
26472
26473 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
26474
26475         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
26476         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
26477
26478 2010-01-17  Richard Guenther  <rguenther@suse.de>
26479
26480         PR middle-end/42248
26481         * function.c (split_complex_args): Take a VEC to modify.
26482         (assign_parms_augmented_arg_list): Build a VEC instead of
26483         a chain of PARM_DECLs.
26484         (assign_parms_unsplit_complex): Take a VEC of arguments.
26485         Do not fixup unmodified parms.
26486         (assign_parms): Deal with the VEC.
26487         (gimplify_parameters): Likewise.
26488
26489 2010-01-17  Richard Guenther  <rguenther@suse.de>
26490
26491         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
26492         node existence check.
26493         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
26494         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
26495         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
26496         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
26497         (gimple_execute_on_growing_pred): Likewise.
26498
26499 2010-01-17  Richard Guenther  <rguenther@suse.de>
26500
26501         PR tree-optimization/42773
26502         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
26503         (compute_antic_aux): Likewise.
26504         (compute_partial_antic_aux): Likewise.
26505
26506 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
26507
26508         PR debug/42767
26509         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
26510         and US_TRUNCATE.
26511
26512 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
26513
26514         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
26515         appearance.
26516
26517         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
26518         Fix markup for strict argument.
26519
26520         (TARGET_SCHED_REORDER2): Fix argument types.
26521
26522         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
26523         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
26524
26525         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
26526         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
26527
26528         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
26529         Add argument name.
26530
26531         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
26532         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
26533         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
26534         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
26535         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
26536
26537         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
26538
26539         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
26540
26541         (TARGET_ASM_RELOC_RW_MASK): Add return type.
26542         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
26543
26544         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
26545
26546         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
26547         Use prototype.
26548
26549         (TARGET_ASM_NAMED_SECTION): Fix argument list.
26550
26551         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
26552         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
26553
26554         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
26555
26556         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
26557
26558         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
26559         referring to it.  Fix language.
26560
26561         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
26562
26563         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
26564
26565         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
26566
26567         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
26568
26569         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
26570         '@var{stream}.  Remove stray 'and'.
26571
26572         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
26573
26574         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
26575
26576         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
26577
26578         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
26579         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
26580
26581         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
26582         Fix description of return value.
26583         Rename argument "sz" to "len."
26584
26585         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
26586         Clarify meaning of 'true' return value.
26587
26588         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
26589
26590         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
26591         rep_mode versus mode_rep.
26592
26593         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
26594
26595         (TARGET_BUILTIN_DECL): Fix name.
26596
26597         (TARGET_COMMUTATIVE_P): Fix type of first argument.
26598
26599         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
26600
26601         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
26602
26603         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
26604
26605         (TARGET_RELAXED_ORDERING): Use @deftypevr.
26606
26607         (TARGET_GET_DRAP_RTX): Note that this is a hook.
26608         Clarify language.
26609
26610         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
26611         Rename argument tm_fn to md_fn.
26612
26613         (TARGET_OPTION_PRINT): Fix argument list.
26614
26615 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
26616
26617         PR target/42664
26618         * config/i386/i386.c (ix86_fixup_binary_operands):
26619         Revert FMA4 fixup of operands.
26620
26621 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26622
26623         PR gcc/42525
26624         * Makefile.in (write_entries_to_file, install-plugin):
26625         Use \012 instead of \n with tr.
26626
26627 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
26628
26629         * configure.ac (HAVE_AS_REF): New C macro.
26630         * configure: Regenerate.
26631         * config.in: Likewise.
26632         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
26633         if HAVE_AS_REF.
26634         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
26635         if HAVE_AS_REF.
26636
26637 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
26638
26639         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
26640
26641         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
26642
26643         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
26644
26645         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
26646
26647         (TARGET_IN_SMALL_DATA_P): Fix argument type.
26648
26649         (TARGET_BINDS_LOCAL_P): Fix argument type.
26650
26651         (TARGET_ASM_FILE_END): Use prototype.
26652
26653         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
26654
26655         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
26656
26657         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
26658
26659         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
26660
26661         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
26662         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
26663
26664         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
26665         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
26666
26667         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
26668         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
26669         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
26670         (TARGET_ADDR_SPACE_CONVERT): Likewise.
26671
26672         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
26673
26674         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
26675
26676         (TARGET_INIT_BUILTINS): Use prototype.
26677
26678         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
26679         Put 'const char *' in braces.  Fix parameter types.
26680         (TARGET_INVALID_CONVERSION): Fix parameter types.
26681         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
26682         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
26683
26684         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
26685         Fix argument type.
26686
26687         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
26688
26689         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
26690
26691 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
26692
26693         * doc/tm.texi (TARGET_HELP): Fix return type.
26694
26695         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
26696         in braces.  Fix argument types.
26697
26698         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
26699
26700         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
26701
26702         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
26703
26704         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
26705         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
26706
26707         (TARGET_MANGLE_TYPE): Fix argument types.
26708
26709         (TARGET_IRA_COVER_CLASSES): Use prototype.
26710
26711         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
26712
26713         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
26714
26715         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
26716
26717         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
26718
26719         (TARGET_CALLEE_COPIES): Fix argument types.
26720
26721         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
26722
26723         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
26724
26725         (TARGET_FUNCTION_VALUE): Fix argument types.
26726
26727         (TARGET_RETURN_IN_MSB): Fix argument type.
26728
26729         (TARGET_RETURN_IN_MEMORY): Fix argument types.
26730
26731         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
26732
26733         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
26734
26735         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
26736         agree with return type.
26737
26738         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
26739
26740 2010-01-15  Jing Yu  <jingyu@google.com>
26741
26742         PR rtl-optimization/42691
26743         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
26744         a pseudo to a constant and are merged, and adjust comments.
26745
26746 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
26747
26748         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
26749
26750 2010-01-15  Richard Guenther  <rguenther@suse.de>
26751
26752         PR middle-end/42739
26753         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
26754         labels of computed or non-local gotos to the destination.
26755         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
26756         landing pad label is the first label.
26757
26758 2010-01-15  Richard Guenther  <rguenther@suse.de>
26759
26760         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
26761
26762 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
26763
26764         PR target/42747
26765         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
26766         to allow generation of the xssqrtdp instruction on power7.
26767         (sqrtdf2_fpr): Ditto.
26768
26769 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
26770
26771         PR middle-end/42674
26772         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
26773         functions with noreturn attribute.
26774
26775         PR c++/42608
26776         * varasm.c (declare_weak): Add weak attribute to decl if it
26777         doesn't have one already.
26778         (assemble_external): Only add decls to weak_decls if they also
26779         have weak attribute.
26780
26781 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
26782
26783         * var-tracking.c (var_reg_delete): Don't delete the association
26784         between REGs and values or one-part variables if the register
26785         isn't clobbered.
26786
26787 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
26788
26789         PR debug/42657
26790         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
26791         because its first operand is a non-localized variable.
26792
26793 2010-01-14  Martin Jambor  <mjambor@suse.cz>
26794
26795         PR tree-optimization/42706
26796         * tree-sra.c (encountered_recursive_call): New variable.
26797         (encountered_unchangable_recursive_call): Likewise.
26798         (sra_initialize): Initialize both new variables.
26799         (callsite_has_enough_arguments_p): New function.
26800         (scan_function): Call decl and flags check only for IPA-SRA, check
26801         whether there is a recursive call and whether it has enough arguments.
26802         (all_callers_have_enough_arguments_p): New function.
26803         (convert_callers): Look for recursive calls only when
26804         encountered_recursive_call is set.
26805         (ipa_early_sra): Bail out either if
26806         !all_callers_have_enough_arguments_p or
26807         encountered_unchangable_recursive_call.
26808
26809 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26810
26811         * sel-sched.c: Add 2010 to copyright years.
26812         * sel-sched-ir.c: Likewise.
26813         * sel-sched-ir.h: Likewise.
26814
26815 2010-01-14  Martin Jambor  <mjambor@suse.cz>
26816
26817         PR tree-optimization/42714
26818         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
26819         constructors specially.
26820
26821 2010-01-14  Andi Kleen  <ak@linux.intel.com>
26822
26823         * config/i386/drivers-i386.c (detect_caches_intel):
26824         Add l2sizekb parameter and fill in.
26825         (host_detect_local_cpu): Add l2sizekb, fill in.
26826         Add Atom small cache heuristic.
26827
26828 2010-01-14  Andi Kleen  <ak@linux.intel.com>
26829
26830         * config/i386/drivers-i386.c (detect_caches_cpuid4):
26831         Add level3 parameter and fill in.
26832         (detect_caches_intel): Handle level3 cache.
26833
26834 2010-01-14  Andi Kleen  <ak@linux.intel.com>
26835
26836         * config/i386/drivers-i386.c (host_detect_local_cpu):
26837         Fix core duo detection.
26838
26839 2010-01-14  Andi Kleen  <ak@linux.intel.com>
26840
26841         * config/i386/drivers-i386.c (host_detect_local_cpu):
26842         Fix Atom detection.
26843
26844 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26845
26846         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
26847         (rs6000_variable_issue_1): this.  Use...
26848         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
26849
26850 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26851
26852         * sel-sched-ir.c (sel_restore_other_notes): Rename to
26853         sel_restore_notes.  Update all callers.  Call reemit_notes
26854         for all insns.
26855
26856 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26857
26858         PR rtl-optimization/42246
26859         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
26860         loops.
26861
26862 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26863
26864         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
26865         all successors is the same as number of successors in current region.
26866
26867 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26868
26869         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
26870         to rename is not separable.  Otherwise check that its LHS is not NULL.
26871
26872 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26873
26874         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
26875
26876 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26877
26878         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
26879         available registers when failed to discover LHS register class.
26880         Fix indentation.  Update comment.
26881
26882 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26883             Alexander Monakov  <amonakov@ispras.ru>
26884
26885         PR rtl-optimization/42389
26886         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
26887         to can_issue_more.
26888         (advance_state_on_fence): Likewise.
26889         (sel_target_adjust_priority): Print debug output only when
26890         sched_verbose >= 4, not 2.
26891         (get_expr_cost): Do not issue all unique insns on the next cycle.
26892         (fill_insns): Initialize can_issue_more from the value saved
26893         with the fence.
26894         * sel-sched-ir.c (flist_add): New parameter issue_more.
26895         Init FENCE_ISSUE_MORE with it.
26896         (merge_fences): Likewise.
26897         (init_fences): Update call to flist_add.
26898         (add_to_fences, add_clean_fence_to_fences)
26899         (add_dirty_fence_to_fences): Likewise.
26900         (move_fence_to_fences): Update call to merge_fences.
26901         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
26902         sched groups.
26903         * sel-sched-ir.h (struct _fence): New field issue_more.
26904         (FENCE_ISSUE_MORE): New accessor macro.
26905
26906 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26907
26908         PR rtl-optimization/42388
26909         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
26910         that have no predecessors nor successors.  Do not call move_bb_info
26911         for empty blocks outside of current region.
26912
26913 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26914
26915         PR rtl-optimization/42294
26916         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
26917         * sel-sched.c (move_exprs_to_boundary): Transitively add all
26918         originators' originators.
26919
26920 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26921
26922         PR rtl-optimization/39453
26923         PR rtl-optimization/42246
26924         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
26925         for pipelining_p.
26926         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
26927
26928 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26929             Alexander Monakov  <amonakov@ispras.ru>
26930
26931         PR middle-end/42245
26932         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
26933         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
26934         argument.  Update all callers.
26935         (tidy_control_flow): ... and here.  Recompute topological order
26936         of basic blocks in region if necessary.
26937         (sel_redirect_edge_and_branch): Change return type.  Return true
26938         if topological order might have been invalidated.
26939         (purge_empty_blocks): Export and move from...
26940         * sel-sched.c (purge_empty_blocks): ... here.
26941         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
26942         (maybe_tidy_empty_bb): Delete prototype.
26943         (purge_empty_blocks): Declare.
26944
26945 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26946
26947         PR rtl-optimization/42249
26948         * sel-sched.c (try_replace_dest_reg): When chosen register
26949         and original register is the same, do not bail out early, but
26950         still check all original insns for validity of replacing destination
26951         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
26952         in this case.
26953
26954 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
26955
26956         PR c/42721
26957         Port from no-undefined-overflow branch:
26958         2009-03-09  Richard Guenther  <rguenther@suse.de>
26959
26960         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
26961
26962 2010-01-14  Richard Guenther  <rguenther@suse.de>
26963
26964         PR lto/42665
26965         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
26966
26967 2010-01-14  Ira Rosen  <irar@il.ibm.com>
26968
26969         PR tree-optimization/42709
26970         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
26971         as scalar type in creation of constant vector operand.
26972
26973 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26974
26975         PR testsuite/42414
26976         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
26977         (check-parallel-%): Match `testsuite' directory component only
26978         at the end.
26979
26980 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
26981
26982         PR translation/39521
26983         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
26984         strings with _().
26985
26986 2010-01-13  Richard Guenther  <rguenther@suse.de>
26987
26988         PR tree-optimization/42730
26989         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
26990         offset zero.
26991
26992 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
26993
26994         PR target/pr42542
26995         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
26996         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
26997         them signed.
26998
26999 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
27000
27001         * config/bfin/libgcc-bfin.ver: Regenerate based on current
27002         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
27003         ___umulsi3_highpart.
27004
27005         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
27006         rather than schedule_insns if the pass is enabled.
27007
27008 2010-01-13  Martin Jambor  <mjambor@suse.cz>
27009
27010         PR tree-optimization/42704
27011         * tree-sra.c (sra_modify_assign): Do not delete assignments to
27012         SSA_NAMEs.
27013
27014 2010-01-13  Martin Jambor  <mjambor@suse.cz>
27015
27016         PR tree-optimization/42703
27017         * tree-sra.c (analyze_access_subtree): Check that we can build a
27018         reference to the original data within the aggregate.
27019
27020 2010-01-13  Richard Guenther  <rguenther@suse.de>
27021
27022         PR tree-optimization/42705
27023         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
27024
27025 2010-01-13  Richard Guenther  <rguenther@suse.de>
27026
27027         PR middle-end/42716
27028         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
27029
27030 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
27031
27032         PR debug/41371
27033         * var-tracking.c (values_to_unmark): New variable.
27034         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
27035         values_to_unmark vector.  Moved body to...
27036         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
27037         instead queue it into values_to_unmark vector.
27038         (vt_find_locations): Free values_to_unmark vector.
27039
27040 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
27041
27042         * config/s390/s390.c (override_options): Set
27043         default of max-pending-list-length to 256
27044
27045 2010-01-13  Richard Guenther  <rguenther@suse.de>
27046
27047         PR lto/42678
27048         * tree-pass.h (PROP_gimple_lcx): New.
27049         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
27050         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
27051         before the final cleanup_eh.
27052         (dump_properties): Dump PROP_gimple_lcx.
27053         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
27054         (tree_lower_complex_O0): Remove.
27055         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
27056         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
27057         tree_lower_complex, schedule TODO_update_ssa.
27058         * lto-streamer-out.c (output_function): Stream the functions
27059         properties.
27060         * lto-streamer-in.c (input_function): Likewise.
27061         (lto_read_body): Do not override them here.
27062
27063 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
27064
27065         PR c/42708
27066         * c-typeck.c (build_c_cast): Fold value cast to union type before
27067         wrapping it in a CONSTRUCTOR.
27068
27069 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
27070
27071         PR rtl-optimization/42699
27072         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
27073         involved.
27074
27075 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27076
27077         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
27078         SUBTARGET_WARN_UNUSED_SPEC): Move ...
27079         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
27080         SUBTARGET_WARN_UNUSED_SPEC): ... here
27081         * config/mips/iris5.h (LIBGCC_SPEC): Define.
27082
27083 2010-01-12  Julian Brown  <julian@codesourcery.com>
27084
27085         * config/arm/neon-schedgen.ml (Utils): Don't try to
27086         open missing module.
27087         (find_with_result): New.
27088
27089 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
27090
27091         PR debug/42662
27092         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
27093         sharing when canonicalizing ({lt,ge}u (plus a b) b).
27094
27095         PR tree-optimization/42645
27096         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
27097         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
27098         decl_map, set processing_debug_stmt to -1 and return name without
27099         any remapping.
27100
27101 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
27102
27103         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
27104         binutils version, and reword target configuration description.
27105
27106 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
27107
27108         * config/avr/avr.h (LINKER_NAME): Remove.
27109
27110 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
27111
27112         PR target/42416
27113         * config/rs6000/rs6000.c (rs6000_override_options): On targets
27114         that support VSX, warn for -mno-altivec if vsx is not disabled,
27115         and disable vsx.
27116
27117 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
27118             Shujing Zhao  <pearly.zhao@oracle.com>
27119
27120         PR translation/42469
27121         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
27122         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
27123         character between option name and help text.
27124         * c.opt (imultilib): Likewise.
27125
27126 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
27127
27128         * lto-streamer-out.c (output_unreferenced_globals): Output static
27129         variables.
27130
27131 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
27132
27133         PR rtl-optimization/42621
27134         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
27135         optimizing for size.
27136         (duplicate_computed_gotos): Remove now-redundant check.
27137
27138 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
27139
27140         PR target/37454
27141         * configure.ac: Save and restore LDFLAGS and LIBS
27142         * configure: Regenerate.
27143
27144 2010-01-10  Richard Guenther  <rguenther@suse.de>
27145
27146         PR middle-end/42667
27147         * builtins.c (fold_builtin_strlen): Add type argument and
27148         convert the resulting length to it.
27149         (fold_builtin_1): Adjust.
27150
27151 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
27152
27153         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
27154         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
27155         1 insn.
27156         (num_insns_constant_wide): Adjust for that change.
27157
27158 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
27159
27160         PR debug/42631
27161         * web.c (union_defs): Add used argument, to combine uses of
27162         uninitialized regs.
27163         (entry_register): Adjust type and tests of used argument.
27164         (web_main): Widen used for new use.  Pass it to union_defs.
27165         * df.h (union_defs): Adjust prototype.
27166
27167 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
27168
27169         PR debug/42630
27170         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
27171         uses in new incoming argument.  Free body.
27172         (reset_debug_uses_in_loop): New.
27173         (analyze_insn_to_expand_var): Call the latter if the former found
27174         anything.  Fix whitespace.  Reject invalid dest overlaps before
27175         going through all insns in the loop.
27176
27177 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
27178
27179         PR debug/42629
27180         * haifa-sched.c (dying_use_p): Debug insns don't count.
27181
27182 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
27183
27184         PR middle-end/42363
27185         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
27186         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
27187         (verify_gimple_call): Reject LHS in noreturn calls.
27188
27189 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
27190
27191         PR debug/42604
27192         PR debug/42395
27193         * tree-vect-loop-manip.c (adjust_info): New type.
27194         (adjust_vec): New pointer to vector.
27195         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
27196         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
27197         (slpeel_update_phis_for_duplicate_loop): Use them.
27198         (slpeel_update_phi_nodes_for_guard1): Likewise.
27199         (slpeel_update_phi_nodes_for_guard2): Likewise.
27200         (slpeel_tree_peel_loop_to_edge): Likewise.
27201         (vect_update_ivs_after_vectorizer): Likewise.
27202
27203 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
27204
27205         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
27206         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
27207
27208 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
27209
27210         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
27211         bogus uninitialized warning.
27212
27213 2010-01-09  Richard Guenther  <rguenther@suse.de>
27214
27215         PR middle-end/42512
27216         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
27217         the evolution is compatible with the initial condition.
27218
27219 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
27220
27221         * gcc.c (process_command): Update copyright notice dates.
27222         * gcov.c (print_version): Likewise.
27223         * gcov-dump.c (print_version): Likewise.
27224         * mips-tfile.c (main): Likewise.
27225         * mips-tdump.c (main): Likewise.
27226
27227 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
27228
27229         PR target/41885
27230         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
27231         (rotlhi3): Delete.
27232         (rotlhi3_8): Delete.
27233         (rotlsi3): Delete.
27234         (rotlsi3_8): Delete.
27235         (rotlsi3_16): Delete.
27236         (rotlsi3_24): Delete.
27237         (rotl<mode>3): New.
27238         (*rotw<mode>3): New.
27239         (*rotb<mode>3): New.
27240         * config/avr/avr.c (avr_rotate_bytes): New function.
27241         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
27242
27243 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
27244
27245         PR target/37454
27246         * configure.ac: Modify -rdynamic check.
27247         * configure: Regenerate.
27248
27249 2010-01-08  DJ Delorie  <dj@redhat.com>
27250
27251         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
27252         register popping order.
27253
27254 2010-01-08  Richard Guenther  <rguenther@suse.de>
27255
27256         PR lto/42528
27257         * c.opt (fsigned-char): Also let LTO handle this option.
27258         (funsigned-char): Likewise.
27259
27260 2010-01-07  Richard Guenther  <rguenther@suse.de>
27261
27262         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
27263         (gimple_op): Likewise.
27264         (gimple_op_ptr): Likewise.
27265         (gimple_assign_set_lhs): Remove gcc_assert.
27266         (gimple_assign_set_rhs1): Likewise.
27267         (gimple_assign_set_rhs2): Likewise.
27268         (gimple_call_set_lhs): Likewise.
27269         (gimple_call_set_fn): Likewise.
27270         (gimple_call_set_fndecl): Likewise.
27271         (gimple_call_fndecl): Likewise.
27272         (gimple_call_return_type): Likewise.
27273         (gimple_call_set_chain): Likewise.
27274         (gimple_call_num_args): Likewise.
27275         (gimple_call_set_arg): Likewise.
27276         (gimple_cond_set_code): Likewise.
27277         (gimple_cond_set_lhs): Likewise.
27278         (gimple_cond_set_rhs): Likewise.
27279         (gimple_cond_set_true_label): Likewise.
27280         (gimple_cond_set_false_label): Likewise.
27281         (gimple_label_set_label): Likewise.
27282         (gimple_goto_set_dest): Likewise.
27283         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
27284         (gimple_debug_bind_get_value): Likewise.
27285         (gimple_debug_bind_get_value_ptr): Likewise.
27286         (gimple_debug_bind_set_var): Likewise.
27287         (gimple_debug_bind_set_value): Likewise.
27288         (gimple_debug_bind_reset_value): Likewise.
27289         (gimple_debug_bind_has_value_p): Likewise.
27290         (gimple_return_retval_ptr): Remove gcc_assert.
27291         (gimple_return_retval): Likewise.
27292         (gimple_return_set_retval): Likewise.
27293         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
27294         (safe_referenced_var_iterator): Remove.
27295         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
27296         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
27297         (fill_referenced_var_vec): Remove.
27298         (first_readonly_imm_use): Remove redundant gcc_assert.
27299         (phi_arg_index_from_use): Combine gcc_asserts.
27300         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
27301         (first_imm_use_stmt): Remove redundant gcc_assert.
27302         * tree-cfg.c (verify_gimple_call): Verify function and chain
27303         operands.  Verify arguments.
27304         (verify_types_in_gimple_stmt): Verify condition code and labels.
27305
27306 2010-01-07  Richard Guenther  <rguenther@suse.de>
27307
27308         PR tree-optimization/42641
27309         * sese.c (rename_map_elt_info): Use the SSA name version, do
27310         not hash pointers.
27311
27312 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
27313
27314         PR tree-optimization/42625
27315         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
27316         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
27317
27318 2010-01-07  Duncan Sands  <baldrick@free.fr>
27319
27320         * Makefile.in (PLUGIN_HEADERS): Add version.h.
27321
27322 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
27323
27324         PR target/42511
27325         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
27326         note itself is not function_invariant_p.
27327
27328 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
27329
27330         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
27331         Do not add the DF_NOTE problem.
27332         * store-motion.c (execute_rtl_store_motion): Likewise.
27333
27334 2010-01-07  Martin Jambor  <mjambor@suse.cz>
27335
27336         PR tree-optimization/42157
27337         * tree-sra.c (compare_access_positions): Stabilize sort if both
27338         accesses have integer types, return zero immediately if they are the
27339         same.
27340
27341 2010-01-06  Richard Henderson  <rth@redhat.com>
27342
27343         PR middle-end/41883
27344         * haifa-sched.c (add_to_note_list): Merge into ...
27345         (concat_note_lists): ... here, and ...
27346         (unlink_other_notes, rm_other_notes): Merge into...
27347         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
27348         NOTE_INSN_EPILOGUE_BEG.
27349
27350 2010-01-06  Richard Guenther  <rguenther@suse.de>
27351
27352         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
27353         not inline regular functions into always-inline functions.
27354
27355 2010-01-06  Nick Clifton  <nickc@redhat.com>
27356
27357         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
27358         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
27359         used together.
27360         (OVERRIDE_OPTIONS): Delete.
27361         (OPTIMIZATION_OPTIONS): Define.
27362         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
27363         * config/rx/rx.c (rx_handle_option): Issue an error message if
27364         -mcpu=rx200 and -fpu are used together.
27365         (rx_set_optimization_options): New function.  Issue an error
27366         message if an optimization attribute attempts to reset the FPU/
27367         math optimization pairing.
27368         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
27369         * config/rx/rx.opt: Set the default to 32-bit doubles.
27370         * config/rx/t-rx: Add multilibs for -nofpu option.
27371         * doc/invoke.texi: Update documentation of RX options.
27372
27373 2010-01-06  Richard Guenther  <rguenther@suse.de>
27374
27375         * tree-ssa-pre.c (name_to_id): New global.
27376         (alloc_expression_id): Simplify SSA name handling.
27377         (lookup_expression_id): Likewise.
27378         (init_pre): Zero name_to_id.
27379         (fini_pre): Free it.
27380
27381 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
27382
27383         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
27384
27385 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
27386
27387         PR target/42542
27388         * config/i386/sse.md (smaxv2di3): New.
27389         (umaxv2di3): Likewise.
27390         (sminv2di3): Likewise.
27391         (uminv2di3): Likewise.
27392
27393 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
27394
27395         PR target/42564
27396         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
27397         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
27398         (legitimize_tls_address): Likewise.
27399         (sparc_tls_referenced_p): Likewise.
27400         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
27401         and adjust calls to legitimize_pic_address.
27402         (legitimate_constant_p) Use sparc_tls_referenced_p.
27403         (legitimate_pic_operand_p): Likewise.
27404         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
27405         (sparc_tls_symbol_ref_1): Delete.
27406         (sparc_tls_referenced_p): Make static, recognize specific patterns.
27407         (legitimize_tls_address): Make static, handle CONST patterns.
27408         (legitimize_pic_address): Make static, remove unused parameter and
27409         adjust recursive calls.
27410         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
27411         and adjust call to legitimize_pic_address.
27412         (sparc_output_mi_thunk): Likewise.
27413
27414 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
27415             H.J. Lu  <hongjiu.lu@intel.com>
27416
27417         PR target/42542
27418         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
27419         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
27420         operands to make them signed.
27421
27422         Revert:
27423         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
27424
27425         PR target/42542
27426         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
27427         GTU to GT for V4SI and V2DI.
27428
27429         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
27430         (umin<mode>3): Removed.
27431         (uminv8hi3): New.
27432         (uminv4si3): Likewise.
27433
27434 2010-01-05  Martin Jambor  <mjambor@suse.cz>
27435
27436         PR tree-optimization/42462
27437         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
27438         current_function_decl to helper functions and macros.
27439
27440 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27441
27442         PR bootstrap/41771
27443         * flags.h: Don't include real.h.
27444         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
27445         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
27446         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
27447         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
27448         * dominance.c: Update copyright.
27449         * gimple.c (walk_gimple_op): Remove inline.
27450         * tree-ssa-reassoc.c: Include real.h.
27451         * Makefile.in (FLAGS_H): Remove $(REAL_H).
27452         (tree-ssa-reassoc.o): Depend on $(REAL_H).
27453
27454 2010-01-05  Nick Clifton  <nickc@redhat.com>
27455
27456         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
27457         register to push into the stack frame when the accumulator has to
27458         be saved during interrupts.
27459
27460 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
27461
27462         * doc/invoke.texi: Remove the documentation about option
27463         -Wunreachable-code.
27464         * common.opt (Wunreachable-code):  Preserved for backward
27465         compatibility.
27466         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
27467         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
27468         the backward compatibility flag section.
27469
27470 2010-01-05  Richard Guenther  <rguenther@suse.de>
27471
27472         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
27473
27474 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
27475
27476         PR other/42611
27477         * cfgexpand.c (expand_one_var): Diagnose too large variables.
27478
27479         PR tree-optimization/42508
27480         * tree-sra.c (convert_callers): Check for recursive call
27481         by comparing cgraph nodes instead of decls.
27482         (modify_function): Call ipa_modify_formal_parameters also
27483         on all same_body aliases.
27484
27485         * cgraphunit.c (cgraph_materialize_all_clones): Compare
27486         cgraph nodes when checking for same_body aliases.
27487
27488 2010-01-05  Richard Guenther  <rguenther@suse.de>
27489
27490         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
27491         allocation and lookup.
27492         (get_or_alloc_expr_for_constant): Likewise.
27493         (phi_translate): Sink allocation.
27494
27495 2010-01-04  Richard Guenther  <rguenther@suse.de>
27496
27497         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
27498         a new entry only if needed.
27499         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
27500         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
27501         hashtable lookup.
27502         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
27503         the result array.
27504         (phi_translate): Handle CONSTANTs early.
27505
27506 2010-01-04  Martin Jambor  <mjambor@suse.cz>
27507
27508         PR tree-optimization/42398
27509         * tree-sra.c (struct access): Removed flag grp_different_types.
27510         (dump_access): Do not dump the removed flag.
27511         (sort_and_splice_var_accesses): Do not set the removed flag.
27512         (sra_modify_expr): Check for type compatibility directly.
27513
27514 2010-01-04  Martin Jambor  <mjambor@suse.cz>
27515
27516         PR tree-optimization/42366
27517         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
27518         edges with variable number of parameters.
27519         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
27520         flag instead of asserting it.
27521         (ipa_read_node_info): Read uses_analysis_done flag.
27522
27523 2010-01-04  Richard Guenther  <rguenther@suse.de>
27524
27525         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
27526         iterative_hash_* as intended.
27527         (vn_reference_compute_hash): Likewise.  Simplify hashing
27528         SSA names.
27529         (vn_reference_lookup_2): Likewise.
27530         (vn_nary_op_compute_hash): Likewise.
27531         (vn_phi_compute_hash): Likewise.
27532         (expressions_equal_p): Remove strange code.
27533         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
27534         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
27535         (bitmap_insert_into_set_1): Take value-id as parameter.
27536         (add_to_value): Pass it.
27537         (bitmap_insert_into_set): Likewise.
27538         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
27539
27540 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
27541
27542         PR driver/42442
27543         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
27544         (do_self_spec): For switches with SWITCH_IGNORE set set also
27545         SWITCH_IGNORE_PERMANENTLY.
27546         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
27547         of SWITCH_IGNORE.
27548
27549 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
27550
27551         * lto-streamer-out.c (output_unreferenced_globals): Output the full
27552         tree of an unreferenced global var.
27553
27554 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
27555
27556         PR target/42542
27557         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
27558         GTU to GT for V4SI and V2DI.
27559
27560         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
27561         (umin<mode>3): Removed.
27562         (uminv8hi3): New.
27563         (uminv4si3): Likewise.
27564
27565 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
27566
27567         PR lto/42581
27568         * collect2.c (main): Turn on trace in collect2 if -v is passed
27569         to gcc with LTO.
27570
27571 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
27572
27573         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
27574         description of expression operand.
27575
27576 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
27577
27578         * configure.ac: Add install-html to target_list for Make-hooks.
27579         * configure: Regenerate.
27580         * fortran/Make-lang.in (F95_HTMLFILES): New.
27581         (fortran.html): Use it.
27582         (fortran.install-html): New.
27583         * Makefile.in (install-html): Add lang.install-html.
27584         * java/Make-lang.in (JAVA_HTMLFILES): New.
27585         (java.html): Use it.
27586         (java.install-html): New.
27587         * objc/Make-lang.in (objc.install-html): New.
27588         * objcp/Make-lang.in (obj-c++.install-html): New.
27589         * cp/Make-lang.in (c++.install-html): New.
27590         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
27591         * lto/Make-lang.in (lto.install-html): New.
27592
27593 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
27594
27595         PR lto/42520
27596         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
27597
27598 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
27599
27600         PR rtl-optimization/41862
27601         * store-motion.c (store_killed_in_insn, compute_store_table,
27602         remove_reachable_equiv_notes, replace_store_insn,
27603         build_store_vectors): Ignore all DEBUG_INSNs.
27604
27605 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
27606
27607         PR lto/41564
27608         * common.opt: Add dumpdir.
27609
27610         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
27611         isn't specified.
27612         (option_map): Add --dumpdir.
27613
27614         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
27615
27616         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
27617
27618         * opts.c (decode_options): Try dump_dir_name first if
27619         dump_base_name isn't an absolute path.
27620         (common_handle_option): Handle OPT_dumpdir.
27621
27622         * toplev.c (dump_dir_name): New.
27623         (print_switch_values): Also ignore -dumpdir.
27624
27625         * toplev.h (dump_dir_name): New.
27626
27627 2010-01-03  Richard Guenther  <rguenther@suse.de>
27628
27629         PR tree-optimization/42589
27630         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
27631         double-word expansion of bswap32.
27632
27633 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
27634
27635         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
27636         with BLOCK_FOR_INSN.
27637         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
27638         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
27639         noce_process_if_block): Likewise.
27640         * gcse.c (compute_local_properties, insert_expr_in_table,
27641         insert_set_in_table, canon_list_insert, find_avail_set,
27642         pre_insert_copy_insn): Likewise.
27643
27644         * basic-block.h (BLOCK_NUM): Move from here...
27645         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
27646
27647 2010-01-03  Richard Guenther  <rguenther@suse.de>
27648
27649         PR tree-optimization/42438
27650         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
27651         contains_may_not_return_call flag.
27652         (BB_MAY_NOTRETURN): New.
27653         (valid_in_sets): Trapping nary operations are not valid
27654         in blocks that may not return.
27655         (insert_into_preds_of_block): Remove check for trapping expressions.
27656         (compute_avail): Compute also BB_MAY_NOTRETURN.
27657
27658 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
27659
27660         * doc/invoke.texi: Add 2010 to copyright years.
27661
27662 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
27663
27664         * config/sparc/sparc.c: Fix formatting nits.
27665
27666 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
27667             Alexander Monakov  <amonakov@ispras.ru>
27668
27669         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
27670
27671 2010-01-02  Richard Guenther  <rguenther@suse.de>
27672
27673         PR middle-end/42577
27674         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
27675         (simplify_switch_using_ranges): Mark to be removed edges
27676         as non-executable.
27677
27678 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27679
27680         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
27681
27682         * collect2.c (scan_libraries): Add missing argument in call to
27683         scan_prog_file.
27684
27685 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
27686
27687         PR target/42448
27688         * config/alpha/predicates.md (aligned_memory_operand): Return false
27689         for CQImode.
27690         (unaligned_memory_operand): Return true for CQImode.
27691         * config/alpha/alpha.c (get_aligned_mem): Assert that location
27692         doesn not cross aligned SImode word boundary.
27693
27694 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
27695
27696         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
27697         Remove.
27698         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
27699         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
27700
27701 2010-01-02  Richard Guenther  <rguenther@suse.de>
27702
27703         PR lto/41597
27704         * toplev.c (compile_file): Emit LTO marker properly.  Change
27705         it to __gnu_lto_v1.
27706         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
27707
27708 2010-01-01  Richard Guenther  <rguenther@suse.de>
27709
27710         PR debug/42455
27711         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
27712
27713 2010-01-01  Richard Guenther  <rguenther@suse.de>
27714
27715         PR c/42570
27716         * c-decl.c (grokdeclarator): For zero-size arrays force
27717         structural equality checks as layout_type does.
27718
27719 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
27720
27721         * builtins.c: Update copyright to 2010.
27722
27723 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
27724
27725         PR lto/42531
27726         * lto-streamer-out.c (produce_asm): Revert the last change.
27727         (copy_function): Likewise.
27728
27729         * lto-streamer.c (lto_get_section_name): Skip any leading
27730         asterisk in name.
27731
27732 2010-01-01  Richard Guenther  <rguenther@suse.de>
27733
27734         PR middle-end/42559
27735         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
27736         for LABEL_DECLs.
27737
27738 \f
27739 Copyright (C) 2010 Free Software Foundation, Inc.
27740
27741 Copying and distribution of this file, with or without modification,
27742 are permitted in any medium without royalty provided the copyright
27743 notice and this notice are preserved.